<?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>153565</bug_id>
          
          <creation_ts>2016-01-27 15:30:36 -0800</creation_ts>
          <short_desc>Remove LegacyProfiler</short_desc>
          <delta_ts>2016-05-20 22:23:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>153466</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1159475</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-01-27 15:30:36 -0800</bug_when>
    <thetext>* SUMMARY
Remove LegacyProfiler.

The Sampling Profiler does not require extra byte codes / recompilation, and is significantly faster. Once all ports enable SAMPLING_PROFILER we should remove the LegacyProfiler.

Bugs to update when old profiler and tests are removed:
&lt;https://webkit.org/b/148819&gt; Enabling the profiler shouldn&apos;t prevent us from performing tail call elimination
&lt;https://webkit.org/b/142157&gt; [EFL] Mark two profiler tests to flaky
&lt;https://webkit.org/b/136067&gt; [GTK] Layout Test fast/profiler/dead-time.html and fast/profiler/stop-profiling-after-setTimeout.html are flaky
&lt;https://webkit.org/b/97791&gt; fast/profiler/apply.html fails with LLInt on 32 bit
&lt;https://webkit.org/b/95764&gt; Crashes in fast/profiler layout tests after r127202
&lt;https://webkit.org/b/49801&gt; REGRESSION (r72351): fast/profiler/throw-exception-from-eval.html fails
&lt;https://webkit.org/b/34230&gt; fast/profiler/simple-no-level-change.html crashed on Snow Leopard Release Bot
&lt;https://webkit.org/b/33490&gt; fast/profiler/profile-calls-in-included-file.html crashed on the leopard Commit Bot

Blockers:
&lt;https://webkit.org/b/153466&gt; [GTK] JSC Sampling profiler is not enabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159478</commentid>
    <comment_count>1</comment_count>
      <attachid>270052</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-01-27 15:36:09 -0800</bug_when>
    <thetext>Created attachment 270052
[PATCH] Work in Progress

This basically removes everything, including a lot of related code. It needs to update bindings tests and there was one sampling-profiler test failing based on sourceURL in an eval, which might have ben related. But I&apos;m going to table it, until other ports get the sampling profiler, which I think would be the real blocker.

That said, other ports aren&apos;t getting profiling data in Web Inspector on trunk if they only have the LegacyProfiler.

We should either:

  1. Encourage ports to complete Sampling Profiler
  2. Fallback to LegacyProfiler on ports that don&apos;t have the Sampling Profiler

I&apos;m hopeful for (1) given the performance improvements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159780</commentid>
    <comment_count>2</comment_count>
      <attachid>270052</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-01-28 10:51:43 -0800</bug_when>
    <thetext>Comment on attachment 270052
[PATCH] Work in Progress

Why does this patch need to remove tests?

It&apos;s nice to wait a bit for other ports to adopt the sampling profiler, but we shouldn&apos;t wait too long. I don&apos;t think we need to keep old tools working forever to satisfy ports that don&apos;t move with us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159789</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2016-01-28 10:58:12 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 270052 [details]
&gt; [PATCH] Work in Progress
&gt; 
&gt; Why does this patch need to remove tests?
&gt; 
&gt; It&apos;s nice to wait a bit for other ports to adopt the sampling profiler, but
&gt; we shouldn&apos;t wait too long. I don&apos;t think we need to keep old tools working
&gt; forever to satisfy ports that don&apos;t move with us.

Joe does not plan to land this yet, he is waiting for other ports to adopt the sampling profiler (from the description &quot;Once all ports enable SAMPLING_PROFILER we should remove the LegacyProfiler.&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1162805</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-02-07 17:38:15 -0800</bug_when>
    <thetext>Now, sampling profiler is enabled in EFL / GTK!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180554</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-04-04 16:03:06 -0700</bug_when>
    <thetext>I think we can move forward with removing the Legacy Profiler now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192983</commentid>
    <comment_count>6</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-13 17:33:31 -0700</bug_when>
    <thetext>Looking at this again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193026</commentid>
    <comment_count>7</comment_count>
      <attachid>278912</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-13 19:52:36 -0700</bug_when>
    <thetext>Created attachment 278912
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193027</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-13 19:57:00 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 270052 [details]
&gt; [PATCH] Work in Progress
&gt; 
&gt; Why does this patch need to remove tests?

The tests it removes are all LayoutTests/fast/profiler tests which actually inspect the JSC::Profile data created from console.profile/profileEnd and exposed through Internals. Since the JSC::Profile structure and data are being removed, these tests are no longer valid.

Because the Legacy Profiler is replaced by the Sampling Profiler you can consider these tests as replaced by the Sampling Profiler tests:
Source/JavaScriptCore/tests/stress/sampling-profiler*
LayoutTests/inspector/sampling-profiler/*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193028</commentid>
    <comment_count>9</comment_count>
      <attachid>278913</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-13 20:01:06 -0700</bug_when>
    <thetext>Created attachment 278913
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193035</commentid>
    <comment_count>10</comment_count>
      <attachid>278917</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-13 20:44:39 -0700</bug_when>
    <thetext>Created attachment 278917
[PATCH] Proposed Fix - remove some ManualTests as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193053</commentid>
    <comment_count>11</comment_count>
      <attachid>278923</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-13 22:04:18 -0700</bug_when>
    <thetext>Created attachment 278923
[PATCH] Proposed Fix

Removes a few more forward declarations and attempts to fix Windows. This could be the one!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193061</commentid>
    <comment_count>12</comment_count>
      <attachid>278923</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-13 22:41:25 -0700</bug_when>
    <thetext>Comment on attachment 278923
[PATCH] Proposed Fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193065</commentid>
    <comment_count>13</comment_count>
      <attachid>278923</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-13 23:36:20 -0700</bug_when>
    <thetext>Comment on attachment 278923
[PATCH] Proposed Fix

cq- there are 2 more &lt;JavaScriptCore/Profile.h&gt; includes in Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193066</commentid>
    <comment_count>14</comment_count>
      <attachid>278928</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-14 00:49:20 -0700</bug_when>
    <thetext>Created attachment 278928
[PATCH] For Landing

Give the bots a go on this one and then I&apos;ll cq!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193091</commentid>
    <comment_count>15</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-14 09:24:06 -0700</bug_when>
    <thetext>👍🏾</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193094</commentid>
    <comment_count>16</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-05-14 09:56:50 -0700</bug_when>
    <thetext>Super nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193141</commentid>
    <comment_count>17</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-05-14 14:02:07 -0700</bug_when>
    <thetext>Did this land?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193155</commentid>
    <comment_count>18</comment_count>
      <attachid>278928</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-14 15:16:22 -0700</bug_when>
    <thetext>Comment on attachment 278928
[PATCH] For Landing

Clearing flags on attachment: 278928

Committed r200924: &lt;http://trac.webkit.org/changeset/200924&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193189</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-05-15 00:21:02 -0700</bug_when>
    <thetext>It looks like this patch regressed js/regress/string-replace-generic.html:
https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK1%20(Tests)/r200924%20(5245)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193233</commentid>
    <comment_count>20</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-15 11:14:13 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; It looks like this patch regressed js/regress/string-replace-generic.html:
&gt; https://build.webkit.org/results/
&gt; Apple%20El%20Capitan%20Debug%20WK1%20(Tests)/r200924%20(5245)/results.html

that&apos;s super weird. That test should not rely on anything about the profiler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193476</commentid>
    <comment_count>21</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-05-16 12:49:47 -0700</bug_when>
    <thetext>Has anyone had a chance to look into the regression, or should we roll out for now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193484</commentid>
    <comment_count>22</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-16 13:12:33 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Has anyone had a chance to look into the regression, or should we roll out
&gt; for now?

I&apos;ll take a look. It is passing locally for me in Release.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193556</commentid>
    <comment_count>23</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-16 15:24:09 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; Has anyone had a chance to look into the regression, or should we roll out
&gt; &gt; for now?
&gt; 
&gt; I&apos;ll take a look. It is passing locally for me in Release.

I built trunk r200961 and the test passes consistently for me. The Debug bot sometimes passes, but the Release bot seems to always fail. I don&apos;t really know how to debug the failure. EWS bots also liked the patch 5 times... so that makes it even weirder.

Since causing this test to fail seems more serious then removing the legacy profiler, I&apos;m going to just roll it out. Maybe I can approach this by removing the Legacy Profiler in smaller pieces.

Its also possible that removing the Legacy Profiler didn&apos;t cause the failure but just helped exposes a latent issue; so regardless it should probably be investigated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193561</commentid>
    <comment_count>24</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-16 15:30:49 -0700</bug_when>
    <thetext>Rolled out in &lt;http://trac.webkit.org/changeset/200973&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195289</commentid>
    <comment_count>25</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-20 17:39:23 -0700</bug_when>
    <thetext>I&apos;m going to attempt this again in a few phases to see if 

  1. Remove LayoutTests and References in WebCore
    - this will pave the way for new console.profile without conflicts
  2. Remove LegacyProfiler and related classes
    - just change surface code, not code generation
  3. Remove ProfilerOn and any other code generation
    - carefully remove code from the code generation path

Given that this caused a test to fail previously it would likely have only been in step (3). Since it was non-obvious, I want to remove all the unrelated code first which should hopefully reveal what went wrong the first time, or help expose a real issue that was masked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195309</commentid>
    <comment_count>26</comment_count>
      <attachid>279532</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-20 18:18:48 -0700</bug_when>
    <thetext>Created attachment 279532
[PATCH] Part 1 - ManualTests, LayoutTests, WebCore, WebKit

This eliminates LegacyProfiler from everywhere outside of JavaScriptCore. The JSC changes are very minor. Next Part will start removing from JSC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195314</commentid>
    <comment_count>27</comment_count>
      <attachid>279532</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-20 18:59:42 -0700</bug_when>
    <thetext>Comment on attachment 279532
[PATCH] Part 1 - ManualTests, LayoutTests, WebCore, WebKit

Clearing flags on attachment: 279532

Committed r201237: &lt;http://trac.webkit.org/changeset/201237&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195315</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-20 18:59:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195318</commentid>
    <comment_count>29</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-20 20:17:20 -0700</bug_when>
    <thetext>Reopening, more parts to land (this is multi-part).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195319</commentid>
    <comment_count>30</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-20 20:18:46 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Reopening, more parts to land (this is multi-part).

Wow... Just Part 1 caused the test to fail. Thats... eerie.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195323</commentid>
    <comment_count>31</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-20 20:53:08 -0700</bug_when>
    <thetext>I tried forcing a full build on the bot to see if that changes things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195326</commentid>
    <comment_count>32</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-20 21:12:11 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; I tried forcing a full build on the bot to see if that changes things.

It did not help, the test still fails:
&lt;https://build.webkit.org/builders/Apple%20El%20Capitan%20Release%20WK2%20%28Tests%29/builds/6225&gt;

----

But, not all hope is lost. I have a theory!

Previously, Internals::resetToConsistentState was clearing the state from the previous test and doing:

&gt; Source/WebCore/testing/Internals.cpp:-392
&gt; -    page.inspectorController().setLegacyProfilerEnabled(false);

Which runs this:

&gt; Source/WebCore/inspector/InspectorController.cpp:-436
&gt; -void InspectorController::setLegacyProfilerEnabled(bool enable)
&gt; -{
&gt; -    m_legacyProfilerEnabled = enable;
&gt; -
&gt; -    ErrorString unused;
&gt; -    if (enable) {
&gt; -       ...
&gt; -    } else {
&gt; -        m_instrumentingAgents-&gt;setPersistentInspectorTimelineAgent(nullptr);
&gt; -        m_scriptDebugServer.recompileAllJSFunctions();
&gt; -        m_timelineAgent-&gt;stop(unused);
&gt; -    }
&gt; -}

And ultimately recompileAllJSFunctions:

&gt; void Debugger::recompileAllJSFunctions()
&gt; {
&gt;    m_vm.deleteAllCode();
&gt; }

So, maybe this can explain the issue!

I want to investigate this a bit before a rollout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195327</commentid>
    <comment_count>33</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-20 21:17:04 -0700</bug_when>
    <thetext>Yes, this seems likely! I am able to reproduce by running two particular tests in a row (worked out from the bots):

$ run-webkit-tests --release js/regress/string-replace-empty.html js/regress/string-replace-generic.html

Found 2 tests; running 2, skipping 0.
Running 1 WebKitTestRunner.     

[2/2] js/regress/string-replace-generic.html failed unexpectedly (text diff)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195328</commentid>
    <comment_count>34</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-20 21:23:39 -0700</bug_when>
    <thetext>Yes, this is a regression. Put into one test I can reproduce with `jsc`. I&apos;ll continue to investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195331</commentid>
    <comment_count>35</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-20 21:32:05 -0700</bug_when>
    <thetext>Tracking that issue in bug 157968.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195334</commentid>
    <comment_count>36</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-20 21:44:24 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; Tracking that issue in bug 157968.

Given this is a separate, real issue. I&apos;m probably going to follow-thru and land the rest of the original change (already reviewed) and probably mark the test as flakey while it gets investigated (to keep the bots green).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195344</commentid>
    <comment_count>37</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-05-20 22:23:02 -0700</bug_when>
    <thetext>All parts have landed:
&lt;http://trac.webkit.org/changeset/201237&gt;
&lt;http://trac.webkit.org/changeset/201239&gt;

Closing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270052</attachid>
            <date>2016-01-27 15:36:09 -0800</date>
            <delta_ts>2016-05-13 19:52:36 -0700</delta_ts>
            <desc>[PATCH] Work in Progress</desc>
            <filename>rm-legacyprofiler.patch</filename>
            <type>text/plain</type>
            <size>323363</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhh
bmRsZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMt
ZXZlbnQtaGFuZGxlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDg0OGJmMzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1v
dXMtZXZlbnQtaGFuZGxlci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCww
IEBACi1UaGlzIHBhZ2UgaGFzIGFuIGFub255bW91cyBldmVudCBoYW5kbGVyLiAKLQotVG8gcnVu
IHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhl
IFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSXQgc2hvdWxkIHNob3cgdGhl
IGFub255bW91cyBmdW5jdGlvbiBhdCB0aGUgc2FtZSBsZXZlbCBhcyB0aGUgb25sb2FkIGhhbmRs
ZXIuIAotCi1Qcm9maWxlIHRpdGxlOiBBbm9ueW1vdXMgZXZlbnQgaGFuZGxlcgotVGhyZWFkXzEg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBhbm9ueW1vdXMtZXZlbnQtaGFuZGxl
ci5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgIGNsaWNrIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBvbmNsaWNr
IGFub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwgKGxpbmUgMTU6NTEpCi0gICAgICAgICAgICBp
bnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQot
ICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBnZXRF
bGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhhbmRsZXIuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZjcyNTk1YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgi
QW5vbnltb3VzIGV2ZW50IGhhbmRsZXIiKTsKLQotICAgIHZhciBidXR0b25XaXRoQW5vbnltb3Vz
SGFuZGxlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJidXR0b25XaXRoQW5Bbm9ueW1vdXNF
dmVudEhhbmRsZXIiKQotICAgIGJ1dHRvbldpdGhBbm9ueW1vdXNIYW5kbGVyLm9uY2xpY2sgPSBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIGluc2VydE5ld1RleHQoKTsKLSAgICB9Ci0KLSAgICBidXR0
b25XaXRoQW5vbnltb3VzSGFuZGxlci5jbGljaygpOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdl
IGhhcyBhbiBhbm9ueW1vdXMgZXZlbnQgaGFuZGxlci4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSXQgc2hvdWxkIHNob3cgdGhlIGFu
b255bW91cyBmdW5jdGlvbiBhdCB0aGUgc2FtZSBsZXZlbCBhcyB0aGUgb25sb2FkCi1oYW5kbGVy
LgotPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9ImJ1dHRvbldpdGhBbkFub255bW91c0V2ZW50SGFu
ZGxlciIgdmFsdWU9IkJ1dHRvbiB3aXRoIGFuIGFub255bW91cyBldmVudCBoYW5kbGVyIj4KLTxk
aXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZm
ZXJlbnQtY29udGV4dHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9h
bm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2NiYmYwNC4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJv
bS1kaWZmZXJlbnQtY29udGV4dHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjQg
KzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBhbiBhbm9ueW1vdXMgZnVuY3Rp
b24gZnJvbSBkaWZmZXJlbnQgY29udGV4dHMuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5
LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBs
b29rIGF0IHRoZSBwcm9maWxlLiBCZW5lYXRoIG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNob3Vs
ZCBzaG93IHRocmVlIGNoaWxkcmVuLCBhbiBhbm9ueW1vdXMgZnVuY3Rpb24sIHNjcmlwdCBjb250
ZXh0LCBhbmQgdGhlIGVuZFRlc3QgY2FsbC4KLQotUHJvZmlsZSB0aXRsZTogU2FtZSBhbm9ueW1v
dXMgZnVuY3Rpb24gY2FsbGVkIGZyb20gZGlmZmVyZW50IGNvbnRleHRzCi1UaHJlYWRfMSAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGFub255bW91cy1mdW5jdGlvbi1jYWxsZWQt
ZnJvbS1kaWZmZXJlbnQtY29udGV4dHMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91
c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAg
ICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAx
NzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVu
dEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGV2YWwgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgIChwcm9ncmFtKSAobm8gZmlsZSkgKGxpbmUgMToxKQotICAgICAgICAgICAg
YW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6
MzQpCi0gICAgICAgICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnlt
b3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVy
ZW50LWNvbnRleHRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4MGNiYjQu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rp
b24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwzMSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU2Ft
ZSBhbm9ueW1vdXMgZnVuY3Rpb24gY2FsbGVkIGZyb20gZGlmZmVyZW50IGNvbnRleHRzIik7Ci0K
LSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGV2YWwoImFub255bW91c0Z1bmN0aW9uKCki
KTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnlt
b3VzIGZ1bmN0aW9uIGZyb20gZGlmZmVyZW50IGNvbnRleHRzLgotPGJyPgotPGJyPgotVG8gcnVu
IHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhl
IFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBCZW5lYXRoIG9ubG9hZCBh
bmQgc3RhcnRUZXN0IGl0IHNob3VsZCBzaG93IHRocmVlIGNoaWxkcmVuLCBhbgotYW5vbnltb3Vz
IGZ1bmN0aW9uLCBzY3JpcHQgY29udGV4dCwgYW5kIHRoZSBlbmRUZXN0IGNhbGwuCi08ZGl2IGlk
PSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rp
b25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1
bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDkxMjA2MDAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRoaXMgcGFnZSBoYXMg
YW4gYW5vbnltb3VzIEphdmFTY3JpcHQgZnVuY3Rpb24gdGhhdCBjYWxscyBidWlsdC1pbiBmdW5j
dGlvbnMuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93
c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBC
ZW5lYXRoIG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNob3VsZCBzaG93IHRocmVlIGNoaWxkcmVu
LCBhbiBhbm9ueW1vdXMgZnVuY3Rpb24sIHNjcmlwdCBjb250ZXh0LCBhbmQgdGhlIGVuZFRlc3Qg
Y2FsbC4KLQotUHJvZmlsZSB0aXRsZTogQW5vbnltb3VzIGZ1bmN0aW9uIGNhbGxzIGJ1aWx0LWlu
IGZ1bmN0aW9ucwotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBh
bm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwgKGxpbmUgMTA6
MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRU
ZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMt
YnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255
bW91cy1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZjMzNWFkZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAg
Y29uc29sZS5wcm9maWxlKCJBbm9ueW1vdXMgZnVuY3Rpb24gY2FsbHMgYnVpbHQtaW4gZnVuY3Rp
b25zIik7Ci0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBlbmRUZXN0KCk7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2Ug
aGFzIGFuIGFub255bW91cyBKYXZhU2NyaXB0IGZ1bmN0aW9uIHRoYXQgY2FsbHMgYnVpbHQtaW4g
ZnVuY3Rpb25zLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBp
dCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAot
dGhlIHByb2ZpbGUuICBCZW5lYXRoIG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNob3VsZCBzaG93
IHRocmVlIGNoaWxkcmVuLCBhbgotYW5vbnltb3VzIGZ1bmN0aW9uLCBzY3JpcHQgY29udGV4dCwg
YW5kIHRoZSBlbmRUZXN0IGNhbGwuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMt
ZnVuY3Rpb24tY2FsbHMtZXZhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggOWEwZmQ0Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2Fs
bHMgYW4gYW5vbnltb3VzIGZ1bmN0aW9uIHdoaWNoIGNhbGxzIGV2YWwoKS4gCi0KLVRvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBX
ZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEJlbmVhdGggb25sb2FkIGFuZCBz
dGFydFRlc3QgaXQgc2hvdWxkIHNob3cgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2hpY2ggaGFz
IGEgKHByb2dyYW0pIGNoaWxkLgotCi1Qcm9maWxlIHRpdGxlOiBBbm9ueW1vdXMgZnVuY3Rpb24g
Y2FsbGVzIGV2YWwKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qg
YW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIHZh
cmlhYmxlVGhhdFBvaW50c1RvQW5Bbm9ueW1vdXNGdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb24t
Y2FsbHMtZXZhbC5odG1sIChsaW5lIDE0OjU5KQotICAgICAgICAgZXZhbCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgKHByb2dyYW0pIChubyBmaWxlKSAobGluZSAxOjEpCi0gICAg
ICAgICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChs
aW5lIDE3OjIzKQotICAgICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQot
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0
aW9uLWNhbGxzLWV2YWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3Vz
LWZ1bmN0aW9uLWNhbGxzLWV2YWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MjJlNTlmNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91
cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgaW50ZXJuYWxzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5j
dGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGZ1bmN0
aW9uIGNhbGxlcyBldmFsIik7Ci0KLSAgICB2YXIgdmFyaWFibGVUaGF0UG9pbnRzVG9BbkFub255
bW91c0Z1bmN0aW9uID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWwoImluc2VydE5ld1RleHQo
KSIpOwotICAgIH0KLQotICAgIHZhcmlhYmxlVGhhdFBvaW50c1RvQW5Bbm9ueW1vdXNGdW5jdGlv
bigpOwotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnlt
b3VzIGZ1bmN0aW9uIHdoaWNoIGNhbGxzIGV2YWwoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgQmVuZWF0aCBvbmxvYWQgYW5kIHN0
YXJ0VGVzdCBpdCBzaG91bGQgc2hvdyBhbiAoYW5vbnltb3VzIGZ1bmN0aW9uKQotd2hpY2ggaGFz
IGEgKHByb2dyYW0pIGNoaWxkLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1
bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiOGQ4MDcuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlz
cGxheS1uYW1lcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1U
aGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGFub255bW91cyBmdW5jdGlvbnMgd2l0aCBkaXNw
bGF5IG5hbWVzLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUg
YnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmls
ZS4gWW91IHNob3VsZCBzZWUgZnVuY3Rpb25zIG5hbWVkICJbeF0gaXRlcmF0aW9ucyBmdW5jdGlv
biIsIGFuZCBubyBhbm9ueW1vdXMgZnVuY3Rpb25zLgotCi1Qcm9maWxlIHRpdGxlOiBBbm9ueW1v
dXMgZnVuY3Rpb25zIHdpdGggZGlzcGxheSBuYW1lcwotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgIHN0YXJ0VGVzdCBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1l
cy5odG1sIChsaW5lIDIyOjE5KQotICAgICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IgYW5v
bnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMDozNikKLSAg
ICAgIDAgaXRlcmF0aW9ucyBmdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxh
eS1uYW1lcy5odG1sIChsaW5lIDEyOjU5KQotICAgICAgMSBpdGVyYXRpb25zIGZ1bmN0aW9uIGFu
b255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMTI6NTkpCi0g
ICAgICAyIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3Bs
YXktbmFtZXMuaHRtbCAobGluZSAxMjo1OSkKLSAgICAgIDIwIGl0ZXJhdGlvbnMgZnVuY3Rpb24g
YW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMjo1OSkK
LSAgICAgIDEwMDAgaXRlcmF0aW9ucyBmdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgt
ZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDEyOjU5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRo
LWRpc3BsYXktbmFtZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjY3Yjg0
Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5j
dGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgaW50ZXJuYWxzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1m
dW5jdGlvbiBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcihpdGVyYXRpb25zKQotewotICAgIHZh
ciB2YXJpYWJsZVRoYXRQb2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbigpCi0g
ICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgOwotICAg
IH0KLSAgICAKLSAgICB2YXJpYWJsZVRoYXRQb2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24uZGlz
cGxheU5hbWUgPSBpdGVyYXRpb25zICsgIiBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKLSAgICAKLSAg
ICByZXR1cm4gdmFyaWFibGVUaGF0UG9pbnRzVG9BbkFub255bW91c0Z1bmN0aW9uOwotfQotCi1m
dW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGZ1
bmN0aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMiKTsKLQotICAgIGFub255bW91c0Z1bmN0aW9uR2Vu
ZXJhdG9yKDApKCk7Ci0gICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IoMSkoKTsKLSAgICBh
bm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcigyKSgpOwotICAgIGFub255bW91c0Z1bmN0aW9uR2Vu
ZXJhdG9yKDIwKSgpOwotICAgIGFub255bW91c0Z1bmN0aW9uR2VuZXJhdG9yKDEwMDApKCk7Ci0K
LSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJz
dGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGFub255bW91cyBmdW5j
dGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBt
YW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3Rv
ciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBZb3Ugc2hvdWxkIHNlZSBmdW5jdGlvbnMgbmFt
ZWQgIlt4XSBpdGVyYXRpb25zIGZ1bmN0aW9uIiwgYW5kIG5vIGFub255bW91cyBmdW5jdGlvbnMu
Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2FwcGx5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzA4YmQwNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2FwcGx5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRoaXMg
cGFnZSdzIEphdmFTY3JpcHQgaGFzIGEgY2FsbCB0byBhcHBseSgpIGluIGl0LiAKLQotVG8gcnVu
IHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhl
IFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhl
cmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFuZCBhIGNhbGwg
dG8gYXBwbHkoKS4KLQotUHJvZmlsZSB0aXRsZTogVXNpbmcgdGhlIGFwcGx5KCkgbWV0aG9kCi1U
aHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGFwcGx5Lmh0bWwgKGxp
bmUgMTA6MTkpCi0gICAgICBmYWtlT2JqZWN0IGFwcGx5Lmh0bWwgKGxpbmUgMTc6MjEpCi0gICAg
ICAgICBmYWtlSW50ZXJpb3JGdW5jdGlvbiBhcHBseS5odG1sIChsaW5lIDIzOjMwKQotICAgICAg
ZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjgxMTUxMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2FwcGx5
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewot
ICAgIGNvbnNvbGUucHJvZmlsZSgiVXNpbmcgdGhlIGFwcGx5KCkgbWV0aG9kIik7Ci0gICAgdmFy
IG15T2JqZWN0ID0gbmV3IGZha2VPYmplY3QoMSwgMik7Ci0gICAgZW5kVGVzdCgpOwotfQotCi1m
dW5jdGlvbiBmYWtlT2JqZWN0ICh4LCB5KQotewotICAgIHRoaXMueCA9IHg7Ci0gICAgZmFrZUlu
dGVyaW9yRnVuY3Rpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLX0KLQotZnVuY3Rpb24gZmFr
ZUludGVyaW9yRnVuY3Rpb24oeCwgeSkKLXsKLSAgICB0aGlzLnkgPSB5OwotfQotCi08L3Njcmlw
dD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBK
YXZhU2NyaXB0IGhhcyBhIGNhbGwgdG8gYXBwbHkoKSBpbiBpdC4KLTxicj4KLTxicj4KLVRvIHJ1
biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRo
ZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUg
dGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFuZAotYSBj
YWxsIHRvIGFwcGx5KCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlv
bi1jYWxscy1hbm9ueW1vdXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2M2FiN2EzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoaXMgcGFnZSB1c2VzIGEgYnVp
bHQtaW4gZnVuY3Rpb24gdG8gY2FsbCBhbiBhbm9ueW1vdXMgZnVuY3Rpb24uIAotCi1UbyBydW4g
dGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUg
V2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSBtYXAo
KSBzaG91bGQgYmUgdGhlIHNpYmxpbmcgb2YgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2hpY2gg
aGFzIGFycmF5T3BlcmF0b3JGdW5jdGlvbigpIGFzIGEgY2hpbGQuCi0KLVByb2ZpbGUgdGl0bGU6
IEJ1aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlvbgotVGhyZWFkXzEg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBidWlsdC1pbi1mdW5jdGlvbi1jYWxs
cy1hbm9ueW1vdXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIEFycmF5IChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICBtYXAgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIE9iamVjdCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgdG9MZW5ndGggKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgIHRvSW50ZWdlciAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgICAgTnVtYmVyIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAoYW5vbnlt
b3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgbXlGdW5jdGlvbiBi
dWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbCAobGluZSAxNDozMCkKLSAgICAg
ICAgICAgIGFycmF5T3BlcmF0b3JGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAyNTozMSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjBjMmYxYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25z
b2xlLnByb2ZpbGUoIkJ1aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlv
biIpOwotCi0gICAgdmFyIG15RnVuY3Rpb24gPSBmdW5jdGlvbihhcnJheUVsZW1lbnQpIHsKLSAg
ICAgICAgcmV0dXJuIGFycmF5T3BlcmF0b3JGdW5jdGlvbihhcnJheUVsZW1lbnQpOwotICAgIH0K
LQotICAgIHZhciBteUFycmF5ID0gbmV3IEFycmF5ICgwLCAxLCAyKTsKLSAgICBteUFycmF5Lm1h
cChteUZ1bmN0aW9uKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSB1c2VzIGEgYnVpbHQtaW4g
ZnVuY3Rpb24gdG8gY2FsbCBhbiBhbm9ueW1vdXMgZnVuY3Rpb24uCi08YnI+Ci08YnI+Ci1UbyBy
dW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0
aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxl
IG1hcCgpIHNob3VsZCBiZSB0aGUgc2libGluZyBvZiBhbiAoYW5vbnltb3VzIGZ1bmN0aW9uKQot
d2hpY2ggaGFzIGFycmF5T3BlcmF0b3JGdW5jdGlvbigpIGFzIGEgY2hpbGQuCi08ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5j
dGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyZjg4OGQ0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9u
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoaXMgcGFnZSB1
c2VzIGEgYnVpbHQtaW4gZnVuY3Rpb24gdG8gY2FsbCBhIHVzZXIgZGVmaW5lZCBmdW5jdGlvbi4g
Ci0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBw
cm9maWxlIG1hcCgpIHNob3VsZCBoYXZlIGFycmF5T3BlcmF0b3JGdW5jdGlvbigpIGFzIGEgY2hp
bGQuCi0KLVByb2ZpbGUgdGl0bGU6IEJ1aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGEgdXNlciBkZWZp
bmVkIGZ1bmN0aW9uCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0
IGJ1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sIChsaW5l
IDEwOjE5KQotICAgICAgQXJyYXkgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIG1hcCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgT2JqZWN0IChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICB0b0xlbmd0aCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgdG9JbnRl
Z2VyIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBOdW1iZXIgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICBhcnJheU9wZXJhdG9yRnVuY3Rpb24gcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjU6MzEpCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVu
Y3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24t
Y2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDEwYzdmYWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9i
dWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rpb24uaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDMwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1p
ZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5w
cm9maWxlKCJCdWlsdC1pbiBmdW5jdGlvbiBjYWxscyBhIHVzZXIgZGVmaW5lZCBmdW5jdGlvbiIp
OwotCi0gICAgdmFyIG15QXJyYXkgPSBuZXcgQXJyYXkgKDAsIDEsIDIpOwotICAgIG15QXJyYXku
bWFwKGFycmF5T3BlcmF0b3JGdW5jdGlvbik7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgdXNl
cyBhIGJ1aWx0LWluIGZ1bmN0aW9uIHRvIGNhbGwgYSB1c2VyIGRlZmluZWQgZnVuY3Rpb24uCi08
YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93
c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4g
IEluIHRoZSBwcm9maWxlIG1hcCgpIHNob3VsZCBoYXZlIGFycmF5T3BlcmF0b3JGdW5jdGlvbigp
IGFzIGEgY2hpbGQuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGZjODZmZDkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9jYWxsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAg
QEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgaGFzIGEgY2FsbCB0byBjYWxsKCkgaW4gaXQuIAot
Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4g
bG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJv
ZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZha2VPYmplY3QoKSB3aXRoIGNhbGwoKSBh
cyBpdHMgY2hpbGQgYW5kIGEgZmFrZUludGVyaW9yRnVuY3Rpb24oKSBhcyBjYWxsKCkncyBjaGls
ZC4KLQotUHJvZmlsZSB0aXRsZTogVXNpbmcgdGhlIGNhbGwoKSBtZXRob2QKLVRocmVhZF8xIChu
byBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgY2FsbC5odG1sIChsaW5lIDEwOjE5KQot
ICAgICAgZmFrZU9iamVjdCBjYWxsLmh0bWwgKGxpbmUgMTk6MjEpCi0gICAgICAgICBmYWtlSW50
ZXJpb3JGdW5jdGlvbiBjYWxsLmh0bWwgKGxpbmUgMjU6MzApCi0gICAgICBlbmRUZXN0IHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWstZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWstZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMzY0N2JmLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoaXMgcGFnZSB0ZXN0cyB0aGF0IHRoZSBn
ZW5lcmF0aW9uIG9mIGJ5dGVjb2RlIGFsbG9jYXRlcyByZWdpc3RlcnMgY29ycmVjdGx5IHdoZW4g
cHJvZmlsaW5nIGlzIGVuYWJsZWQuIFRvIHJ1biB0aGUgdGVzdCBtYW51YWxseSwgZW5hYmxlIHBy
b2ZpbGluZyBpbiB0aGUgd2ViIGluc3BlY3RvciBhbmQgcmVsb2FkIHRoaXMgcGFnZS4KLQotUEFT
UzogbG9jYWxDYWxsVGVzdCgxLCAyKSBzaG91bGQgYmUgMiBhbmQgaXMuCi0KLVBBU1M6IGdsb2Jh
bENhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQotUEFTUzogc2NvcGVkQ2FsbFRl
c3QoMSwgMikgc2hvdWxkIGJlIDIgYW5kIGlzLgotCi1QQVNTOiByZXNvbHZlQ2FsbFRlc3QoMSwg
Mikgc2hvdWxkIGJlIDIgYW5kIGlzLgotCi1QQVNTOiBicmFja2V0Q2FsbFRlc3QoMSwgMikgc2hv
dWxkIGJlIDIgYW5kIGlzLgotCi1QQVNTOiBkb3RDYWxsVGVzdCgxLCAyKSBzaG91bGQgYmUgMiBh
bmQgaXMuCi0KLVBBU1M6IG5ld1Rlc3QoMSwgMikgc2hvdWxkIGJlIDIgYW5kIGlzLgotCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDRiOTQzLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwxMDUgKzAsMCBAQAotPGJvZHk+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93Lmlu
dGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7Ci0KLWZ1bmN0aW9uIGxvZyhzKQotewotICAgIGlmICh0aGlzLmRvY3VtZW50KQotICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKHMgKyAiXG4iKSk7Ci0gICAgZWxzZQotICAgICAgICBwcmludChzICsg
IlxuIik7Ci19Ci0KLWZ1bmN0aW9uIHNob3VsZEJlKGEsIGFEZXNjcmlwdGlvbiwgYikKLXsKLSAg
ICBpZiAoYSA9PT0gYikKLSAgICAgICAgbG9nKCJQQVNTOiAiICsgYURlc2NyaXB0aW9uICsgIiBz
aG91bGQgYmUgIiArIGIgKyAiIGFuZCBpcy5cbiIpOwotICAgIGVsc2UKLSAgICAgICAgbG9nKCJG
QUlMOiAiICsgYURlc2NyaXB0aW9uICsgIiBzaG91bGQgYmUgIiArIGIgKyAiIGJ1dCBpbnN0ZWFk
IGlzICIgKyBhICsgIi5cbiIpOwotfQotCi1mdW5jdGlvbiBsb2NhbENhbGxUZXN0KGEsIGIpCi17
Ci0gICAgZnVuY3Rpb24gbG9jYWxDYWxsKG8pCi0gICAgewotICAgICAgICByZXR1cm4gby50b1N0
cmluZygpOwotICAgIH0KLSAgICByZXR1cm4gW2xvY2FsQ2FsbChhKSwgYl1bMV07Ci19Ci0KLWZ1
bmN0aW9uIGdsb2JhbENhbGwobykKLXsKLSAgICByZXR1cm4gby50b1N0cmluZygpOwotfQotCi1m
dW5jdGlvbiBnbG9iYWxDYWxsVGVzdChhLCBiKQotewotICAgIHJldHVybiBbZ2xvYmFsQ2FsbChh
KSwgYl1bMV07Ci19Ci0KLWZ1bmN0aW9uIHNjb3BlZENhbGxUZXN0KGEsIGIpCi17Ci0gICAgZnVu
Y3Rpb24gc2NvcGVkQ2FsbChvKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG8udG9TdHJpbmcoKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBmKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBbc2NvcGVk
Q2FsbChhKSwgYl1bMV07Ci0gICAgfQotCi0gICAgcmV0dXJuIGYoKTsKLX0KLQotZnVuY3Rpb24g
cmVzb2x2ZUNhbGxUZXN0KGEsIGIpCi17Ci0gICAgbyA9IHsgcmVzb2x2ZWRDYWxsOiBmdW5jdGlv
bihvKSB7IHJldHVybiBvLnRvU3RyaW5nKCk7IH19OwotICAgIHdpdGggKG8pIHsKLSAgICAgICAg
cmV0dXJuIFtyZXNvbHZlZENhbGwobyksIGJdWzFdOwotICAgIH0KLX0KLQotZnVuY3Rpb24gYnJh
Y2tldENhbGxUZXN0KGEsIGIpCi17Ci0gICAgcmV0dXJuIFthWyJ0b1N0cmluZyJdKCksIGJdWzFd
OwotfQotCi1mdW5jdGlvbiBkb3RDYWxsVGVzdChhLCBiKQotewotICAgIHJldHVybiBbYS50b1N0
cmluZygpLCBiXVsxXTsKLX0KLQotZnVuY3Rpb24gdGVzdENvbnN0cnVjdG9yKG8pCi17Ci0gICAg
cmV0dXJuIG8udG9TdHJpbmcoKTsKLX0KLQotZnVuY3Rpb24gbmV3VGVzdChhLCBiKQotewotICAg
IHJldHVybiBbbmV3IHRlc3RDb25zdHJ1Y3RvcihhKSwgYl1bMV07Ci19Ci0KLWZ1bmN0aW9uIHN0
YXJ0VGVzdCgpCi17Ci0gICAgc2hvdWxkQmUobG9jYWxDYWxsVGVzdCgxLCAyKSwgImxvY2FsQ2Fs
bFRlc3QoMSwgMikiLCAyKTsKLSAgICBzaG91bGRCZShnbG9iYWxDYWxsVGVzdCgxLCAyKSwgImds
b2JhbENhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxkQmUoc2NvcGVkQ2FsbFRlc3QoMSwg
MiksICJzY29wZWRDYWxsVGVzdCgxLCAyKSIsIDIpOwotICAgIHNob3VsZEJlKHJlc29sdmVDYWxs
VGVzdCgxLCAyKSwgInJlc29sdmVDYWxsVGVzdCgxLCAyKSIsIDIpOwotICAgIHNob3VsZEJlKGJy
YWNrZXRDYWxsVGVzdCgxLCAyKSwgImJyYWNrZXRDYWxsVGVzdCgxLCAyKSIsIDIpOwotICAgIHNo
b3VsZEJlKGRvdENhbGxUZXN0KDEsIDIpLCAiZG90Q2FsbFRlc3QoMSwgMikiLCAyKTsKLSAgICBz
aG91bGRCZShuZXdUZXN0KDEsIDIpLCAibmV3VGVzdCgxLCAyKSIsIDIpOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLTxwPgotVGhpcyBwYWdlIHRl
c3RzIHRoYXQgdGhlIGdlbmVyYXRpb24gb2YgYnl0ZWNvZGUgYWxsb2NhdGVzIHJlZ2lzdGVycyBj
b3JyZWN0bHkgd2hlbiBwcm9maWxpbmcgaXMgZW5hYmxlZC4gVG8gcnVuIHRoZSB0ZXN0IG1hbnVh
bGx5LCBlbmFibGUgcHJvZmlsaW5nIGluIHRoZSB3ZWIgaW5zcGVjdG9yIGFuZCByZWxvYWQgdGhp
cyBwYWdlLgotPC9wPgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlODI5MTFlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2Fs
bC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsK
LSAgICBjb25zb2xlLnByb2ZpbGUoIlVzaW5nIHRoZSBjYWxsKCkgbWV0aG9kIik7Ci0KLSAgICB2
YXIgbXlPYmplY3QgPSBuZXcgZmFrZU9iamVjdCgxLCAyKTsKLQotICAgIGVuZFRlc3QoKTsKLX0K
LQotZnVuY3Rpb24gZmFrZU9iamVjdCAoeCwgeSkKLXsKLSAgICB0aGlzLnggPSB4OwotICAgIGZh
a2VJbnRlcmlvckZ1bmN0aW9uLmNhbGwodGhpcywgeSk7Ci19Ci0KLWZ1bmN0aW9uIGZha2VJbnRl
cmlvckZ1bmN0aW9uKHkpCi17Ci0gICAgdGhpcy55ID0geTsKLX0KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQg
aGFzIGEgY2FsbCB0byBjYWxsKCkgaW4gaXQuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3Vs
ZCBiZSBhIGNhbGwgdG8gZmFrZU9iamVjdCgpIHdpdGggY2FsbCgpIGFzCi1pdHMgY2hpbGQgYW5k
IGEgZmFrZUludGVyaW9yRnVuY3Rpb24oKSBhcyBjYWxsKCkncyBjaGlsZC4KLTxkaXYgaWQ9Im91
dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmls
ZXItZnJvbS1hbm90aGVyLXNjb3BlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9t
LWFub3RoZXItc2NvcGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2YzJiYjE4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGlu
Zy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2Nv
cGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGhpcyBwYWdl
J3MgSmF2YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgZnVuY3Rpb24gd2hp
Y2ggaXMgdGhlbiBjYWxsZWQgbGF0ZXIgZnJvbSBhbm90aGVyIGNvbnRleHQuIAotCi1UbyBydW4g
dGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUg
V2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZXIgeW91
IHNob3VsZCBzZWUgYSBjYWxsIHRvIGluZGlyZWN0aW9uKCkgYW5kIGZ1bmN0aW9uV2ljaFN0YXJ0
c0FuZFN0b3BzVGhlUHJvZmlsZXIoKQotCi1Qcm9maWxlIHRpdGxlOiBDYWxsaW5nIHRoZSBzYW1l
IGZ1bmN0aW9uIHdoZXJlIHRoZSBwcm9maWxlIHN0YXJ0ZWQgZnJvbSBhbm90aGVyIGZ1bmN0aW9u
Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgaW5kaXJlY3Rpb24gY2FsbGluZy10
aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUu
aHRtbCAobGluZSAxNzoyMSkKLSAgICAgIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJv
ZmlsZXIgY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9t
LWFub3RoZXItc2NvcGUuaHRtbCAobGluZSAyMzo0NykKLSAgIGZ1bmN0aW9uV2ljaFN0YXJ0c0Fu
ZFN0b3BzVGhlUHJvZmlsZXIgY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1w
cm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbCAobGluZSAyMzo0NykKLSAgIGVuZFRlc3Qg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3Rh
cnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmls
ZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDFiMzljMWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsaW5n
LXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29w
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsK
LSAgICBpbmRpcmVjdGlvbigpOwotICAgIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJv
ZmlsZXIoKTsKLSAgICBlbmRUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGluZGlyZWN0aW9uKCkKLXsK
LSAgICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCk7Ci19Ci0KLXZhciBm
aXJzdFRpbWUgPSB0cnVlOwotZnVuY3Rpb24gZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQ
cm9maWxlcigpCi17Ci0gICAgaWYgKGZpcnN0VGltZSkgewotICAgICAgICBjb25zb2xlLnByb2Zp
bGUoIkNhbGxpbmcgdGhlIHNhbWUgZnVuY3Rpb24gd2hlcmUgdGhlIHByb2ZpbGUgc3RhcnRlZCBm
cm9tIGFub3RoZXIgZnVuY3Rpb24iKTsKLSAgICAgICAgZmlyc3RUaW1lID0gZmFsc2U7Ci0gICAg
fQotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgaSsrKQotICAgICAgICB2YXIg
YiA9IGkgKyAyOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFy
dFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJvbSB3
aXRoaW4gYSBmdW5jdGlvbiB3aGljaCBpcyB0aGVuIGNhbGxlZAotbGF0ZXIgZnJvbSBhbm90aGVy
IGNvbnRleHQuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0
IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10
aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlciB5b3Ugc2hvdWxkIHNlZSBhIGNhbGwgdG8gaW5k
aXJlY3Rpb24oKSBhbmQKLWZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKQot
PGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29tcGFyZS1tdWx0aXBsZS1wcm9maWxlcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmls
ZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjM2JiZTIwLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29tcGFyZS1tdWx0aXBsZS1w
cm9maWxlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGlz
IHBhZ2UgaGFzIG11bHRpcGxlIHByb2ZpbGVzIHdpdGggdGhlIHNhbWUgbmFtZS4gCi0KLVRvIHJ1
biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRo
ZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEl0IHNob3VsZCBub3QgY3Jh
c2ggb3IgaGFuZyBhbmQgdGhlcmUgc2hvdWxkIGJlIG11bHRpcGxlIHJ1bnMgb2YgdGhlIHNhbWUg
bmFtZWQgcHJvZmlsZS4KLQotUHJvZmlsZSB0aXRsZTogVGVzdAotVGhyZWFkXzEgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBjb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwg
KGxpbmUgMjI6MTkpCi0gICAgICB0ZXN0IGNvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRtbCAo
bGluZSAxMToxNCkKLSAgICAgICAgIHRlc3QyIGNvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRt
bCAobGluZSAxNzoxNSkKLQotUHJvZmlsZSB0aXRsZTogVGVzdAotVGhyZWFkXzEgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBjb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwg
KGxpbmUgMjI6MTkpCi0gICAgICB0ZXN0IGNvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRtbCAo
bGluZSAxMToxNCkKLSAgICAgICAgIHRlc3QyIGNvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRt
bCAobGluZSAxNzoxNSkKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvY29tcGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxMTJjNTUzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
Y29tcGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxz
KQotICAgIGludGVybmFscy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQot
dmFyIGogPSAwOwotZnVuY3Rpb24gdGVzdChsZW4pIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGxlbjsgKytpKQotICAgICAgICArK2o7Ci0gICAgdGVzdDIoMjAwMCAtIGxlbik7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3QyKGxlbikgewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpCi0g
ICAgICAgIC0tajsKLX0KLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnBy
b2ZpbGUoIlRlc3QiKTsKLSAgICB0ZXN0KDEwMCk7Ci0gICAgY29uc29sZS5wcm9maWxlRW5kKCJU
ZXN0Iik7Ci0KLSAgICBjb25zb2xlLnByb2ZpbGUoIlRlc3QiKTsKLSAgICB0ZXN0KDEwMDApOwot
ICAgIGNvbnNvbGUucHJvZmlsZUVuZCgiVGVzdCIpOwotCi0gICAgcHJpbnRQcm9maWxlc0RhdGFX
aXRob3V0VGltZSgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3Rh
cnRUZXN0KCkiPgotVGhpcyBwYWdlIGhhcyBtdWx0aXBsZSBwcm9maWxlcyB3aXRoIHRoZSBzYW1l
IG5hbWUuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGlu
IHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUg
cHJvZmlsZS4gIEl0IHNob3VsZCBub3QgY3Jhc2ggb3IgaGFuZyBhbmQgdGhlcmUgc2hvdWxkIGJl
IG11bHRpcGxlIHJ1bnMgb2YgdGhlCi1zYW1lIG5hbWVkIHByb2ZpbGUuCi08ZGl2IGlkPSJvdXRw
dXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9jb25zdHJ1Y3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2NvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOTNkODk2My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Nv
bnN0cnVjdG9yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRo
aXMgcGFnZSdzIEphdmFTY3JpcHQgaGFzIGEgY2FsbCB0byBuZXcoKSBpbiBpdC4gCi0KLVRvIHJ1
biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRo
ZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRo
ZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZmFrZU9iamVjdCgpIGFuZCBBcnJheSgpIGluIGl0Lgot
Ci1Qcm9maWxlIHRpdGxlOiBVc2luZyBhIGNvbnN0cnVjdG9yLgotVGhyZWFkXzEgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBjb25zdHJ1Y3Rvci5odG1sIChsaW5lIDEwOjE5KQot
ICAgICAgZmFrZU9iamVjdCBjb25zdHJ1Y3Rvci5odG1sIChsaW5lIDE5OjIxKQotICAgICAgICAg
QXJyYXkgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2NvbnN0cnVjdG9yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3ZTZhZjAu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25zdHJ1Y3Rvci5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBj
b25zb2xlLnByb2ZpbGUoIlVzaW5nIGEgY29uc3RydWN0b3IuIik7Ci0KLSAgICB2YXIgbXlPYmpl
Y3QgPSBuZXcgZmFrZU9iamVjdCgxLCAyKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rp
b24gZmFrZU9iamVjdCAoeCwgeSkKLXsKLSAgICB2YXIgbXlBcnJheSA9IG5ldyBBcnJheSgpCi0g
ICAgbXlBcnJheVswXSA9IDU7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2Fk
PSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBhIGNhbGwgdG8gbmV3
KCkgaW4gaXQuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0
IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10
aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZmFr
ZU9iamVjdCgpIGFuZCBBcnJheSgpCi1pbiBpdC4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Rl
YWQtdGltZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RlYWQtdGlt
ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkZTY0ZjYuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlw
dCBIYXMgc29tZSBkZWFkIHRpbWUgaW4gdGhlIHByb2ZpbGUuIAotCi1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQg
YmUgYSBsYXJnZSBhbW91bnQgb2YgdGhlICUgc3BlbnQgaW4gKG5vbi1KYXZhU2NyaXB0KS4KLQot
UHJvZmlsZSB0aXRsZTogRGVhZCB0aW1lIGluIHByb2ZpbGUuCi1UaHJlYWRfMSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgb25sb2FkIGRlYWQtdGltZS5odG1sIChsaW5lIDIxOjQ0KQotICAgICAg
c3RhcnRUZXN0IGRlYWQtdGltZS5odG1sIChsaW5lIDEyOjE5KQotICAgICAgICAgc2V0VGltZW91
dCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgKHByb2dyYW0pIGRlYWQtdGltZS5odG1sIChsaW5l
IDE6MSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
MToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RlYWQtdGlt
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWUzNzhiYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwotfQotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNl
dEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3Qo
KQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiRGVhZCB0aW1lIGluIHByb2ZpbGUuIik7Ci0gICAg
c2V0VGltZW91dCgiZW5kVGVzdCgpIiwgMTIzNCk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgSGFz
IHNvbWUgZGVhZCB0aW1lIGluIHRoZSBwcm9maWxlLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMg
dGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYklu
c3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBz
aG91bGQgYmUgYSBsYXJnZSBhbW91bnQgb2YgdGhlICUgc3BlbnQgaW4gCi0obm9uLUphdmFTY3Jp
cHQpLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NDlmMWJkLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotCi1Qcm9maWxlIHRpdGxlOiBD
YWxsIERvY3VtZW50LndyaXRlKCkKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBz
dGFydFRlc3QgZG9jdW1lbnQtZG90LXdyaXRlLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICB3cml0
ZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2RvY3VtZW50LWRvdC13cml0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4MzJkZWM1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1l
bnQtZG90LXdyaXRlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJu
YWxzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFy
dFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQ2FsbCBEb2N1bWVudC53cml0ZSgpIik7
Ci0KLSAgICBkb2N1bWVudC53cml0ZSgiPGRpdiBpZD1cIm91dHB1dFwiPjwvZGl2PiIpOwotCi0g
ICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3Rh
cnRUZXN0KCkiPgotVGhpcyBwYWdlIGNhbGxzIGRvY3VtZW50LndyaXRlKCkuCi08YnI+Ci08YnI+
Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4g
bG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIElmIHRoZXJl
IGlzIGEgcHJvZmlsZSBpdCBzaG91bGQgc2hvdyB3cml0ZSgpLgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9ldmVudC1oYW5kbGVyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1YzQ4Y2QuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9ldmVudC1oYW5kbGVyLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoaXMgcGFnZSBoYXMgYW4gZXZlbnQgaGFu
ZGxlci4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dz
ZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIElu
IHRoZSBwcm9maWxlIGluc2VydG5ld1RleHQoKSBzaG91bGQgYmUgYSBzaWJsaW5nIHRvIG9ubG9h
ZCgpLiAKLQotUHJvZmlsZSB0aXRsZTogRXZlbnQgaGFuZGxlcgotVGhyZWFkXzEgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBldmVudC1oYW5kbGVyLmh0bWwgKGxpbmUgMTA6MTkp
Ci0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgYWRkRXZl
bnRMaXN0ZW5lciAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgY2xpY2sgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHBy
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9ldmVudC1oYW5kbGVyLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMGQ5MTExMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2V2ZW50LWhhbmRsZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRl
cm5hbHMuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0
YXJ0VGVzdCgpCi17ICAgIAotICAgIGNvbnNvbGUucHJvZmlsZSgiRXZlbnQgaGFuZGxlciIpOwot
Ci0gICAgdmFyIG15QnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJ1dHRvbldpdGhB
bkV2ZW50TGlzdGVuZXIiKTsKLSAgICBteUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIs
IGluc2VydE5ld1RleHQsIGZhbHNlKTsKLSAgICBteUJ1dHRvbi5jbGljaygpOwotCi0gICAgZW5k
VGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0
KCkiPgotVGhpcyBwYWdlIGhhcyBhbiBldmVudCBoYW5kbGVyLgotPGJyPgotPGJyPgotVG8gcnVu
IHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhl
IFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSBp
bnNlcnRuZXdUZXh0KCkgc2hvdWxkIGJlIGEgc2libGluZyB0byBvbmxvYWQoKS4KLTxpbnB1dCB0
eXBlPSJidXR0b24iIGlkPSJidXR0b25XaXRoQW5FdmVudExpc3RlbmVyIiB2YWx1ZT0iQnV0dG9u
IHdpdGggYW4gZXZlbnQgbGlzdGVuZXIiPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0
aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5l
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDk1YzI2MS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFu
ZC1ldmFsLW9uLXNhbWUtbGluZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiAr
MCwwIEBACi1UaGlzIHBhZ2UgaGFzIGEgY2FsbCB0byBldmFsIGFuZCBhIHNjcmlwdCB0YWcgb24g
dGhlIHNhbWUgbGluZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4g
dGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHBy
b2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBtdWx0aXBsZSAocHJvZ3JhbSkg
ZWxlbWVudHMgYW5kIG9uZSB0aGF0IHJlcHJlc2VudHMgdGhlIGV2YWwoKS4KLQotUHJvZmlsZSB0
aXRsZTogVHdvIEV4ZWN1dGlvbiBDb250ZXh0cyBvbiB0aGUgc2FtZSBsaW5lCi1UaHJlYWRfMSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGV4ZWN1dGlvbi1jb250ZXh0LWFuZC1l
dmFsLW9uLXNhbWUtbGluZS5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZXZhbEZ1bmN0aW9uIChu
byBmaWxlKSAobGluZSAxOjIyKQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
IGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFu
ZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9leGVj
dXRpb24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDk1ZjBjYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xl
LnByb2ZpbGUoIlR3byBFeGVjdXRpb24gQ29udGV4dHMgb24gdGhlIHNhbWUgbGluZSIpOwotCi0g
ICAgZXZhbEZ1bmN0aW9uKCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1ldmFsKCJmdW5jdGlvbiBldmFsRnVuY3Rpb24oKSB7IGluc2VydE5ld1RleHQoKTsgfSIp
OwotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhp
cyBwYWdlIGhhcyBhIGNhbGwgdG8gZXZhbCBhbmQgYSBzY3JpcHQgdGFnIG9uIHRoZSBzYW1lIGxp
bmUuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRo
ZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJv
ZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBtdWx0aXBsZSAocHJvZ3JhbSkg
ZWxlbWVudHMgYW5kCi1vbmUgdGhhdCByZXByZXNlbnRzIHRoZSBldmFsKCkuCi08ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2lubGluZS1ldmVudC1oYW5kbGVyLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTAyM2U1Zi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2lubGluZS1ldmVudC1oYW5kbGVyLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoaXMgcGFnZSBoYXMgYW4gaW5saW5lIGV2ZW50
IGhhbmRsZXIuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBi
cm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxl
LiBJbiB0aGUgcHJvZmlsZSBvbmNsaWNrKCkgc2hvdWxkIGJlIGEgc2libGluZyB0byBvbmxvYWQo
KSBhbmQgb25jbGljaygpIHNob3VsZCBoYXZlIGV2ZW50TGlzdGVuZXIoKSBhcyBhIGNoaWxkLiAK
LQotUHJvZmlsZSB0aXRsZTogSW5saW5lIGV2ZW50IGhhbmRsZXIKLVRocmVhZF8xIChubyBmaWxl
KSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbCAobGlu
ZSAxMDoxOSkKLSAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICBjbGljayAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgb25jbGljayBpbmxpbmUtZXZl
bnQtaGFuZGxlci5odG1sIChsaW5lIDMxOjEyNykKLSAgICAgICAgICAgIGV2ZW50TGlzdGVuZXIg
aW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbCAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgIGFu
b255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0
KQotICAgICAgICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2Rl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2lubGluZS1ldmVudC1oYW5kbGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2lubGluZS1ldmVudC1oYW5kbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGVhNzEwYjkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxz
KQotICAgIGludGVybmFscy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQot
ZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsgICAgCi0gICAgY29uc29sZS5wcm9maWxlKCJJbmxpbmUg
ZXZlbnQgaGFuZGxlciIpOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV2ZW50TGlz
dGVuZXJTZXRJbmxpbmUiKS5jbGljaygpOwotfQotCi1mdW5jdGlvbiBldmVudExpc3RlbmVyKCkg
eyAgICAKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBo
YXMgYW4gaW5saW5lIGV2ZW50IGhhbmRsZXIuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIG9uY2xpY2soKSBz
aG91bGQgYmUgYSBzaWJsaW5nIHRvIG9ubG9hZCgpIGFuZCBvbmNsaWNrKCkKLXNob3VsZCBoYXZl
IGV2ZW50TGlzdGVuZXIoKSBhcyBhIGNoaWxkLgotPGlucHV0IHR5cGU9ImJ1dHRvbiIgb25jbGlj
az0iZXZlbnRMaXN0ZW5lcigpIiBpZD0iZXZlbnRMaXN0ZW5lclNldElubGluZSIgdmFsdWU9IkV2
ZW50IExpc3RlbmVyIFNldCBJbmxpbmUiPgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1j
YWxscy1pbi10aGUtc2FtZS1zY29wZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwY2Q0NWQxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhh
cyBtYW55IGZ1bmN0aW9uIGNhbGxzIGluIHRoZSBzYW1lIHNjb3BlLiAKLQotVG8gcnVuIHRoaXMg
dGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYklu
c3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgbWFueSBmdW5j
dGlvbnMgc2hvdWxkIGJlIHRoZSBjaGlsZHJlbiBvZiBzdGFydFRlc3QuIFVzZSB0aGUgc29ydGlu
ZyBjYXBhYmlsaXRlcyB0byBtYWtlIHN1cmUgdGhlIHNpbWlsYXJseSBuYW1lZCBmdW5jdGlvbnMg
YXJlIHNvcnRlZCBjb3JyZWN0bHkuCi0KLVByb2ZpbGUgdGl0bGU6IE1hbnkgQ2FsbHMgSW4gVGhl
IFNhbWUgU2NvcGUKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qg
bWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sIChsaW5lIDEwOjE5KQotICAgICAgaW5z
ZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAg
ICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGNyZWF0
ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBhcHBlbmRDaGlsZCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgIGluc2VydEdpdmVuVGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSA5OjI1KQotICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
IGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBnZXRFbGVtZW50QnlJ
ZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgYXJyYXlPcGVyYXRvckZ1bmN0aW9uIHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI1OjMxKQotICAgICAgaW50ZXJtZWRpYXJ5
RnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMzI6MzApCi0gICAg
ICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSAyOTozNCkKLSAgICAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmQgbWFueS1j
YWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sIChsaW5lIDI2OjEzKQotICAgICAgZW5kVCBtYW55
LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwgKGxpbmUgMzE6MTQpCi0gICAgICBlbmRUZXN0
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3Bl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUt
c2NvcGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjQ4MTYwYy4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUt
c2NvcGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgp
Ci17Ci0gICAgY29uc29sZS5wcm9maWxlKCJNYW55IENhbGxzIEluIFRoZSBTYW1lIFNjb3BlIik7
Ci0KLSAgICBpbnNlcnROZXdUZXh0KCk7Ci0gICAgaW5zZXJ0R2l2ZW5UZXh0KCJUaGlzIHdhcyBh
IHRyaXVtcGguIik7Ci0gICAgYXJyYXlPcGVyYXRvckZ1bmN0aW9uKDcpOwotICAgIGludGVybWVk
aWFyeUZ1bmN0aW9uKCk7Ci0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBlbmQoKQotICAg
IGVuZFQoKTsKLSAgICBlbmRUKCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGVu
ZCgpCi17Ci0gICAgdmFyIHggPSAwOwotfQotCi1mdW5jdGlvbiBlbmRUKCkKLXsKLSAgICB2YXIg
eSA9IDE7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVz
dCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgaGFzIG1hbnkgZnVuY3Rpb24gY2FsbHMgaW4g
dGhlIHNhbWUgc2NvcGUuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBs
b2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29r
IGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIG1hbnkgZnVuY3Rpb25zIHNob3VsZCBi
ZSB0aGUgY2hpbGRyZW4gb2Ygc3RhcnRUZXN0LgotVXNlIHRoZSBzb3J0aW5nIGNhcGFiaWxpdGVz
IHRvIG1ha2Ugc3VyZSB0aGUgc2ltaWxhcmx5IG5hbWVkIGZ1bmN0aW9ucyBhcmUgc29ydGVkCi1j
b3JyZWN0bHkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50
LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMt
ZnVuY3Rpb24tY2FsbHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwNTFlYzgxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlw
bGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3Jp
cHQgY2FsbHMgdGhlIHNhbWUgYW5vbnltb3VzIGZ1bmN0aW9uIGZyb20gbXVsdGlwbGUgYW5kIGRp
ZmZlcmVudGx5IHNjb3BlZCBsb2NhdGlvbnMuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5
LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBs
b29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxs
IHRvIGZha2VPYmplY3Qgd2l0aCBmYWtlSW50ZXJpb3JGdW5jdGlvbiBhcyBpdHMgY2hpbGQsIGJ1
dCBjYWxsKCkgc2hvdWxkIG5vdCBiZSBzaG93bi4KLQotUHJvZmlsZSB0aXRsZTogTXVsdGlwbGUg
YW5kIGRpZmZlcmVudCBzY29wZWQgY2FsbHMgdG8gdGhlIHNhbWUgYW5vbnltb3VzIGZ1bmN0aW9u
Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG11bHRpcGxlLWFu
ZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sIChsaW5lIDEw
OjE5KQotICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMgKGxpbmUgMjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgaW50
ZXJtZWRpYXJ5RnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMzI6
MzApCi0gICAgICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICAgICBjcmVhdGVFbGVt
ZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBs
ZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5v
bnltb3VzLWZ1bmN0aW9uLWNhbGxzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGRkMWE2M2IuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBs
ZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29s
ZS5wcm9maWxlKCJNdWx0aXBsZSBhbmQgZGlmZmVyZW50IHNjb3BlZCBjYWxscyB0byB0aGUgc2Ft
ZSBhbm9ueW1vdXMgZnVuY3Rpb24iKTsKLQotICAgIGFub255bW91c0Z1bmN0aW9uKCk7Ci0gICAg
YW5vbnltb3VzRnVuY3Rpb24oKTsKLQotICAgIGludGVybWVkaWFyeUZ1bmN0aW9uKCk7Ci0KLSAg
ICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFy
dFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIHRoZSBzYW1lIGFub255bW91
cyBmdW5jdGlvbiBmcm9tIG11bHRpcGxlIGFuZCBkaWZmZXJlbnRseSBzY29wZWQgbG9jYXRpb25z
LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUg
YnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2Zp
bGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZha2VPYmplY3Qg
d2l0aAotZmFrZUludGVyaW9yRnVuY3Rpb24gYXMgaXRzIGNoaWxkLCBidXQgY2FsbCgpIHNob3Vs
ZCBub3QgYmUgc2hvd24uCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlm
ZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjlmZGNlZC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJl
bnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDIyICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgdGhlIHNhbWUgZnVuY3Rp
b24gZnJvbSBtdWx0aXBsZSBhbmQgZGlmZmVyZW50bHkgc2NvcGVkIGxvY2F0aW9ucy4gCi0KLVRv
IHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2Fk
IHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxl
IHRoZXJlIHNob3VsZCBiZSB0d28gY2FsbHMgdG8gaW5zZXJ0TmV3VGV4dCB1bmRlciBzdGFydFRl
c3QoKSBhbmQgb25lIHVuZGVyIGFuIChhbm9ueW1vdXMgZnVuY3Rpb24pIHVuZGVyIGludGVybWVk
aWFyeUZ1bmN0aW9uKCkuCi0KLVByb2ZpbGUgdGl0bGU6IE11bHRpcGxlIGFuZCBkaWZmZXJlbnQg
c2NvcGVkIGNhbGxzIHRvIHRoZSBzYW1lIGZ1bmN0aW9uCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgc3RhcnRUZXN0IG11bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0
aW9uLWNhbGxzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgY3JlYXRlRWxlbWVu
dCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgaW50ZXJt
ZWRpYXJ5RnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMzI6MzAp
Ci0gICAgICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAyOTozNCkKLSAgICAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICAgICBjcmVhdGVFbGVtZW50
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6
MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1h
bmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5Mjk1OTdjLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQt
ZnVuY3Rpb24tY2FsbHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRl
cm5hbHMuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0
YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJNdWx0aXBsZSBhbmQgZGlmZmVyZW50
IHNjb3BlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5jdGlvbiIpOwotCi0gICAgaW5zZXJ0TmV3VGV4
dCgpOwotICAgIGluc2VydE5ld1RleHQoKTsKLQotICAgIGludGVybWVkaWFyeUZ1bmN0aW9uKCk7
Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2Fk
PSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIHRoZSBzYW1lIGZ1
bmN0aW9uIGZyb20gbXVsdGlwbGUgYW5kIGRpZmZlcmVudGx5IHNjb3BlZCBsb2NhdGlvbnMuCi08
YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93
c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4g
IEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSB0d28gY2FsbHMgdG8gaW5zZXJ0TmV3VGV4
dCB1bmRlcgotc3RhcnRUZXN0KCkgYW5kIG9uZSB1bmRlciBhbiAoYW5vbnltb3VzIGZ1bmN0aW9u
KSB1bmRlciBpbnRlcm1lZGlhcnlGdW5jdGlvbigpLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255
bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDAxNDA0Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxs
ZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyMiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIHRoZSBkaWZmZXJlbnQg
YW5vbnltb3VzIGZ1bmN0aW9ucyB0aGUgc2FtZSBzY29wZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3Qg
bWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0
b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBi
ZSBhIGNhbGwgdHdvIGVudHJpZXMgbmFtZWQgdG8gKGFub255bW91cyBmdW5jdGlvbiksIGFzIG9w
cG9zZWQgdG8gb25lIGVudHJ5IGNhbGxlZCB0d2ljZS4KLQotUHJvZmlsZSB0aXRsZTogTXVsdGlw
bGUgY2FsbHMgdG8gZGlmZmVyZW50IGFub255bW91cyBmdW5jdGlvbnMKLVRocmVhZF8xIChubyBm
aWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9u
cy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1sIChsaW5lIDEwOjE5KQotICAgICAg
YW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6
MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
IChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBn
ZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgYW5vdGhlckFub255bW91
c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDMwOjQxKQotICAg
ICAgICAgaW5zZXJ0R2l2ZW5UZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDk6MjUpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1l
bnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRo
ZS1zYW1lLWZ1bmN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxl
LWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTlhMmEzMy4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVk
LWZyb20tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykK
LSAgICBpbnRlcm5hbHMuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1
bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJNdWx0aXBsZSBjYWxs
cyB0byBkaWZmZXJlbnQgYW5vbnltb3VzIGZ1bmN0aW9ucyIpOwotCi0gICAgYW5vbnltb3VzRnVu
Y3Rpb24oKTsKLSAgICBhbm90aGVyQW5vbnltb3VzRnVuY3Rpb24oKTsKLQotICAgIGVuZFRlc3Qo
KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4K
LVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgdGhlIGRpZmZlcmVudCBhbm9ueW1vdXMgZnVu
Y3Rpb25zIHRoZSBzYW1lIHNjb3BlLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUg
YSBjYWxsIHR3byBlbnRyaWVzIG5hbWVkIHRvIChhbm9ueW1vdXMgZnVuY3Rpb24pLAotYXMgb3Bw
b3NlZCB0byBvbmUgZW50cnkgY2FsbGVkIHR3aWNlLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMmUyM2Y0Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRp
cGxlLWZyYW1lcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1U
aGlzIHRlc3QgaGFzIEpTIGV4ZWN1dGluZyBpbiBhbm90aGVyIHdpbmRvdy4gCi0KLVRvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBX
ZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJl
IHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25Jbk90aGVyRnJhbWUoKS4KLQotUHJvZmlsZSB0
aXRsZTogT3RoZXIgd2luZG93IGV4ZWN1dGluZyBKYXZhU2NyaXB0Ci1UaHJlYWRfMSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG11bHRpcGxlLWZyYW1lcy5odG1sIChsaW5lIDEw
OjE5KQotICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGZ1
bmN0aW9uSW5PdGhlckZyYW1lIG90aGVyLWZyYW1lLmh0bWwgKGxpbmUgNDozMCkKLSAgICAgICAg
IGZ1bmN0aW9uSW5QYXJlbnRGcmFtZSBtdWx0aXBsZS1mcmFtZXMuaHRtbCAobGluZSAyMTozMSkK
LSAgICAgIGluc2VydEdpdmVuVGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSA5OjI1KQotICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGFwcGVu
ZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbXVsdGlwbGUtZnJhbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRp
cGxlLWZyYW1lcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTNjM2I1Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtZnJhbWVzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldEphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAg
IGNvbnNvbGUucHJvZmlsZSgiT3RoZXIgd2luZG93IGV4ZWN1dGluZyBKYXZhU2NyaXB0Iik7Ci0K
LSAgICB2YXIgbXlGcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteVN1YkZyYW1lIik7
Ci0gICAgdmFyIHNlY3JldCA9IG15RnJhbWUuY29udGVudFdpbmRvdy5mdW5jdGlvbkluT3RoZXJG
cmFtZSgpOwotICAgIGluc2VydEdpdmVuVGV4dChzZWNyZXQpOwotCi0gICAgZW5kVGVzdCgpOwot
fQotCi1mdW5jdGlvbiBmdW5jdGlvbkluUGFyZW50RnJhbWUoKSB7Ci0gICAgcmV0dXJuICJQaSI7
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1U
aGlzIHRlc3QgaGFzIEpTIGV4ZWN1dGluZyBpbiBhbm90aGVyIHdpbmRvdy4KLTxicj4KLTxicj4K
LVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBs
b2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHBy
b2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmdW5jdGlvbkluT3RoZXJGcmFtZSgpLgot
PGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvb3RoZXItZnJh
bWUuaHRtbCIgaWQ9Im15U3ViRnJhbWUiPjwvaWZyYW1lPgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1k
aXNwbGF5LW5hbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmFt
ZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE5MGE2NGMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQg
Y2FsbHMgbmFtZWQgZnVuY3Rpb25zIGFuZCBjaGFuZ2VzIHRoZWlyIGRpc3BsYXkgbmFtZXMuIAot
Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4g
bG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBZb3Ugc2hvdWxk
IHNlZSBmdW5jdGlvbnMgbmFtZWQgIlt4XSBpdGVyYXRpb25bc10gZnVuY3Rpb24iLCBhbmQgbm90
ICJmdW5jdGlvblt4XSIKLQotUHJvZmlsZSB0aXRsZTogTmFtZWQgZnVuY3Rpb25zIHdpdGggZGlz
cGxheSBuYW1lcwotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBu
YW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgNTM6MTkpCi0gICAg
ICAwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1l
cy5odG1sIChsaW5lIDEwOjE5KQotICAgICAgMSBpdGVyYXRpb24gZnVuY3Rpb24gbmFtZWQtZnVu
Y3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDE3OjE5KQotICAgICAgMiBpdGVy
YXRpb25zIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAo
bGluZSAyNDoxOSkKLSAgICAgIDIwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25z
LXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDMxOjIwKQotICAgICAgMTAwMCBpdGVyYXRp
b25zIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGlu
ZSAzODoyMikKLSAgICAgIGJvZ3VzRGlzcGxheU5hbWVGdW5jdGlvbiBuYW1lZC1mdW5jdGlvbnMt
d2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgNDY6MzQpCi0gICAgICBlbmRUZXN0IHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRp
c3BsYXktbmFtZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFmYWNhYi4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13
aXRoLWRpc3BsYXktbmFtZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBp
bnRlcm5hbHMuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9u
IGZ1bmN0aW9uMCgpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAwOyArK2kpIDsKLX0KLQot
ZnVuY3Rpb24wLmRpc3BsYXlOYW1lID0gIjAgaXRlcmF0aW9ucyBmdW5jdGlvbiI7Ci0KLWZ1bmN0
aW9uIGZ1bmN0aW9uMSgpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxOyArK2kpIDsKLX0K
LQotZnVuY3Rpb24xLmRpc3BsYXlOYW1lID0gIjEgaXRlcmF0aW9uIGZ1bmN0aW9uIjsKLQotZnVu
Y3Rpb24gZnVuY3Rpb24yKCkKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDI7ICsraSkgOwot
fQotCi1mdW5jdGlvbjIuZGlzcGxheU5hbWUgPSAiMiBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKLQot
ZnVuY3Rpb24gZnVuY3Rpb24yMCgpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMDsgKytp
KSA7Ci19Ci0KLWZ1bmN0aW9uMjAuZGlzcGxheU5hbWUgPSAiMjAgaXRlcmF0aW9ucyBmdW5jdGlv
biI7Ci0KLWZ1bmN0aW9uIGZ1bmN0aW9uMTAwMCgpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwOyArK2kpIDsKLX0KLQotZnVuY3Rpb24xMDAwLmRpc3BsYXlOYW1lID0gIjEwMDAgaXRl
cmF0aW9ucyBmdW5jdGlvbiI7Ci0KLQotZnVuY3Rpb24gYm9ndXNEaXNwbGF5TmFtZUZ1bmN0aW9u
KCkKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDA7ICsraSkgOwotfQotCi1ib2d1c0Rpc3Bs
YXlOYW1lRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBib2d1c0Rpc3BsYXlOYW1lRnVuY3Rpb247Ci0K
LWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJOYW1lZCBmdW5j
dGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzIik7Ci0KLSAgICBmdW5jdGlvbjAoKTsKLSAgICBmdW5j
dGlvbjEoKTsKLSAgICBmdW5jdGlvbjIoKTsKLSAgICBmdW5jdGlvbjIwKCk7Ci0gICAgZnVuY3Rp
b24xMDAwKCk7Ci0gICAgYm9ndXNEaXNwbGF5TmFtZUZ1bmN0aW9uKCk7Ci0KLSAgICBlbmRUZXN0
KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+
Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIG5hbWVkIGZ1bmN0aW9ucyBhbmQgY2hhbmdl
cyB0aGVpciBkaXNwbGF5IG5hbWVzLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBZb3Ugc2hvdWxkIHNlZSBmdW5jdGlvbnMgbmFtZWQg
Ilt4XSBpdGVyYXRpb25bc10gZnVuY3Rpb24iLCBhbmQgbm90ICJmdW5jdGlvblt4XSIKLTxkaXYg
aWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyMjlhNDIuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24t
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhpcyBwYWdlJ3Mg
SmF2YVNjcmlwdCBjYWxscyBhbiBhbm9ueW1vdXMgd2hpY2ggY2FsbHMgYSBuZXN0ZWQgYW5vbnlt
b3VzIGZ1bmN0aW9uLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0
aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJv
ZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGFuIChhbm9ueW1vdXMgZnVuY3Rp
b24pIHdpdGggYSBjaGlsZCAoYW5vbnltb3VzIGZ1bmN0aW9uKS4KLQotUHJvZmlsZSB0aXRsZTog
TmVzdGVkIGFub255bW91cyBmdW5jdGlvbnMgY2FsbGVkCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgc3RhcnRUZXN0IG5lc3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi5odG1sIChsaW5l
IDEwOjE5KQotICAgICAgQW5vbnltb3VzRnVuY3Rpb25XaWNoQ2FsbHNBbkFub255bW91c0Z1bmN0
aW9uIG5lc3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi5odG1sIChsaW5lIDE0OjY1KQotICAgICAgICAg
YW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6
MzQpCi0gICAgICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5j
dG9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVu
Y3Rvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYzQ0YmU2Yi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rv
bi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsK
LSAgICBjb25zb2xlLnByb2ZpbGUoIk5lc3RlZCBhbm9ueW1vdXMgZnVuY3Rpb25zIGNhbGxlZCIp
OwotCi0gICAgdmFyIEFub255bW91c0Z1bmN0aW9uV2ljaENhbGxzQW5Bbm9ueW1vdXNGdW5jdGlv
biA9IGZ1bmN0aW9uKCkgewotICAgICAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIH0KLQot
ICAgIEFub255bW91c0Z1bmN0aW9uV2ljaENhbGxzQW5Bbm9ueW1vdXNGdW5jdGlvbigpOwotCi0g
ICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3Rh
cnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBhbiBhbm9ueW1vdXMgd2hp
Y2ggY2FsbHMgYSBuZXN0ZWQgYW5vbnltb3VzIGZ1bmN0aW9uLgotPGJyPgotPGJyPgotVG8gcnVu
IHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhl
IFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0
aGVyZSBzaG91bGQgYmUgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2l0aCBhIGNoaWxkCi0oYW5v
bnltb3VzIGZ1bmN0aW9uKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1zdGFydC1h
bmQtc3RvcC1wcm9maWxlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L25lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDJjNDgyMTguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTI4ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2Fs
bHMgY29uc29sZS5wcm9maWxlKCkgdGhyZWUgdGltZXMgdGhlbiBjb25zb2xlLnByb2ZpbGVFbmQo
KSB0aHJlZSB0aW1lcy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4g
dGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHBy
b2ZpbGUuIEluIHRoZSBwcm9maWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJvZmlsZXMuCi0K
LVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgdGhpcmQgdGltZS4KLVRocmVh
ZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVzdGVkLXN0YXJ0LWFuZC1z
dG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQotUHJvZmlsZSB0aXRsZTogU3RhcnQg
dGhlIHByb2ZpbGVyIHRoZSB0aGlyZCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgIHN0YXJ0VGVzdCBuZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbCAobGlu
ZSAxMDoxOSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMToxNykKLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBzZWNvbmQg
dGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVzdGVk
LXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRUZXN0
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0gICAgICAgICBwcm9m
aWxlRW5kIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBwcmludFByb2ZpbGVzRGF0YVdp
dGhvdXRUaW1lIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDYyOjM4KQotICAg
ICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
Y3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENo
aWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0
aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6MzcpCi0gICAg
ICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBj
cmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgYXBwZW5k
Q2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRp
bWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAg
ICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBj
cmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgYXBw
ZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNoaWxkcmVu
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBwcmludFByb2ZpbGVOb2Rl
V2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6MzcpCi0g
ICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBn
ZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgbm90aWZ5RG9uZSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxl
ciB0aGUgdGhpcmQgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFy
dFRlc3QgbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0g
ICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0K
LVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25kIHRpbWUuCi1UaHJl
YWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG5lc3RlZC1zdGFydC1hbmQt
c3RvcC1wcm9maWxlci5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotICAgICAgICAgcHJvZmlsZUVuZCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSBw
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA2MjozOCkKLSAgICAgICAgICAgIGNy
ZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHRO
b2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHBy
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAg
cmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5v
ZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAgICAgcmVw
bGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5v
ZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1l
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAg
ICAgICAgICAgcmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAg
ICBjaGlsZHJlbiAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5
SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIG5vdGlmeURvbmUgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBmaXJzdCB0
aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBuZXN0ZWQt
c3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGVuZFRlc3Qg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLSAgICAgICAgIHByb2Zp
bGVFbmQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIHByaW50UHJvZmlsZXNEYXRhV2l0
aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNjI6MzgpCi0gICAg
ICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBj
cmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hp
bGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRo
b3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAg
ICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNy
ZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRD
aGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGlt
ZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAg
ICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNy
ZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBhcHBl
bmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgY2hpbGRyZW4g
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVX
aXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAg
ICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
ICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2Rl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGls
ZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4g
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50UHJvZmls
ZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3Nzoz
NykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5v
ZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRy
ZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBy
aW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAo
bGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlk
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBub3RpZnlEb25lIChubyBmaWxlKSAobGlu
ZSAwOjApCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQt
c3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAzZWE0YWUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDMxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93Lmlu
dGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJTdGFy
dCB0aGUgcHJvZmlsZXIgdGhlIGZpcnN0IHRpbWUuIik7Ci0gICAgY29uc29sZS5wcm9maWxlKCJT
dGFydCB0aGUgcHJvZmlsZXIgdGhlIHNlY29uZCB0aW1lLiIpOwotICAgIGNvbnNvbGUucHJvZmls
ZSgiU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSB0aGlyZCB0aW1lLiIpOwotICAgIGVuZFRlc3QoKTsK
LSAgICBlbmRUZXN0KCk7Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0K
LTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxs
cyBjb25zb2xlLnByb2ZpbGUoKSB0aHJlZSB0aW1lcyB0aGVuIGNvbnNvbGUucHJvZmlsZUVuZCgp
Ci10aHJlZSB0aW1lcy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxv
YWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sg
YXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGVyIHRoZXJlIHNob3VsZCBiZSB0aHJlZSBw
cm9maWxlcy4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNvbnRl
eHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTVkY2NiLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNvbnRl
eHQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UaGlzIHBhZ2Ug
aGFzIGEgbm8gcHJvZmlsaW5nIGluZm9ybWF0aW9uLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gWW91IHNob3VsZCBub3Qgc2VlIGFueSBwcm9maWxlIGRh
dGUgaW4gdGhlIFdlYkluc3BlY3Rvci4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGE0MjVmZTMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9u
by1leGVjdXRpb24tY29udGV4dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
IGludGVybmFscy5zZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLTwvc2NyaXB0
PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUo
KSI+Ci1UaGlzIHBhZ2UgaGFzIGEgbm8gcHJvZmlsaW5nIGluZm9ybWF0aW9uLgotPGJyPgotPGJy
PgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBZb3Ugc2hv
dWxkIG5vdCBzZWUgYW55IHByb2ZpbGUgZGF0ZSBpbiB0aGUgV2ViSW5zcGVjdG9yLgotPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhkZDY3MC4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2UgaGFzIGEgc2luZ2xl
IHNjcmlwdCB0YWcgd2l0aCBzb21lIHNpbXBsZSBKYXZhU2NyaXB0LiAKLQotVG8gcnVuIHRoaXMg
dGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYklu
c3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4KLQotUHJvZmlsZSB0aXRsZTogT25lIEV4
ZWN1dGlvbiBDb250ZXh0Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRU
ZXN0IG9uZS1leGVjdXRpb24tY29udGV4dC5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVz
dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYTI4MWFjLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwyNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJv
ZmlsZSgiT25lIEV4ZWN1dGlvbiBDb250ZXh0Iik7Ci0gICAgZW5kVGVzdCgpOwotfQotCi08L3Nj
cmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2Ug
aGFzIGEgc2luZ2xlIHNjcmlwdCB0YWcgd2l0aCBzb21lIHNpbXBsZSBKYXZhU2NyaXB0LgotPGJy
PgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3Nl
ciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuCi08
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWlu
Y2x1ZGVkLWZpbGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
NDJkMTcxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1j
YWxscy1pbi1pbmNsdWRlZC1maWxlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEw
ICswLDAgQEAKLVRoaXMgcGFnZSBjYWxscyB0aGUgcHJvZmlsZXIgZnJvbSB0aGUgaW5jbHVkZWQg
ZmlsZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dz
ZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIElm
IHRoZXJlIGlzIGEgcHJvZmlsZSB0aGF0IGlzIHN1ZmZpY2llbnQgZm9yIHRoaXMgdGVzdC4KLQot
UHJvZmlsZSB0aXRsZTogUHJvZmlsZSBjYWxsIGluIGluY2x1ZGVkIGZpbGUKLVRocmVhZF8xIChu
byBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFByb2ZpbGUgcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMgKGxpbmUgNDI6MjIpCi0gICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBmNjI3MDguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1p
ZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgc3RhcnRQcm9m
aWxlKCJQcm9maWxlIGNhbGwgaW4gaW5jbHVkZWQgZmlsZSIpOwotICAgIGVuZFRlc3QoKTsKLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMg
cGFnZSBjYWxscyB0aGUgcHJvZmlsZXIgZnJvbSB0aGUgaW5jbHVkZWQgZmlsZS4KLTxicj4KLTxi
cj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSWYgdGhl
cmUgaXMgYSBwcm9maWxlIHRoYXQgaXMgc3VmZmljaWVudCBmb3IgdGhpcyB0ZXN0LgotPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRp
dGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRo
LW5vLXRpdGxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMThk
YWNkYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0
aC1uby10aXRsZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1U
aGlzIHBhZ2UgY3JlYXRlcyBhIHByb2ZpbGUgd2l0aG91dCBhIHRpdGxlLiAKLQotVG8gcnVuIHRo
aXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdl
Ykluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSWYgdGhlcmUgaXMgYSBwcm9maWxl
IHRoYXQgaXMgc3VmZmljaWVudCBmb3IgdGhpcyB0ZXN0LgotCi1Qcm9maWxlIHRpdGxlOiAKLVRo
cmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgcHJvZmlsZS13aXRoLW5v
LXRpdGxlLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDdiNWEzYTguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykK
LSAgICBpbnRlcm5hbHMuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1
bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCk7Ci0gICAgZW5kVGVz
dCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCki
PgotVGhpcyBwYWdlIGNyZWF0ZXMgYSBwcm9maWxlIHdpdGhvdXQgYSB0aXRsZS4KLTxicj4KLTxi
cj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSWYgdGhl
cmUgaXMgYSBwcm9maWxlIHRoYXQgaXMgc3VmZmljaWVudCBmb3IgdGhpcyB0ZXN0LgotPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1u
ZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5l
c3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1NmEyYjMuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1s
b2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0
IHN0YXJ0cyBwcm9maWxpbmcgZnJvbSB3aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24gYnV0IHN0b3Bz
IHRoZSBwcm9maWxlciBmcm9tIGEgZGlmZmVyZW50IGxldmVsIG9mIG5lc3RpbmcuIAotCi1UbyBy
dW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0
aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0
aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJv
ZmlsZXIoKS4KLQotUHJvZmlsZSB0aXRsZTogUHJvZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRp
b24gQnV0IFN0b3AgUHJvZmlsaW5nIE91dHNpZGUgVGhlIE5lc3RpbmcKLVRocmVhZF8xIChubyBm
aWxlKSAobGluZSAwOjApCi0gICBmdW5jdGlvbldpY2hTdGFydHNUaGVQcm9maWxlciBwcm9maWxp
bmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUt
bmVzdGluZy5odG1sIChsaW5lIDE2OjM5KQotICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmls
aW5nLW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
cHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNp
ZGUtdGhlLW5lc3RpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2ZiYjZl
Zi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9t
LWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5n
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewot
ICAgIGZ1bmN0aW9uV2ljaFN0YXJ0c1RoZVByb2ZpbGVyKCk7Ci0gICAgZW5kVGVzdCgpOwotfQot
Ci1mdW5jdGlvbiBmdW5jdGlvbldpY2hTdGFydHNUaGVQcm9maWxlcigpCi17Ci0gICAgY29uc29s
ZS5wcm9maWxlKCJQcm9maWxpbmcgRnJvbSBBIE5lc3RlZCBMb2NhdGlvbiBCdXQgU3RvcCBQcm9m
aWxpbmcgT3V0c2lkZSBUaGUgTmVzdGluZyIpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDAwMDsgaSsrKQotICAgICAgICB2YXIgYiA9IGkgKyAyOwotfQotCi08L3NjcmlwdD4KLTwv
aGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2Ny
aXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJvbSB3aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24gYnV0IHN0
b3BzIHRoZSBwcm9maWxlcgotZnJvbSBhIGRpZmZlcmVudCBsZXZlbCBvZiBuZXN0aW5nLgotPGJy
PgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3Nl
ciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJ
biB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZ1bmN0aW9uV2ljaFN0YXJ0
c0FuZFN0b3BzVGhlUHJvZmlsZXIoKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGlu
Zy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODQyODNiLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2
YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVzdGVkIGxvY2F0aW9uLiAK
LQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHBy
b2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9w
c1RoZVByb2ZpbGVyKCkuCi0KLVByb2ZpbGUgdGl0bGU6IFByb2ZpbGluZyBGcm9tIEEgTmVzdGVk
IExvY2F0aW9uCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgZnVuY3Rpb25XaWNo
U3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlciBwcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlv
bi5odG1sIChsaW5lIDE1OjQ3KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24uaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk0OGI4OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGZ1
bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKTsKLX0KLQotZnVuY3Rpb24gZnVu
Y3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpCi17Ci0gICAgY29uc29sZS5wcm9m
aWxlKCJQcm9maWxpbmcgRnJvbSBBIE5lc3RlZCBMb2NhdGlvbiIpOwotCi0gICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDAwMDsgaSsrKQotICAgICAgICB2YXIgYiA9IGkgKyAyOwotCi0gICAg
ZW5kVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFy
dFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJvbSB3
aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24uCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1h
bnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9y
IGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBi
ZSBhIGNhbGwgdG8gZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpLgotPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL290aGVyLWZyYW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci1mcmFtZS5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlODM2ZmJmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvcmVzb3VyY2VzL290aGVyLWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwxMyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWZ1bmN0aW9uIGZ1bmN0aW9u
SW5PdGhlckZyYW1lKCkgewotICAgICAgICByZXR1cm4gcGFyZW50LmZ1bmN0aW9uSW5QYXJlbnRG
cmFtZSgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotVGhpcyBmaWxlIGNvbnRh
aW5zIHNvbWUgSmF2YVNjcmlwdC4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNl
cy9vdGhlci13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2Vz
L290aGVyLXdpbmRvdy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDg0MWE4
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL290aGVy
LXdpbmRvdy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSJwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotdmFyIGludGVyZXN0aW5nS25vd2xlZGdlOwotZnVuY3Rpb24gb3RoZXJUZXN0
U3RhcnQoKQotewotICAgIGludGVyZXN0aW5nS25vd2xlZGdlID0gaXNFcXVhbFRvRml2ZSgzKTsK
LSAgICBvcGVuZXIud2luZG93RmluaXNoZWRMb2FkaW5nKCk7Ci19Ci0KLWZ1bmN0aW9uIGZ1bmN0
aW9uSW5PdGhlcldpbmRvdygpIHsKLSAgICAgICAgcmV0dXJuIGludGVyZXN0aW5nS25vd2xlZGdl
OwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ib3RoZXJUZXN0U3RhcnQo
KSI+Ci1UaGlzIGZpbGUgZXhlY3V0ZXMgc29tZSBKYXZhU2NyaXB0LgotPC9ib2R5PgotPC9odG1s
PgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVz
b3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3NjM1NDJmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvcmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsOTUgKzAsMCBAQAotZnVuY3Rpb24gZW5kVGVzdCgpIHsKLSAgICBjb25zb2xlLnByb2Zp
bGVFbmQoKTsKLSAgICBwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCk7Ci0KLSAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfQot
Ci1mdW5jdGlvbiBpbnNlcnRHaXZlblRleHQodGV4dCkgewotICAgIHZhciBwYXJhZ3JhcGggPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIik7Ci0gICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKTsKLSAgICBwYXJhZ3JhcGguc3R5bGUuZGlzcGxh
eSA9ICJub25lIjsgLy8gSGlkZGVuIHNpbmNlIHRoaXMgaXNuJ3QgaW1wb3J0YW50IGluIHRoZSB0
ZXN0IHJlc3VsdHMuCi0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBw
ZW5kQ2hpbGQocGFyYWdyYXBoKTsKLX0KLQotZnVuY3Rpb24gaW5zZXJ0TmV3VGV4dCgpIHsKLSAg
ICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwotICAgIHBhcmFn
cmFwaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGhpcyBpcyBpbnNlcnRl
ZCBUZXh0IikpOwotICAgIHBhcmFncmFwaC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyAvLyBIaWRk
ZW4gc2luY2UgdGhpcyBpc24ndCBpbXBvcnRhbnQgaW4gdGhlIHRlc3QgcmVzdWx0cy4KLQotICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgp
OwotfQotCi1mdW5jdGlvbiBhcnJheU9wZXJhdG9yRnVuY3Rpb24oYXJyYXlFbGVtZW50KSB7Ci0g
ICAgcmV0dXJuIGFycmF5RWxlbWVudCArIDU7Ci19Ci0KLXZhciBhbm9ueW1vdXNGdW5jdGlvbiA9
IGZ1bmN0aW9uICgpIHsgaW5zZXJ0TmV3VGV4dCgpOyB9OwotdmFyIGFub3RoZXJBbm9ueW1vdXNG
dW5jdGlvbiA9IGZ1bmN0aW9uICgpIHsgaW5zZXJ0R2l2ZW5UZXh0KCJBbm90aGVyIGFub255bW91
cyBmdW5jdGlvbiB3YXMgY2FsbGVkLiIpIH07Ci0KLWZ1bmN0aW9uIGludGVybWVkaWFyeUZ1bmN0
aW9uKCkKLXsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotfQotCi1mdW5jdGlvbiBpc0VxdWFs
VG9GaXZlKGlucHV0KQotewotICAgIHJldHVybiBpbnB1dCA9PT0gNTsKLX0KLQotZnVuY3Rpb24g
c3RhcnRQcm9maWxlKHRpdGxlKQotewotICAgIGNvbnNvbGUucHJvZmlsZSh0aXRsZSk7Ci19Ci0K
LWZ1bmN0aW9uIHByaW50SGVhdnlQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpCi17Ci0gICAgdmFy
IHByZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwcmUiKTsKLSAgICBwcmVFbGVt
ZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKLQotICAgIHZh
ciBwcm9maWxlcyA9IGludGVybmFscy5jb25zb2xlUHJvZmlsZXM7Ci0gICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBwcm9maWxlcy5sZW5ndGg7ICsraSkgewotICAgICAgICBwcmVFbGVtZW50LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJQcm9maWxlIHRpdGxlOiAiICsgcHJvZmls
ZXNbaV0udGl0bGUgKyAiXG4iKSk7Ci0gICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGlt
ZShwcmVFbGVtZW50LCBwcm9maWxlc1tpXS5oZWF2eVByb2ZpbGUucm9vdE5vZGUsIDApOwotICAg
ICAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiIp
KTsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBwZW5k
Q2hpbGQocHJlRWxlbWVudCk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50UHJvZmlsZXNEYXRhV2l0aG91
dFRpbWUoKQotewotICAgIHZhciBwcmVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
cHJlIik7Ci0gICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgiXG4iKSk7Ci0KLSAgICB2YXIgcHJvZmlsZXMgPSBpbnRlcm5hbHMuY29uc29sZVByb2ZpbGVz
OwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZmlsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUHJvZmls
ZSB0aXRsZTogIiArIHByb2ZpbGVzW2ldLnRpdGxlICsgIlxuIikpOwotICAgICAgICBwcmludFBy
b2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgcHJvZmlsZXNbaV0ucm9vdE5vZGUsIDAp
OwotICAgICAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJcbiIpKTsKLSAgICB9Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiku
YXBwZW5kQ2hpbGQocHJlRWxlbWVudCk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50UHJvZmlsZU5vZGVX
aXRob3V0VGltZShwcmVFbGVtZW50LCBub2RlLCBpbmRlbnRMZXZlbCkKLXsKLSAgICB2YXIgc3Bh
Y2UgPSAiIjsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluZGVudExldmVsOyArK2kpCi0gICAg
ICAgIHNwYWNlICs9ICIgICAiCi0KLSAgICArK2luZGVudExldmVsOwotCi0gICAgdmFyIHN0cmlw
cGVkVVJMID0gbm9kZS51cmwucmVwbGFjZSgvLipcLy8sICIiKTsKLSAgICBpZiAoIXN0cmlwcGVk
VVJMKQotICAgICAgICBzdHJpcHBlZFVSTCA9ICIobm8gZmlsZSkiOwotCi0gICAgdmFyIGxpbmUg
PSBzcGFjZSArIG5vZGUuZnVuY3Rpb25OYW1lICsgIiAiICsgc3RyaXBwZWRVUkwgKyAiIChsaW5l
ICIgKyBub2RlLmxpbmVOdW1iZXIgKyAiOiIgKyBub2RlLmNvbHVtbk51bWJlciArICIpXG4iOwot
ICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobGluZSkp
OwotCi0gICAgdmFyIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbigpOwotICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyArK2kpCi0gICAgICAgIHByaW50UHJvZmlsZU5vZGVX
aXRob3V0VGltZShwcmVFbGVtZW50LCBjaGlsZHJlbltpXSwgaW5kZW50TGV2ZWwpOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzRjZWUzZC4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFT
Y3JpcHQgaGFzIGFuIG9ubG9hZCBldmVudC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQgdGhlIHByb2ZpbGUuIFRoZXJlIHNob3VsZCBiZSBvbmx5IG9uZSBvbmxvYWQgbm9kZS4K
LQotUHJvZmlsZSB0aXRsZTogQSBzaW1wbGUgcHJvZmlsZSB0ZXN0IHdoZXJlIGFuIGV2ZW50IGhh
cHBlbnMuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHNpbXBs
ZS1ldmVudC1jYWxsLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1ZTRlMDg0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
c2ltcGxlLWV2ZW50LWNhbGwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBp
bnRlcm5hbHMuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9u
IHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJBIHNpbXBsZSBwcm9maWxlIHRl
c3Qgd2hlcmUgYW4gZXZlbnQgaGFwcGVucy4iKTsKLSAgICAvLyBGSVhNRTogdGhpcyBpcyBub3Qg
dGVzdGluZyB3aGF0IGl0IHNheXMgaXQgaXMuCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2
YVNjcmlwdCBoYXMgYW4gb25sb2FkIGV2ZW50LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVz
dCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3Bl
Y3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBUaGVyZSBzaG91bGQgYmUgb25seSBvbmUg
b25sb2FkIG5vZGUuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hh
bmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxl
dmVsLWNoYW5nZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhi
YzM4YTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8t
bGV2ZWwtY2hhbmdlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAK
LVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgc3RhcnRzIGFuZCBzdG9wcyBwcm9maWxpbmcgZnJvbSB0
aGUgc2FtZSBzY29wZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4g
dGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHBy
b2ZpbGUuIFRoZXJlIHNob3VsZCBiZSBubyBmdW5jdGlvbiBjYWxscyBiZXR3ZWVuIGNvbnNvbGUu
cHJvZmlsZSgpIGFuZCBjb25zb2xlLnByb2ZpbGVFbmQoKS4KLQotUHJvZmlsZSB0aXRsZTogQSBz
aW1wbGUgcHJvZmlsZSB0ZXN0IHdoZXJlIG5vIHNjb3BlIGNoYWduZXMKLVRocmVhZF8xIChubyBm
aWxlKSAobGluZSAwOjApCi0gICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVy
IHNpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbCAobGluZSAxNTo0NykKLSAgICAgIGdldEVsZW1l
bnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYWUxYjgzNy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVy
bmFscykKLSAgICBpbnRlcm5hbHMuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7
Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3Rv
cHNUaGVQcm9maWxlcigpOwotfQotCi1mdW5jdGlvbiBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9w
c1RoZVByb2ZpbGVyKCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkEgc2ltcGxlIHByb2ZpbGUg
dGVzdCB3aGVyZSBubyBzY29wZSBjaGFnbmVzIik7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwMDAwOyBpKyspCi0gICAgICAgIHZhciBiID0gaSArIDI7Ci0KLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7Ci0KLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKLSAg
ICBwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0
YXJ0cyBhbmQgc3RvcHMgcHJvZmlsaW5nIGZyb20gdGhlIHNhbWUgc2NvcGUuCi08YnI+Ci08YnI+
Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4g
bG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIFRoZXJlIHNo
b3VsZCBiZSBubyBmdW5jdGlvbiBjYWxscyBiZXR3ZWVuIGNvbnNvbGUucHJvZmlsZSgpIGFuZAot
Y29uc29sZS5wcm9maWxlRW5kKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQt
c3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjgxZTRiZi4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11
bHRpcGxlLXRpbWVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxlKCkgYW5kIGNvbnNv
bGUucHJvZmlsZUVuZCgpIHRocmVlIHRpbWVzLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGVyIHRoZXJlIHNob3VsZCBiZSB0aHJl
ZSBwcm9maWxlcy4KLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBmaXJz
dCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBzdGFy
dC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1sIChsaW5lIDEwOjE5KQotICAg
ICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
Mjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KLVByb2ZpbGUgdGl0bGU6
IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgZmlyc3QgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUt
dGltZXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4
dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAg
IGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRl
eHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMToxNykKLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBzZWNvbmQg
dGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qgc3RhcnQt
YW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAg
IGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5
OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
Z2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCi1Qcm9maWxlIHRpdGxlOiBT
dGFydCB0aGUgcHJvZmlsZXIgdGhlIGZpcnN0IHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRp
bWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBj
cmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0
Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDE6MTcpCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25kIHRp
bWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0LWFu
ZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBh
bm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOToz
NCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdl
dEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0
IHRoZSBwcm9maWxlciB0aGUgdGhpcmQgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAw
OjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMu
aHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0
ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2Rl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTox
NykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1z
dG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhNGY2OGEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotIDxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAg
Y29uc29sZS5wcm9maWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgdGhlIGZpcnN0IHRpbWUuIik7Ci0g
ICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBlbmRUZXN0KCk7Ci0gICAgY29uc29sZS5wcm9m
aWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgdGhlIHNlY29uZCB0aW1lLiIpOwotICAgIGFub255bW91
c0Z1bmN0aW9uKCk7Ci0gICAgZW5kVGVzdCgpOwotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQg
dGhlIHByb2ZpbGVyIHRoZSB0aGlyZCB0aW1lLiIpOwotICAgIGFub255bW91c0Z1bmN0aW9uKCk7
Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0i
c3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBjb25zb2xlLnByb2Zp
bGUoKSBhbmQgY29uc29sZS5wcm9maWxlRW5kKCkgdGhyZWUgdGltZXMuCi08YnI+Ci08YnI+Ci1U
byBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9h
ZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9m
aWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJvZmlsZXMuCi08ZGl2IGlkPSJvdXRwdXQiPjwv
ZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxp
bmctaW4tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3YThmNWE2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3Jp
cHQgc3RhcnRzIHByb2ZpbGluZyBmcm9tIHdpdGhpbiBhIG5lc3RlZCBsb2NhdGlvbi4gCi0KLVRv
IHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2Fk
IHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxl
IHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25XaWNoU3RvcHNUaGVQcm9maWxlcigp
LgotCi1Qcm9maWxlIHRpdGxlOiBQcm9maWxpbmcgRnJvbSBBIE5lc3RlZCBMb2NhdGlvbgotVGhy
ZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBzdGFydC1hbmQtc3RvcC1w
cm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGZ1
bmN0aW9uV2ljaFN0b3BzVGhlUHJvZmlsZXIgc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRo
ZS1zYW1lLWZ1bmN0aW9uLmh0bWwgKGxpbmUgMTc6MzgpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUt
ZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3At
cHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGVhZThkNGYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29s
ZS5wcm9maWxlKCJQcm9maWxpbmcgRnJvbSBBIE5lc3RlZCBMb2NhdGlvbiIpOwotCi0gICAgZnVu
Y3Rpb25XaWNoU3RvcHNUaGVQcm9maWxlcigpOwotfQotCi1mdW5jdGlvbiBmdW5jdGlvbldpY2hT
dG9wc1RoZVByb2ZpbGVyKCkKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDAwOyBp
KyspCi0gICAgICAgIHZhciBiID0gaSArIDI7Ci0KLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoIlBy
b2ZpbGluZyBGcm9tIEEgTmVzdGVkIExvY2F0aW9uIik7Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFX
aXRob3V0VGltZSgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJz
dGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJv
bSB3aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24uCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3Vs
ZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25XaWNoU3RvcHNUaGVQcm9maWxlcigpLgotPGRpdiBpZD0i
b3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2ZpbGlu
Zy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkYmMxMmQuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9w
LXByb2ZpbGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRo
aXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxlKCkgYnV0IG5vdCBjb25z
b2xlLnByb2ZpbGVFbmQoKS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQg
aW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhl
IHByb2ZpbGUuIFlvdSBzaG91bGQgc2VlIHRoZSBwcm9maWxlIHJ1bm5pbmcgKHdoZW4gdGhhdCBm
ZWF0dXJlIGlzIGltcGxlbWVudGVkIDYwNjA1NTYpLiBUaGVuIG5hdmlnYXRlIHRvIGFub3RoZXIg
cGFnZSBhbmQgY2hlY2sgdGhlIFdlYkluc3BlY3RvciBhZ2Fpbi4gU2FmYXJpIHNob3VsZCBub3Qg
aGF2ZSBjcmFzaGVkIGFuZCB0aGUgSW5zcGVjdG9yIHNob3VsZCBub3Qgc2hvdyBhIHByb2ZpbGUg
KHVubGVzcyB3ZSBhbGxvdyBjcm9zcy1sb2FkIHByb2ZpbGluZyBpbiB0aGUgZnV0dXJlIDU5NTE0
NzggJiA1OTU0OTEyKS4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDdmMTY1NmIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzAgKzAsMCBAQAotIDxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2lu
ZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxl
KCJTdGFydCB0aGUgcHJvZmlsZXIgYnV0IGRvbid0IHN0b3AgaXQuIik7Ci0gICAgYW5vbnltb3Vz
RnVuY3Rpb24oKTsKLSAgICBwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCk7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2Un
cyBKYXZhU2NyaXB0IGNhbGxzIGNvbnNvbGUucHJvZmlsZSgpIGJ1dCBub3QgY29uc29sZS5wcm9m
aWxlRW5kKCkuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0
IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10
aGUgcHJvZmlsZS4gIFlvdSBzaG91bGQgc2VlIHRoZSBwcm9maWxlIHJ1bm5pbmcgKHdoZW4gdGhh
dCBmZWF0dXJlIGlzIGltcGxlbWVudGVkIDYwNjA1NTYpLgotVGhlbiBuYXZpZ2F0ZSB0byBhbm90
aGVyIHBhZ2UgYW5kIGNoZWNrIHRoZSBXZWJJbnNwZWN0b3IgYWdhaW4uIFNhZmFyaSBzaG91bGQg
bm90Ci1oYXZlIGNyYXNoZWQgYW5kIHRoZSBJbnNwZWN0b3Igc2hvdWxkIG5vdCBzaG93IGEgcHJv
ZmlsZSAodW5sZXNzIHdlIGFsbG93IGNyb3NzLWxvYWQKLXByb2ZpbGluZyBpbiB0aGUgZnV0dXJl
IDU5NTE0NzggJmFtcDsgNTk1NDkxMikuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXBy
b2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzMjVkYTQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0LWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFT
Y3JpcHQgc3RvcHMgcHJvZmlsaW5nIGZyb20gYSB0aW1lb3V0LiAKLQotVG8gcnVuIHRoaXMgdGVz
dCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3Bl
Y3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgZW5kUHJvZmlsZSgp
IHNob3VsZCBub3QgYmUgYSBjaGlsZCBvZiAocHJvZ3JhbSkuCi0KLVByb2ZpbGUgdGl0bGU6IFN0
b3AgcHJvZmlsaW5nIGZyb20gYSB0aW1lb3V0Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgb25sb2FkIHN0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbCAobGluZSAy
MTo0NCkKLSAgICAgIHN0YXJ0VGVzdCBzdG9wLXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0
bWwgKGxpbmUgMTI6MTkpCi0gICAgICAgICBzZXRUaW1lb3V0IChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAocHJvZ3JhbSkgc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sIChsaW5l
IDE6MSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
MToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJv
ZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
c3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBiMWEwNzBjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMjkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwotfQotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50
ZXJuYWxzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RvcCBwcm9maWxpbmcgZnJvbSBh
IHRpbWVvdXQiKTsgICAgCi0gICAgc2V0VGltZW91dCgiZW5kVGVzdCgpIiwgMjApOwotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBh
Z2UncyBKYXZhU2NyaXB0IHN0b3BzIHByb2ZpbGluZyBmcm9tIGEgdGltZW91dC4KLTxicj4KLTxi
cj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhl
IHByb2ZpbGUgZW5kUHJvZmlsZSgpIHNob3VsZCBub3QgYmUgYSBjaGlsZCBvZiAocHJvZ3JhbSku
Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtdGhlbi1mdW5jdGlvbi1jYWxs
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWMwNTA0NS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtdGhlbi1mdW5jdGlvbi1j
YWxsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFn
ZSBoYXMgYW4gYW5vbnltb3VzIEphdmFTY3JpcHQgZnVuY3Rpb24gdGhhdCBjYWxscyBidWlsdC1p
biBmdW5jdGlvbnMuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRo
ZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9m
aWxlLiBUaGVyZSBzaG91bGQgYmUgdHdvIG5vZGVzIGluIHRoZSBwcm9maWxlLCBhICIocHJvZ3Jh
bSkiIG5vZGUgd2l0aCBvbmUgY2hpbGQgdGhhdCBpcyAidGVzdCIuCi0KLVByb2ZpbGUgdGl0bGU6
IFRlc3QKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICAocHJvZ3JhbSkgKG5vIGZp
bGUpIChsaW5lIDE6MTYpCi0gICAgICB0ZXN0IHN0b3AtdGhlbi1mdW5jdGlvbi1jYWxsLmh0bWwg
KGxpbmUgMTE6MTQpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9z
dG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9z
dG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBmOTRhODI1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC10
aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBp
bnRlcm5hbHMuc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLXZhciBqID0g
MDsKLWZ1bmN0aW9uIHRlc3QobGVuKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsr
aSkKLSAgICAgICAgKytqOwotfQotCi1mdW5jdGlvbiB0ZXN0MihsZW4pIHsKLSAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGxlbjsgKytpKQotICAgICAgICAtLWo7Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0
VGVzdCgpCi17Ci0gICAgdmFyIHNjcmlwdCA9ICJjb25zb2xlLnByb2ZpbGUoJ1Rlc3QnKTtcbiI7
Ci0gICAgc2NyaXB0ICs9ICJ0ZXN0KDEwMDApO1xuIjsKLSAgICBzY3JpcHQgKz0gImNvbnNvbGUu
cHJvZmlsZUVuZCgnVGVzdCcpO1xuIjsKLSAgICBzY3JpcHQgKz0gInRlc3QyKDEwMDApO1xuIjsK
LQotICAgIGV2YWwoc2NyaXB0KTsKLQotICAgIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUo
KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4K
LVRoaXMgcGFnZSBoYXMgYW4gYW5vbnltb3VzIEphdmFTY3JpcHQgZnVuY3Rpb24gdGhhdCBjYWxs
cyBidWlsdC1pbiBmdW5jdGlvbnMuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVh
bGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFu
ZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gVGhlcmUgc2hvdWxkIGJlIHR3byBub2RlcyBpbiB0aGUg
cHJvZmlsZSwgYSAiKHByb2dyYW0pIiBub2RlIHdpdGggb25lIGNoaWxkIHRoYXQgaXMgInRlc3Qi
LgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlvbi1mcm9t
LWV2YWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDdjOWVh
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9u
LWZyb20tZXZhbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1D
T05TT0xFIE1FU1NBR0U6IFRlc3QgZXhjZXB0aW9uLgotVGhpcyBwYWdlIHRocm93cyBhbiBleGNl
cHRpb24gZnJvbSB3aXRoaW4gZXZhbCgpLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwg
bG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9v
ayBhdCB0aGUgcHJvZmlsZS4gVGhlIHByb2ZpbGVyIHNob3VsZCBub3QgY3Jhc2ggYW5kIHN0aWxs
IHNob3cgdGhlIHN0YWNrIHVuZGVyIGluc2VydG5ld1RleHQoKS4KLQotUHJvZmlsZSB0aXRsZTog
VGhyb3cgd2l0aGluIGFuIGV2YWwuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMCkKLSAgIChw
cm9ncmFtKSB0aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwgKGxpbmUgMTkpCi0gICAgICAo
cHJvZ3JhbSkgdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sIChsaW5lIDEwKQotICAgICAg
ICAgKHByb2dyYW0pIHRocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbCAobGluZSA0KQotICAg
ICAgICAgKHByb2dyYW0pIHRocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbCAobGluZSAxOSkK
LSAgICAgICAgICAgIGV2YWwgKG5vIGZpbGUpIChsaW5lIDApCi0gICAgICAgICAgICAgICAocHJv
Z3JhbSkgKG5vIGZpbGUpIChsaW5lIDEpCi0gICBvbmxvYWQgdGhyb3ctZXhjZXB0aW9uLWZyb20t
ZXZhbC5odG1sIChsaW5lIDI0KQotICAgICAgc3RhcnRUZXN0IHRocm93LWV4Y2VwdGlvbi1mcm9t
LWV2YWwuaHRtbCAobGluZSAxMykKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTcpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChu
byBmaWxlKSAobGluZSAwKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChs
aW5lIDApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMCkKLSAgICAg
ICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwKQotICAgICAgICAgZW5kVGVz
dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxKQotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1s
LWRpc2FibGVkIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJv
bS1ldmFsLmh0bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBiNTgx
MDIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRp
b24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwotCi1jb25zb2xlLnByb2ZpbGUoIlRocm93IHdpdGhpbiBhbiBldmFsLiIpOwotCi1mdW5jdGlv
biBzdGFydFRlc3QoKQotewotICAgIGluc2VydE5ld1RleHQoKTsKLQotICAgIGVuZFRlc3QoKTsK
LX0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLWV2YWwoInRocm93KCdUZXN0IGV4Y2VwdGlvbi4nKTsi
KTsKLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRo
aXMgcGFnZSB0aHJvd3MgYW4gZXhjZXB0aW9uIGZyb20gd2l0aGluIGV2YWwoKS4KLTxicj4KLTxi
cj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgVGhlIHBy
b2ZpbGVyIHNob3VsZCBub3QgY3Jhc2ggYW5kIHN0aWxsIHNob3cgdGhlIHN0YWNrIHVuZGVyCi1p
bnNlcnRuZXdUZXh0KCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNv
bnRleHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1
dGlvbi1jb250ZXh0cy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAxZTlkZDEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhl
Y3V0aW9uLWNvbnRleHRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAg
QEAKLVRoaXMgcGFnZSBoYXMgdHdvIHNjcmlwdCB0YWdzIHdpdGggc29tZSBzaW1wbGUgSmF2YVNj
cmlwdC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dz
ZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIElu
IHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSB0d28gKHByb2dyYW0pIGVsZW1lbnRzLgotCi1Q
cm9maWxlIHRpdGxlOiBUd28gRXhlY3V0aW9uIENvbnRleHRzCi1UaHJlYWRfMSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHR3by1leGVjdXRpb24tY29udGV4dHMuaHRtbCAobGlu
ZSAxMDoxOSkKLSAgICAgIGludGVybWVkaWFyeUZ1bmN0aW9uIHR3by1leGVjdXRpb24tY29udGV4
dHMuaHRtbCAobGluZSAxNzozMCkKLSAgICAgICAgIHRlc3RFbmQgdHdvLWV4ZWN1dGlvbi1jb250
ZXh0cy5odG1sIChsaW5lIDMzOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDViMmVkNWIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci90d28tZXhlY3V0aW9uLWNvbnRleHRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgaW50ZXJuYWxzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1m
dW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVHdvIEV4ZWN1dGlv
biBDb250ZXh0cyIpOwotCi0gICAgaW50ZXJtZWRpYXJ5RnVuY3Rpb24oKTsKLX0KLQotZnVuY3Rp
b24gaW50ZXJtZWRpYXJ5RnVuY3Rpb24oKQotewotICAgIHRlc3RFbmQoKTsKLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMg
dHdvIHNjcmlwdCB0YWdzIHdpdGggc29tZSBzaW1wbGUgSmF2YVNjcmlwdC4KLTxicj4KLTxicj4K
LVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBs
b2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHBy
b2ZpbGUgdGhlcmUgc2hvdWxkIGJlIHR3byAocHJvZ3JhbSkgZWxlbWVudHMuCi08ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3RFbmQoKSB7Ci0g
ICAgY29uc29sZS5wcm9maWxlRW5kKCk7Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGlt
ZSgpOwotfQotPC9zY3JpcHQ+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVu
Y3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDZjZTU1MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYWdlIGhh
cyBKYXZhU2NyaXB0IHRoYXQgY2FsbHMgYnVpbHQtaW4gZnVuY3Rpb25zLiAKLQotVG8gcnVuIHRo
aXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdl
Ykluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUg
c2hvdWxkIGJlIGNhbGxzIHRvIGNyZWF0ZUVsZW1lbnQoKSBjcmVhdGVUZXh0Tm9kZSgpIGFwcGVu
ZENoaWxkKCkgYW5kIHRlc3RFbmQoKSwgYW1vbmcgb3RoZXJzLgotVGhpcyBpcyBpbnNlcnRlZCBU
ZXh0Ci0KLQotUHJvZmlsZSB0aXRsZTogVXNlciBkZWZpbmVkIGZ1bmN0aW9uIGNhbGxlcyBidWls
dC1pbiBmdW5jdGlvbnMKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRl
c3QgdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIChs
aW5lIDEwOjE5KQotICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGFwcGVuZENoaWxk
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1k
ZWZpbmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVu
Y3Rpb25zLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmYTM5NGUuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24t
Y2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgaW50ZXJuYWxzLnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1m
dW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVXNlciBkZWZpbmVk
IGZ1bmN0aW9uIGNhbGxlcyBidWlsdC1pbiBmdW5jdGlvbnMiKTsKLQotICAgIHZhciBuZXdQID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwotICAgIHZhciB0ZXh0Tm9kZSA9ZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIlRoaXMgaXMgaW5zZXJ0ZWQgVGV4dCIpOwotICAgIG5ld1AuYXBwZW5k
Q2hpbGQodGV4dE5vZGUpOwotICAgIHZhciBvdXRwdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgib3V0cHV0Iik7Ci0gICAgb3V0cHV0LmFwcGVuZENoaWxkKG5ld1ApOwotICAgIAotICAgIGVu
ZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVz
dCgpIj4KLVRoaXMgcGFnZSBoYXMgSmF2YVNjcmlwdCB0aGF0IGNhbGxzIGJ1aWx0LWluIGZ1bmN0
aW9ucy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4g
dGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBw
cm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGNhbGxzIHRvIGNyZWF0ZUVs
ZW1lbnQoKSBjcmVhdGVUZXh0Tm9kZSgpCi1hcHBlbmRDaGlsZCgpIGFuZCB0ZXN0RW5kKCksIGFt
b25nIG90aGVycy4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjZTg4ZGMuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci93aW5kb3ctZG90LWV2YWwtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhIGNhbGwg
dG8gd2luZG93LmV2YWwoKS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQg
aW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhl
IHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZXZhbCgp
LgotCi1Qcm9maWxlIHRpdGxlOiBDYWxsIHdpbmRvdy5ldmFsKCkKLVRocmVhZF8xIChubyBmaWxl
KSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qgd2luZG93LWRvdC1ldmFsLmh0bWwgKGxpbmUgMTA6
MTkpCi0gICAgICBldmFsRnVuY3Rpb24gKG5vIGZpbGUpIChsaW5lIDE6MjIpCi0gICAgICAgICBp
bnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQot
ICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVu
ZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvd2luZG93LWRvdC1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dp
bmRvdy1kb3QtZXZhbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZjdkNGMz
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2luZG93LWRvdC1ldmFs
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldEphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewot
ICAgIGNvbnNvbGUucHJvZmlsZSgiQ2FsbCB3aW5kb3cuZXZhbCgpIik7Ci0KLSAgICBldmFsRnVu
Y3Rpb24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLXdpbmRv
dy5ldmFsKCJmdW5jdGlvbiBldmFsRnVuY3Rpb24oKSB7IGluc2VydE5ld1RleHQoKTsgfSIpOwot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBw
YWdlIGhhcyBhIGNhbGwgdG8gd2luZG93LmV2YWwoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUg
c2hvdWxkIGJlIGEgY2FsbCB0byBldmFsKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3NhbXBsaW5n
LXByb2ZpbGVyL2V2YWwtc291cmNlLXVybC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Nh
bXBsaW5nLXByb2ZpbGVyL2V2YWwtc291cmNlLXVybC5odG1sCmluZGV4IGU3NTNkZmQuLjQzNjFm
OWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9zYW1wbGluZy1wcm9maWxlci9l
dmFsLXNvdXJjZS11cmwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc2FtcGxpbmct
cHJvZmlsZXIvZXZhbC1zb3VyY2UtdXJsLmh0bWwKQEAgLTM1LDYgKzM1LDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiU2FtcGxlIHNvbWUgYmFzaWMgY29kZS4iLAog
ICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgICAgICBJbnNwZWN0
b3JQcm90b2NvbC5hd2FpdEV2ZW50KHtldmVudDogIlNjcmlwdFByb2ZpbGVyLnRyYWNraW5nQ29t
cGxldGUifSkudGhlbigobWVzc2FnZU9iamVjdCkgPT4geworICAgICAgICAgICAgICAgIFByb3Rv
Y29sVGVzdC5sb2coSlNPTi5zdHJpbmdpZnkobWVzc2FnZU9iamVjdCkpOwogICAgICAgICAgICAg
ICAgIGxldCB0cmVlID0gV2ViSW5zcGVjdG9yLkNhbGxpbmdDb250ZXh0VHJlZS5fX3Rlc3RfbWFr
ZVRyZWVGcm9tUHJvdG9jb2xNZXNzYWdlT2JqZWN0KG1lc3NhZ2VPYmplY3QpOwogCiAgICAgICAg
ICAgICAgICAgbGV0IHRyYWNlID0gWwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCAzMjkyMjU5Li5mOTgwOGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTcyLDkgKzk3Miw2IEBAIHdlYmtpdC5vcmcvYi8xNDIx
NTYgY3NzMy9zaGFwZXMvc3BlYy1leGFtcGxlcy9zaGFwZS1vdXRzaWRlLTAxMS5odG1sIFsgRmFp
bHVyZSBQCiB3ZWJraXQub3JnL2IvMTQyMTU2IGNzczMvc2hhcGVzL3NwZWMtZXhhbXBsZXMvc2hh
cGUtb3V0c2lkZS0wMTIuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTQyMTU2
IGNzczMvc2hhcGVzL3NwZWMtZXhhbXBsZXMvc2hhcGUtb3V0c2lkZS0wMTkuaHRtbCBbIEZhaWx1
cmUgUGFzcyBdCiAKLXdlYmtpdC5vcmcvYi8xNDIxNTcgZmFzdC9wcm9maWxlci9kZWFkLXRpbWUu
aHRtbCBbIEZhaWx1cmUgUGFzcyBdCi13ZWJraXQub3JnL2IvMTQyMTU3IGZhc3QvcHJvZmlsZXIv
c3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLQog
d2Via2l0Lm9yZy9iLzk1NTUxIGZhc3QvZm9ybXMvZGF0YWxpc3QvdXBkYXRlLXJhbmdlLXdpdGgt
ZGF0YWxpc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCiAKIHdlYmtpdC5vcmcvYi8x
Mjk4MjAgc3ZnL2NsaXAtcGF0aC9tYXNrLW5lc3RlZC1jbGlwLXBhdGgtMDA2LnN2ZyBbIFBhc3Mg
SW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IGZlZmNkN2UuLmZkMWIxNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0xMTI3LDkgKzExMjcsNiBAQCB3ZWJraXQub3JnL2IvMTM2MDY2
IGFuaW1hdGlvbnMvbWlzc2luZy1rZXlmcmFtZS1wcm9wZXJ0aWVzLmh0bWwgWyBDcmFzaCBQYXNz
IF0KIHdlYmtpdC5vcmcvYi8xMzYwNjYgYW5pbWF0aW9ucy9taXNzaW5nLXZhbHVlcy1maXJzdC1r
ZXlmcmFtZS5odG1sIFsgQ3Jhc2ggUGFzcyBdCiB3ZWJraXQub3JnL2IvMTM2MDY2IGFuaW1hdGlv
bnMvc3RhdGUtYXQtZW5kLWV2ZW50Lmh0bWwgWyBDcmFzaCBQYXNzIF0KIAotd2Via2l0Lm9yZy9i
LzEzNjA2NyBmYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdl
YmtpdC5vcmcvYi8xMzYwNjcgZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRlci1zZXRU
aW1lb3V0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotCiB3ZWJraXQub3JnL2IvMTM2MDcwIGZhc3Qv
Zm9ybXMvbGFiZWwvbGFiZWwtYmVjb21lcy12aXNpYmxlLXdoaWxlLWNsaWNraW5nLW9uLWxhYmVs
Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMTM2NTgwIG1lZGlhL2NvbnRl
eHQtbWVudS1hY3Rpb25zLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdkYzFhMzYu
LjZmOGY1ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Iv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9y
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4ODEsNyArMTg4MSw2IEBAIGZhc3QvcGFyc2VyL25lc3Rl
ZC1mcmFnbWVudC1wYXJzZXItY3Jhc2guaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9wcmVsb2FkZXIv
ZG9jdW1lbnQtd3JpdGUtMi5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L3ByZWxvYWRlci9kb2N1bWVu
dC13cml0ZS5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L3ByZWxvYWRlci9pbWFnZS1zcmNzZXQuaHRt
bCBbIEZhaWx1cmUgXQotZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2Nh
dGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy5odG1sIFsgRmFpbHVy
ZSBdCiBmYXN0L3JlZ2lvbnMvYWJzb2x1dGUtaW4tcmVsYXRpdmUtb3ZlcmZsb3cuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogZmFzdC9yZWdpb25zL2Fic29sdXRlLXBvcy1lbGVtLWluLXJlZ2lv
bi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L3JlZ2lvbnMvYW5pbWF0aW9uLWVsZW1l
bnQtaW4tcmVnaW9uLWZsb3dlZC10by1vdGhlci10aHJlYWQuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Byb2ZpbGVyUHJp
dmF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTUHJvZmlsZXJQcml2YXRlLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWMxMTJhZS4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTUHJvZmlsZXJQcml2YXRlLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTUHJvZmlsZXJQcml2
YXRlLmgiCi0KLSNpbmNsdWRlICJBUElDYXN0LmgiCi0jaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIu
aCIKLSNpbmNsdWRlICJPcGFxdWVKU1N0cmluZy5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwot
Ci12b2lkIEpTU3RhcnRQcm9maWxpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgdGl0
bGUpCi17Ci0gICAgLy8gVXNlIGFuIGluZGVwZW5kZW50IHN0b3B3YXRjaCBmb3IgQVBJLWluaXRp
YXRlZCBwcm9maWxpbmcsIHNpbmNlIHRoZSB1c2VyIHdpbGwgZXhwZWN0IGl0Ci0gICAgLy8gdG8g
YmUgcmVsYXRpdmUgdG8gd2hlbiB0aGVpciBjb21tYW5kIHdhcyBpc3N1ZWQuCi0gICAgUmVmUHRy
PFN0b3B3YXRjaD4gc3RvcHdhdGNoID0gU3RvcHdhdGNoOjpjcmVhdGUoKTsKLSAgICBzdG9wd2F0
Y2gtPnN0YXJ0KCk7Ci0gICAgTGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCktPnN0YXJ0UHJvZmls
aW5nKHRvSlMoY3R4KSwgdGl0bGUtPnN0cmluZygpLCBzdG9wd2F0Y2gucmVsZWFzZSgpKTsKLX0K
LQotdm9pZCBKU0VuZFByb2ZpbGluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiB0aXRs
ZSkKLXsKLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGN0eCk7Ci0gICAgTGVnYWN5UHJvZmls
ZXIqIHByb2ZpbGVyID0gTGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCk7Ci0gICAgcHJvZmlsZXIt
PnN0b3BQcm9maWxpbmcoZXhlYywgdGl0bGUtPnN0cmluZygpKTsKLX0KLQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzNGYyNmEyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNQcm9maWxlclByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgSlNQ
cm9maWxlcl9oCi0jZGVmaW5lIEpTUHJvZmlsZXJfaAotCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNCYXNlLmg+Ci0KLSNpZm5kZWYgX19jcGx1c3BsdXMKLSNpbmNsdWRlIDxzdGRib29sLmg+
Ci0jZW5kaWYKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0v
KiEKLUBmdW5jdGlvbiBKU1N0YXJ0UHJvZmlsaW5nCi1AYWJzdHJhY3QgRW5hYmxlcyB0aGUgcHJv
Zmxlci4KLUBwYXJhbSBjdHggVGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIHVzZS4KLUBwYXJhbSB0
aXRsZSBUaGUgdGl0bGUgb2YgdGhlIHByb2ZpbGUuCi1AcmVzdWx0IFRoZSBwcm9maWxlciBpcyB0
dXJuZWQgb24uCi0qLwotSlNfRVhQT1JUIHZvaWQgSlNTdGFydFByb2ZpbGluZyhKU0NvbnRleHRS
ZWYgY3R4LCBKU1N0cmluZ1JlZiB0aXRsZSk7Ci0KLS8qIQotQGZ1bmN0aW9uIEpTRW5kUHJvZmls
aW5nCi1AYWJzdHJhY3QgRGlzYWJsZXMgdGhlIHByb2ZsZXIuCi1AcGFyYW0gY3R4IFRoZSBleGVj
dXRpb24gY29udGV4dCB0byB1c2UuCi1AcGFyYW0gdGl0bGUgVGhlIHRpdGxlIG9mIHRoZSBwcm9m
aWxlLgotQHJlc3VsdCBUaGUgcHJvZmlsZXIgaXMgdHVybmVkIG9mZi4gSWYgdGhlcmUgaXMgbm8g
bmFtZSwgdGhlIG1vc3QgcmVjZW50bHkgc3RhcnRlZAotICAgICAgICBwcm9maWxlIGlzIHN0b3Bw
ZWQuIElmIHRoZSBuYW1lIGRvZXMgbm90IG1hdGNoIGFueSBwcm9maWxlIHRoZW4gbm8gcHJvZmls
ZQotICAgICAgICBpcyBzdG9wcGVkLgotKi8KLUpTX0VYUE9SVCB2b2lkIEpTRW5kUHJvZmlsaW5n
KEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHRpdGxlKTsKLQotI2lmZGVmIF9fY3BsdXNw
bHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIEpTUHJvZmlsZXJfaCAqLwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQwZjI3Y2YuLmQ5MjhjOTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTUzMywxMCArNTMzLDYgQEAgc2V0KEphdmFTY3JpcHRD
b3JlX1NPVVJDRVMKICAgICBwYXJzZXIvU291cmNlUHJvdmlkZXJDYWNoZS5jcHAKICAgICBwYXJz
ZXIvVmFyaWFibGVFbnZpcm9ubWVudC5jcHAKIAotICAgIHByb2ZpbGVyL0xlZ2FjeVByb2ZpbGVy
LmNwcAotICAgIHByb2ZpbGVyL1Byb2ZpbGUuY3BwCi0gICAgcHJvZmlsZXIvUHJvZmlsZUdlbmVy
YXRvci5jcHAKLSAgICBwcm9maWxlci9Qcm9maWxlTm9kZS5jcHAKICAgICBwcm9maWxlci9Qcm9m
aWxlckJ5dGVjb2RlLmNwcAogICAgIHByb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5j
cHAKICAgICBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qCmluZGV4IGUxODBlMzUuLmI5NDhlMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagpAQCAtNzAwLDEwICs3MDAsNyBAQAogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccGFyc2VyXFNvdXJjZVByb3ZpZGVyLmNwcCIgLz4KICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBhcnNlclxTb3VyY2VQcm92aWRlckNhY2hlLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhcnNlclxWYXJpYWJsZUVudmlyb25tZW50LmNwcCIg
Lz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHByb2ZpbGVyXExlZ2FjeVByb2ZpbGVyLmNw
cCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHByb2ZpbGVyXFByb2ZpbGUuY3BwIiAv
PgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccHJvZmlsZXJcUHJvZmlsZUdlbmVyYXRvci5j
cHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwcm9maWxlclxQcm9maWxlTm9kZS5j
cHAiIC8+CisKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHByb2ZpbGVyXFByb2ZpbGVyQnl0
ZWNvZGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccHJvZmlsZXJcUHJvZmls
ZXJCeXRlY29kZXMuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccHJvZmlsZXJc
UHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmNwcCIgLz4KQEAgLTE1NDksMTEgKzE1NDYsNiBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFyc2VyXFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVt
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYXJzZXJcU3ludGF4Q2hlY2tlci5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFyc2VyXFZhcmlhYmxlRW52aXJvbm1l
bnQuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHByb2ZpbGVyXENhbGxJZGVudGlm
aWVyLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwcm9maWxlclxMZWdhY3lQcm9m
aWxlci5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccHJvZmlsZXJcUHJvZmlsZS5o
IiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccHJvZmlsZXJcUHJvZmlsZUdlbmVyYXRv
ci5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccHJvZmlsZXJcUHJvZmlsZU5vZGUu
aCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHByb2ZpbGVyXFByb2ZpbGVyQnl0ZWNv
ZGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHByb2ZpbGVyXFByb2ZpbGVyQnl0
ZWNvZGVzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwcm9maWxlclxQcm9maWxl
ckJ5dGVjb2RlU2VxdWVuY2UuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBiZjc1NjBlLi42ZjNhNGZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCkBAIC01MzcsMTggKzUz
Nyw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYXJzZXJcVmFyaWFibGVFbnZpcm9u
bWVudC5jcHAiPgogICAgICAgPEZpbHRlcj5wYXJzZXI8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHByb2ZpbGVyXExlZ2FjeVByb2ZpbGVyLmNw
cCI+Ci0gICAgICA8RmlsdGVyPnByb2ZpbGVyPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0g
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwcm9maWxlclxQcm9maWxlLmNwcCI+Ci0gICAgICA8
RmlsdGVyPnByb2ZpbGVyPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxwcm9maWxlclxQcm9maWxlR2VuZXJhdG9yLmNwcCI+Ci0gICAgICA8Rmls
dGVyPnByb2ZpbGVyPC9GaWx0ZXI+Ci0gICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwcm9maWxlclxQcm9maWxlTm9kZS5jcHAiPgotICAgICAgPEZpbHRlcj5wcm9m
aWxlcjwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccHJvZmlsZXJcUHJvZmlsZXJCeXRlY29kZS5jcHAiPgogICAgICAgPEZpbHRlcj5wcm9maWxl
cjwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtMjcwNCwyMSArMjY5Miw2IEBACiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYXJzZXJcVmFyaWFibGVFbnZpcm9ubWVudC5oIj4KICAg
ICAgIDxGaWx0ZXI+cGFyc2VyPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxwcm9maWxlclxDYWxsSWRlbnRpZmllci5oIj4KLSAgICAgIDxGaWx0
ZXI+cHJvZmlsZXI8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHByb2ZpbGVyXExlZ2FjeVByb2ZpbGVyLmgiPgotICAgICAgPEZpbHRlcj5wcm9m
aWxlcjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccHJvZmlsZXJcUHJvZmlsZS5oIj4KLSAgICAgIDxGaWx0ZXI+cHJvZmlsZXI8L0ZpbHRlcj4K
LSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHByb2ZpbGVyXFBy
b2ZpbGVHZW5lcmF0b3IuaCI+Ci0gICAgICA8RmlsdGVyPnByb2ZpbGVyPC9GaWx0ZXI+Ci0gICAg
PC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwcm9maWxlclxQcm9maWxl
Tm9kZS5oIj4KLSAgICAgIDxGaWx0ZXI+cHJvZmlsZXI8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHByb2ZpbGVyXFByb2ZpbGVyQnl0ZWNvZGUu
aCI+CiAgICAgICA8RmlsdGVyPnByb2ZpbGVyPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE2ODk4NmUuLmQ3ZDg1MTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDQzLDE0ICsxNDQzLDYgQEAKIAkJOTMzMDQwMDQw
RTZBNzQ5NDAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDNGRUEwRTZBNzJDMDAwNzg2RTZBIC8qIFNtYWxs
U3RyaW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzMzA0MDJDMEU2QTc2NDAwMDc4NkU2QSAvKiBTbWFsbFN0cmluZ3MuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDNGRTgwRTZBNzJCNTAw
Nzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5jcHAgKi87IH07CiAJCTkzMzVGMjREMTJFNjc2NUIwMDJC
NTU1MyAvKiBTdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMzQ1QTg3MTJEODM4QzQwMDMwMkJFMyAvKiBTdHJp
bmdSZWN1cnNpb25DaGVja2VyLmNwcCAqLzsgfTsKLQkJOTUzNEFBRkIwRTVCN0E5NjAwQjhBNDVC
IC8qIEpTUHJvZmlsZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NTJDNjNBQzBFNDc3N0Q2MDBDMTM5MzYgLyogSlNQcm9maWxlclByaXZh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5
NTc0MkY2NTBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTc0MkY2MzBERDExRjVBMDAwOTE3RkIgLyog
UHJvZmlsZS5jcHAgKi87IH07Ci0JCTk1QUI4MzQyMERBNDMyMjUwMEJDODNGMyAvKiBMZWdhY3lQ
cm9maWxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NUFCODMyRTBEQTQyQ0FEMDBCQzgzRjMgLyogTGVnYWN5UHJvZmlsZXIuY3BwICovOyB9Owot
CQk5NUFCODM1NjBEQTQzQzMwMDBCQzgzRjMgLyogUHJvZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBQjgzNTQwREE0M0I0NDAwQkM4
M0YzIC8qIFByb2ZpbGVOb2RlLmNwcCAqLzsgfTsKLQkJOTVDRDQ1NzYwRTFDNEZERDAwODUzNThF
IC8qIFByb2ZpbGVHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTVDRDQ1NzQwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0
b3IuY3BwICovOyB9OwotCQk5NUNENDU3NzBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVy
YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVD
RDQ1NzUwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwotCQk5NUUzQkMwNTBFMUFFNjgyMDBCMkQxQzEgLyog
Q2FsbElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk1RTNCQzA0MEUxQUU2ODIwMEIyRDFDMSAvKiBDYWxsSWRlbnRpZmllci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTk1RjZFNjk1MEU1
QjVGOTcwMDkxRTg2MCAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTk4OEJBOTBFNDc3QkVDMDBEMjhENEQgLyog
SlNQcm9maWxlclByaXZhdGUuY3BwICovOyB9OwogCQk5NjAwOTdBNjBFQkFCQjU4MDA3QTcyOTcg
LyogTGFiZWxTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTYwMDk3QTUwRUJBQkI1ODAwN0E3Mjk3IC8qIExhYmVsU2NvcGUuaCAqLzsgfTsKIAkJ
OTY4OENCMTUwRUQxMkI0RTAwMUQ2NDlGIC8qIEFzc2VtYmxlckJ1ZmZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY4OENCMTMwRUQxMkI0RTAwMUQ2
NDlGIC8qIEFzc2VtYmxlckJ1ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTk2ODhDQjE2MEVEMTJCNEUwMDFENjQ5RiAvKiBYODZBc3NlbWJs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2ODhD
QjE0MEVEMTJCNEUwMDFENjQ5RiAvKiBYODZBc3NlbWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTkyMCw5ICsxOTEyLDYgQEAKIAkJQkMx
OEM0NDYwRTE2RjVDRDAwQjM0NDYwIC8qIE9iamVjdFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNjgwQzkwRTE2RDRFOTAwQTA2RTky
IC8qIE9iamVjdFByb3RvdHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUJDMThDNDQ4MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPcGVyYXRpb25zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg3ODAy
NTU1OTdEMDFGRjYwRjcgLyogT3BlcmF0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDRCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQYXJz
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjBC
M0FBMDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzE4QzQ1MDBFMTZGNUNEMDBCMzQ0NjAgLyogUHJv
ZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU3
NDJGNjQwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2ZpbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzE4QzQ1MTBFMTZGNUNEMDBCMzQ0NjAgLyog
UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk1QUI4MzU1MERBNDNCNDQwMEJDODNGMyAvKiBQcm9maWxlTm9kZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDMThDNDUyMEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBMZWdhY3lQcm9maWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTVBQjgzMkYwREE0MkNBRDAwQkM4M0YzIC8qIExlZ2FjeVByb2Zp
bGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QkMxOEM0NTQwRTE2RjVDRDAwQjM0NDYwIC8qIFByb3BlcnR5TmFtZUFycmF5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQwMEMxMDBBNjlCQUYyMDA1
MDk4ODcgLyogUHJvcGVydHlOYW1lQXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ1NTBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvcGVy
dHlTbG90LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
NTYyMUU2QzA4OUU4NTk3MDA3NjBGMzUgLyogUHJvcGVydHlTbG90LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0NTYwRTE2RjVDRDAwQjM0
NDYwIC8qIFByb3RlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDY1QzAyRkJCMDYzNzQ2MkEwMDNFN0VFNiAvKiBQcm90ZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM2NzUsMTggKzM2NjQsNyBA
QAogCQk5M0YwQjNBOTA5QkI0REMwMDA2OEZDRTMgLyogUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzRjBCM0FBMDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRjE5ODFBMDgyNDVBQUUwMDFFOUFCQyAvKiBLZXl3b3Jkcy50YWJsZSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEtleXdvcmRzLnRhYmxlOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07Ci0JCTk1MkM2M0FDMEU0Nzc3RDYwMEMx
MzkzNiAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1Byb2ZpbGVyUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5
NTc0MkY2MzBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlLmNwcDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NTc0MkY2NDBERDExRjVBMDAwOTE3
RkIgLyogUHJvZmlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxl
Lmg7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTk1OTg4QkE5MEU0NzdCRUMwMEQyOEQ0RCAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk1QUI4MzJFMERBNDJDQUQwMEJDODNGMyAv
KiBMZWdhY3lQcm9maWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBMZWdhY3lQcm9maWxlci5jcHA7IHBhdGggPSBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk1QUI4MzJGMERBNDJDQUQwMEJDODNGMyAv
KiBMZWdhY3lQcm9maWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMZWdh
Y3lQcm9maWxlci5oOyBwYXRoID0gcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTVBQjgzNTQwREE0M0I0NDAwQkM4M0YzIC8qIFByb2ZpbGVO
b2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVOb2Rl
LmNwcDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJOTVBQjgzNTUwREE0M0I0NDAwQkM4M0YzIC8qIFByb2ZpbGVOb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2ZpbGVOb2RlLmg7IHBhdGggPSBwcm9m
aWxlci9Qcm9maWxlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUMxOEQz
RTBDOTBFN0VGMDBFNzJGNzMgLyogSlNSZXRhaW5QdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNSZXRhaW5QdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
OTVDRDQ1NzQwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUHJvZmlsZUdlbmVyYXRvci5jcHA7IHBhdGgg
PSBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJOTVDRDQ1NzUwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvZmlsZUdlbmVyYXRvci5oOyBwYXRoID0g
cHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5NUUzQkMwNDBFMUFFNjgyMDBCMkQxQzEgLyogQ2FsbElkZW50aWZpZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2FsbElkZW50aWZpZXIuaDsgcGF0aCA9IHByb2ZpbGVy
L0NhbGxJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk2MDA5N0E1
MEVCQUJCNTgwMDdBNzI5NyAvKiBMYWJlbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IExhYmVsU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTY4
OENCMTMwRUQxMkI0RTAwMUQ2NDlGIC8qIEFzc2VtYmxlckJ1ZmZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBc3NlbWJsZXJCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTY4OENCMTQwRUQxMkI0RTAwMUQ2NDlGIC8qIFg4NkFzc2VtYmxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYODZBc3NlbWJsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzMzcsOCArNTMxNSw2IEBACiAJCQkJMTQ4MkI3RTIwQTQz
MDc2MDAwNTE3Q0ZDIC8qIEpTT2JqZWN0UmVmLmNwcCAqLywKIAkJCQkxNDgyQjdFMTBBNDMwNzYw
MDA1MTdDRkMgLyogSlNPYmplY3RSZWYuaCAqLywKIAkJCQlBNzlFREIwODExNTMxQ0Q2MDAxOUU5
MTIgLyogSlNPYmplY3RSZWZQcml2YXRlLmggKi8sCi0JCQkJOTU5ODhCQTkwRTQ3N0JFQzAwRDI4
RDREIC8qIEpTUHJvZmlsZXJQcml2YXRlLmNwcCAqLywKLQkJCQk5NTJDNjNBQzBFNDc3N0Q2MDBD
MTM5MzYgLyogSlNQcm9maWxlclByaXZhdGUuaCAqLywKIAkJCQlBNTUyQzM3RDFBRERCOEZFMDAx
Mzk3MjYgLyogSlNSZW1vdGVJbnNwZWN0b3IuY3BwICovLAogCQkJCUE1NTJDMzdFMUFEREI4RkUw
MDEzOTcyNiAvKiBKU1JlbW90ZUluc3BlY3Rvci5oICovLAogCQkJCTk1QzE4RDNFMEM5MEU3RUYw
MEU3MkY3MyAvKiBKU1JldGFpblB0ci5oICovLApAQCAtNjQ5MCwxNSArNjQ2Niw2IEBACiAJCTk1
QUI4MzFBMERBNDJDNjkwMEJDODNGMyAvKiBwcm9maWxlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTVFM0JDMDQwRTFBRTY4MjAwQjJEMUMxIC8qIENh
bGxJZGVudGlmaWVyLmggKi8sCi0JCQkJOTVBQjgzMkUwREE0MkNBRDAwQkM4M0YzIC8qIExlZ2Fj
eVByb2ZpbGVyLmNwcCAqLywKLQkJCQk5NUFCODMyRjBEQTQyQ0FEMDBCQzgzRjMgLyogTGVnYWN5
UHJvZmlsZXIuaCAqLywKLQkJCQk5NTc0MkY2MzBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5j
cHAgKi8sCi0JCQkJOTU3NDJGNjQwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2ZpbGUuaCAqLywKLQkJ
CQk5NUNENDU3NDBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRvci5jcHAgKi8sCi0J
CQkJOTVDRDQ1NzUwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuaCAqLywKLQkJ
CQk5NUFCODM1NDBEQTQzQjQ0MDBCQzgzRjMgLyogUHJvZmlsZU5vZGUuY3BwICovLAotCQkJCTk1
QUI4MzU1MERBNDNCNDQwMEJDODNGMyAvKiBQcm9maWxlTm9kZS5oICovLAogCQkJCTBGRjcyOTky
MTY2QUQzNDcwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2RlLmNwcCAqLywKIAkJCQkwRkY3Mjk5
MzE2NkFEMzQ3MDAwRjVCQTMgLyogUHJvZmlsZXJCeXRlY29kZS5oICovLAogCQkJCTBGRjcyOTk0
MTY2QUQzNDcwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2Rlcy5jcHAgKi8sCkBAIC03MTczLDcg
KzcxNDAsNiBAQAogCQkJCTE0MjlEOERFMEVEMjIwNUIwMEI4OTYxOSAvKiBDYWxsRnJhbWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTYyRUM5QkI3MUI3RUIwN0MwMDMwM0FEMSAvKiBDYWxsRnJhbWVT
aHVmZmxlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjJENzU1RDcxQjg0RkI0QTAwMTgwMUZB
IC8qIENhbGxGcmFtZVNodWZmbGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5NUUzQkMwNTBFMUFF
NjgyMDBCMkQxQzEgLyogQ2FsbElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMEI4
M0IxMTRCQ0Y3MTgwMDg4NUI0RiAvKiBDYWxsTGlua0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGOTMzMjlFMTRDQTdEQzUwMDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNjI3NjczMjQxQjY4MEMxRTAwRkQ5RjJFIC8qIENhbGxNb2RlLmggaW4gSGVhZGVy
cyAqLywKQEAgLTc3OTksNyArNzc2NSw2IEBACiAJCQkJQTcyODBBMjgxMTU1N0UzMDAwRDU2OTU3
IC8qIEpTT2JqZWN0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdGOTkzNUYwRkQ3
MzI1MTAwQTBCMkQwIC8qIEpTT05PYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODdDREI5
MTA3MTJBRDQwMDA2MTRDRiAvKiBKU09OT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
OTUzNEFBRkIwRTVCN0E5NjAwQjhBNDVCIC8qIEpTUHJvZmlsZXJQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QzE4NEUxQjE3QkVEQkQzMDA3Q0I2M0EgLyogSlNQcm9taXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QzE4NEUyMzE3QkVFMjQwMDA3Q0I2M0EgLyogSlNQcm9taXNlQ29uc3Ry
dWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkI3MzFFMUJEQTA4RUYwMDMzMUI4NCAvKiBK
U1Byb21pc2VDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLApAQCAtNzg2Myw3ICs3ODI4
LDYgQEAKIAkJCQk5NjAwOTdBNjBFQkFCQjU4MDA3QTcyOTcgLyogTGFiZWxTY29wZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZCNTQ2NzcxNEY1OUI1QzAwMkMyOTg5IC8qIExhenlPcGVyYW5kVmFs
dWVQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OURBMDBCMDFCRDU5OTRFMDBGNDU3NUMg
LyogbGF6eXdyaXRlci5weSBpbiBIZWFkZXJzICovLAotCQkJCUJDMThDNDUyMEUxNkY1Q0QwMEIz
NDQ2MCAvKiBMZWdhY3lQcm9maWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MzEwRTE2
RjVDRDAwQjM0NDYwIC8qIExleGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzUyRTBFMTZG
Q0UxMDBCMzQ0NjAgLyogTGV4ZXIubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTE4N0EwMjFC
RkJFNTYxMDAzOEJCQ0EgLyogSklUTXVsR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTc5
NjgsOSArNzkzMiw2IEBACiAJCQkJMEZFODM0MTgxQTZFRjk3QjAwRDA0ODQ3IC8qIFBvbHltb3Jw
aGljQ2FsbFN0dWJSb3V0aW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk4MjA2MTE2QkZFMzgz
MDAyNDBEMDIgLyogUHJlY2lzZUp1bXBUYXJnZXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Njg5
MTZCMDE1NUYyODYzMDBDQjJCOUEgLyogUHJpdmF0ZU5hbWUuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUJDMThDNDUwMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9maWxlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk5NUNENDU3NzBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRvci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQkMxOEM0NTEwRTE2RjVDRDAwQjM0NDYwIC8qIFByb2ZpbGVOb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkY3MjlBNTE2NkFEMzUxMDAwRjVCQTMgLyogUHJvZmlsZXJCeXRl
Y29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNzI5QjkxNjZBRDM2MDAwMEY1QkEzIC8qIFBy
b2ZpbGVyQnl0ZWNvZGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjEzOTEyQTE2NzcxQzM2MDA5
Q0NCMDcgLyogUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmggaW4gSGVhZGVycyAqLywKQEAgLTky
NzksNyArOTI0MCw2IEBACiAJCQkJMTQ3RjM5RDQxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTT2JqZWN0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0ODJCN0U0MEE0MzA3NjAwMDUxN0NGQyAvKiBKU09i
amVjdFJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Y5OTM2MDBGRDczMjUxMDBBMEIyRDAg
LyogSlNPTk9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5NUY2RTY5NTBFNUI1Rjk3MDA5
MUU4NjAgLyogSlNQcm9maWxlclByaXZhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0MxODRF
MUExN0JFREJEMzAwN0NCNjNBIC8qIEpTUHJvbWlzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
QzE4NEUyMjE3QkVFMjQwMDA3Q0I2M0EgLyogSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0MwMDhDREExODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJvbWlzZURlZmVy
cmVkLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTMyMiw3ICs5MjgyLDYgQEAKIAkJCQkxNDI4MDg3
MDEwN0VDMTM0MDAxM0U3QjIgLyogSlNXcmFwcGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDRkQ4QzkyMEVFQjJFRTcwMDI4Mzg0OCAvKiBKdW1wVGFibGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZCNTQ2NzkxNEY1QzQ2QjAwMkMyOTg5IC8qIExhenlPcGVyYW5kVmFsdWVQcm9m
aWxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTk1QUI4MzQyMERBNDMyMjUwMEJDODNGMyAvKiBM
ZWdhY3lQcm9maWxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDhGMjFCMDEwN0VDNTQxMDA0
MkVDMkMgLyogTGV4ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNDI3NTcxNTkxNEEyMDAw
NENCOUZGIC8qIExpbmtCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdFMkVBNkMwRkI0
NjBDRjAwNjAxRjA2IC8qIExpdGVyYWxQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05Mzkw
LDkgKzkzNDksNiBAQAogCQkJCTBGRTgzNDE3MUE2RUY5N0IwMEQwNDg0NyAvKiBQb2x5bW9ycGhp
Y0NhbGxTdHViUm91dGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjMzOEUxNDFCRjAyNzZD
MDAxM0M4OEYgLyogQjNWYWx1ZUtleS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjk4MjA2MDE2
QkZFMzgxMDAyNDBEMDIgLyogUHJlY2lzZUp1bXBUYXJnZXRzLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTk1NzQyRjY1MEREMTFGNUEwMDA5MTdGQiAvKiBQcm9maWxlLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTk1Q0Q0NTc2MEUxQzRGREQwMDg1MzU4RSAvKiBQcm9maWxlR2VuZXJhdG9yLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTk1QUI4MzU2MERBNDNDMzAwMEJDODNGMyAvKiBQcm9maWxlTm9k
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY3MjlBRDE2NkFEMzVDMDAwRjVCQTMgLyogUHJv
ZmlsZXJCeXRlY29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY3MjlBRTE2NkFEMzVDMDAw
RjVCQTMgLyogUHJvZmlsZXJCeXRlY29kZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxMzkx
MjkxNjc3MUMzMzAwOUNDQjA3IC8qIFByb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUxpc3QuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxp
c3QuanNvbgppbmRleCAwNTNiOGRjLi43OWNiYTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCkBAIC0xMTYsOCArMTE2LDYgQEAKICAg
ICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3Rocm93IiwgImxlbmd0aCIgOiAyIH0sCiAgICAgICAg
ICAgICB7ICJuYW1lIiA6ICJvcF90aHJvd19zdGF0aWNfZXJyb3IiLCAibGVuZ3RoIiA6IDMgfSwK
ICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2RlYnVnIiwgImxlbmd0aCIgOiAzIH0sCi0gICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF9wcm9maWxlX3dpbGxfY2FsbCIsICJsZW5ndGgiIDogMiB9
LAotICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHJvZmlsZV9kaWRfY2FsbCIsICJsZW5ndGgi
IDogMiB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZW5kIiwgImxlbmd0aCIgOiAyIH0s
CiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wcm9maWxlX3R5cGUiLCAibGVuZ3RoIiA6IDYg
fSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3Byb2ZpbGVfY29udHJvbF9mbG93IiwgImxl
bmd0aCIgOiAyIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVVc2VEZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29k
ZVVzZURlZi5oCmluZGV4IDE0YTY5ZjYuLjRlYTI2MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCkBAIC02MCw4ICs2MCw2IEBAIHZvaWQg
Y29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCgKICAgICBjYXNlIG9wX2dldF9zY29wZToKICAg
ICBjYXNlIG9wX3RvX3RoaXM6CiAgICAgY2FzZSBvcF9jaGVja190ZHo6Ci0gICAgY2FzZSBvcF9w
cm9maWxlX3dpbGxfY2FsbDoKLSAgICBjYXNlIG9wX3Byb2ZpbGVfZGlkX2NhbGw6CiAgICAgY2Fz
ZSBvcF9wcm9maWxlX3R5cGU6CiAgICAgY2FzZSBvcF90aHJvdzoKICAgICBjYXNlIG9wX2VuZDoK
QEAgLTI4NCw4ICsyODIsNiBAQCB2b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQoQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIEJ5dGVjb2RlQmFzaWNCbG9jayogYmxvYwogICAgIGNhc2Ugb3Bf
Y29weV9yZXN0OgogICAgIGNhc2Ugb3BfcHV0X3RvX3Njb3BlOgogICAgIGNhc2Ugb3BfZW5kOgot
ICAgIGNhc2Ugb3BfcHJvZmlsZV93aWxsX2NhbGw6Ci0gICAgY2FzZSBvcF9wcm9maWxlX2RpZF9j
YWxsOgogICAgIGNhc2Ugb3BfdGhyb3c6CiAgICAgY2FzZSBvcF90aHJvd19zdGF0aWNfZXJyb3I6
CiAgICAgY2FzZSBvcF9zYXZlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcAppbmRleCA1OTA1ZTkxLi5hNzJmMjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMTU4NCwxNiArMTU4NCw2IEBAIHZvaWQg
Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAgICAgICBvdXQucHJpbnRmKCIlcywgJWQi
LCByZWdpc3Rlck5hbWUoY29uZGl0aW9uKS5kYXRhKCksIGxpbmUpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBvcF9wcm9maWxlX3dpbGxfY2FsbDogewotICAg
ICAgICAgICAgaW50IGZ1bmN0aW9uID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBw
cmludExvY2F0aW9uT3BBbmRSZWdpc3Rlck9wZXJhbmQob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQs
ICJwcm9maWxlX3dpbGxfY2FsbCIsIGZ1bmN0aW9uKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0gICAgICAgIGNhc2Ugb3BfcHJvZmlsZV9kaWRfY2FsbDogewotICAgICAgICAgICAg
aW50IGZ1bmN0aW9uID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBwcmludExvY2F0
aW9uT3BBbmRSZWdpc3Rlck9wZXJhbmQob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJwcm9maWxl
X2RpZF9jYWxsIiwgZnVuY3Rpb24pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KICAg
ICAgICAgY2FzZSBvcF9lbmQ6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVy
YW5kOwogICAgICAgICAgICAgcHJpbnRMb2NhdGlvbk9wQW5kUmVnaXN0ZXJPcGVyYW5kKG91dCwg
ZXhlYywgbG9jYXRpb24sIGl0LCAiZW5kIiwgcjApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAK
aW5kZXggZGYzMDRmYS4uOWUyNTFjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwCkBAIC00
OSw3ICs0OSw3IEBAIGNvbnN0IENsYXNzSW5mbyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6
c19pbmZvID0geyAiVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFiCiAKIHN0YXRpYyBVbmxpbmtlZEZ1
bmN0aW9uQ29kZUJsb2NrKiBnZW5lcmF0ZVVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2soCiAgICAg
Vk0mIHZtLCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgY29uc3QgU291
cmNlQ29kZSYgc291cmNlLAotICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgRGVidWdn
ZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSwKKyAgICBDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsCiAgICAg
VW5saW5rZWRGdW5jdGlvbktpbmQgZnVuY3Rpb25LaW5kLCBQYXJzZXJFcnJvciYgZXJyb3IsIFNv
dXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUpCiB7CiAgICAgSlNQYXJzZXJCdWlsdGluTW9kZSBidWls
dGluTW9kZSA9IGV4ZWN1dGFibGUtPmlzQnVpbHRpbkZ1bmN0aW9uKCkgPyBKU1BhcnNlckJ1aWx0
aW5Nb2RlOjpCdWlsdGluIDogSlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRpbjsKQEAgLTcx
LDcgKzcxLDcgQEAgc3RhdGljIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIGdlbmVyYXRlVW5s
aW5rZWRGdW5jdGlvbkNvZGVCbG9jaygKICAgICBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBy
ZXN1bHQgPSBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOjpjcmVhdGUoJnZtLCBGdW5jdGlvbkNv
ZGUsCiAgICAgICAgIEV4ZWN1dGFibGVJbmZvKGZ1bmN0aW9uLT5uZWVkc0FjdGl2YXRpb24oKSwg
ZnVuY3Rpb24tPnVzZXNFdmFsKCksIGZ1bmN0aW9uLT5pc1N0cmljdE1vZGUoKSwga2luZCA9PSBD
b2RlRm9yQ29uc3RydWN0LCBmdW5jdGlvbktpbmQgPT0gVW5saW5rZWRCdWlsdGluRnVuY3Rpb24s
IGV4ZWN1dGFibGUtPmNvbnN0cnVjdG9yS2luZCgpLCBleGVjdXRhYmxlLT5zdXBlckJpbmRpbmco
KSwgcGFyc2VNb2RlLCBleGVjdXRhYmxlLT5kZXJpdmVkQ29udGV4dFR5cGUoKSwgZmFsc2UsIGlz
Q2xhc3NDb250ZXh0KSk7CiAKLSAgICBhdXRvIGdlbmVyYXRvcihzdGQ6Om1ha2VfdW5pcXVlPEJ5
dGVjb2RlR2VuZXJhdG9yPih2bSwgZnVuY3Rpb24uZ2V0KCksIHJlc3VsdCwgZGVidWdnZXJNb2Rl
LCBwcm9maWxlck1vZGUsIGV4ZWN1dGFibGUtPnBhcmVudFNjb3BlVERaVmFyaWFibGVzKCkpKTsK
KyAgICBhdXRvIGdlbmVyYXRvcihzdGQ6Om1ha2VfdW5pcXVlPEJ5dGVjb2RlR2VuZXJhdG9yPih2
bSwgZnVuY3Rpb24uZ2V0KCksIHJlc3VsdCwgZGVidWdnZXJNb2RlLCBleGVjdXRhYmxlLT5wYXJl
bnRTY29wZVREWlZhcmlhYmxlcygpKSk7CiAgICAgZXJyb3IgPSBnZW5lcmF0b3ItPmdlbmVyYXRl
KCk7CiAgICAgaWYgKGVycm9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBA
IC0xODQsNyArMTg0LDcgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlOjpmcm9tR2xvYmFsQ29kZSgKIAogVW5saW5rZWRGdW5jdGlvbkNvZGVC
bG9jayogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OnVubGlua2VkQ29kZUJsb2NrRm9yKAog
ICAgIFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBDb2RlU3BlY2lhbGl6YXRpb25L
aW5kIHNwZWNpYWxpemF0aW9uS2luZCwgCi0gICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwg
UHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBTb3VyY2VQYXJz
ZU1vZGUgcGFyc2VNb2RlKQorICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFBhcnNlckVy
cm9yJiBlcnJvciwgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSkKIHsKICAgICBzd2l0Y2ggKHNw
ZWNpYWxpemF0aW9uS2luZCkgewogICAgIGNhc2UgQ29kZUZvckNhbGw6CkBAIC0xOTgsNyArMTk4
LDcgQEAgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGU6OnVubGlua2VkQ29kZUJsb2NrRm9yKAogICAgIH0KIAogICAgIFVubGlua2VkRnVuY3Rpb25D
b2RlQmxvY2sqIHJlc3VsdCA9IGdlbmVyYXRlVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jaygKLSAg
ICAgICAgdm0sIHRoaXMsIHNvdXJjZSwgc3BlY2lhbGl6YXRpb25LaW5kLCBkZWJ1Z2dlck1vZGUs
IHByb2ZpbGVyTW9kZSwgCisgICAgICAgIHZtLCB0aGlzLCBzb3VyY2UsIHNwZWNpYWxpemF0aW9u
S2luZCwgZGVidWdnZXJNb2RlLCAKICAgICAgICAgaXNCdWlsdGluRnVuY3Rpb24oKSA/IFVubGlu
a2VkQnVpbHRpbkZ1bmN0aW9uIDogVW5saW5rZWROb3JtYWxGdW5jdGlvbiwgCiAgICAgICAgIGVy
cm9yLCBwYXJzZU1vZGUpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAppbmRleCA5ZTJmYTY3
Li43MzQ5Njk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAtOTYsNyArOTYsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRJbnZhbGlkVHlwZVByb2ZpbGluZ09mZnNldHMoKTsKIAogICAgIFVu
bGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIHVubGlua2VkQ29kZUJsb2NrRm9yKAotICAgICAgICBW
TSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCBEZWJ1Z2dlck1v
ZGUsIFByb2ZpbGVyTW9kZSwgCisgICAgICAgIFZNJiwgY29uc3QgU291cmNlQ29kZSYsIENvZGVT
cGVjaWFsaXphdGlvbktpbmQsIERlYnVnZ2VyTW9kZSwKICAgICAgICAgUGFyc2VyRXJyb3ImLCBT
b3VyY2VQYXJzZU1vZGUpOwogCiAgICAgc3RhdGljIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxl
KiBmcm9tR2xvYmFsQ29kZSgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXggYzkxZWFmYS4uMzY5ZWU4MSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHAKQEAgLTE0OSw5ICsxNDksOCBAQCBQYXJzZXJFcnJvciBCeXRlY29k
ZUdlbmVyYXRvcjo6Z2VuZXJhdGUoKQogICAgIHJldHVybiBQYXJzZXJFcnJvcihQYXJzZXJFcnJv
cjo6RXJyb3JOb25lKTsKIH0KIAotQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9y
KFZNJiB2bSwgUHJvZ3JhbU5vZGUqIHByb2dyYW1Ob2RlLCBVbmxpbmtlZFByb2dyYW1Db2RlQmxv
Y2sqIGNvZGVCbG9jaywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHBy
b2ZpbGVyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogcGFyZW50U2NvcGVURFpWYXJp
YWJsZXMpCitCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBQcm9n
cmFtTm9kZSogcHJvZ3JhbU5vZGUsIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogY29kZUJsb2Nr
LCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiBw
YXJlbnRTY29wZVREWlZhcmlhYmxlcykKICAgICA6IG1fc2hvdWxkRW1pdERlYnVnSG9va3MoT3B0
aW9uczo6Zm9yY2VEZWJ1Z2dlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IGRlYnVnZ2VyTW9kZSA9
PSBEZWJ1Z2dlck9uKQotICAgICwgbV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKE9wdGlvbnM6OmZv
cmNlUHJvZmlsZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBwcm9maWxlck1vZGUgPT0gUHJvZmls
ZXJPbikKICAgICAsIG1fc2NvcGVOb2RlKHByb2dyYW1Ob2RlKQogICAgICwgbV9jb2RlQmxvY2so
dm0sIGNvZGVCbG9jaykKICAgICAsIG1fdGhpc1JlZ2lzdGVyKENhbGxGcmFtZTo6dGhpc0FyZ3Vt
ZW50T2Zmc2V0KCkpCkBAIC0xOTUsOSArMTk0LDggQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVj
b2RlR2VuZXJhdG9yKFZNJiB2bSwgUHJvZ3JhbU5vZGUqIHByb2dyYW1Ob2RlLCBVbmxpbmtlZFAK
ICAgICB9CiB9CiAKLUJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0s
IEZ1bmN0aW9uTm9kZSogZnVuY3Rpb25Ob2RlLCBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxl
ck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHBhcmVudFNjb3BlVERaVmFyaWFibGVz
KQorQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRnVuY3Rpb25O
b2RlKiBmdW5jdGlvbk5vZGUsIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIGNvZGVCbG9jaywg
RGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogcGFy
ZW50U2NvcGVURFpWYXJpYWJsZXMpCiAgICAgOiBtX3Nob3VsZEVtaXREZWJ1Z0hvb2tzKE9wdGlv
bnM6OmZvcmNlRGVidWdnZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBkZWJ1Z2dlck1vZGUgPT0g
RGVidWdnZXJPbikKLSAgICAsIG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcyhPcHRpb25zOjpmb3Jj
ZVByb2ZpbGVyQnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgcHJvZmlsZXJNb2RlID09IFByb2ZpbGVy
T24pCiAgICAgLCBtX3Njb3BlTm9kZShmdW5jdGlvbk5vZGUpCiAgICAgLCBtX2NvZGVCbG9jayh2
bSwgY29kZUJsb2NrKQogICAgICwgbV9jb2RlVHlwZShGdW5jdGlvbkNvZGUpCkBAIC0yMDksNyAr
MjA3LDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRnVu
Y3Rpb25Ob2RlKiBmdW5jdGlvbk5vZGUsIFVubGlua2UKICAgICAvLyBvcF93aWxsX2NhbGwgLyBv
cF9kaWRfY2FsbCBwYWlycyBiZWZvcmUgYW5kIGFmdGVyIGEgY2FsbCwgd2hpY2ggYXJlIG5vdAog
ICAgIC8vIGNvbXBhdGlibGUgd2l0aCB0YWlsIGNhbGxzICh3ZSBoYXZlIG5vIHdheSBvZiBlbWl0
dGluZyBvcF9kaWRfY2FsbCkuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0ODgxOQotICAgICwgbV9pblRhaWxQb3NpdGlvbihPcHRpb25zOjp1c2VUYWls
Q2FsbHMoKSAmJiAhaXNDb25zdHJ1Y3RvcigpICYmIGNvbnN0cnVjdG9yS2luZCgpID09IENvbnN0
cnVjdG9yS2luZDo6Tm9uZSAmJiBpc1N0cmljdE1vZGUoKSAmJiAhbV9zaG91bGRFbWl0UHJvZmls
ZUhvb2tzKQorICAgICwgbV9pblRhaWxQb3NpdGlvbihPcHRpb25zOjp1c2VUYWlsQ2FsbHMoKSAm
JiAhaXNDb25zdHJ1Y3RvcigpICYmIGNvbnN0cnVjdG9yS2luZCgpID09IENvbnN0cnVjdG9yS2lu
ZDo6Tm9uZSAmJiBpc1N0cmljdE1vZGUoKSkKICAgICAsIG1fbmVlZHNUb1VwZGF0ZUFycm93RnVu
Y3Rpb25Db250ZXh0KGZ1bmN0aW9uTm9kZS0+dXNlc0Fycm93RnVuY3Rpb24oKSB8fCBmdW5jdGlv
bk5vZGUtPnVzZXNFdmFsKCkpCiAgICAgLCBtX2Rlcml2ZWRDb250ZXh0VHlwZShjb2RlQmxvY2st
PmRlcml2ZWRDb250ZXh0VHlwZSgpKQogewpAQCAtNTg1LDkgKzU4Myw4IEBAIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIEZ1bmN0aW9uTm9kZSogZnVuY3Rpb25O
b2RlLCBVbmxpbmtlCiAgICAgcHVzaExleGljYWxTY29wZShtX3Njb3BlTm9kZSwgVERaQ2hlY2tP
cHRpbWl6YXRpb246Ok9wdGltaXplKTsKIH0KIAotQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2Rl
R2VuZXJhdG9yKFZNJiB2bSwgRXZhbE5vZGUqIGV2YWxOb2RlLCBVbmxpbmtlZEV2YWxDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHBy
b2ZpbGVyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogcGFyZW50U2NvcGVURFpWYXJp
YWJsZXMpCitCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBFdmFs
Tm9kZSogZXZhbE5vZGUsIFVubGlua2VkRXZhbENvZGVCbG9jayogY29kZUJsb2NrLCBEZWJ1Z2dl
ck1vZGUgZGVidWdnZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiBwYXJlbnRTY29w
ZVREWlZhcmlhYmxlcykKICAgICA6IG1fc2hvdWxkRW1pdERlYnVnSG9va3MoT3B0aW9uczo6Zm9y
Y2VEZWJ1Z2dlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IGRlYnVnZ2VyTW9kZSA9PSBEZWJ1Z2dl
ck9uKQotICAgICwgbV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKE9wdGlvbnM6OmZvcmNlUHJvZmls
ZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBwcm9maWxlck1vZGUgPT0gUHJvZmlsZXJPbikKICAg
ICAsIG1fc2NvcGVOb2RlKGV2YWxOb2RlKQogICAgICwgbV9jb2RlQmxvY2sodm0sIGNvZGVCbG9j
aykKICAgICAsIG1fdGhpc1JlZ2lzdGVyKENhbGxGcmFtZTo6dGhpc0FyZ3VtZW50T2Zmc2V0KCkp
CkBAIC02MzYsOSArNjMzLDggQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9y
KFZNJiB2bSwgRXZhbE5vZGUqIGV2YWxOb2RlLCBVbmxpbmtlZEV2YWxDb2QKICAgICBwdXNoTGV4
aWNhbFNjb3BlKG1fc2NvcGVOb2RlLCBURFpDaGVja09wdGltaXphdGlvbjo6T3B0aW1pemUpOwog
fQogCi1CeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBNb2R1bGVQ
cm9ncmFtTm9kZSogbW9kdWxlUHJvZ3JhbU5vZGUsIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVC
bG9jayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUg
cHJvZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiBwYXJlbnRTY29wZVREWlZh
cmlhYmxlcykKK0J5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIE1v
ZHVsZVByb2dyYW1Ob2RlKiBtb2R1bGVQcm9ncmFtTm9kZSwgVW5saW5rZWRNb2R1bGVQcm9ncmFt
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIGNvbnN0IFZh
cmlhYmxlRW52aXJvbm1lbnQqIHBhcmVudFNjb3BlVERaVmFyaWFibGVzKQogICAgIDogbV9zaG91
bGRFbWl0RGVidWdIb29rcyhPcHRpb25zOjpmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9u
KCkgfHwgZGVidWdnZXJNb2RlID09IERlYnVnZ2VyT24pCi0gICAgLCBtX3Nob3VsZEVtaXRQcm9m
aWxlSG9va3MoT3B0aW9uczo6Zm9yY2VQcm9maWxlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IHBy
b2ZpbGVyTW9kZSA9PSBQcm9maWxlck9uKQogICAgICwgbV9zY29wZU5vZGUobW9kdWxlUHJvZ3Jh
bU5vZGUpCiAgICAgLCBtX2NvZGVCbG9jayh2bSwgY29kZUJsb2NrKQogICAgICwgbV90aGlzUmVn
aXN0ZXIoQ2FsbEZyYW1lOjp0aGlzQXJndW1lbnRPZmZzZXQoKSkKQEAgLTI4MzgsOSArMjgzNCw2
IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbChPcGNvZGVJRCBvcGNv
ZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpCiAgICAgQVNTRVJUKG9wY29kZUlEID09IG9wX2Nh
bGwgfHwgb3Bjb2RlSUQgPT0gb3BfY2FsbF9ldmFsIHx8IG9wY29kZUlEID09IG9wX3RhaWxfY2Fs
bCk7CiAgICAgQVNTRVJUKGZ1bmMtPnJlZkNvdW50KCkpOwogCi0gICAgaWYgKG1fc2hvdWxkRW1p
dFByb2ZpbGVIb29rcykKLSAgICAgICAgZW1pdE1vdmUoY2FsbEFyZ3VtZW50cy5wcm9maWxlSG9v
a1JlZ2lzdGVyKCksIGZ1bmMpOwotCiAgICAgLy8gR2VuZXJhdGUgY29kZSBmb3IgYXJndW1lbnRz
LgogICAgIHVuc2lnbmVkIGFyZ3VtZW50ID0gMDsKICAgICBpZiAoY2FsbEFyZ3VtZW50cy5hcmd1
bWVudHNOb2RlKCkpIHsKQEAgLTI4NTEsNyArMjg0NCw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2Rl
R2VuZXJhdG9yOjplbWl0Q2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBS
ZWdpCiAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYXJndW1lbnRSZWdpc3RlcjsKICAg
ICAgICAgICAgIGFyZ3VtZW50UmVnaXN0ZXIgPSBleHByZXNzaW9uLT5lbWl0Qnl0ZWNvZGUoKnRo
aXMsIGNhbGxBcmd1bWVudHMuYXJndW1lbnRSZWdpc3RlcigwKSk7CiAgICAgICAgICAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gdGhpc1JlZ2lzdGVyID0gZW1pdE1vdmUobmV3VGVtcG9yYXJ5KCksIGNh
bGxBcmd1bWVudHMudGhpc1JlZ2lzdGVyKCkpOwotICAgICAgICAgICAgcmV0dXJuIGVtaXRDYWxs
VmFyYXJncyhvcGNvZGVJRCA9PSBvcF90YWlsX2NhbGwgPyBvcF90YWlsX2NhbGxfdmFyYXJncyA6
IG9wX2NhbGxfdmFyYXJncywgZHN0LCBmdW5jLCBjYWxsQXJndW1lbnRzLnRoaXNSZWdpc3Rlcigp
LCBhcmd1bWVudFJlZ2lzdGVyLmdldCgpLCBuZXdUZW1wb3JhcnkoKSwgMCwgY2FsbEFyZ3VtZW50
cy5wcm9maWxlSG9va1JlZ2lzdGVyKCksIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7Cisg
ICAgICAgICAgICByZXR1cm4gZW1pdENhbGxWYXJhcmdzKG9wY29kZUlEID09IG9wX3RhaWxfY2Fs
bCA/IG9wX3RhaWxfY2FsbF92YXJhcmdzIDogb3BfY2FsbF92YXJhcmdzLCBkc3QsIGZ1bmMsIGNh
bGxBcmd1bWVudHMudGhpc1JlZ2lzdGVyKCksIGFyZ3VtZW50UmVnaXN0ZXIuZ2V0KCksIG5ld1Rl
bXBvcmFyeSgpLCAwLCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOwogICAgICAgICB9CiAg
ICAgICAgIGZvciAoOyBuOyBuID0gbi0+bV9uZXh0KQogICAgICAgICAgICAgZW1pdE5vZGUoY2Fs
bEFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVyKGFyZ3VtZW50KyspLCBuKTsKQEAgLTI4NjIsMTEg
KzI4NTUsNiBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGwoT3Bjb2Rl
SUQgb3Bjb2RlSUQsIFJlZ2lzdGVySUQqIGRzdCwgUmVnaQogICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsgKytpKQogICAgICAgICBjYWxsRnJhbWUu
YXBwZW5kKG5ld1RlbXBvcmFyeSgpKTsKIAotICAgIGlmIChtX3Nob3VsZEVtaXRQcm9maWxlSG9v
a3MpIHsKLSAgICAgICAgZW1pdE9wY29kZShvcF9wcm9maWxlX3dpbGxfY2FsbCk7Ci0gICAgICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZChjYWxsQXJndW1lbnRzLnByb2ZpbGVIb29rUmVnaXN0ZXIo
KS0+aW5kZXgoKSk7Ci0gICAgfQotCiAgICAgZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90LCBkaXZv
dFN0YXJ0LCBkaXZvdEVuZCk7CiAKICAgICBSZWZQdHI8TGFiZWw+IGRvbmUgPSBuZXdMYWJlbCgp
OwpAQCAtMjg4OSwzNyArMjg3NywyNiBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdENhbGwoT3Bjb2RlSUQgb3Bjb2RlSUQsIFJlZ2lzdGVySUQqIGRzdCwgUmVnaQogICAgIGlm
IChleHBlY3RlZEZ1bmN0aW9uICE9IE5vRXhwZWN0ZWRGdW5jdGlvbikKICAgICAgICAgZW1pdExh
YmVsKGRvbmUuZ2V0KCkpOwogCi0gICAgaWYgKG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcykgewot
ICAgICAgICBlbWl0T3Bjb2RlKG9wX3Byb2ZpbGVfZGlkX2NhbGwpOwotICAgICAgICBpbnN0cnVj
dGlvbnMoKS5hcHBlbmQoY2FsbEFyZ3VtZW50cy5wcm9maWxlSG9va1JlZ2lzdGVyKCktPmluZGV4
KCkpOwotICAgIH0KLQogICAgIHJldHVybiBkc3Q7CiB9CiAKLVJlZ2lzdGVySUQqIEJ5dGVjb2Rl
R2VuZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3MoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBm
dW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVn
aXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIFJl
Z2lzdGVySUQqIHByb2ZpbGVIb29rUmVnaXN0ZXIsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdEVuZCkKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbFZhcmFy
Z3MoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVn
aXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0
ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdEVuZCkKIHsKLSAgICByZXR1cm4gZW1pdENhbGxWYXJhcmdzKG9wX2NhbGxfdmFyYXJn
cywgZHN0LCBmdW5jLCB0aGlzUmVnaXN0ZXIsIGFyZ3VtZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIs
IGZpcnN0VmFyQXJnT2Zmc2V0LCBwcm9maWxlSG9va1JlZ2lzdGVyLCBkaXZvdCwgZGl2b3RTdGFy
dCwgZGl2b3RFbmQpOworICAgIHJldHVybiBlbWl0Q2FsbFZhcmFyZ3Mob3BfY2FsbF92YXJhcmdz
LCBkc3QsIGZ1bmMsIHRoaXNSZWdpc3RlciwgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdpc3Rlciwg
Zmlyc3RWYXJBcmdPZmZzZXQsIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7CiB9CiAKLVJl
Z2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlv
bihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdp
c3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3Rl
ciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgUmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tSZWdp
c3RlciwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQorUmVnaXN0ZXJJRCog
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsVmFyYXJnc0luVGFpbFBvc2l0aW9uKFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdp
c3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90
IGZpcnN0VmFyQXJnT2Zmc2V0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQp
CiB7Ci0gICAgcmV0dXJuIGVtaXRDYWxsVmFyYXJncyhtX2luVGFpbFBvc2l0aW9uID8gb3BfdGFp
bF9jYWxsX3ZhcmFyZ3MgOiBvcF9jYWxsX3ZhcmFyZ3MsIGRzdCwgZnVuYywgdGhpc1JlZ2lzdGVy
LCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyLCBmaXJzdFZhckFyZ09mZnNldCwgcHJvZmls
ZUhvb2tSZWdpc3RlciwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKKyAgICByZXR1cm4g
ZW1pdENhbGxWYXJhcmdzKG1faW5UYWlsUG9zaXRpb24gPyBvcF90YWlsX2NhbGxfdmFyYXJncyA6
IG9wX2NhbGxfdmFyYXJncywgZHN0LCBmdW5jLCB0aGlzUmVnaXN0ZXIsIGFyZ3VtZW50cywgZmly
c3RGcmVlUmVnaXN0ZXIsIGZpcnN0VmFyQXJnT2Zmc2V0LCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2
b3RFbmQpOwogfQogCi1SZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVj
dFZhcmFyZ3MoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0
aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVl
UmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIFJlZ2lzdGVySUQqIHByb2ZpbGVI
b29rUmVnaXN0ZXIsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKK1JlZ2lz
dGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q29uc3RydWN0VmFyYXJncyhSZWdpc3RlcklE
KiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0
ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBm
aXJzdFZhckFyZ09mZnNldCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQog
ewotICAgIHJldHVybiBlbWl0Q2FsbFZhcmFyZ3Mob3BfY29uc3RydWN0X3ZhcmFyZ3MsIGRzdCwg
ZnVuYywgdGhpc1JlZ2lzdGVyLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyLCBmaXJzdFZh
ckFyZ09mZnNldCwgcHJvZmlsZUhvb2tSZWdpc3RlciwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90
RW5kKTsKKyAgICByZXR1cm4gZW1pdENhbGxWYXJhcmdzKG9wX2NvbnN0cnVjdF92YXJhcmdzLCBk
c3QsIGZ1bmMsIHRoaXNSZWdpc3RlciwgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdpc3RlciwgZmly
c3RWYXJBcmdPZmZzZXQsIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7CiB9CiAgICAgCi1S
ZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzKE9wY29kZUlEIG9w
Y29kZSwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlz
UmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVn
aXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIFJlZ2lzdGVySUQqIHByb2ZpbGVIb29r
UmVnaXN0ZXIsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKK1JlZ2lzdGVy
SUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3MoT3Bjb2RlSUQgb3Bjb2RlLCBS
ZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3Rl
ciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3Rlciwg
aW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90RW5kKQogewotICAgIGlmIChtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MpIHsKLSAgICAgICAg
ZW1pdE1vdmUocHJvZmlsZUhvb2tSZWdpc3RlciwgZnVuYyk7Ci0gICAgICAgIGVtaXRPcGNvZGUo
b3BfcHJvZmlsZV93aWxsX2NhbGwpOwotICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQocHJv
ZmlsZUhvb2tSZWdpc3Rlci0+aW5kZXgoKSk7Ci0gICAgfQotICAgIAogICAgIGVtaXRFeHByZXNz
aW9uSW5mbyhkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOwogCiAgICAgLy8gRW1pdCBjYWxs
LgpAQCAtMjkzNCwxMCArMjkxMSw2IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0Q2FsbFZhcmFyZ3MoT3Bjb2RlSUQgb3Bjb2RlLCBSZWdpc3RlcklEKiBkc3QsCiAgICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKGZpcnN0VmFyQXJnT2Zmc2V0KTsKICAgICBpbnN0cnVjdGlvbnMo
KS5hcHBlbmQoYXJyYXlQcm9maWxlKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQocHJvZmls
ZSk7Ci0gICAgaWYgKG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcykgewotICAgICAgICBlbWl0T3Bj
b2RlKG9wX3Byb2ZpbGVfZGlkX2NhbGwpOwotICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQo
cHJvZmlsZUhvb2tSZWdpc3Rlci0+aW5kZXgoKSk7Ci0gICAgfQogICAgIHJldHVybiBkc3Q7CiB9
CiAKQEAgLTMwMTQsOSArMjk4Nyw2IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0Q29uc3RydWN0KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywKIHsKICAgICBB
U1NFUlQoZnVuYy0+cmVmQ291bnQoKSk7CiAKLSAgICBpZiAobV9zaG91bGRFbWl0UHJvZmlsZUhv
b2tzKQotICAgICAgICBlbWl0TW92ZShjYWxsQXJndW1lbnRzLnByb2ZpbGVIb29rUmVnaXN0ZXIo
KSwgZnVuYyk7Ci0KICAgICAvLyBHZW5lcmF0ZSBjb2RlIGZvciBhcmd1bWVudHMuCiAgICAgdW5z
aWduZWQgYXJndW1lbnQgPSAwOwogICAgIGlmIChBcmd1bWVudHNOb2RlKiBhcmd1bWVudHNOb2Rl
ID0gY2FsbEFyZ3VtZW50cy5hcmd1bWVudHNOb2RlKCkpIHsKQEAgLTMwMjcsMTggKzI5OTcsMTMg
QEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3QoUmVnaXN0ZXJJ
RCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLAogICAgICAgICAgICAgYXV0byBleHByZXNzaW9uID0g
c3RhdGljX2Nhc3Q8U3ByZWFkRXhwcmVzc2lvbk5vZGUqPihuLT5tX2V4cHIpLT5leHByZXNzaW9u
KCk7CiAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYXJndW1lbnRSZWdpc3RlcjsKICAg
ICAgICAgICAgIGFyZ3VtZW50UmVnaXN0ZXIgPSBleHByZXNzaW9uLT5lbWl0Qnl0ZWNvZGUoKnRo
aXMsIGNhbGxBcmd1bWVudHMuYXJndW1lbnRSZWdpc3RlcigwKSk7Ci0gICAgICAgICAgICByZXR1
cm4gZW1pdENvbnN0cnVjdFZhcmFyZ3MoZHN0LCBmdW5jLCBjYWxsQXJndW1lbnRzLnRoaXNSZWdp
c3RlcigpLCBhcmd1bWVudFJlZ2lzdGVyLmdldCgpLCBuZXdUZW1wb3JhcnkoKSwgMCwgY2FsbEFy
Z3VtZW50cy5wcm9maWxlSG9va1JlZ2lzdGVyKCksIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVu
ZCk7CisgICAgICAgICAgICByZXR1cm4gZW1pdENvbnN0cnVjdFZhcmFyZ3MoZHN0LCBmdW5jLCBj
YWxsQXJndW1lbnRzLnRoaXNSZWdpc3RlcigpLCBhcmd1bWVudFJlZ2lzdGVyLmdldCgpLCBuZXdU
ZW1wb3JhcnkoKSwgMCwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKICAgICAgICAgfQog
ICAgICAgICAKICAgICAgICAgZm9yIChBcmd1bWVudExpc3ROb2RlKiBuID0gYXJndW1lbnRzTm9k
ZS0+bV9saXN0Tm9kZTsgbjsgbiA9IG4tPm1fbmV4dCkKICAgICAgICAgICAgIGVtaXROb2RlKGNh
bGxBcmd1bWVudHMuYXJndW1lbnRSZWdpc3Rlcihhcmd1bWVudCsrKSwgbik7CiAgICAgfQogCi0g
ICAgaWYgKG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcykgewotICAgICAgICBlbWl0T3Bjb2RlKG9w
X3Byb2ZpbGVfd2lsbF9jYWxsKTsKLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGNhbGxB
cmd1bWVudHMucHJvZmlsZUhvb2tSZWdpc3RlcigpLT5pbmRleCgpKTsKLSAgICB9Ci0KICAgICAv
LyBSZXNlcnZlIHNwYWNlIGZvciBjYWxsIGZyYW1lLgogICAgIFZlY3RvcjxSZWZQdHI8UmVnaXN0
ZXJJRD4sIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUsIFVuc2FmZVZlY3Rvck92ZXJmbG93
PiBjYWxsRnJhbWU7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBKU1N0YWNrOjpDYWxsRnJhbWVI
ZWFkZXJTaXplOyArK2kpCkBAIC0zMDYzLDExICszMDI4LDYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNv
ZGVHZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3QoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBm
dW5jLAogICAgIGlmIChleHBlY3RlZEZ1bmN0aW9uICE9IE5vRXhwZWN0ZWRGdW5jdGlvbikKICAg
ICAgICAgZW1pdExhYmVsKGRvbmUuZ2V0KCkpOwogCi0gICAgaWYgKG1fc2hvdWxkRW1pdFByb2Zp
bGVIb29rcykgewotICAgICAgICBlbWl0T3Bjb2RlKG9wX3Byb2ZpbGVfZGlkX2NhbGwpOwotICAg
ICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoY2FsbEFyZ3VtZW50cy5wcm9maWxlSG9va1JlZ2lz
dGVyKCktPmluZGV4KCkpOwotICAgIH0KLQogICAgIHJldHVybiBkc3Q7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
aAppbmRleCA1ZTM4NDViLi5hODkyMWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC03NSwxMSArNzUsOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCogYXJndW1lbnRSZWdpc3Rlcih1
bnNpZ25lZCBpKSB7IHJldHVybiBtX2FyZ3ZbaSArIDFdLmdldCgpOyB9CiAgICAgICAgIHVuc2ln
bmVkIHN0YWNrT2Zmc2V0KCkgeyByZXR1cm4gLW1fYXJndlswXS0+aW5kZXgoKSArIEpTU3RhY2s6
OkNhbGxGcmFtZUhlYWRlclNpemU7IH0KICAgICAgICAgdW5zaWduZWQgYXJndW1lbnRDb3VudElu
Y2x1ZGluZ1RoaXMoKSB7IHJldHVybiBtX2FyZ3Yuc2l6ZSgpIC0gbV9wYWRkaW5nOyB9Ci0gICAg
ICAgIFJlZ2lzdGVySUQqIHByb2ZpbGVIb29rUmVnaXN0ZXIoKSB7IHJldHVybiBtX3Byb2ZpbGVI
b29rUmVnaXN0ZXIuZ2V0KCk7IH0KICAgICAgICAgQXJndW1lbnRzTm9kZSogYXJndW1lbnRzTm9k
ZSgpIHsgcmV0dXJuIG1fYXJndW1lbnRzTm9kZTsgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IG1fcHJvZmlsZUhvb2tSZWdpc3RlcjsKICAgICAgICAgQXJndW1l
bnRzTm9kZSogbV9hcmd1bWVudHNOb2RlOwogICAgICAgICBWZWN0b3I8UmVmUHRyPFJlZ2lzdGVy
SUQ+LCA4LCBVbnNhZmVWZWN0b3JPdmVyZmxvdz4gbV9hcmd2OwogICAgICAgICB1bnNpZ25lZCBt
X3BhZGRpbmc7CkBAIC0yNjksMTAgKzI2NywxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIHR5cGVkZWYgRGVjbGFyYXRpb25TdGFja3M6OkZ1bmN0aW9uU3RhY2sgRnVu
Y3Rpb25TdGFjazsKIAotICAgICAgICBCeXRlY29kZUdlbmVyYXRvcihWTSYsIFByb2dyYW1Ob2Rl
KiwgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUs
IGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKLSAgICAgICAgQnl0ZWNvZGVHZW5lcmF0b3Io
Vk0mLCBGdW5jdGlvbk5vZGUqLCBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiwgRGVidWdnZXJN
b2RlLCBQcm9maWxlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKLSAgICAgICAg
Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mLCBFdmFsTm9kZSosIFVubGlua2VkRXZhbENvZGVCbG9jayos
IERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7
Ci0gICAgICAgIEJ5dGVjb2RlR2VuZXJhdG9yKFZNJiwgTW9kdWxlUHJvZ3JhbU5vZGUqLCBVbmxp
bmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqLCBEZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSwg
Y29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOworICAgICAgICBCeXRlY29kZUdlbmVyYXRvcihW
TSYsIFByb2dyYW1Ob2RlKiwgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiwgRGVidWdnZXJNb2Rl
LCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7CisgICAgICAgIEJ5dGVjb2RlR2VuZXJhdG9y
KFZNJiwgRnVuY3Rpb25Ob2RlKiwgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayosIERlYnVnZ2Vy
TW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOworICAgICAgICBCeXRlY29kZUdlbmVy
YXRvcihWTSYsIEV2YWxOb2RlKiwgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiwgRGVidWdnZXJNb2Rl
LCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7CisgICAgICAgIEJ5dGVjb2RlR2VuZXJhdG9y
KFZNJiwgTW9kdWxlUHJvZ3JhbU5vZGUqLCBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sq
LCBEZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKIAogICAgICAgICB+
Qnl0ZWNvZGVHZW5lcmF0b3IoKTsKICAgICAgICAgCkBAIC01NjEsOCArNTU5LDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRDYWxsKFJlZ2lzdGVySUQqIGRzdCwg
UmVnaXN0ZXJJRCogZnVuYywgRXhwZWN0ZWRGdW5jdGlvbiwgQ2FsbEFyZ3VtZW50cyYsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVt
aXRDYWxsSW5UYWlsUG9zaXRpb24oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBF
eHBlY3RlZEZ1bmN0aW9uLCBDYWxsQXJndW1lbnRzJiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90RW5kKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENhbGxFdmFsKFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgQ2FsbEFyZ3VtZW50cyYsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRDYWxsVmFy
YXJncyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNS
ZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdp
c3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgUmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tS
ZWdpc3RlciwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKLSAgICAgICAg
UmVnaXN0ZXJJRCogZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRpb24oUmVnaXN0ZXJJRCogZHN0
LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQq
IGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RW
YXJBcmdPZmZzZXQsIFJlZ2lzdGVySUQqIHByb2ZpbGVIb29rUmVnaXN0ZXIsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRDYWxs
VmFyYXJncyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRo
aXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVS
ZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90RW5kKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENhbGxWYXJhcmdzSW5U
YWlsUG9zaXRpb24oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklE
KiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RG
cmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICAgICAgZW51bSBQcm9wZXJ0eURlc2NyaXB0b3JP
cHRpb24gewogICAgICAgICAgICAgUHJvcGVydHlDb25maWd1cmFibGUgPSAxLApAQCAtNjg3LDcg
KzY4NSw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIENvZGVUeXBlIGNvZGVUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9jb2RlVHlwZTsgfQogCi0gICAgICAgIGJvb2wgc2hvdWxkRW1pdFBy
b2ZpbGVIb29rcygpIHsgcmV0dXJuIG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rczsgfQogICAgICAg
ICBib29sIHNob3VsZEVtaXREZWJ1Z0hvb2tzKCkgeyByZXR1cm4gbV9zaG91bGRFbWl0RGVidWdI
b29rczsgfQogICAgICAgICAKICAgICAgICAgYm9vbCBpc1N0cmljdE1vZGUoKSBjb25zdCB7IHJl
dHVybiBtX2NvZGVCbG9jay0+aXNTdHJpY3RNb2RlKCk7IH0KQEAgLTgyNCw4ICs4MjEsOCBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lkIGdldFZhcmlhYmxlc1VuZGVyVERaKFZhcmlh
YmxlRW52aXJvbm1lbnQmKTsKIAotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q29uc3RydWN0VmFy
YXJncyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNS
ZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdp
c3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgUmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tS
ZWdpc3RlciwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKLSAgICAgICAg
UmVnaXN0ZXJJRCogZW1pdENhbGxWYXJhcmdzKE9wY29kZUlELCBSZWdpc3RlcklEKiBkc3QsIFJl
Z2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJn
dW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFy
Z09mZnNldCwgUmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tSZWdpc3RlciwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENvbnN0cnVj
dFZhcmFyZ3MoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0
aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVl
UmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdEVuZCk7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRDYWxsVmFyYXJncyhP
cGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0
aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVl
UmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICAgICAgdm9pZCBpbml0aWFsaXplUGFyYW1ldGVycyhG
dW5jdGlvblBhcmFtZXRlcnMmKTsKICAgICAgICAgdm9pZCBpbml0aWFsaXplVmFyTGV4aWNhbEVu
dmlyb25tZW50KGludCBzeW1ib2xUYWJsZUNvbnN0YW50SW5kZXgpOwpAQCAtODQ0LDcgKzg0MSw2
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBWZWN0b3I8VW5saW5rZWRJbnN0cnVjdGlvbiwg
MCwgVW5zYWZlVmVjdG9yT3ZlcmZsb3c+IG1faW5zdHJ1Y3Rpb25zOwogCiAgICAgICAgIGJvb2wg
bV9zaG91bGRFbWl0RGVidWdIb29rczsKLSAgICAgICAgYm9vbCBtX3Nob3VsZEVtaXRQcm9maWxl
SG9va3M7CiAKICAgICAgICAgc3RydWN0IFN5bWJvbFRhYmxlU3RhY2tFbnRyeSB7CiAgICAgICAg
ICAgICBTdHJvbmc8U3ltYm9sVGFibGU+IG1fc3ltYm9sVGFibGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggYTM5MDM3
MS4uYzcyYjY4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtNjgwLDkgKzY4MCw2IEBAIENhbGxBcmd1bWVudHM6OkNh
bGxBcmd1bWVudHMoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgQXJndW1lbnRzTm9kZSog
YXJndW1lCiAgICAgOiBtX2FyZ3VtZW50c05vZGUoYXJndW1lbnRzTm9kZSkKICAgICAsIG1fcGFk
ZGluZygwKQogewotICAgIGlmIChnZW5lcmF0b3Iuc2hvdWxkRW1pdFByb2ZpbGVIb29rcygpKQot
ICAgICAgICBtX3Byb2ZpbGVIb29rUmVnaXN0ZXIgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7
Ci0KICAgICBzaXplX3QgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPSAxICsgYWRkaXRpb25h
bEFyZ3VtZW50czsgLy8gJ3RoaXMnIHJlZ2lzdGVyLgogICAgIGlmIChhcmd1bWVudHNOb2RlKSB7
CiAgICAgICAgIGZvciAoQXJndW1lbnRMaXN0Tm9kZSogbm9kZSA9IGFyZ3VtZW50c05vZGUtPm1f
bGlzdE5vZGU7IG5vZGU7IG5vZGUgPSBub2RlLT5tX25leHQpCkBAIC05MjIsMTYgKzkxOSwxMyBA
QCBSZWdpc3RlcklEKiBDYWxsRnVuY3Rpb25DYWxsRG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsCiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJldHVyblZh
bHVlID0gZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KTsKICAgICB7CiAgICAgICAgIGlm
IChtX2FyZ3MtPm1fbGlzdE5vZGUgJiYgbV9hcmdzLT5tX2xpc3ROb2RlLT5tX2V4cHIgJiYgbV9h
cmdzLT5tX2xpc3ROb2RlLT5tX2V4cHItPmlzU3ByZWFkRXhwcmVzc2lvbigpKSB7Ci0gICAgICAg
ICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvZmlsZUhvb2tSZWdpc3RlcjsKLSAgICAgICAgICAg
IGlmIChnZW5lcmF0b3Iuc2hvdWxkRW1pdFByb2ZpbGVIb29rcygpKQotICAgICAgICAgICAgICAg
IHByb2ZpbGVIb29rUmVnaXN0ZXIgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CiAgICAgICAg
ICAgICBTcHJlYWRFeHByZXNzaW9uTm9kZSogc3ByZWFkID0gc3RhdGljX2Nhc3Q8U3ByZWFkRXhw
cmVzc2lvbk5vZGUqPihtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fZXhwcik7CiAgICAgICAgICAgICBF
eHByZXNzaW9uTm9kZSogc3ViamVjdCA9IHNwcmVhZC0+ZXhwcmVzc2lvbigpOwogICAgICAgICAg
ICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGFyZ3VtZW50c1JlZ2lzdGVyOwogICAgICAgICAgICAgYXJn
dW1lbnRzUmVnaXN0ZXIgPSBnZW5lcmF0b3IuZW1pdE5vZGUoc3ViamVjdCk7CiAgICAgICAgICAg
ICBnZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKHNwcmVhZC0+ZGl2b3QoKSwgc3ByZWFkLT5k
aXZvdFN0YXJ0KCksIHNwcmVhZC0+ZGl2b3RFbmQoKSk7CiAgICAgICAgICAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gdGhpc1JlZ2lzdGVyID0gZ2VuZXJhdG9yLmVtaXRHZXRCeVZhbChnZW5lcmF0b3Iu
bmV3VGVtcG9yYXJ5KCksIGFyZ3VtZW50c1JlZ2lzdGVyLmdldCgpLCBnZW5lcmF0b3IuZW1pdExv
YWQoMCwganNOdW1iZXIoMCkpKTsKLSAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0Q2FsbFZhcmFy
Z3NJblRhaWxQb3NpdGlvbihyZXR1cm5WYWx1ZS5nZXQoKSwgYmFzZS5nZXQoKSwgdGhpc1JlZ2lz
dGVyLmdldCgpLCBhcmd1bWVudHNSZWdpc3Rlci5nZXQoKSwgZ2VuZXJhdG9yLm5ld1RlbXBvcmFy
eSgpLCAxLCBwcm9maWxlSG9va1JlZ2lzdGVyLmdldCgpLCBkaXZvdCgpLCBkaXZvdFN0YXJ0KCks
IGRpdm90RW5kKCkpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRDYWxsVmFyYXJnc0luVGFp
bFBvc2l0aW9uKHJldHVyblZhbHVlLmdldCgpLCBiYXNlLmdldCgpLCB0aGlzUmVnaXN0ZXIuZ2V0
KCksIGFyZ3VtZW50c1JlZ2lzdGVyLmdldCgpLCBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIDEs
IGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAo
bV9hcmdzLT5tX2xpc3ROb2RlICYmIG1fYXJncy0+bV9saXN0Tm9kZS0+bV9leHByKSB7CiAgICAg
ICAgICAgICBBcmd1bWVudExpc3ROb2RlKiBvbGRMaXN0ID0gbV9hcmdzLT5tX2xpc3ROb2RlOwog
ICAgICAgICAgICAgbV9hcmdzLT5tX2xpc3ROb2RlID0gbV9hcmdzLT5tX2xpc3ROb2RlLT5tX25l
eHQ7CkBAIC05OTEsOSArOTg1LDYgQEAgUmVnaXN0ZXJJRCogQXBwbHlGdW5jdGlvbkNhbGxEb3RO
b2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwKICAgICAgICAg
ICAgIEFyZ3VtZW50TGlzdE5vZGUqIG9sZExpc3QgPSBtX2FyZ3MtPm1fbGlzdE5vZGU7CiAgICAg
ICAgICAgICBpZiAobV9hcmdzLT5tX2xpc3ROb2RlLT5tX2V4cHItPmlzU3ByZWFkRXhwcmVzc2lv
bigpKSB7CiAgICAgICAgICAgICAgICAgU3ByZWFkRXhwcmVzc2lvbk5vZGUqIHNwcmVhZCA9IHN0
YXRpY19jYXN0PFNwcmVhZEV4cHJlc3Npb25Ob2RlKj4obV9hcmdzLT5tX2xpc3ROb2RlLT5tX2V4
cHIpOwotICAgICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9maWxlSG9va1JlZ2lz
dGVyOwotICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0b3Iuc2hvdWxkRW1pdFByb2ZpbGVIb29r
cygpKQotICAgICAgICAgICAgICAgICAgICBwcm9maWxlSG9va1JlZ2lzdGVyID0gZ2VuZXJhdG9y
Lm5ld1RlbXBvcmFyeSgpOwogICAgICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZWFs
RnVuY3Rpb24gPSBnZW5lcmF0b3IuZW1pdE1vdmUoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBi
YXNlLmdldCgpKTsKICAgICAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaW5kZXggPSBn
ZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBqc051bWJlcigwKSk7
CiAgICAgICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRoaXNSZWdpc3RlciA9IGdlbmVy
YXRvci5lbWl0TG9hZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGpzVW5kZWZpbmVkKCkpOwpA
QCAtMTAxNyw3ICsxMDA4LDcgQEAgUmVnaXN0ZXJJRCogQXBwbHlGdW5jdGlvbkNhbGxEb3ROb2Rl
OjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwKICAgICAgICAgICAg
ICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChlbmQuZ2V0KCkpOwogICAgICAgICAgICAgICAg
IH07CiAgICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRFbnVtZXJhdGlvbih0aGlzLCBzcHJl
YWQtPmV4cHJlc3Npb24oKSwgZXh0cmFjdG9yKTsKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3Iu
ZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRpb24ocmV0dXJuVmFsdWUuZ2V0KCksIHJlYWxGdW5j
dGlvbi5nZXQoKSwgdGhpc1JlZ2lzdGVyLmdldCgpLCBhcmd1bWVudHNSZWdpc3Rlci5nZXQoKSwg
Z2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAwLCBwcm9maWxlSG9va1JlZ2lzdGVyLmdldCgpLCBk
aXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgICAgICAgICAgICAgIGdlbmVy
YXRvci5lbWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlvbihyZXR1cm5WYWx1ZS5nZXQoKSwgcmVh
bEZ1bmN0aW9uLmdldCgpLCB0aGlzUmVnaXN0ZXIuZ2V0KCksIGFyZ3VtZW50c1JlZ2lzdGVyLmdl
dCgpLCBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIDAsIGRpdm90KCksIGRpdm90U3RhcnQoKSwg
ZGl2b3RFbmQoKSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKG1fYXJncy0+bV9saXN0Tm9kZS0+
bV9uZXh0KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKG1fYXJncy0+bV9saXN0Tm9kZS0+bV9u
ZXh0LT5tX2V4cHItPmlzU2ltcGxlQXJyYXkoKSk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFt
X2FyZ3MtPm1fbGlzdE5vZGUtPm1fbmV4dC0+bV9uZXh0KTsKQEAgLTEwNDIsOSArMTAzMyw2IEBA
IFJlZ2lzdGVySUQqIEFwcGx5RnVuY3Rpb25DYWxsRG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVj
b2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAg
ICBBU1NFUlQobV9hcmdzLT5tX2xpc3ROb2RlICYmIG1fYXJncy0+bV9saXN0Tm9kZS0+bV9uZXh0
KTsKLSAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb2ZpbGVIb29rUmVnaXN0ZXI7Ci0gICAg
ICAgIGlmIChnZW5lcmF0b3Iuc2hvdWxkRW1pdFByb2ZpbGVIb29rcygpKQotICAgICAgICAgICAg
cHJvZmlsZUhvb2tSZWdpc3RlciA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKICAgICAgICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IHJlYWxGdW5jdGlvbiA9IGdlbmVyYXRvci5lbWl0TW92ZShnZW5l
cmF0b3IudGVtcERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCkpOwogICAgICAgICBSZWZQdHI8
UmVnaXN0ZXJJRD4gdGhpc1JlZ2lzdGVyID0gZ2VuZXJhdG9yLmVtaXROb2RlKG1fYXJncy0+bV9s
aXN0Tm9kZS0+bV9leHByKTsKICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGFyZ3NSZWdpc3Rl
cjsKQEAgLTEwNTYsNyArMTA0NCw3IEBAIFJlZ2lzdGVySUQqIEFwcGx5RnVuY3Rpb25DYWxsRG90
Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsCiAgICAgICAg
IHdoaWxlICgoYXJncyA9IGFyZ3MtPm1fbmV4dCkpCiAgICAgICAgICAgICBnZW5lcmF0b3IuZW1p
dE5vZGUoYXJncy0+bV9leHByKTsKIAotICAgICAgICBnZW5lcmF0b3IuZW1pdENhbGxWYXJhcmdz
SW5UYWlsUG9zaXRpb24ocmV0dXJuVmFsdWUuZ2V0KCksIHJlYWxGdW5jdGlvbi5nZXQoKSwgdGhp
c1JlZ2lzdGVyLmdldCgpLCBhcmdzUmVnaXN0ZXIuZ2V0KCksIGdlbmVyYXRvci5uZXdUZW1wb3Jh
cnkoKSwgMCwgcHJvZmlsZUhvb2tSZWdpc3Rlci5nZXQoKSwgZGl2b3QoKSwgZGl2b3RTdGFydCgp
LCBkaXZvdEVuZCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRDYWxsVmFyYXJnc0luVGFpbFBv
c2l0aW9uKHJldHVyblZhbHVlLmdldCgpLCByZWFsRnVuY3Rpb24uZ2V0KCksIHRoaXNSZWdpc3Rl
ci5nZXQoKSwgYXJnc1JlZ2lzdGVyLmdldCgpLCBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIDAs
IGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CiAgICAgfQogICAgIGlmIChlbWl0
Q2FsbENoZWNrKSB7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcChlbmQuZ2V0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oCmluZGV4IDllZWM2M2MuLmNmYzk1MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgK
QEAgLTI1MjQsOCArMjUyNCw2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0
YXRlVHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGJy
ZWFrOwogCiAgICAgY2FzZSBCcmVha3BvaW50OgotICAgIGNhc2UgUHJvZmlsZVdpbGxDYWxsOgot
ICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgY2FzZSBQcm9maWxlVHlwZToKICAgICBjYXNl
IFByb2ZpbGVDb250cm9sRmxvdzoKICAgICBjYXNlIFBoYW50b206CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDM2NDRhMmYuLjViNDFm
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCkBAIC0zNDkzLDE2ICszNDkzLDYgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9j
ayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIGFkZFRvR3JhcGgoQnJlYWtwb2ludCk7CiAg
ICAgICAgICAgICBORVhUX09QQ09ERShvcF9kZWJ1Zyk7CiAKLSAgICAgICAgY2FzZSBvcF9wcm9m
aWxlX3dpbGxfY2FsbDogewotICAgICAgICAgICAgYWRkVG9HcmFwaChQcm9maWxlV2lsbENhbGwp
OwotICAgICAgICAgICAgTkVYVF9PUENPREUob3BfcHJvZmlsZV93aWxsX2NhbGwpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgY2FzZSBvcF9wcm9maWxlX2RpZF9jYWxsOiB7Ci0gICAgICAgICAgICBh
ZGRUb0dyYXBoKFByb2ZpbGVEaWRDYWxsKTsKLSAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3By
b2ZpbGVfZGlkX2NhbGwpOwotICAgICAgICB9Ci0KICAgICAgICAgY2FzZSBvcF9tb3Y6IHsKICAg
ICAgICAgICAgIE5vZGUqIG9wID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kKSk7CiAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBvcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggZDEwMGQ5Ny4uNjUxNzBiNSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTIzLDgg
KzEyMyw2IEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwoT3Bjb2RlSUQgb3Bjb2Rl
SUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBJbnN0cnVjCiAgICAgY2FzZSBvcF9tb2Q6CiAgICAg
Y2FzZSBvcF9kaXY6CiAgICAgY2FzZSBvcF9kZWJ1ZzoKLSAgICBjYXNlIG9wX3Byb2ZpbGVfd2ls
bF9jYWxsOgotICAgIGNhc2Ugb3BfcHJvZmlsZV9kaWRfY2FsbDoKICAgICBjYXNlIG9wX3Byb2Zp
bGVfdHlwZToKICAgICBjYXNlIG9wX3Byb2ZpbGVfY29udHJvbF9mbG93OgogICAgIGNhc2Ugb3Bf
bW92OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXpl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCAzNDNh
NmRlLi4zM2I4YmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ns
b2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aApAQCAtMzM4LDggKzMzOCw2IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUq
IG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgY2FzZSBD
aGVja1RpZXJVcFdpdGhOZXN0ZWRUcmlnZ2VyQW5kT1NSRW50ZXI6CiAgICAgY2FzZSBMb29wSGlu
dDoKICAgICBjYXNlIEJyZWFrcG9pbnQ6Ci0gICAgY2FzZSBQcm9maWxlV2lsbENhbGw6Ci0gICAg
Y2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgIGNhc2UgUHJv
ZmlsZUNvbnRyb2xGbG93OgogICAgIGNhc2UgU3RvcmVCYXJyaWVyOgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDcwMmRhNWIuLjYyMDg4YzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTEzOCw4ICsxMzgsNiBAQCBib29sIGRv
ZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBUYWlsQ2FsbEZvcndhcmRW
YXJhcmdzOgogICAgIGNhc2UgVGFpbENhbGxGb3J3YXJkVmFyYXJnc0lubGluZWRDYWxsZXI6CiAg
ICAgY2FzZSBCcmVha3BvaW50OgotICAgIGNhc2UgUHJvZmlsZVdpbGxDYWxsOgotICAgIGNhc2Ug
UHJvZmlsZURpZENhbGw6CiAgICAgY2FzZSBQcm9maWxlVHlwZToKICAgICBjYXNlIFByb2ZpbGVD
b250cm9sRmxvdzoKICAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggYzlkNWFiZi4uOTcwMjFlYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xNDYz
LDggKzE0NjMsNiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIE5ld0FycmF5QnVmZmVyOgogICAg
ICAgICBjYXNlIE5ld1JlZ2V4cDoKICAgICAgICAgY2FzZSBCcmVha3BvaW50OgotICAgICAgICBj
YXNlIFByb2ZpbGVXaWxsQ2FsbDoKLSAgICAgICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICAg
ICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICAgICAgY2FzZSBJc0Jvb2xlYW46CiAgICAgICAgIGNh
c2UgSXNOdW1iZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXgg
ZGRkMGI5Ny4uNjVmODM5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUu
aApAQCAtMjc5LDggKzI3OSw2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAg
ICBcCiAgICAgLyogTm9kZXMgZm9yIG1pc2Mgb3BlcmF0aW9ucy4gKi9cCiAgICAgbWFjcm8oQnJl
YWtwb2ludCwgTm9kZU11c3RHZW5lcmF0ZSkgXAotICAgIG1hY3JvKFByb2ZpbGVXaWxsQ2FsbCwg
Tm9kZU11c3RHZW5lcmF0ZSkgXAotICAgIG1hY3JvKFByb2ZpbGVEaWRDYWxsLCBOb2RlTXVzdEdl
bmVyYXRlKSBcCiAgICAgbWFjcm8oT3ZlcnJpZGVzSGFzSW5zdGFuY2UsIE5vZGVNdXN0R2VuZXJh
dGUgfCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKEluc3RhbmNlT2YsIE5vZGVSZXN1
bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSW5zdGFuY2VPZkN1c3RvbSwgTm9kZU11c3RHZW5lcmF0
ZSB8IE5vZGVSZXN1bHRCb29sZWFuKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmluZGV4IDU3OTk4
Y2YuLjBhNjZiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJl
ZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC02ODksOCArNjg5LDYgQEAg
cHJpdmF0ZToKICAgICAgICAgY2FzZSBCcmFuY2g6CiAgICAgICAgIGNhc2UgU3dpdGNoOgogICAg
ICAgICBjYXNlIEJyZWFrcG9pbnQ6Ci0gICAgICAgIGNhc2UgUHJvZmlsZVdpbGxDYWxsOgotICAg
ICAgICBjYXNlIFByb2ZpbGVEaWRDYWxsOgogICAgICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAg
ICAgICBjYXNlIFByb2ZpbGVDb250cm9sRmxvdzoKICAgICAgICAgY2FzZSBUaHJvd1JlZmVyZW5j
ZUVycm9yOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9F
eGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApp
bmRleCAyMzBlZmVkLi5kMTE0MzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NhZmVUb0V4ZWN1dGUuaApAQCAtMjM4LDggKzIzOCw2IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShB
YnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBj
YXNlIE5ld0FycmF5QnVmZmVyOgogICAgIGNhc2UgTmV3UmVnZXhwOgogICAgIGNhc2UgQnJlYWtw
b2ludDoKLSAgICBjYXNlIFByb2ZpbGVXaWxsQ2FsbDoKLSAgICBjYXNlIFByb2ZpbGVEaWRDYWxs
OgogICAgIGNhc2UgUHJvZmlsZVR5cGU6CiAgICAgY2FzZSBQcm9maWxlQ29udHJvbEZsb3c6CiAg
ICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCAxMmViNTA0Li43NDQ1NDI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAKQEAgLTQ4MDcsOCArNDgwNyw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEJyZWFrcG9pbnQ6
Ci0gICAgY2FzZSBQcm9maWxlV2lsbENhbGw6Ci0gICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAg
ICBjYXNlIFBoYW50b21Mb2NhbDoKICAgICBjYXNlIExvb3BIaW50OgogICAgICAgICAvLyBUaGlz
IGlzIGEgbm8tb3AuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAppbmRleCAxNDAzMTFlLi5hZWI5ZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTQ0NjcsOCArNDQ2
Nyw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAg
YnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgQnJlYWtwb2ludDoKLSAgICBjYXNlIFByb2ZpbGVX
aWxsQ2FsbDoKLSAgICBjYXNlIFByb2ZpbGVEaWRDYWxsOgogICAgIGNhc2UgUGhhbnRvbUxvY2Fs
OgogICAgIGNhc2UgTG9vcEhpbnQ6CiAgICAgICAgIC8vIFRoaXMgaXMgYSBuby1vcC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNl
LmNwcAppbmRleCAyN2VjOGExLi5iNGQ4N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCkBAIC0zNiw3ICszNiw2
IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5o
IgogI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCi0jaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIu
aCIKICNpbmNsdWRlICJTY3JpcHRGdW5jdGlvbkNhbGwuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIApAQCAtNzEsMTcgKzcwLDEzIEBAIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlw
dE9iamVjdCYgSW5qZWN0ZWRTY3JpcHRCYXNlOjppbmplY3RlZFNjcmlwdE9iamVjdCgpIGNvbnN0
CiAKIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIEluamVjdGVkU2NyaXB0QmFzZTo6Y2FsbEZ1bmN0
aW9uV2l0aEV2YWxFbmFibGVkKERlcHJlY2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCYgZnVuY3Rp
b24sIGJvb2wmIGhhZEV4Y2VwdGlvbikgY29uc3QKIHsKLSAgICBKU0M6OkV4ZWNTdGF0ZSogc2Ny
aXB0U3RhdGUgPSBtX2luamVjdGVkU2NyaXB0T2JqZWN0LnNjcmlwdFN0YXRlKCk7Ci0gICAgSlND
OjpMZWdhY3lQcm9maWxlcjo6cHJvZmlsZXIoKS0+c3VzcGVuZFByb2ZpbGluZyhzY3JpcHRTdGF0
ZSk7Ci0KICAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSByZXN1bHRWYWx1ZTsKICAgICB7Cisg
ICAgICAgIEpTQzo6RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSA9IG1faW5qZWN0ZWRTY3JpcHRPYmpl
Y3Quc2NyaXB0U3RhdGUoKTsKICAgICAgICAgSlNDOjpEZWJ1Z2dlckV2YWxFbmFibGVyIGV2YWxF
bmFibGVyKHNjcmlwdFN0YXRlKTsKICAgICAgICAgcmVzdWx0VmFsdWUgPSBmdW5jdGlvbi5jYWxs
KGhhZEV4Y2VwdGlvbik7CiAgICAgfQogCi0gICAgSlNDOjpMZWdhY3lQcm9maWxlcjo6cHJvZmls
ZXIoKS0+dW5zdXNwZW5kUHJvZmlsaW5nKHNjcmlwdFN0YXRlKTsKLQogICAgIHJldHVybiByZXN1
bHRWYWx1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9wcm90b2NvbC9UaW1lbGluZS5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9wcm90b2NvbC9UaW1lbGluZS5qc29uCmluZGV4IDNhNTUwY2IuLmM5ZjBjMmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNv
bgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1RpbWVsaW5l
Lmpzb24KQEAgLTQwLDQwICs0MCw2IEBACiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjaGls
ZHJlbiIsICJ0eXBlIjogImFycmF5IiwgIm9wdGlvbmFsIjogdHJ1ZSwgIml0ZW1zIjogeyAiJHJl
ZiI6ICJUaW1lbGluZUV2ZW50IiB9LCAiZGVzY3JpcHRpb24iOiAiTmVzdGVkIHJlY29yZHMuIiB9
CiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRpbWVsaW5lIHJl
Y29yZCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVjb3JkZWQgYWN0aXZpdHkuIgot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiQ1BVUHJvZmlsZU5vZGVB
Z2dyZWdhdGVDYWxsSW5mbyIsCi0gICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkFnZ3JlZ2F0ZSBDUFUgUHJvZmlsZSBjYWxsIGluZm8uIEhv
bGRzIHRpbWUgaW5mb3JtYXRpb24gZm9yIGFsbCB0aGUgY2FsbHMgdGhhdCBoYXBwZW5lZCBvbiBh
IG5vZGUuIiwKLSAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiY2FsbENvdW50IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRv
dGFsIG51bWJlciBvZiBjYWxscy4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzdGFy
dFRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnQgdGltZSBmb3Ig
dGhlIGZpcnN0IGNhbGwuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5kVGltZSIs
ICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJFbmQgdGltZSBmb3IgdGhlIGxhc3Qg
Y2FsbC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0b3RhbFRpbWUiLCAidHlwZSI6
ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiVG90YWwgZXhlY3V0aW9uIHRpbWUgZm9yIGFsbCBj
YWxscyBjb21iaW5lZC4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewot
ICAgICAgICAgICAgImlkIjogIkNQVVByb2ZpbGVOb2RlIiwKLSAgICAgICAgICAgICJ0eXBlIjog
Im9iamVjdCIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ1BVIFByb2ZpbGUgbm9kZS4g
SG9sZHMgY2FsbHNpdGUgaW5mb3JtYXRpb24sIGV4ZWN1dGlvbiBzdGF0aXN0aWNzIGFuZCBjaGls
ZCBub2Rlcy4iLAotICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJpZCIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiVW5pcXVl
IGlkZW50aWZpZXIgZm9yIHRoaXMgY2FsbCBzaXRlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImNhbGxJbmZvIiwgIiRyZWYiOiAiQ1BVUHJvZmlsZU5vZGVBZ2dyZWdhdGVDYWxsSW5m
byIsICJkZXNjcmlwdGlvbiI6ICJBZ2dyZWdhdGUgaW5mbyBhYm91dCBhbGwgdGhlIGNhbGxzIHRo
YXQgbWFraW5nIHVwIHRoaXMgbm9kZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJm
dW5jdGlvbk5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiRnVuY3Rpb24gbmFtZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1
cmwiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
VVJMLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxpbmVOdW1iZXIiLCAidHlwZSI6
ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkxpbmUgbnVtYmVy
LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbHVtbk51bWJlciIsICJ0eXBlIjog
ImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29sdW1uIG51bWJl
ci4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjaGlsZHJlbiIsICJ0eXBlIjogImFy
cmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDUFVQcm9maWxlTm9kZSIgfSwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNoaWxkIG5vZGVzLiIgfQotICAgICAgICAgICAgXQotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiQ1BVUHJvZmlsZSIsCi0gICAg
ICAgICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlBy
b2ZpbGUuIiwKLSAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicm9vdE5vZGVzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjog
IkNQVVByb2ZpbGVOb2RlIiB9LCAiZGVzY3JpcHRpb24iOiAiVG9wIGxldmVsIG5vZGVzIGluIHRo
ZSBzdGFjay4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZGxlVGltZSIsICJ0eXBl
IjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfQotICAgICAgICAgICAgXQogICAgICAgICB9
CiAgICAgXSwKICAgICAiY29tbWFuZHMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCA3MTUxYmM2Li4wNGZkOGNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAK
QEAgLTU0LDcgKzU0LDYgQEAKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgogI2luY2x1ZGUgIkxM
SW50Q0xvb3AuaCIKICNpbmNsdWRlICJMTEludFRodW5rcy5oIgotI2luY2x1ZGUgIkxlZ2FjeVBy
b2ZpbGVyLmgiCiAjaW5jbHVkZSAiTGl0ZXJhbFBhcnNlci5oIgogI2luY2x1ZGUgIk9iamVjdFBy
b3RvdHlwZS5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgpAQCAtNjY3LDcgKzY2Niw2IEBAIHB1Ymxp
YzoKICAgICBTdGFja1Zpc2l0b3I6OlN0YXR1cyBvcGVyYXRvcigpKFN0YWNrVmlzaXRvciYgdmlz
aXRvcikKICAgICB7CiAgICAgICAgIHZpc2l0b3IudW53aW5kVG9NYWNoaW5lQ29kZUJsb2NrRnJh
bWUoKTsKLSAgICAgICAgVk0mIHZtID0gbV9jYWxsRnJhbWUtPnZtKCk7CiAgICAgICAgIG1fY2Fs
bEZyYW1lID0gdmlzaXRvci0+Y2FsbEZyYW1lKCk7CiAgICAgICAgIG1fY29kZUJsb2NrID0gdmlz
aXRvci0+Y29kZUJsb2NrKCk7CiAKQEAgLTY4NCw5ICs2ODIsNiBAQCBwdWJsaWM6CiAKICAgICAg
ICAgYm9vbCBzaG91bGRTdG9wVW53aW5kaW5nID0gdmlzaXRvci0+Y2FsbGVySXNWTUVudHJ5RnJh
bWUoKTsKICAgICAgICAgaWYgKHNob3VsZFN0b3BVbndpbmRpbmcpIHsKLSAgICAgICAgICAgIGlm
IChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAg
ICAgICAgICAgICBwcm9maWxlci0+ZXhjZXB0aW9uVW53aW5kKG1fY2FsbEZyYW1lKTsKLQogICAg
ICAgICAgICAgY29weUNhbGxlZVNhdmVzVG9WTUNhbGxlZVNhdmVzQnVmZmVyKHZpc2l0b3IpOwog
CiAgICAgICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9yOjpEb25lOwpAQCAtOTYyLDkgKzk1Nyw2
IEBAIGZhaWxlZEpTT05QOgogICAgIFByb3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1lOwogICAg
IHByb3RvQ2FsbEZyYW1lLmluaXQoY29kZUJsb2NrLCBKU0NhbGxlZTo6Y3JlYXRlKHZtLCBzY29w
ZS0+Z2xvYmFsT2JqZWN0KCksIHNjb3BlKSwgdGhpc09iaiwgMSk7CiAKLSAgICBpZiAoTGVnYWN5
UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2Zp
bGVyLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIHByb2dyYW0tPnNvdXJjZVVSTCgpLCBwcm9ncmFt
LT5maXJzdExpbmUoKSwgcHJvZ3JhbS0+c3RhcnRDb2x1bW4oKSk7Ci0KICAgICAvLyBFeGVjdXRl
IHRoZSBjb2RlOgogICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKQEAgLTk3Miw5ICs5NjQsNiBA
QCBmYWlsZWRKU09OUDoKICAgICAgICAgcmVzdWx0ID0gcHJvZ3JhbS0+Z2VuZXJhdGVkSklUQ29k
ZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKICAgICB9CiAKLSAgICBpZiAoTGVn
YWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHBy
b2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgcHJvZ3JhbS0+c291cmNlVVJMKCksIHByb2dy
YW0tPmZpcnN0TGluZSgpLCBwcm9ncmFtLT5zdGFydENvbHVtbigpKTsKLQogICAgIHJldHVybiBj
aGVja2VkUmV0dXJuKHJlc3VsdCk7CiB9CiAKQEAgLTEwMjMsOSArMTAxMiw2IEBAIEpTVmFsdWUg
SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCog
ZnVuY3Rpb24sIENhbGxUCiAgICAgUHJvdG9DYWxsRnJhbWUgcHJvdG9DYWxsRnJhbWU7CiAgICAg
cHJvdG9DYWxsRnJhbWUuaW5pdChuZXdDb2RlQmxvY2ssIGZ1bmN0aW9uLCB0aGlzVmFsdWUsIGFy
Z3NDb3VudCwgYXJncy5kYXRhKCkpOwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxl
ciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+d2lsbEV4ZWN1dGUo
Y2FsbEZyYW1lLCBmdW5jdGlvbik7Ci0KICAgICBKU1ZhbHVlIHJlc3VsdDsKICAgICB7CiAgICAg
ICAgIFNhbXBsaW5nVG9vbDo6Q2FsbFJlY29yZCBjYWxsUmVjb3JkKG1fc2FtcGxlci5nZXQoKSwg
IWlzSlNDYWxsKTsKQEAgLTEwNDAsOSArMTAyNiw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4
ZWN1dGVDYWxsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogZnVuY3Rpb24sIENhbGxU
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0g
dm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxG
cmFtZSwgZnVuY3Rpb24pOwotCiAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsKIH0K
IApAQCAtMTA5Myw5ICsxMDc2LDYgQEAgSlNPYmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29u
c3RydWN0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogY29uc3RydWMKICAgICBQcm90
b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KG5ld0Nv
ZGVCbG9jaywgY29uc3RydWN0b3IsIG5ld1RhcmdldCwgYXJnc0NvdW50LCBhcmdzLmRhdGEoKSk7
CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVy
KCkpCi0gICAgICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIGNvbnN0cnVjdG9y
KTsKLQogICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKICAgICAgICAgU2FtcGxpbmdUb29sOjpD
YWxsUmVjb3JkIGNhbGxSZWNvcmQobV9zYW1wbGVyLmdldCgpLCAhaXNKU0NvbnN0cnVjdCk7CkBA
IC0xMTExLDkgKzEwOTEsNiBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1
Y3QoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBjb25zdHJ1YwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9m
aWxlcigpKQotICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIGNvbnN0cnVj
dG9yKTsKLQogICAgIGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1
cm4gMDsKICAgICBBU1NFUlQocmVzdWx0LmlzT2JqZWN0KCkpOwpAQCAtMTE1Nyw5ICsxMTM0LDYg
QEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShDYWxsRnJhbWVDbG9zdXJlJiBjbG9zdXJl
KQogCiAgICAgU3RhY2tTdGF0czo6Q2hlY2tQb2ludCBzdGFja0NoZWNrUG9pbnQ7CiAKLSAgICBp
ZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAg
ICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShjbG9zdXJlLm9sZENhbGxGcmFtZSwgY2xvc3VyZS5m
dW5jdGlvbik7Ci0KICAgICBpZiAoVU5MSUtFTFkodm0uc2hvdWxkVHJpZ2dlclRlcm1pbmF0aW9u
KGNsb3N1cmUub2xkQ2FsbEZyYW1lKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1Rlcm1pbmF0ZWRF
eGVjdXRpb25FeGNlcHRpb24oY2xvc3VyZS5vbGRDYWxsRnJhbWUpOwogCkBAIC0xMTcwLDkgKzEx
NDQsNiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKENhbGxGcmFtZUNsb3N1cmUmIGNs
b3N1cmUpCiAgICAgICAgIHJlc3VsdCA9IGNsb3N1cmUuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5l
cmF0ZWRKSVRDb2RlRm9yQ2FsbCgpLT5leGVjdXRlKCZ2bSwgY2xvc3VyZS5wcm90b0NhbGxGcmFt
ZSk7CiAgICAgfQogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJs
ZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShjbG9zdXJlLm9sZENh
bGxGcmFtZSwgY2xvc3VyZS5mdW5jdGlvbik7Ci0KICAgICByZXR1cm4gY2hlY2tlZFJldHVybihy
ZXN1bHQpOwogfQogCkBAIC0xMjcwLDkgKzEyNDEsNiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpl
eGVjdXRlKEV2YWxFeGVjdXRhYmxlKiBldmFsLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1
ZQogICAgIFByb3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1l
LmluaXQoY29kZUJsb2NrLCBKU0NhbGxlZTo6Y3JlYXRlKHZtLCBzY29wZS0+Z2xvYmFsT2JqZWN0
KCksIHNjb3BlKSwgdGhpc1ZhbHVlLCAxKTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJv
ZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPndpbGxFeGVj
dXRlKGNhbGxGcmFtZSwgZXZhbC0+c291cmNlVVJMKCksIGV2YWwtPmZpcnN0TGluZSgpLCBldmFs
LT5zdGFydENvbHVtbigpKTsKLQogICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGU6CiAgICAgSlNWYWx1
ZSByZXN1bHQ7CiAgICAgewpAQCAtMTI4MCw5ICsxMjQ4LDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRl
cjo6ZXhlY3V0ZShFdmFsRXhlY3V0YWJsZSogZXZhbCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpT
VmFsdWUKICAgICAgICAgcmVzdWx0ID0gZXZhbC0+Z2VuZXJhdGVkSklUQ29kZSgpLT5leGVjdXRl
KCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKICAgICB9CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIq
IHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT5kaWRF
eGVjdXRlKGNhbGxGcmFtZSwgZXZhbC0+c291cmNlVVJMKCksIGV2YWwtPmZpcnN0TGluZSgpLCBl
dmFsLT5zdGFydENvbHVtbigpKTsKLQogICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHJlc3VsdCk7
CiB9CiAKQEAgLTEzMTgsOSArMTI4Myw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUo
TW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIENhbGxGcmFtZSogY2FsCiAgICAg
UHJvdG9DYWxsRnJhbWUgcHJvdG9DYWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChj
b2RlQmxvY2ssIEpTQ2FsbGVlOjpjcmVhdGUodm0sIHNjb3BlLT5nbG9iYWxPYmplY3QoKSwgc2Nv
cGUpLCBqc1VuZGVmaW5lZCgpLCAxKTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmls
ZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRl
KGNhbGxGcmFtZSwgZXhlY3V0YWJsZS0+c291cmNlVVJMKCksIGV4ZWN1dGFibGUtPmZpcnN0TGlu
ZSgpLCBleGVjdXRhYmxlLT5zdGFydENvbHVtbigpKTsKLQogICAgIC8vIEV4ZWN1dGUgdGhlIGNv
ZGU6CiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgewpAQCAtMTMyOCw5ICsxMjkwLDYgQEAgSlNW
YWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSogZXhlY3V0
YWJsZSwgQ2FsbEZyYW1lKiBjYWwKICAgICAgICAgcmVzdWx0ID0gZXhlY3V0YWJsZS0+Z2VuZXJh
dGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKICAgICB9CiAKLSAg
ICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0g
ICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgZXhlY3V0YWJsZS0+c291cmNl
VVJMKCksIGV4ZWN1dGFibGUtPmZpcnN0TGluZSgpLCBleGVjdXRhYmxlLT5zdGFydENvbHVtbigp
KTsKLQogICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmNwcAppbmRleCBhM2JkZmE3Li4zMzljYzBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuY3BwCkBAIC0yNzMsOCArMjczLDYgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFp
blBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfbnN0cmljdGVxKQogICAgICAgICBERUZJTkVf
T1Aob3BfZGVjKQogICAgICAgICBERUZJTkVfT1Aob3BfaW5jKQotICAgICAgICBERUZJTkVfT1Ao
b3BfcHJvZmlsZV9kaWRfY2FsbCkKLSAgICAgICAgREVGSU5FX09QKG9wX3Byb2ZpbGVfd2lsbF9j
YWxsKQogICAgICAgICBERUZJTkVfT1Aob3BfcHJvZmlsZV90eXBlKQogICAgICAgICBERUZJTkVf
T1Aob3BfcHJvZmlsZV9jb250cm9sX2Zsb3cpCiAgICAgICAgIERFRklORV9PUChvcF9wdXNoX3dp
dGhfc2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCBkZjdiM2RjLi4wZmM4YjU0IDEw
MDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTU1NCw4ICs1NTQsNiBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdm9pZCBlbWl0X29wX25zdHJpY3RlcShJbnN0cnVjdGlvbiopOwogICAgICAg
ICB2b2lkIGVtaXRfb3BfZGVjKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9p
bmMoSW5zdHJ1Y3Rpb24qKTsKLSAgICAgICAgdm9pZCBlbWl0X29wX3Byb2ZpbGVfZGlkX2NhbGwo
SW5zdHJ1Y3Rpb24qKTsKLSAgICAgICAgdm9pZCBlbWl0X29wX3Byb2ZpbGVfd2lsbF9jYWxsKElu
c3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9wcm9maWxlX3R5cGUoSW5zdHJ1Y3Rp
b24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3Byb2ZpbGVfY29udHJvbF9mbG93KEluc3RydWN0
aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9wdXNoX3dpdGhfc2NvcGUoSW5zdHJ1Y3Rpb24q
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IDczOGNiNjMu
LmNiZGZlMDAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcApAQCAt
NzUxLDIyICs3NTEsNiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfY2hlY2tfdGR6KEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZQogICAgIHNsb3dQYXRoQ2Fs
bC5jYWxsKCk7CiB9CiAKLXZvaWQgSklUOjplbWl0X29wX3Byb2ZpbGVfd2lsbF9jYWxsKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCi17Ci0gICAgSnVtcCBwcm9maWxlckRvbmUgPSBi
cmFuY2hUZXN0UHRyKFplcm8sIEFic29sdXRlQWRkcmVzcyhtX3ZtLT5lbmFibGVkUHJvZmlsZXJB
ZGRyZXNzKCkpKTsKLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQsIHJlZ1QwKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblByb2Zp
bGVXaWxsQ2FsbCwgcmVnVDApOwotICAgIHByb2ZpbGVyRG9uZS5saW5rKHRoaXMpOwotfQotCi12
b2lkIEpJVDo6ZW1pdF9vcF9wcm9maWxlX2RpZF9jYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24pCi17Ci0gICAgSnVtcCBwcm9maWxlckRvbmUgPSBicmFuY2hUZXN0UHRyKFplcm8s
IEFic29sdXRlQWRkcmVzcyhtX3ZtLT5lbmFibGVkUHJvZmlsZXJBZGRyZXNzKCkpKTsKLSAgICBl
bWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJl
Z1QwKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblByb2ZpbGVEaWRDYWxsLCByZWdUMCk7
Ci0gICAgcHJvZmlsZXJEb25lLmxpbmsodGhpcyk7Ci19Ci0KIAogLy8gU2xvdyBjYXNlcwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggYzMy
NmZmMy4uY2M0YTZlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
czMyXzY0LmNwcApAQCAtMTAzMiwyNCArMTAzMiw2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9j
aGVja190ZHooSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNl
CiAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRfb3BfcHJvZmls
ZV93aWxsX2NhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKLXsKLSAgICBsb2Fk
MzIobV92bS0+ZW5hYmxlZFByb2ZpbGVyQWRkcmVzcygpLCByZWdUMCk7Ci0gICAgSnVtcCBwcm9m
aWxlckRvbmUgPSBicmFuY2hUZXN0UHRyKFplcm8sIHJlZ1QwKTsKLSAgICBlbWl0TG9hZChjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMSwgcmVnVDApOwotICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uUHJvZmlsZVdpbGxDYWxsLCByZWdUMSwgcmVnVDApOwotICAgIHByb2Zp
bGVyRG9uZS5saW5rKHRoaXMpOwotfQotCi12b2lkIEpJVDo6ZW1pdF9vcF9wcm9maWxlX2RpZF9j
YWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCi17Ci0gICAgbG9hZDMyKG1fdm0t
PmVuYWJsZWRQcm9maWxlckFkZHJlc3MoKSwgcmVnVDApOwotICAgIEp1bXAgcHJvZmlsZXJEb25l
ID0gYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMCk7Ci0gICAgZW1pdExvYWQoY3VycmVudEluc3Ry
dWN0aW9uWzFdLnUub3BlcmFuZCwgcmVnVDEsIHJlZ1QwKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9w
ZXJhdGlvblByb2ZpbGVEaWRDYWxsLCByZWdUMSwgcmVnVDApOwotICAgIHByb2ZpbGVyRG9uZS5s
aW5rKHRoaXMpOwotfQotCiB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNfc3RydWN0dXJlX3Byb3BlcnR5
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGRzdCA9IGN1cnJl
bnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAppbmRleCAxOTcyMTliLi4zMGI3YjY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTUwLDcgKzUwLDYgQEAKICNpbmNs
dWRlICJKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCIKICNpbmNsdWRlICJKU1N0YWNrSW5saW5l
cy5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCi0jaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIu
aCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFt
ZS5oIgogI2luY2x1ZGUgIlJlcGF0Y2guaCIKQEAgLTExMzksMTEgKzExMzgsNiBAQCBTbG93UGF0
aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25PcHRpbWl6ZShFeGVjU3RhdGUqIGV4
ZWMsIGludDMyX3QgYnl0ZQogICAgICAgICByZXR1cm4gZW5jb2RlUmVzdWx0KDAsIDApOwogICAg
IH0KICAgICAKLSAgICBpZiAodm0uZW5hYmxlZFByb2ZpbGVyKCkpIHsKLSAgICAgICAgdXBkYXRl
QWxsUHJlZGljdGlvbnNBbmRPcHRpbWl6ZUFmdGVyV2FybVVwKGNvZGVCbG9jayk7Ci0gICAgICAg
IHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7Ci0gICAgfQotCiAgICAgRGVidWdnZXIqIGRlYnVn
Z2VyID0gY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+ZGVidWdnZXIoKTsKICAgICBpZiAoZGVi
dWdnZXIgJiYgKGRlYnVnZ2VyLT5pc1N0ZXBwaW5nKCkgfHwgY29kZUJsb2NrLT5iYXNlbGluZUFs
dGVybmF0aXZlKCktPmhhc0RlYnVnZ2VyUmVxdWVzdHMoKSkpIHsKICAgICAgICAgdXBkYXRlQWxs
UHJlZGljdGlvbnNBbmRPcHRpbWl6ZUFmdGVyV2FybVVwKGNvZGVCbG9jayk7CkBAIC0xNDQ0LDI0
ICsxNDM4LDYgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBvcFNjb3BlKEV4ZWNTdGF0
ZSogZXhlYywgaW50MzJfdCBzY29wZVJlZykKICAgICBleGVjLT51bmNoZWNrZWRSKHNjb3BlUmVn
KSA9IHNjb3BlLT5uZXh0KCk7CiB9CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9m
aWxlRGlkQ2FsbChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
LXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIoJnZtLCBleGVjKTsKLQotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2
bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPmRpZEV4ZWN1dGUoZXhlYywg
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwotfQotCi12b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHJvZmlsZVdpbGxDYWxsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwotCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVy
KiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+d2ls
bEV4ZWN1dGUoZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwotfQotCiBpbnQz
Ml90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5zdGFuY2VPZkN1c3RvbShFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkSGFzSW5zdGFuY2UpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKQEAgLTIwOTcsOSArMjA3Myw2IEBAIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRp
b25DaGVja0lmRXhjZXB0aW9uSXNVbmNhdGNoYWJsZUFuZE5vdGlmeVByb2ZpbGVyKEV4CiAgICAg
TmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogICAgIFJFTEVBU0VfQVNT
RVJUKCEhdm0uZXhjZXB0aW9uKCkpOwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxl
ciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+ZXhjZXB0aW9uVW53
aW5kKGV4ZWMpOwotCiAgICAgaWYgKGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbih2bS5l
eGNlcHRpb24oKSkpIHsKICAgICAgICAgZ2VuZXJpY1Vud2luZCgmdm0sIGV4ZWMpOwogICAgICAg
ICByZXR1cm4gMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5k
ZXggZGVmZDVmNy4uY2Q3Y2I0MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVy
YXRpb25zLmgKQEAgLTMyNiw4ICszMjYsNiBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
UHV0R2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbQogI2Vu
ZGlmCiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHVzaEZ1bmN0aW9uTmFtZVNjb3BlKEV4
ZWNTdGF0ZSosIGludDMyX3QsIFN5bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRF
Uk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqLCBp
bnQzMl90KSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmls
ZURpZENhbGwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlV2lsbENhbGwoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uR2V0QnlWYWxPcHRpbWl6ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lO
VEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdl
bmVyaWMoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRK
U1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3Jp
cHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggZmMy
NmY1ZC4uNjkyYzIzOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTc3Nyw3ICs3NzcsNyBAQCBw
cm90ZWN0ZWQ6CiB9OwogCiBjb25zdCBDbGFzc0luZm8gR2xvYmFsT2JqZWN0OjpzX2luZm8gPSB7
ICJnbG9iYWwiLCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5mbywgbnVsbHB0ciwgQ1JFQVRFX01FVEhP
RF9UQUJMRShHbG9iYWxPYmplY3QpIH07Ci1jb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBH
bG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nlc3NG
cm9tLCAmc3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxk
SW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgMCwgJnNob3VsZEludGVy
cnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9h
ZGVyRmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKK2NvbnN0IEdsb2JhbE9iamVj
dE1ldGhvZFRhYmxlIEdsb2JhbE9iamVjdDo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsg
JmFsbG93c0FjY2Vzc0Zyb20sICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJy
dXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgMCwgJnNob3VsZEludGVycnVwdFNj
cmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9hZGVyRmV0
Y2gsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKIAogCiBHbG9iYWxPYmplY3Q6Okdsb2Jh
bE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggMGI1NjIzZC4uMmJjNWI1NSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBA
IC00OSw3ICs0OSw2IEBACiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNsdWRlICJMTElu
dENvbW1vbi5oIgogI2luY2x1ZGUgIkxMSW50RXhjZXB0aW9ucy5oIgotI2luY2x1ZGUgIkxlZ2Fj
eVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5oIgogI2luY2x1ZGUg
Ik9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiUHJvdG9DYWxsRnJhbWUuaCIKQEAgLTEz
ODEsMjIgKzEzODAsNiBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZGVidWcpCiAg
ICAgTExJTlRfRU5EKCk7CiB9CiAKLUxMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wcm9m
aWxlX3dpbGxfY2FsbCkKLXsKLSAgICBMTElOVF9CRUdJTigpOwotICAgIGlmIChMZWdhY3lQcm9m
aWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXIt
PndpbGxFeGVjdXRlKGV4ZWMsIExMSU5UX09QKDEpLmpzVmFsdWUoKSk7Ci0gICAgTExJTlRfRU5E
KCk7Ci19Ci0KLUxMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wcm9maWxlX2RpZF9jYWxs
KQotewotICAgIExMSU5UX0JFR0lOKCk7Ci0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxl
ciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShl
eGVjLCBMTElOVF9PUCgxKS5qc1ZhbHVlKCkpOwotICAgIExMSU5UX0VORCgpOwotfQotCiBMTElO
VF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfaGFuZGxlX2V4Y2VwdGlvbikKIHsKICAgICBMTElO
VF9CRUdJTl9OT19TRVRfUEMoKTsKQEAgLTE0ODUsOSArMTQ2OCw2IEBAIExMSU5UX1NMT1dfUEFU
SF9ERUNMKHNsb3dfcGF0aF9jaGVja19pZl9leGNlcHRpb25faXNfdW5jYXRjaGFibGVfYW5kX25v
dGlmeV9wcm9mCiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBSRUxFQVNFX0FTU0VSVCghIXZtLmV4
Y2VwdGlvbigpKTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFi
bGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2luZChleGVjKTsK
LQogICAgIGlmIChpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0uZXhjZXB0aW9uKCkp
KQogICAgICAgICBMTElOVF9SRVRVUk5fVFdPKHBjLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRp
Y19jYXN0PHVpbnRwdHJfdD4oMSkpKTsKICAgICBMTElOVF9SRVRVUk5fVFdPKHBjLCAwKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKaW5kZXggMGQ1Yzhk
YS4uYzA0ODk5YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
U2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1Bh
dGhzLmgKQEAgLTExNSw4ICsxMTUsNiBAQCBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xv
d19wYXRoX3Rocm93KTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdGhy
b3dfc3RhdGljX2Vycm9yKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
aGFuZGxlX3dhdGNoZG9nX3RpbWVyKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93
X3BhdGhfZGVidWcpOwotTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wcm9m
aWxlX3dpbGxfY2FsbCk7Ci1MTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3By
b2ZpbGVfZGlkX2NhbGwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9o
YW5kbGVfZXhjZXB0aW9uKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
Z2V0X2Zyb21fc2NvcGUpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9w
dXRfdG9fc2NvcGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IDA4OGRhYjkuLmQ2NGQ3MDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAgLTE2
MjAsMjggKzE2MjAsNiBAQCBfbGxpbnRfb3BfdGhyb3dfc3RhdGljX2Vycm9yOgogICAgIGRpc3Bh
dGNoKDMpCiAKIAotX2xsaW50X29wX3Byb2ZpbGVfd2lsbF9jYWxsOgotICAgIHRyYWNlRXhlY3V0
aW9uKCkKLSAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKLSAgICBsb2FkcCBDb2RlQmxvY2s6
Om1fdm1bdDBdLCB0MAotICAgIGxvYWRpIFZNOjptX2VuYWJsZWRQcm9maWxlclt0MF0sIHQwCi0g
ICAgYnRweiB0MCwgLm9wUHJvZmlsZXJXaWxsQ2FsbERvbmUKLSAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9wcm9maWxlX3dpbGxfY2FsbCkKLS5vcFByb2ZpbGVyV2lsbENhbGxEb25l
OgotICAgIGRpc3BhdGNoKDIpCi0KLQotX2xsaW50X29wX3Byb2ZpbGVfZGlkX2NhbGw6Ci0gICAg
dHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAotICAgIGxvYWRw
IENvZGVCbG9jazo6bV92bVt0MF0sIHQwCi0gICAgbG9hZGkgVk06Om1fZW5hYmxlZFByb2ZpbGVy
W3QwXSwgdDAKLSAgICBidHB6IHQwLCAub3BQcm9maWxlckRpZENhbGxEb25lCi0gICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV9kaWRfY2FsbCkKLS5vcFByb2ZpbGVyRGlk
Q2FsbERvbmU6Ci0gICAgZGlzcGF0Y2goMikKLQotCiBfbGxpbnRfb3BfZGVidWc6CiAgICAgdHJh
Y2VFeGVjdXRpb24oKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oCmluZGV4IDg2OTRmNzcuLjE0MmZiZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyTW9kZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKQEAgLTM5LDcgKzM5
LDYgQEAgZW51bSBjbGFzcyBDb25zdHJ1Y3RvcktpbmQgeyBOb25lLCBCYXNlLCBEZXJpdmVkIH07
CiBlbnVtIGNsYXNzIFN1cGVyQmluZGluZyB7IE5lZWRlZCwgTm90TmVlZGVkIH07CiBlbnVtIGNs
YXNzIFRoaXNURFpNb2RlIHsgQWx3YXlzQ2hlY2ssIENoZWNrSWZOZWVkZWQgfTsKIAotZW51bSBQ
cm9maWxlck1vZGUgeyBQcm9maWxlck9mZiwgUHJvZmlsZXJPbiB9OwogZW51bSBEZWJ1Z2dlck1v
ZGUgeyBEZWJ1Z2dlck9mZiwgRGVidWdnZXJPbiB9OwogCiBlbnVtIEZ1bmN0aW9uTW9kZSB7IEZ1
bmN0aW9uRXhwcmVzc2lvbiwgRnVuY3Rpb25EZWNsYXJhdGlvbiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0NhbGxJZGVudGlmaWVyLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvQ2FsbElkZW50aWZpZXIuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNjkxZmM2Mi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvQ2FsbElkZW50aWZpZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDExMiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDE0IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotCi0j
aWZuZGVmIENhbGxJZGVudGlmaWVyX2gKLSNkZWZpbmUgQ2FsbElkZW50aWZpZXJfaAotCi0jaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0K
LSAgICBzdHJ1Y3QgQ2FsbElkZW50aWZpZXIgewotICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIENhbGxJZGVudGlmaWVyKCkKLSAgICAgICAgICAg
IDogbV9saW5lTnVtYmVyKDApCi0gICAgICAgICAgICAsIG1fY29sdW1uTnVtYmVyKDApCi0gICAg
ICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIENhbGxJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYg
ZnVuY3Rpb25OYW1lLCBjb25zdCBTdHJpbmcmIHVybCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5z
aWduZWQgY29sdW1uTnVtYmVyKQotICAgICAgICAgICAgOiBtX2Z1bmN0aW9uTmFtZShmdW5jdGlv
bk5hbWUpCi0gICAgICAgICAgICAsIG1fdXJsKCF1cmwuaXNOdWxsKCkgPyB1cmwgOiAiIikKLSAg
ICAgICAgICAgICwgbV9saW5lTnVtYmVyKGxpbmVOdW1iZXIpCi0gICAgICAgICAgICAsIG1fY29s
dW1uTnVtYmVyKGNvbHVtbk51bWJlcikKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAg
Y29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUoKSBjb25zdCB7IHJldHVybiBtX2Z1bmN0aW9uTmFt
ZTsgfQotCi0gICAgICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7
IH0KLSAgICAgICAgdW5zaWduZWQgbGluZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fbGluZU51
bWJlcjsgfQotICAgICAgICB1bnNpZ25lZCBjb2x1bW5OdW1iZXIoKSBjb25zdCB7IHJldHVybiBt
X2NvbHVtbk51bWJlcjsgfQotCi0gICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3Qg
Q2FsbElkZW50aWZpZXImIG90aGVyKSBjb25zdCB7IHJldHVybiBvdGhlci5tX2xpbmVOdW1iZXIg
PT0gbV9saW5lTnVtYmVyICYmIG90aGVyLm1fY29sdW1uTnVtYmVyID09IG1fY29sdW1uTnVtYmVy
ICYmIG90aGVyLm1fZnVuY3Rpb25OYW1lID09IG1fZnVuY3Rpb25OYW1lICYmIG90aGVyLm1fdXJs
ID09IG1fdXJsOyB9Ci0gICAgICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgQ2FsbElk
ZW50aWZpZXImIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG90aGVyKTsgfQotCi0g
ICAgICAgIHN0cnVjdCBIYXNoIHsKLSAgICAgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNv
bnN0IENhbGxJZGVudGlmaWVyJiBrZXkpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
dW5zaWduZWQgaGFzaENvZGVzWzRdID0gewotICAgICAgICAgICAgICAgICAgICBrZXkubV9mdW5j
dGlvbk5hbWUuaW1wbCgpLT5oYXNoKCksCi0gICAgICAgICAgICAgICAgICAgIGtleS5tX3VybC5p
bXBsKCktPmhhc2goKSwKLSAgICAgICAgICAgICAgICAgICAga2V5Lm1fbGluZU51bWJlciwKLSAg
ICAgICAgICAgICAgICAgICAga2V5Lm1fY29sdW1uTnVtYmVyCi0gICAgICAgICAgICAgICAgfTsK
LSAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpoYXNoTWVtb3J5PHNpemVvZiho
YXNoQ29kZXMpPihoYXNoQ29kZXMpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBzdGF0
aWMgYm9vbCBlcXVhbChjb25zdCBDYWxsSWRlbnRpZmllciYgYSwgY29uc3QgQ2FsbElkZW50aWZp
ZXImIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wg
c2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOwotICAgICAgICB9OwotCi0gICAg
ICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCB7IHJldHVybiBIYXNoOjpoYXNoKCp0aGlzKTsgfQot
Ci0jaWZuZGVmIE5ERUJVRwotICAgICAgICBvcGVyYXRvciBjb25zdCBjaGFyKigpIGNvbnN0IHsg
cmV0dXJuIGNfc3RyKCk7IH0KLSAgICAgICAgY29uc3QgY2hhciogY19zdHIoKSBjb25zdCB7IHJl
dHVybiBtX2Z1bmN0aW9uTmFtZS51dGY4KCkuZGF0YSgpOyB9Ci0jZW5kaWYKLQotICAgIHByaXZh
dGU6Ci0gICAgICAgIFN0cmluZyBtX2Z1bmN0aW9uTmFtZTsKLSAgICAgICAgU3RyaW5nIG1fdXJs
OwotICAgICAgICB1bnNpZ25lZCBtX2xpbmVOdW1iZXI7Ci0gICAgICAgIHVuc2lnbmVkIG1fY29s
dW1uTnVtYmVyOwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi1uYW1lc3BhY2UgV1RG
IHsKLQotICAgIHRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPEpTQzo6Q2FsbElkZW50aWZp
ZXI+IHsgdHlwZWRlZiBKU0M6OkNhbGxJZGVudGlmaWVyOjpIYXNoIEhhc2g7IH07Ci0KLSAgICB0
ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpTQzo6Q2FsbElkZW50aWZpZXI+IDogR2VuZXJp
Y0hhc2hUcmFpdHM8SlNDOjpDYWxsSWRlbnRpZmllcj4gewotICAgICAgICBzdGF0aWMgdm9pZCBj
b25zdHJ1Y3REZWxldGVkVmFsdWUoSlNDOjpDYWxsSWRlbnRpZmllciYgc2xvdCkKLSAgICAgICAg
ewotICAgICAgICAgICAgbmV3IChOb3ROdWxsLCAmc2xvdCkgSlNDOjpDYWxsSWRlbnRpZmllcihT
dHJpbmcoKSwgU3RyaW5nKCksIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSwg
c3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IEpTQzo6Q2FsbElkZW50aWZpZXIm
IHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWUuZnVuY3Rpb25OYW1l
KCkuaXNOdWxsKCkgJiYgdmFsdWUudXJsKCkuaXNOdWxsKCkgJiYgdmFsdWUubGluZU51bWJlcigp
ID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSAmJiB2YWx1ZS5jb2x1bW5O
dW1iZXIoKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCk7Ci0gICAgICAg
IH0KLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQotI2VuZGlmICAvLyBDYWxsSWRlbnRp
Zmllcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5
UHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2Zp
bGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzg3ZDM2Mi4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMjA4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgs
IDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCi0KLSNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNs
dWRlICJDb2RlQmxvY2suaCIKLSNpbmNsdWRlICJDb21tb25JZGVudGlmaWVycy5oIgotI2luY2x1
ZGUgIkludGVybmFsRnVuY3Rpb24uaCIKLSNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCi0jaW5jbHVk
ZSAiSlNHbG9iYWxPYmplY3QuaCIKLSNpbmNsdWRlICJOb2Rlcy5oIgotI2luY2x1ZGUgIkpTQ0lu
bGluZXMuaCIKLSNpbmNsdWRlICJQcm9maWxlLmgiCi0jaW5jbHVkZSAiUHJvZmlsZUdlbmVyYXRv
ci5oIgotI2luY2x1ZGUgIlByb2ZpbGVOb2RlLmgiCi0KLW5hbWVzcGFjZSBKU0MgewotCi1zdGF0
aWMgY29uc3QgY2hhciogR2xvYmFsQ29kZUV4ZWN1dGlvbiA9ICIocHJvZ3JhbSkiOwotc3RhdGlj
IGNvbnN0IGNoYXIqIEFub255bW91c0Z1bmN0aW9uID0gIihhbm9ueW1vdXMgZnVuY3Rpb24pIjsK
LXN0YXRpYyB1bnNpZ25lZCBQcm9maWxlc1VJRCA9IDA7Ci0KLXN0YXRpYyBDYWxsSWRlbnRpZmll
ciBjcmVhdGVDYWxsSWRlbnRpZmllckZyb21GdW5jdGlvbkltcChFeGVjU3RhdGUqLCBKU09iamVj
dCosIGNvbnN0IFN0cmluZyYgZGVmYXVsdFNvdXJjZVVSTCwgdW5zaWduZWQgZGVmYXVsdExpbmVO
dW1iZXIsIHVuc2lnbmVkIGRlZmF1bHRDb2x1bW5OdW1iZXIpOwotCi1MZWdhY3lQcm9maWxlciog
TGVnYWN5UHJvZmlsZXI6OnNfc2hhcmVkTGVnYWN5UHJvZmlsZXIgPSBudWxscHRyOwotCi1MZWdh
Y3lQcm9maWxlciogTGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCkKLXsKLSAgICBpZiAoIXNfc2hh
cmVkTGVnYWN5UHJvZmlsZXIpCi0gICAgICAgIHNfc2hhcmVkTGVnYWN5UHJvZmlsZXIgPSBuZXcg
TGVnYWN5UHJvZmlsZXIoKTsKLSAgICByZXR1cm4gc19zaGFyZWRMZWdhY3lQcm9maWxlcjsKLX0K
LQotdm9pZCBMZWdhY3lQcm9maWxlcjo6c3RhcnRQcm9maWxpbmcoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBTdHJpbmcmIHRpdGxlLCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4gc3RvcHdhdGNoKQotewot
ICAgIGlmICghZXhlYykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gQ2hlY2sgaWYgd2UgY3Vy
cmVudGx5IGhhdmUgYSBQcm9maWxlIGZvciB0aGlzIGdsb2JhbCBFeGVjU3RhdGUgYW5kIHRpdGxl
LgotICAgIC8vIElmIHNvIHJldHVybiBlYXJseSBhbmQgZG9uJ3QgY3JlYXRlIGEgbmV3IFByb2Zp
bGUuCi0gICAgSlNHbG9iYWxPYmplY3QqIG9yaWdpbiA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKTsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jdXJyZW50UHJvZmlsZXMuc2l6
ZSgpOyArK2kpIHsKLSAgICAgICAgUHJvZmlsZUdlbmVyYXRvciogcHJvZmlsZUdlbmVyYXRvciA9
IG1fY3VycmVudFByb2ZpbGVzW2ldLmdldCgpOwotICAgICAgICBpZiAocHJvZmlsZUdlbmVyYXRv
ci0+b3JpZ2luKCkgPT0gb3JpZ2luICYmIHByb2ZpbGVHZW5lcmF0b3ItPnRpdGxlKCkgPT0gdGl0
bGUpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZXhlYy0+dm0oKS5zZXRFbmFi
bGVkUHJvZmlsZXIodGhpcyk7Ci0gICAgUmVmUHRyPFByb2ZpbGVHZW5lcmF0b3I+IHByb2ZpbGVH
ZW5lcmF0b3IgPSBQcm9maWxlR2VuZXJhdG9yOjpjcmVhdGUoZXhlYywgdGl0bGUsICsrUHJvZmls
ZXNVSUQsIHN0b3B3YXRjaCk7Ci0gICAgbV9jdXJyZW50UHJvZmlsZXMuYXBwZW5kKHByb2ZpbGVH
ZW5lcmF0b3IpOwotfQotCi1SZWZQdHI8UHJvZmlsZT4gTGVnYWN5UHJvZmlsZXI6OnN0b3BQcm9m
aWxpbmcoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlKQotewotICAgIGlmICgh
ZXhlYykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBKU0dsb2JhbE9iamVjdCogb3Jp
Z2luID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwotICAgIGZvciAocHRyZGlmZl90IGkg
PSBtX2N1cnJlbnRQcm9maWxlcy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewotICAgICAgICBQ
cm9maWxlR2VuZXJhdG9yKiBwcm9maWxlR2VuZXJhdG9yID0gbV9jdXJyZW50UHJvZmlsZXNbaV0u
Z2V0KCk7Ci0gICAgICAgIGlmIChwcm9maWxlR2VuZXJhdG9yLT5vcmlnaW4oKSA9PSBvcmlnaW4g
JiYgKHRpdGxlLmlzTnVsbCgpIHx8IHByb2ZpbGVHZW5lcmF0b3ItPnRpdGxlKCkgPT0gdGl0bGUp
KSB7Ci0gICAgICAgICAgICBwcm9maWxlR2VuZXJhdG9yLT5zdG9wUHJvZmlsaW5nKCk7Ci0gICAg
ICAgICAgICBSZWZQdHI8UHJvZmlsZT4gcmV0dXJuUHJvZmlsZSA9IHByb2ZpbGVHZW5lcmF0b3It
PnByb2ZpbGUoKTsKLQotICAgICAgICAgICAgbV9jdXJyZW50UHJvZmlsZXMucmVtb3ZlKGkpOwot
ICAgICAgICAgICAgaWYgKCFtX2N1cnJlbnRQcm9maWxlcy5zaXplKCkpCi0gICAgICAgICAgICAg
ICAgZXhlYy0+dm0oKS5zZXRFbmFibGVkUHJvZmlsZXIobnVsbHB0cik7Ci0KLSAgICAgICAgICAg
IHJldHVybiByZXR1cm5Qcm9maWxlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIG51
bGxwdHI7Ci19Ci0KLXZvaWQgTGVnYWN5UHJvZmlsZXI6OnN0b3BQcm9maWxpbmcoSlNHbG9iYWxP
YmplY3QqIG9yaWdpbikKLXsKLSAgICBmb3IgKHB0cmRpZmZfdCBpID0gbV9jdXJyZW50UHJvZmls
ZXMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgUHJvZmlsZUdlbmVyYXRvciog
cHJvZmlsZUdlbmVyYXRvciA9IG1fY3VycmVudFByb2ZpbGVzW2ldLmdldCgpOwotICAgICAgICBp
ZiAocHJvZmlsZUdlbmVyYXRvci0+b3JpZ2luKCkgPT0gb3JpZ2luKSB7Ci0gICAgICAgICAgICBw
cm9maWxlR2VuZXJhdG9yLT5zdG9wUHJvZmlsaW5nKCk7Ci0gICAgICAgICAgICBtX2N1cnJlbnRQ
cm9maWxlcy5yZW1vdmUoaSk7Ci0gICAgICAgICAgICBpZiAoIW1fY3VycmVudFByb2ZpbGVzLnNp
emUoKSkKLSAgICAgICAgICAgICAgICBvcmlnaW4tPnZtKCkuc2V0RW5hYmxlZFByb2ZpbGVyKG51
bGxwdHIpOwotICAgICAgICB9Ci0gICAgfQotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgY2FsbEZ1
bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3RkOjpmdW5jdGlvbjx2b2lkKFByb2ZpbGVHZW5l
cmF0b3IqKT4gY2FsbGJhY2ssIGNvbnN0IFZlY3RvcjxSZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4+
JiBwcm9maWxlcywgdW5zaWduZWQgdGFyZ2V0UHJvZmlsZUdyb3VwKQotewotICAgIGZvciAoY29u
c3QgUmVmUHRyPFByb2ZpbGVHZW5lcmF0b3I+JiBwcm9maWxlIDogcHJvZmlsZXMpIHsKLSAgICAg
ICAgaWYgKHByb2ZpbGUtPnByb2ZpbGVHcm91cCgpID09IHRhcmdldFByb2ZpbGVHcm91cCB8fCAh
cHJvZmlsZS0+b3JpZ2luKCkpCi0gICAgICAgICAgICBjYWxsYmFjayhwcm9maWxlLmdldCgpKTsK
LSAgICB9Ci19Ci0KLXZvaWQgTGVnYWN5UHJvZmlsZXI6OnN1c3BlbmRQcm9maWxpbmcoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgaWYgKCFleGVjKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmJpbmQoJlByb2ZpbGVHZW5l
cmF0b3I6OnNldElzU3VzcGVuZGVkLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEsIHRydWUpLCBtX2N1
cnJlbnRQcm9maWxlcywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAo
KSk7Ci19Ci0KLXZvaWQgTGVnYWN5UHJvZmlsZXI6OnVuc3VzcGVuZFByb2ZpbGluZyhKU0M6OkV4
ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBpZiAoIWV4ZWMpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGNhbGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdyb3VwKHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVy
YXRvcjo6c2V0SXNTdXNwZW5kZWQsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgZmFsc2UpLCBtX2N1
cnJlbnRQcm9maWxlcywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAo
KSk7Ci19Ci0KLXZvaWQgTGVnYWN5UHJvZmlsZXI6OndpbGxFeGVjdXRlKEV4ZWNTdGF0ZSogY2Fs
bGVyQ2FsbEZyYW1lLCBKU1ZhbHVlIGZ1bmN0aW9uKQotewotICAgIEFTU0VSVCghbV9jdXJyZW50
UHJvZmlsZXMuaXNFbXB0eSgpKTsKLQotICAgIENhbGxJZGVudGlmaWVyIGNhbGxJZGVudGlmaWVy
ID0gY3JlYXRlQ2FsbElkZW50aWZpZXIoY2FsbGVyQ2FsbEZyYW1lLCBmdW5jdGlvbiwgU3RyaW5n
SW1wbDo6ZW1wdHkoKSwgMCwgMCk7Ci0KLSAgICBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhH
cm91cChzdGQ6OmJpbmQoJlByb2ZpbGVHZW5lcmF0b3I6OndpbGxFeGVjdXRlLCBzdGQ6OnBsYWNl
aG9sZGVyczo6XzEsIGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIpLCBtX2N1cnJlbnRQ
cm9maWxlcywgY2FsbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVH
cm91cCgpKTsKLX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6d2lsbEV4ZWN1dGUoRXhlY1N0YXRl
KiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBzdGFy
dGluZ0xpbmVOdW1iZXIsIHVuc2lnbmVkIHN0YXJ0aW5nQ29sdW1uTnVtYmVyKQotewotICAgIEFT
U0VSVCghbV9jdXJyZW50UHJvZmlsZXMuaXNFbXB0eSgpKTsKLQotICAgIENhbGxJZGVudGlmaWVy
IGNhbGxJZGVudGlmaWVyID0gY3JlYXRlQ2FsbElkZW50aWZpZXIoY2FsbGVyQ2FsbEZyYW1lLCBK
U1ZhbHVlKCksIHNvdXJjZVVSTCwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzdGFydGluZ0NvbHVtbk51
bWJlcik7Ci0KLSAgICBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmJpbmQo
JlByb2ZpbGVHZW5lcmF0b3I6OndpbGxFeGVjdXRlLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEsIGNh
bGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIpLCBtX2N1cnJlbnRQcm9maWxlcywgY2FsbGVy
Q2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKLX0KLQot
dm9pZCBMZWdhY3lQcm9maWxlcjo6ZGlkRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFt
ZSwgSlNWYWx1ZSBmdW5jdGlvbikKLXsKLSAgICBBU1NFUlQoIW1fY3VycmVudFByb2ZpbGVzLmlz
RW1wdHkoKSk7Ci0KLSAgICBDYWxsSWRlbnRpZmllciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNh
bGxJZGVudGlmaWVyKGNhbGxlckNhbGxGcmFtZSwgZnVuY3Rpb24sIFN0cmluZ0ltcGw6OmVtcHR5
KCksIDAsIDApOwotCi0gICAgY2FsbEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3RkOjpi
aW5kKCZQcm9maWxlR2VuZXJhdG9yOjpkaWRFeGVjdXRlLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEs
IGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIpLCBtX2N1cnJlbnRQcm9maWxlcywgY2Fs
bGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKLX0K
LQotdm9pZCBMZWdhY3lQcm9maWxlcjo6ZGlkRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxG
cmFtZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIHN0YXJ0aW5nTGluZU51bWJl
ciwgdW5zaWduZWQgc3RhcnRpbmdDb2x1bW5OdW1iZXIpCi17Ci0gICAgQVNTRVJUKCFtX2N1cnJl
bnRQcm9maWxlcy5pc0VtcHR5KCkpOwotCi0gICAgQ2FsbElkZW50aWZpZXIgY2FsbElkZW50aWZp
ZXIgPSBjcmVhdGVDYWxsSWRlbnRpZmllcihjYWxsZXJDYWxsRnJhbWUsIEpTVmFsdWUoKSwgc291
cmNlVVJMLCBzdGFydGluZ0xpbmVOdW1iZXIsIHN0YXJ0aW5nQ29sdW1uTnVtYmVyKTsKLQotICAg
IGNhbGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdyb3VwKHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVy
YXRvcjo6ZGlkRXhlY3V0ZSwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBjYWxsZXJDYWxsRnJhbWUs
IGNhbGxJZGVudGlmaWVyKSwgbV9jdXJyZW50UHJvZmlsZXMsIGNhbGxlckNhbGxGcmFtZS0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAoKSk7Ci19Ci0KLXZvaWQgTGVnYWN5UHJv
ZmlsZXI6OmV4Y2VwdGlvblVud2luZChFeGVjU3RhdGUqIGhhbmRsZXJDYWxsRnJhbWUpCi17Ci0g
ICAgQVNTRVJUKCFtX2N1cnJlbnRQcm9maWxlcy5pc0VtcHR5KCkpOwotCi0gICAgQ2FsbElkZW50
aWZpZXIgY2FsbElkZW50aWZpZXIgPSBjcmVhdGVDYWxsSWRlbnRpZmllcihoYW5kbGVyQ2FsbEZy
YW1lLCBKU1ZhbHVlKCksIFN0cmluZ0ltcGw6OmVtcHR5KCksIDAsIDApOwotCi0gICAgY2FsbEZ1
bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3RkOjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjpl
eGNlcHRpb25VbndpbmQsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgaGFuZGxlckNhbGxGcmFtZSwg
Y2FsbElkZW50aWZpZXIpLCBtX2N1cnJlbnRQcm9maWxlcywgaGFuZGxlckNhbGxGcmFtZS0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAoKSk7Ci19Ci0KLUNhbGxJZGVudGlmaWVy
IExlZ2FjeVByb2ZpbGVyOjpjcmVhdGVDYWxsSWRlbnRpZmllcihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgZnVuY3Rpb25WYWx1ZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0U291cmNlVVJMLCB1bnNp
Z25lZCBkZWZhdWx0TGluZU51bWJlciwgdW5zaWduZWQgZGVmYXVsdENvbHVtbk51bWJlcikKLXsK
LSAgICBpZiAoIWZ1bmN0aW9uVmFsdWUpCi0gICAgICAgIHJldHVybiBDYWxsSWRlbnRpZmllcihB
U0NJSUxpdGVyYWwoR2xvYmFsQ29kZUV4ZWN1dGlvbiksIGRlZmF1bHRTb3VyY2VVUkwsIGRlZmF1
bHRMaW5lTnVtYmVyLCBkZWZhdWx0Q29sdW1uTnVtYmVyKTsKLSAgICBpZiAoIWZ1bmN0aW9uVmFs
dWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIENhbGxJZGVudGlmaWVyKEFTQ0lJTGl0ZXJh
bCgiKHVua25vd24pIiksIGRlZmF1bHRTb3VyY2VVUkwsIGRlZmF1bHRMaW5lTnVtYmVyLCBkZWZh
dWx0Q29sdW1uTnVtYmVyKTsKLSAgICBpZiAoYXNPYmplY3QoZnVuY3Rpb25WYWx1ZSktPmluaGVy
aXRzKEpTRnVuY3Rpb246OmluZm8oKSkgfHwgYXNPYmplY3QoZnVuY3Rpb25WYWx1ZSktPmluaGVy
aXRzKEludGVybmFsRnVuY3Rpb246OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBjcmVhdGVDYWxs
SWRlbnRpZmllckZyb21GdW5jdGlvbkltcChleGVjLCBhc09iamVjdChmdW5jdGlvblZhbHVlKSwg
ZGVmYXVsdFNvdXJjZVVSTCwgZGVmYXVsdExpbmVOdW1iZXIsIGRlZmF1bHRDb2x1bW5OdW1iZXIp
OwotICAgIGlmIChhc09iamVjdChmdW5jdGlvblZhbHVlKS0+aW5oZXJpdHMoSlNDYWxsZWU6Omlu
Zm8oKSkpCi0gICAgICAgIHJldHVybiBDYWxsSWRlbnRpZmllcihBU0NJSUxpdGVyYWwoR2xvYmFs
Q29kZUV4ZWN1dGlvbiksIGRlZmF1bHRTb3VyY2VVUkwsIGRlZmF1bHRMaW5lTnVtYmVyLCBkZWZh
dWx0Q29sdW1uTnVtYmVyKTsKLSAgICByZXR1cm4gQ2FsbElkZW50aWZpZXIoYXNPYmplY3QoZnVu
Y3Rpb25WYWx1ZSktPm1ldGhvZFRhYmxlKCktPmNsYXNzTmFtZShhc09iamVjdChmdW5jdGlvblZh
bHVlKSksIGRlZmF1bHRTb3VyY2VVUkwsIGRlZmF1bHRMaW5lTnVtYmVyLCBkZWZhdWx0Q29sdW1u
TnVtYmVyKTsKLX0KLQotQ2FsbElkZW50aWZpZXIgY3JlYXRlQ2FsbElkZW50aWZpZXJGcm9tRnVu
Y3Rpb25JbXAoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogZnVuY3Rpb24sIGNvbnN0IFN0cmlu
ZyYgZGVmYXVsdFNvdXJjZVVSTCwgdW5zaWduZWQgZGVmYXVsdExpbmVOdW1iZXIsIHVuc2lnbmVk
IGRlZmF1bHRDb2x1bW5OdW1iZXIpCi17Ci0gICAgY29uc3QgU3RyaW5nJiBuYW1lID0gZ2V0Q2Fs
Y3VsYXRlZERpc3BsYXlOYW1lKGV4ZWMsIGZ1bmN0aW9uKTsKLSAgICBKU0Z1bmN0aW9uKiBqc0Z1
bmN0aW9uID0ganNEeW5hbWljQ2FzdDxKU0Z1bmN0aW9uKj4oZnVuY3Rpb24pOwotICAgIGlmIChq
c0Z1bmN0aW9uICYmICFqc0Z1bmN0aW9uLT5pc0hvc3RPckJ1aWx0aW5GdW5jdGlvbigpKQotICAg
ICAgICByZXR1cm4gQ2FsbElkZW50aWZpZXIobmFtZS5pc0VtcHR5KCkgPyBBU0NJSUxpdGVyYWwo
QW5vbnltb3VzRnVuY3Rpb24pIDogbmFtZSwganNGdW5jdGlvbi0+anNFeGVjdXRhYmxlKCktPnNv
dXJjZVVSTCgpLCBqc0Z1bmN0aW9uLT5qc0V4ZWN1dGFibGUoKS0+Zmlyc3RMaW5lKCksIGpzRnVu
Y3Rpb24tPmpzRXhlY3V0YWJsZSgpLT5zdGFydENvbHVtbigpKTsKLSAgICByZXR1cm4gQ2FsbElk
ZW50aWZpZXIobmFtZS5pc0VtcHR5KCkgPyBBU0NJSUxpdGVyYWwoQW5vbnltb3VzRnVuY3Rpb24p
IDogbmFtZSwgZGVmYXVsdFNvdXJjZVVSTCwgZGVmYXVsdExpbmVOdW1iZXIsIGRlZmF1bHRDb2x1
bW5OdW1iZXIpOwotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9MZWdhY3lQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGFmMGFiNDEuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL0xlZ2FjeVByb2ZpbGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0g
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgTGVnYWN5UHJvZmlsZXJfaAotI2RlZmluZSBMZWdhY3lQcm9maWxlcl9oCi0KLSNpbmNs
dWRlICJQcm9maWxlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1N0b3B3YXRjaC5oPgotI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIEV4ZWNTdGF0ZTsKLWNsYXNzIEpT
R2xvYmFsT2JqZWN0OwotY2xhc3MgSlNPYmplY3Q7Ci1jbGFzcyBKU1ZhbHVlOwotY2xhc3MgUHJv
ZmlsZUdlbmVyYXRvcjsKLXN0cnVjdCBDYWxsSWRlbnRpZmllcjsKLQotY2xhc3MgTGVnYWN5UHJv
ZmlsZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIEpTX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBMZWdhY3lQcm9maWxlciogcHJvZmlsZXIoKTsKLSAgICBzdGF0
aWMgQ2FsbElkZW50aWZpZXIgY3JlYXRlQ2FsbElkZW50aWZpZXIoRXhlY1N0YXRlKiwgSlNWYWx1
ZSwgY29uc3QgV1RGOjpTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgZGVmYXVsdExpbmVOdW1i
ZXIsIHVuc2lnbmVkIGRlZmF1bHRDb2x1bW5OdW1iZXIpOwotCi0gICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBzdGFydFByb2ZpbGluZyhFeGVjU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgdGl0
bGUsIFBhc3NSZWZQdHI8U3RvcHdhdGNoPik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgUmVmUHRy
PFByb2ZpbGU+IHN0b3BQcm9maWxpbmcoRXhlY1N0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIHRp
dGxlKTsKLSAgICB2b2lkIHN0b3BQcm9maWxpbmcoSlNHbG9iYWxPYmplY3QqKTsKLQotICAgIC8v
IFVzZWQgdG8gaWdub3JlIHByb2ZpbGUgbm9kZSBzdWJ0cmVlcyByb290ZWQgYXQgSW5qZWN0ZWRT
Y3JpcHQgY2FsbHMuCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdXNwZW5kUHJvZmlsaW5n
KEV4ZWNTdGF0ZSopOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgdW5zdXNwZW5kUHJvZmls
aW5nKEV4ZWNTdGF0ZSopOwotCi0gICAgdm9pZCB3aWxsRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxl
ckNhbGxGcmFtZSwgSlNWYWx1ZSBmdW5jdGlvbik7Ci0gICAgdm9pZCB3aWxsRXhlY3V0ZShFeGVj
U3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIHNvdXJjZVVSTCwgdW5z
aWduZWQgc3RhcnRpbmdMaW5lTnVtYmVyLCB1bnNpZ25lZCBzdGFydGluZ0NvbHVtbk51bWJlcik7
Ci0gICAgdm9pZCBkaWRFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBKU1ZhbHVl
IGZ1bmN0aW9uKTsKLSAgICB2b2lkIGRpZEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJh
bWUsIGNvbnN0IFdURjo6U3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIHN0YXJ0aW5nTGluZU51
bWJlciwgdW5zaWduZWQgc3RhcnRpbmdDb2x1bW5OdW1iZXIpOwotCi0gICAgdm9pZCBleGNlcHRp
b25VbndpbmQoRXhlY1N0YXRlKiBoYW5kbGVyQ2FsbEZyYW1lKTsKLQotICAgIGNvbnN0IFZlY3Rv
cjxSZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4+JiBjdXJyZW50UHJvZmlsZXMoKSB7IHJldHVybiBt
X2N1cnJlbnRQcm9maWxlczsgfTsKLQotcHJpdmF0ZToKLSAgICBWZWN0b3I8UmVmUHRyPFByb2Zp
bGVHZW5lcmF0b3I+PiBtX2N1cnJlbnRQcm9maWxlczsKLSAgICBzdGF0aWMgTGVnYWN5UHJvZmls
ZXIqIHNfc2hhcmVkTGVnYWN5UHJvZmlsZXI7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQot
I2VuZGlmIC8vIExlZ2FjeVByb2ZpbGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjNkNDUwYS4uMDAw
MDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZS5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSw5NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDE0IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlBy
b2ZpbGUuaCIKLQotI2luY2x1ZGUgIlByb2ZpbGVOb2RlLmgiCi0jaW5jbHVkZSA8d3RmL0RhdGFM
b2cuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLVJlZjxQcm9maWxlPiBQcm9maWxlOjpjcmVhdGUo
Y29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBkb3VibGUgc3RhcnRUaW1lKQotewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByb2ZpbGUodGl0bGUsIHVpZCwgc3RhcnRUaW1lKSk7
Ci19Ci0KLVByb2ZpbGU6OlByb2ZpbGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlk
LCBkb3VibGUgc3RhcnRUaW1lKQotICAgIDogbV90aXRsZSh0aXRsZSkKLSAgICAsIG1fdWlkKHVp
ZCkKLXsKLSAgICAvLyBGSVhNRTogV2hlbiBtdWx0aS10aHJlYWRpbmcgaXMgc3VwcG9ydGVkIHRo
aXMgd2lsbCBiZSBhIHZlY3RvciBhbmQgY2FsbHMKLSAgICAvLyBpbnRvIHRoZSBwcm9maWxlciB3
aWxsIG5lZWQgdG8ga25vdyB3aGljaCB0aHJlYWQgaXQgaXMgZXhlY3V0aW5nIG9uLgotICAgIG1f
cm9vdE5vZGUgPSBQcm9maWxlTm9kZTo6Y3JlYXRlKG51bGxwdHIsIENhbGxJZGVudGlmaWVyKEFT
Q0lJTGl0ZXJhbCgiVGhyZWFkXzEiKSwgU3RyaW5nKCksIDAsIDApLCBudWxscHRyKTsKLSAgICBt
X3Jvb3ROb2RlLT5hcHBlbmRDYWxsKFByb2ZpbGVOb2RlOjpDYWxsKHN0YXJ0VGltZSkpOwotfQot
Ci1Qcm9maWxlOjp+UHJvZmlsZSgpCi17Ci19Ci0KLSNpZm5kZWYgTkRFQlVHCi12b2lkIFByb2Zp
bGU6OmRlYnVnUHJpbnQoKQotewotICAgIENhbGN1bGF0ZVByb2ZpbGVTdWJ0cmVlRGF0YUZ1bmN0
b3IgZnVuY3RvcjsKLSAgICBtX3Jvb3ROb2RlLT5mb3JFYWNoTm9kZVBvc3RvcmRlcihmdW5jdG9y
KTsKLSAgICBQcm9maWxlTm9kZTo6UHJvZmlsZVN1YnRyZWVEYXRhIGRhdGEgPSBmdW5jdG9yLnJl
dHVyblZhbHVlKCk7Ci0KLSAgICBkYXRhTG9nRigiQ2FsbCBncmFwaDpcbiIpOwotICAgIG1fcm9v
dE5vZGUtPmRlYnVnUHJpbnRSZWN1cnNpdmVseSgwLCBkYXRhKTsKLX0KLQotdHlwZWRlZiBXVEY6
OktleVZhbHVlUGFpcjxGdW5jdGlvbkNhbGxIYXNoQ291bnQ6OlZhbHVlVHlwZSwgdW5zaWduZWQ+
IE5hbWVDb3VudFBhaXI7Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBmdW5jdGlvbk5hbWVDb3VudFBh
aXJDb21wYXJhdG9yKGNvbnN0IE5hbWVDb3VudFBhaXImIGEsIGNvbnN0IE5hbWVDb3VudFBhaXIm
IGIpCi17Ci0gICAgcmV0dXJuIGEudmFsdWUgPiBiLnZhbHVlOwotfQotCi12b2lkIFByb2ZpbGU6
OmRlYnVnUHJpbnRTYW1wbGVTdHlsZSgpCi17Ci0gICAgdHlwZWRlZiBWZWN0b3I8TmFtZUNvdW50
UGFpcj4gTmFtZUNvdW50UGFpclZlY3RvcjsKLQotICAgIENhbGN1bGF0ZVByb2ZpbGVTdWJ0cmVl
RGF0YUZ1bmN0b3IgZnVuY3RvcjsKLSAgICBtX3Jvb3ROb2RlLT5mb3JFYWNoTm9kZVBvc3RvcmRl
cihmdW5jdG9yKTsKLSAgICBQcm9maWxlTm9kZTo6UHJvZmlsZVN1YnRyZWVEYXRhIGRhdGEgPSBm
dW5jdG9yLnJldHVyblZhbHVlKCk7Ci0KLSAgICBGdW5jdGlvbkNhbGxIYXNoQ291bnQgY291bnRl
ZEZ1bmN0aW9uczsKLSAgICBkYXRhTG9nRigiQ2FsbCBncmFwaDpcbiIpOwotICAgIG1fcm9vdE5v
ZGUtPmRlYnVnUHJpbnRTYW1wbGVTdHlsZVJlY3Vyc2l2ZWx5KDAsIGNvdW50ZWRGdW5jdGlvbnMs
IGRhdGEpOwotCi0gICAgZGF0YUxvZ0YoIlxuVG90YWwgbnVtYmVyIGluIHN0YWNrOlxuIik7Ci0g
ICAgTmFtZUNvdW50UGFpclZlY3RvciBzb3J0ZWRGdW5jdGlvbnMoY291bnRlZEZ1bmN0aW9ucy5z
aXplKCkpOwotICAgIGNvcHlUb1ZlY3Rvcihjb3VudGVkRnVuY3Rpb25zLCBzb3J0ZWRGdW5jdGlv
bnMpOwotCi0gICAgc3RkOjpzb3J0KHNvcnRlZEZ1bmN0aW9ucy5iZWdpbigpLCBzb3J0ZWRGdW5j
dGlvbnMuZW5kKCksIGZ1bmN0aW9uTmFtZUNvdW50UGFpckNvbXBhcmF0b3IpOwotICAgIGZvciAo
TmFtZUNvdW50UGFpclZlY3Rvcjo6aXRlcmF0b3IgaXQgPSBzb3J0ZWRGdW5jdGlvbnMuYmVnaW4o
KTsgaXQgIT0gc29ydGVkRnVuY3Rpb25zLmVuZCgpOyArK2l0KQotICAgICAgICBkYXRhTG9nRigi
ICAgICAgICAlLTEyZCVzXG4iLCAoKml0KS52YWx1ZSwgU3RyaW5nKCgqaXQpLmtleSkudXRmOCgp
LmRhdGEoKSk7Ci0KLSAgICBkYXRhTG9nRigiXG5Tb3J0IGJ5IHRvcCBvZiBzdGFjaywgc2FtZSBj
b2xsYXBzZWQgKHdoZW4gPj0gNSk6XG4iKTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBK
U0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZS5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0MWNiNjcwLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDE0IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSAKLSNpZm5k
ZWYgUHJvZmlsZV9oCi0jZGVmaW5lIFByb2ZpbGVfaAotCi0jaW5jbHVkZSAiUHJvZmlsZU5vZGUu
aCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNs
YXNzIEpTX0VYUE9SVF9QUklWQVRFIFByb2ZpbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxQcm9maWxl
PiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQcm9maWxlPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiB0aXRsZSwgdW5zaWduZWQgdWlkLCBkb3VibGUpOwotICAgIHZpcnR1YWwgflByb2ZpbGUoKTsK
LQotICAgIGNvbnN0IFN0cmluZyYgdGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3RpdGxlOyB9Ci0g
ICAgdW5zaWduZWQgdWlkKCkgY29uc3QgeyByZXR1cm4gbV91aWQ7IH0KLQotICAgIFByb2ZpbGVO
b2RlKiByb290Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdE5vZGUuZ2V0KCk7IH0KLSAgICB2
b2lkIHNldFJvb3ROb2RlKFBhc3NSZWZQdHI8UHJvZmlsZU5vZGU+IHJvb3ROb2RlKSB7IG1fcm9v
dE5vZGUgPSByb290Tm9kZTsgfQotCi0jaWZuZGVmIE5ERUJVRwotICAgIHZvaWQgZGVidWdQcmlu
dCgpOwotICAgIHZvaWQgZGVidWdQcmludFNhbXBsZVN0eWxlKCk7Ci0jZW5kaWYKLQotcHJvdGVj
dGVkOgotICAgIFByb2ZpbGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBkb3Vi
bGUgc3RhcnRUaW1lKTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIHJlbW92ZVByb2ZpbGVTdGFydCgp
OwotICAgIHZvaWQgcmVtb3ZlUHJvZmlsZUVuZCgpOwotCi0gICAgU3RyaW5nIG1fdGl0bGU7Ci0g
ICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBtX3Jvb3ROb2RlOwotICAgIHVuc2lnbmVkIG1fdWlkOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBQcm9maWxlX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjcwZTRhMy4uMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwyNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNCBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQcm9maWxlR2Vu
ZXJhdG9yLmgiCi0KLSNpbmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDb2RlQmxvY2su
aCIKLSNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIkpTU3RyaW5nUmVmLmgi
Ci0jaW5jbHVkZSAiSlNGdW5jdGlvbi5oIgotI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCi0j
aW5jbHVkZSAiSlNDSW5saW5lcy5oIgotI2luY2x1ZGUgIlByb2ZpbGUuaCIKLSNpbmNsdWRlICJT
dGFja1Zpc2l0b3IuaCIKLSNpbmNsdWRlICJUcmFjaW5nLmgiCi0KLW5hbWVzcGFjZSBKU0Mgewot
Ci1SZWY8UHJvZmlsZUdlbmVyYXRvcj4gUHJvZmlsZUdlbmVyYXRvcjo6Y3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBQYXNzUmVmUHRyPFN0
b3B3YXRjaD4gc3RvcHdhdGNoKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByb2ZpbGVH
ZW5lcmF0b3IoZXhlYywgdGl0bGUsIHVpZCwgc3RvcHdhdGNoKSk7Ci19Ci0KLVByb2ZpbGVHZW5l
cmF0b3I6OlByb2ZpbGVHZW5lcmF0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCB1bnNpZ25lZCB1aWQsIFBhc3NSZWZQdHI8U3RvcHdhdGNoPiBzdG9wd2F0Y2gpCi0gICAg
OiBtX29yaWdpbihleGVjID8gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpIDogbnVsbHB0cikK
LSAgICAsIG1fcHJvZmlsZUdyb3VwKGV4ZWMgPyBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkt
PnByb2ZpbGVHcm91cCgpIDogMCkKLSAgICAsIG1fc3RvcHdhdGNoKHN0b3B3YXRjaCkKLSAgICAs
IG1fZm91bmRDb25zb2xlU3RhcnRQYXJlbnQoZmFsc2UpCi0gICAgLCBtX3N1c3BlbmRlZChmYWxz
ZSkKLXsKLSAgICBkb3VibGUgc3RhcnRUaW1lID0gbV9zdG9wd2F0Y2gtPmVsYXBzZWRUaW1lKCk7
Ci0gICAgbV9wcm9maWxlID0gUHJvZmlsZTo6Y3JlYXRlKHRpdGxlLCB1aWQsIHN0YXJ0VGltZSk7
Ci0gICAgbV9jdXJyZW50Tm9kZSA9IG1fcm9vdE5vZGUgPSBtX3Byb2ZpbGUtPnJvb3ROb2RlKCk7
Ci0gICAgaWYgKGV4ZWMpCi0gICAgICAgIGFkZFBhcmVudEZvckNvbnNvbGVTdGFydChleGVjLCBz
dGFydFRpbWUpOwotfQotCi1jbGFzcyBBZGRQYXJlbnRGb3JDb25zb2xlU3RhcnRGdW5jdG9yIHsK
LXB1YmxpYzoKLSAgICBBZGRQYXJlbnRGb3JDb25zb2xlU3RhcnRGdW5jdG9yKEV4ZWNTdGF0ZSog
ZXhlYywgUmVmUHRyPFByb2ZpbGVOb2RlPiYgcm9vdE5vZGUsIFJlZlB0cjxQcm9maWxlTm9kZT4m
IGN1cnJlbnROb2RlLCBkb3VibGUgc3RhcnRUaW1lKQotICAgICAgICA6IG1fZXhlYyhleGVjKQot
ICAgICAgICAsIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUoZmFsc2UpCi0gICAgICAgICwgbV9mb3Vu
ZFBhcmVudChmYWxzZSkKLSAgICAgICAgLCBtX3Jvb3ROb2RlKHJvb3ROb2RlKQotICAgICAgICAs
IG1fY3VycmVudE5vZGUoY3VycmVudE5vZGUpCi0gICAgICAgICwgbV9zdGFydFRpbWUoc3RhcnRU
aW1lKQotICAgIHsKLSAgICB9Ci0KLSAgICBib29sIGZvdW5kUGFyZW50KCkgY29uc3QgeyByZXR1
cm4gbV9mb3VuZFBhcmVudDsgfQotCi0gICAgU3RhY2tWaXNpdG9yOjpTdGF0dXMgb3BlcmF0b3Io
KShTdGFja1Zpc2l0b3ImIHZpc2l0b3IpCi0gICAgewotICAgICAgICBpZiAoIW1faGFzU2tpcHBl
ZEZpcnN0RnJhbWUpIHsKLSAgICAgICAgICAgIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUgPSB0cnVl
OwotICAgICAgICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6Q29udGludWU7Ci0gICAgICAgIH0K
LQotICAgICAgICB1bnNpZ25lZCBsaW5lID0gMDsKLSAgICAgICAgdW5zaWduZWQgY29sdW1uID0g
MDsKLSAgICAgICAgdmlzaXRvci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGluZSwgY29sdW1uKTsK
LSAgICAgICAgbV9jdXJyZW50Tm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUobV9leGVjLCBMZWdh
Y3lQcm9maWxlcjo6Y3JlYXRlQ2FsbElkZW50aWZpZXIobV9leGVjLCB2aXNpdG9yLT5jYWxsZWUo
KSwgdmlzaXRvci0+c291cmNlVVJMKCksIGxpbmUsIGNvbHVtbiksIG1fcm9vdE5vZGUuZ2V0KCkp
OwotICAgICAgICBtX2N1cnJlbnROb2RlLT5hcHBlbmRDYWxsKFByb2ZpbGVOb2RlOjpDYWxsKG1f
c3RhcnRUaW1lKSk7Ci0gICAgICAgIG1fcm9vdE5vZGUtPnNwbGljZU5vZGUobV9jdXJyZW50Tm9k
ZS5nZXQoKSk7Ci0KLSAgICAgICAgbV9mb3VuZFBhcmVudCA9IHRydWU7Ci0gICAgICAgIHJldHVy
biBTdGFja1Zpc2l0b3I6OkRvbmU7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEV4ZWNTdGF0ZSog
bV9leGVjOwotICAgIGJvb2wgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZTsKLSAgICBib29sIG1fZm91
bmRQYXJlbnQ7Ci0gICAgUmVmUHRyPFByb2ZpbGVOb2RlPiYgbV9yb290Tm9kZTsKLSAgICBSZWZQ
dHI8UHJvZmlsZU5vZGU+JiBtX2N1cnJlbnROb2RlOwotICAgIGRvdWJsZSBtX3N0YXJ0VGltZTsK
LX07Ci0KLXZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6YWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0KEV4
ZWNTdGF0ZSogZXhlYywgZG91YmxlIHN0YXJ0VGltZSkKLXsKLSAgICBBZGRQYXJlbnRGb3JDb25z
b2xlU3RhcnRGdW5jdG9yIGZ1bmN0b3IoZXhlYywgbV9yb290Tm9kZSwgbV9jdXJyZW50Tm9kZSwg
c3RhcnRUaW1lKTsKLSAgICBleGVjLT5pdGVyYXRlKGZ1bmN0b3IpOwotCi0gICAgbV9mb3VuZENv
bnNvbGVTdGFydFBhcmVudCA9IGZ1bmN0b3IuZm91bmRQYXJlbnQoKTsKLX0KLQotY29uc3QgU3Ry
aW5nJiBQcm9maWxlR2VuZXJhdG9yOjp0aXRsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJv
ZmlsZS0+dGl0bGUoKTsKLX0KLQotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjpiZWdpbkNhbGxFbnRy
eShQcm9maWxlTm9kZSogbm9kZSwgZG91YmxlIHN0YXJ0VGltZSkKLXsKLSAgICBBU1NFUlRfQVJH
KG5vZGUsIG5vZGUpOwotCi0gICAgaWYgKHN0ZDo6aXNuYW4oc3RhcnRUaW1lKSkKLSAgICAgICAg
c3RhcnRUaW1lID0gbV9zdG9wd2F0Y2gtPmVsYXBzZWRUaW1lKCk7Ci0KLSAgICBub2RlLT5hcHBl
bmRDYWxsKFByb2ZpbGVOb2RlOjpDYWxsKHN0YXJ0VGltZSkpOwotfQotCi12b2lkIFByb2ZpbGVH
ZW5lcmF0b3I6OmVuZENhbGxFbnRyeShQcm9maWxlTm9kZSogbm9kZSkKLXsKLSAgICBBU1NFUlRf
QVJHKG5vZGUsIG5vZGUpOwotCi0gICAgUHJvZmlsZU5vZGU6OkNhbGwmIGxhc3QgPSBub2RlLT5s
YXN0Q2FsbCgpOwotCi0gICAgZG91YmxlIHByZXZpb3VzRWxhcHNlZFRpbWUgPSBzdGQ6OmlzbmFu
KGxhc3QuZWxhcHNlZFRpbWUoKSkgPyAwLjAgOiBsYXN0LmVsYXBzZWRUaW1lKCk7Ci0gICAgZG91
YmxlIG5ld2x5RWxhcHNlZFRpbWUgPSBtX3N0b3B3YXRjaC0+ZWxhcHNlZFRpbWUoKSAtIGxhc3Qu
c3RhcnRUaW1lKCk7Ci0gICAgbGFzdC5zZXRFbGFwc2VkVGltZShwcmV2aW91c0VsYXBzZWRUaW1l
ICsgbmV3bHlFbGFwc2VkVGltZSk7Ci19Ci0KLXZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6d2lsbEV4
ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBj
YWxsSWRlbnRpZmllcikKLXsKLSAgICBpZiAoSkFWQVNDUklQVENPUkVfUFJPRklMRV9XSUxMX0VY
RUNVVEVfRU5BQkxFRCgpKSB7Ci0gICAgICAgIENTdHJpbmcgbmFtZSA9IGNhbGxJZGVudGlmaWVy
LmZ1bmN0aW9uTmFtZSgpLnV0ZjgoKTsKLSAgICAgICAgQ1N0cmluZyB1cmwgPSBjYWxsSWRlbnRp
Zmllci51cmwoKS51dGY4KCk7Ci0gICAgICAgIEpBVkFTQ1JJUFRDT1JFX1BST0ZJTEVfV0lMTF9F
WEVDVVRFKG1fcHJvZmlsZUdyb3VwLCBjb25zdF9jYXN0PGNoYXIqPihuYW1lLmRhdGEoKSksIGNv
bnN0X2Nhc3Q8Y2hhcio+KHVybC5kYXRhKCkpLCBjYWxsSWRlbnRpZmllci5saW5lTnVtYmVyKCks
IGNhbGxJZGVudGlmaWVyLmNvbHVtbk51bWJlcigpKTsKLSAgICB9Ci0KLSAgICBpZiAoIW1fb3Jp
Z2luKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9zdXNwZW5kZWQpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIFJlZlB0cjxQcm9maWxlTm9kZT4gY2FsbGVlTm9kZSA9IG51bGxwdHI7Ci0K
LSAgICAvLyBGaW5kIG9yIGNyZWF0ZSBhIG5vZGUgZm9yIHRoZSBjYWxsZWUgY2FsbCBmcmFtZS4K
LSAgICBmb3IgKGNvbnN0IFJlZlB0cjxQcm9maWxlTm9kZT4mIGNoaWxkIDogbV9jdXJyZW50Tm9k
ZS0+Y2hpbGRyZW4oKSkgewotICAgICAgICBpZiAoY2hpbGQtPmNhbGxJZGVudGlmaWVyKCkgPT0g
Y2FsbElkZW50aWZpZXIpCi0gICAgICAgICAgICBjYWxsZWVOb2RlID0gY2hpbGQ7Ci0gICAgfQot
Ci0gICAgaWYgKCFjYWxsZWVOb2RlKSB7Ci0gICAgICAgIGNhbGxlZU5vZGUgPSBQcm9maWxlTm9k
ZTo6Y3JlYXRlKGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIsIG1fY3VycmVudE5vZGUu
Z2V0KCkpOwotICAgICAgICBtX2N1cnJlbnROb2RlLT5hZGRDaGlsZChjYWxsZWVOb2RlKTsKLSAg
ICB9Ci0KLSAgICBtX2N1cnJlbnROb2RlID0gY2FsbGVlTm9kZTsKLSAgICBiZWdpbkNhbGxFbnRy
eShjYWxsZWVOb2RlLmdldCgpLCBtX3N0b3B3YXRjaC0+ZWxhcHNlZFRpbWUoKSk7Ci19Ci0KLXZv
aWQgUHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFt
ZSwgY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJZGVudGlmaWVyKQotewotICAgIGlmIChKQVZB
U0NSSVBUQ09SRV9QUk9GSUxFX0RJRF9FWEVDVVRFX0VOQUJMRUQoKSkgewotICAgICAgICBDU3Ry
aW5nIG5hbWUgPSBjYWxsSWRlbnRpZmllci5mdW5jdGlvbk5hbWUoKS51dGY4KCk7Ci0gICAgICAg
IENTdHJpbmcgdXJsID0gY2FsbElkZW50aWZpZXIudXJsKCkudXRmOCgpOwotICAgICAgICBKQVZB
U0NSSVBUQ09SRV9QUk9GSUxFX0RJRF9FWEVDVVRFKG1fcHJvZmlsZUdyb3VwLCBjb25zdF9jYXN0
PGNoYXIqPihuYW1lLmRhdGEoKSksIGNvbnN0X2Nhc3Q8Y2hhcio+KHVybC5kYXRhKCkpLCBjYWxs
SWRlbnRpZmllci5saW5lTnVtYmVyKCksIGNhbGxJZGVudGlmaWVyLmNvbHVtbk51bWJlcigpKTsK
LSAgICB9Ci0KLSAgICBpZiAoIW1fb3JpZ2luKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAo
bV9zdXNwZW5kZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIE1ha2UgYSBuZXcgbm9kZSBp
ZiB0aGUgY2FsbGVyIG5vZGUgaGFzIG5ldmVyIHNlZW4gdGhpcyBjYWxsZWUgY2FsbCBmcmFtZSBi
ZWZvcmUuCi0gICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlmIHxjb25zb2xlLnByb2ZpbGUoKXwgaXMg
Y2FsbGVkIHNldmVyYWwgZnJhbWVzIGRlZXAgaW4gdGhlIGNhbGwgc3RhY2suCi0gICAgQVNTRVJU
KG1fY3VycmVudE5vZGUpOwotICAgIGlmIChtX2N1cnJlbnROb2RlLT5jYWxsSWRlbnRpZmllcigp
ICE9IGNhbGxJZGVudGlmaWVyKSB7Ci0gICAgICAgIFJlZlB0cjxQcm9maWxlTm9kZT4gY2FsbGVl
Tm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUoY2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmll
ciwgbV9jdXJyZW50Tm9kZS5nZXQoKSk7Ci0gICAgICAgIGJlZ2luQ2FsbEVudHJ5KGNhbGxlZU5v
ZGUuZ2V0KCksIG1fY3VycmVudE5vZGUtPmxhc3RDYWxsKCkuc3RhcnRUaW1lKCkpOwotICAgICAg
ICBlbmRDYWxsRW50cnkoY2FsbGVlTm9kZS5nZXQoKSk7Ci0gICAgICAgIG1fY3VycmVudE5vZGUt
PnNwbGljZU5vZGUoY2FsbGVlTm9kZS5yZWxlYXNlKCkpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgZW5kQ2FsbEVudHJ5KG1fY3VycmVudE5vZGUuZ2V0KCkpOwotICAgIG1fY3VycmVu
dE5vZGUgPSBtX2N1cnJlbnROb2RlLT5wYXJlbnQoKTsKLX0KLQotdm9pZCBQcm9maWxlR2VuZXJh
dG9yOjpleGNlcHRpb25VbndpbmQoRXhlY1N0YXRlKiBoYW5kbGVyQ2FsbEZyYW1lLCBjb25zdCBD
YWxsSWRlbnRpZmllciYpCi17Ci0gICAgaWYgKG1fc3VzcGVuZGVkKQotICAgICAgICByZXR1cm47
Ci0KLSAgICAvLyBJZiB0aGUgY3VycmVudCBub2RlIHdhcyBjYWxsZWQgYnkgdGhlIGhhbmRsZXIg
KD09KSBvciBhbnkKLSAgICAvLyBtb3JlIG5lc3RlZCBmdW5jdGlvbiAoPikgdGhlIHdlIGhhdmUg
ZXhpdGVkIGVhcmx5IGZyb20gaXQuCi0gICAgQVNTRVJUKG1fY3VycmVudE5vZGUpOwotICAgIHdo
aWxlIChtX2N1cnJlbnROb2RlLT5jYWxsZXJDYWxsRnJhbWUoKSA+PSBoYW5kbGVyQ2FsbEZyYW1l
KSB7Ci0gICAgICAgIGRpZEV4ZWN1dGUobV9jdXJyZW50Tm9kZS0+Y2FsbGVyQ2FsbEZyYW1lKCks
IG1fY3VycmVudE5vZGUtPmNhbGxJZGVudGlmaWVyKCkpOwotICAgICAgICBBU1NFUlQobV9jdXJy
ZW50Tm9kZSk7Ci0gICAgfQotfQotCi12b2lkIFByb2ZpbGVHZW5lcmF0b3I6OnN0b3BQcm9maWxp
bmcoKQotewotICAgIGZvciAoUHJvZmlsZU5vZGUqIG5vZGUgPSBtX2N1cnJlbnROb2RlLmdldCgp
OyBub2RlICE9IG1fcHJvZmlsZS0+cm9vdE5vZGUoKTsgbm9kZSA9IG5vZGUtPnBhcmVudCgpKQot
ICAgICAgICBlbmRDYWxsRW50cnkobm9kZSk7Ci0KLSAgICBpZiAobV9mb3VuZENvbnNvbGVTdGFy
dFBhcmVudCkgewotICAgICAgICByZW1vdmVQcm9maWxlU3RhcnQoKTsKLSAgICAgICAgcmVtb3Zl
UHJvZmlsZUVuZCgpOwotICAgIH0KLQotICAgIEFTU0VSVChtX2N1cnJlbnROb2RlKTsKLQotICAg
IC8vIFNldCB0aGUgY3VycmVudCBub2RlIHRvIHRoZSBwYXJlbnQsIGJlY2F1c2Ugd2UgYXJlIGlu
IGEgY2FsbCB0aGF0Ci0gICAgLy8gd2lsbCBub3QgZ2V0IGRpZEV4ZWN1dGUgY2FsbC4KLSAgICBt
X2N1cnJlbnROb2RlID0gbV9jdXJyZW50Tm9kZS0+cGFyZW50KCk7Ci19Ci0KLS8vIFRoZSBjb25z
b2xlLnByb2ZpbGUgdGhhdCBzdGFydGVkIHRoaXMgUHJvZmlsZUdlbmVyYXRvciB3aWxsIGJlIHRo
ZSBmaXJzdCBjaGlsZC4KLXZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6cmVtb3ZlUHJvZmlsZVN0YXJ0
KCkKLXsKLSAgICBQcm9maWxlTm9kZSogY3VycmVudE5vZGUgPSBudWxscHRyOwotICAgIGZvciAo
UHJvZmlsZU5vZGUqIG5leHQgPSBtX3Jvb3ROb2RlLmdldCgpOyBuZXh0OyBuZXh0ID0gbmV4dC0+
Zmlyc3RDaGlsZCgpKQotICAgICAgICBjdXJyZW50Tm9kZSA9IG5leHQ7Ci0KLSAgICBpZiAoY3Vy
cmVudE5vZGUtPmNhbGxJZGVudGlmaWVyKCkuZnVuY3Rpb25OYW1lKCkgIT0gInByb2ZpbGUiKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBjdXJyZW50Tm9kZS0+cGFyZW50KCktPnJlbW92ZUNoaWxk
KGN1cnJlbnROb2RlKTsKLX0KLQotLy8gVGhlIGNvbnNvbGUucHJvZmlsZUVuZCB0aGF0IHN0b3Bw
ZWQgdGhpcyBQcm9maWxlR2VuZXJhdG9yIHdpbGwgYmUgdGhlIGxhc3QgY2hpbGQuCi12b2lkIFBy
b2ZpbGVHZW5lcmF0b3I6OnJlbW92ZVByb2ZpbGVFbmQoKQotewotICAgIFByb2ZpbGVOb2RlKiBj
dXJyZW50Tm9kZSA9IG51bGxwdHI7Ci0gICAgZm9yIChQcm9maWxlTm9kZSogbmV4dCA9IG1fcm9v
dE5vZGUuZ2V0KCk7IG5leHQ7IG5leHQgPSBuZXh0LT5sYXN0Q2hpbGQoKSkKLSAgICAgICAgY3Vy
cmVudE5vZGUgPSBuZXh0OwotCi0gICAgaWYgKGN1cnJlbnROb2RlLT5jYWxsSWRlbnRpZmllcigp
LmZ1bmN0aW9uTmFtZSgpICE9ICJwcm9maWxlRW5kIikKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
QVNTRVJUKGN1cnJlbnROb2RlLT5jYWxsSWRlbnRpZmllcigpID09IChjdXJyZW50Tm9kZS0+cGFy
ZW50KCktPmNoaWxkcmVuKClbY3VycmVudE5vZGUtPnBhcmVudCgpLT5jaGlsZHJlbigpLnNpemUo
KSAtIDFdKS0+Y2FsbElkZW50aWZpZXIoKSk7Ci0gICAgY3VycmVudE5vZGUtPnBhcmVudCgpLT5y
ZW1vdmVDaGlsZChjdXJyZW50Tm9kZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4N2VkNWYuLjAwMDAwMDAKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaAorKysgL2Rldi9udWxsCkBA
IC0xLDg0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIFByb2ZpbGVHZW5lcmF0b3JfaAotI2RlZmluZSBQcm9maWxlR2VuZXJhdG9y
X2gKLQotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1N0b3B3YXRjaC5o
PgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQot
ICAgIGNsYXNzIERlYnVnZ2VyQ2FsbEZyYW1lOwotICAgIGNsYXNzIEV4ZWNTdGF0ZTsKLSAgICBj
bGFzcyBKU0dsb2JhbE9iamVjdDsKLSAgICBjbGFzcyBQcm9maWxlOwotICAgIGNsYXNzIFByb2Zp
bGVOb2RlOwotICAgIHN0cnVjdCBDYWxsSWRlbnRpZmllcjsKLQotICAgIGNsYXNzIFByb2ZpbGVH
ZW5lcmF0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxQcm9maWxlR2VuZXJhdG9yPiAgewotICAgIHB1
YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxQcm9maWxlR2VuZXJhdG9yPiBjcmVhdGUoRXhlY1N0
YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIFBhc3NSZWZQdHI8
U3RvcHdhdGNoPik7Ci0KLSAgICAgICAgLy8gTWVtYmVycwotICAgICAgICBjb25zdCBXVEY6OlN0
cmluZyYgdGl0bGUoKSBjb25zdDsKLSAgICAgICAgUGFzc1JlZlB0cjxQcm9maWxlPiBwcm9maWxl
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9maWxlOyB9Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBv
cmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbjsgfQotICAgICAgICB1bnNpZ25lZCBwcm9m
aWxlR3JvdXAoKSBjb25zdCB7IHJldHVybiBtX3Byb2ZpbGVHcm91cDsgfQotCi0gICAgICAgIHZv
aWQgd2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVu
dGlmaWVyJik7Ci0gICAgICAgIHZvaWQgZGlkRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxG
cmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImKTsKLSAgICAgICAgdm9pZCBleGNlcHRpb25Vbndp
bmQoRXhlY1N0YXRlKiBoYW5kbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYpOwot
Ci0gICAgICAgIHZvaWQgc2V0SXNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQpIHsgQVNTRVJUKG1f
c3VzcGVuZGVkICE9IHN1c3BlbmRlZCk7IG1fc3VzcGVuZGVkID0gc3VzcGVuZGVkOyB9Ci0KLSAg
ICAgICAgdm9pZCBzdG9wUHJvZmlsaW5nKCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBQcm9m
aWxlR2VuZXJhdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSwgdW5zaWdu
ZWQgdWlkLCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4pOwotICAgICAgICB2b2lkIGFkZFBhcmVudEZv
ckNvbnNvbGVTdGFydChFeGVjU3RhdGUqLCBkb3VibGUpOwotCi0gICAgICAgIHZvaWQgcmVtb3Zl
UHJvZmlsZVN0YXJ0KCk7Ci0gICAgICAgIHZvaWQgcmVtb3ZlUHJvZmlsZUVuZCgpOwotCi0gICAg
ICAgIHZvaWQgYmVnaW5DYWxsRW50cnkoUHJvZmlsZU5vZGUqLCBkb3VibGUgc3RhcnRUaW1lKTsK
LSAgICAgICAgdm9pZCBlbmRDYWxsRW50cnkoUHJvZmlsZU5vZGUqKTsKLQotICAgICAgICBSZWZQ
dHI8UHJvZmlsZT4gbV9wcm9maWxlOwotICAgICAgICBKU0dsb2JhbE9iamVjdCogbV9vcmlnaW47
Ci0gICAgICAgIHVuc2lnbmVkIG1fcHJvZmlsZUdyb3VwOwotICAgICAgICBSZWZQdHI8U3RvcHdh
dGNoPiBtX3N0b3B3YXRjaDsKLSAgICAgICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBtX3Jvb3ROb2Rl
OwotICAgICAgICBSZWZQdHI8UHJvZmlsZU5vZGU+IG1fY3VycmVudE5vZGU7Ci0gICAgICAgIGJv
b2wgbV9mb3VuZENvbnNvbGVTdGFydFBhcmVudDsKLSAgICAgICAgYm9vbCBtX3N1c3BlbmRlZDsK
LSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2VuZGlmIC8vIFByb2ZpbGVHZW5lcmF0
b3JfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVO
b2RlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliY2YzNzUuLjAwMDAwMDAKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDE5OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQcm9maWxlTm9k
ZS5oIgotCi0jaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKLSNpbmNsdWRlIDx3dGYvRGF0ZU1h
dGguaD4KLSNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0hhc2guaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdURjsKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLVBy
b2ZpbGVOb2RlOjpQcm9maWxlTm9kZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3Qg
Q2FsbElkZW50aWZpZXImIGNhbGxJZGVudGlmaWVyLCBQcm9maWxlTm9kZSogcGFyZW50Tm9kZSkK
LSAgICA6IG1fY2FsbGVyQ2FsbEZyYW1lKGNhbGxlckNhbGxGcmFtZSkKLSAgICAsIG1fY2FsbElk
ZW50aWZpZXIoY2FsbElkZW50aWZpZXIpCi0gICAgLCBtX3BhcmVudChwYXJlbnROb2RlKQotI2lm
bmRlZiBOREVCVUcKLSAgICAsIG1fbmV4dFNpYmxpbmcobnVsbHB0cikKLSNlbmRpZgotewotfQot
Ci1Qcm9maWxlTm9kZTo6UHJvZmlsZU5vZGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIFBy
b2ZpbGVOb2RlKiBub2RlVG9Db3B5KQotICAgIDogbV9jYWxsZXJDYWxsRnJhbWUoY2FsbGVyQ2Fs
bEZyYW1lKQotICAgICwgbV9jYWxsSWRlbnRpZmllcihub2RlVG9Db3B5LT5jYWxsSWRlbnRpZmll
cigpKQotICAgICwgbV9wYXJlbnQobm9kZVRvQ29weS0+cGFyZW50KCkpCi0gICAgLCBtX2NhbGxz
KG5vZGVUb0NvcHktPmNhbGxzKCkpCi0jaWZuZGVmIE5ERUJVRwotICAgICwgbV9uZXh0U2libGlu
ZyhudWxscHRyKQotI2VuZGlmCi17Ci19Ci0KLXZvaWQgUHJvZmlsZU5vZGU6OmFkZENoaWxkKFBh
c3NSZWZQdHI8UHJvZmlsZU5vZGU+IHBycENoaWxkKQotewotICAgIFJlZlB0cjxQcm9maWxlTm9k
ZT4gY2hpbGQgPSBwcnBDaGlsZDsKLSAgICBjaGlsZC0+c2V0UGFyZW50KHRoaXMpOwotI2lmbmRl
ZiBOREVCVUcKLSAgICBpZiAobV9jaGlsZHJlbi5zaXplKCkpCi0gICAgICAgIG1fY2hpbGRyZW4u
bGFzdCgpLT5zZXROZXh0U2libGluZyhjaGlsZC5nZXQoKSk7Ci0jZW5kaWYKLSAgICBtX2NoaWxk
cmVuLmFwcGVuZChjaGlsZC5yZWxlYXNlKCkpOwotfQotCi12b2lkIFByb2ZpbGVOb2RlOjpyZW1v
dmVDaGlsZChQcm9maWxlTm9kZSogbm9kZSkKLXsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIG1fY2hpbGRyZW4ucmVtb3ZlRmlyc3RNYXRjaGluZyhbbm9kZV0gKGNvbnN0
IFJlZlB0cjxQcm9maWxlTm9kZT4mIGN1cnJlbnQpIHsKLSAgICAgICAgcmV0dXJuICpub2RlID09
IGN1cnJlbnQuZ2V0KCk7Ci0gICAgfSk7Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgc2l6ZV90IHNp
emUgPSBtX2NoaWxkcmVuLnNpemUoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7
ICsraSkKLSAgICAgICAgbV9jaGlsZHJlbltpXS0+c2V0TmV4dFNpYmxpbmcoaSArIDEgPT0gc2l6
ZSA/IG51bGxwdHIgOiBtX2NoaWxkcmVuW2kgKyAxXS5nZXQoKSk7Ci0jZW5kaWYKLX0KLQotdm9p
ZCBQcm9maWxlTm9kZTo6c3BsaWNlTm9kZShQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPiBwcnBOb2Rl
KQotewotICAgIFJlZlB0cjxQcm9maWxlTm9kZT4gbm9kZSA9IHBycE5vZGU7Ci0KLSAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9jaGlsZHJlbi5zaXplKCk7ICsraSkKLSAgICAgICAgbm9k
ZS0+YWRkQ2hpbGQobV9jaGlsZHJlbltpXS5yZWxlYXNlKCkpOwotCi0gICAgbV9jaGlsZHJlbi5j
bGVhcigpOwotICAgIG1fY2hpbGRyZW4uYXBwZW5kKG5vZGUucmVsZWFzZSgpKTsKLX0KLQotI2lm
bmRlZiBOREVCVUcKLVByb2ZpbGVOb2RlKiBQcm9maWxlTm9kZTo6dHJhdmVyc2VOZXh0Tm9kZVBv
c3RPcmRlcigpIGNvbnN0Ci17Ci0gICAgUHJvZmlsZU5vZGUqIG5leHQgPSBtX25leHRTaWJsaW5n
OwotICAgIGlmICghbmV4dCkKLSAgICAgICAgcmV0dXJuIG1fcGFyZW50OwotICAgIHdoaWxlIChQ
cm9maWxlTm9kZSogZmlyc3RDaGlsZCA9IG5leHQtPmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgbmV4
dCA9IGZpcnN0Q2hpbGQ7Ci0gICAgcmV0dXJuIG5leHQ7Ci19Ci0KLXZvaWQgUHJvZmlsZU5vZGU6
OmRlYnVnUHJpbnQoKQotewotICAgIENhbGN1bGF0ZVByb2ZpbGVTdWJ0cmVlRGF0YUZ1bmN0b3Ig
ZnVuY3RvcjsKLSAgICBmb3JFYWNoTm9kZVBvc3RvcmRlcihmdW5jdG9yKTsKLSAgICBQcm9maWxl
Tm9kZTo6UHJvZmlsZVN1YnRyZWVEYXRhIGRhdGEgPSBmdW5jdG9yLnJldHVyblZhbHVlKCk7Ci0K
LSAgICBkZWJ1Z1ByaW50UmVjdXJzaXZlbHkoMCwgZGF0YSk7Ci19Ci0KLXZvaWQgUHJvZmlsZU5v
ZGU6OmRlYnVnUHJpbnRTYW1wbGVTdHlsZSgpCi17Ci0gICAgRnVuY3Rpb25DYWxsSGFzaENvdW50
IGNvdW50ZWRGdW5jdGlvbnM7Ci0KLSAgICBDYWxjdWxhdGVQcm9maWxlU3VidHJlZURhdGFGdW5j
dG9yIGZ1bmN0b3I7Ci0gICAgZm9yRWFjaE5vZGVQb3N0b3JkZXIoZnVuY3Rvcik7Ci0gICAgUHJv
ZmlsZU5vZGU6OlByb2ZpbGVTdWJ0cmVlRGF0YSBkYXRhID0gZnVuY3Rvci5yZXR1cm5WYWx1ZSgp
OwotCi0gICAgZGVidWdQcmludFNhbXBsZVN0eWxlUmVjdXJzaXZlbHkoMCwgY291bnRlZEZ1bmN0
aW9ucywgZGF0YSk7Ci19Ci0KLXZvaWQgUHJvZmlsZU5vZGU6OmRlYnVnUHJpbnRSZWN1cnNpdmVs
eShpbnQgaW5kZW50TGV2ZWwsIGNvbnN0IFByb2ZpbGVTdWJ0cmVlRGF0YSYgZGF0YSkKLXsKLSAg
ICAvLyBQcmludCBmdW5jdGlvbiBuYW1lcwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kZW50
TGV2ZWw7ICsraSkKLSAgICAgICAgZGF0YUxvZ0YoIiAgIik7Ci0KLSAgICBhdXRvIGl0ID0gZGF0
YS5zZWxmQW5kVG90YWxUaW1lcy5maW5kKHRoaXMpOwotICAgIEFTU0VSVChpdCAhPSBkYXRhLnNl
bGZBbmRUb3RhbFRpbWVzLmVuZCgpKTsKLQotICAgIGRvdWJsZSBub2RlU2VsZlRpbWUgPSBpdC0+
dmFsdWUuZmlyc3Q7Ci0gICAgZG91YmxlIG5vZGVUb3RhbFRpbWUgPSBpdC0+dmFsdWUuc2Vjb25k
OwotICAgIGRvdWJsZSByb290VG90YWxUaW1lID0gZGF0YS5yb290VG90YWxUaW1lOwotCi0gICAg
ZGF0YUxvZ0YoIkZ1bmN0aW9uIE5hbWUgJXMgJXp1IFNlbGZUaW1lICUuM2Ztcy8lLjNmJSUgVG90
YWxUaW1lICUuM2Ztcy8lLjNmJSUgTmV4dCBTaWJsaW5nICVzXG4iLAotICAgICAgICBmdW5jdGlv
bk5hbWUoKS51dGY4KCkuZGF0YSgpLAotICAgICAgICBtX2NhbGxzLnNpemUoKSwgbm9kZVNlbGZU
aW1lLCBub2RlU2VsZlRpbWUgLyByb290VG90YWxUaW1lICogMTAwLjAsIG5vZGVUb3RhbFRpbWUs
IG5vZGVUb3RhbFRpbWUgLyByb290VG90YWxUaW1lICogMTAwLjAsCi0gICAgICAgIG1fbmV4dFNp
YmxpbmcgPyBtX25leHRTaWJsaW5nLT5mdW5jdGlvbk5hbWUoKS51dGY4KCkuZGF0YSgpIDogIiIp
OwotCi0gICAgKytpbmRlbnRMZXZlbDsKLQotICAgIC8vIFByaW50IGNoaWxkcmVuJ3MgbmFtZXMg
YW5kIGluZm9ybWF0aW9uCi0gICAgZm9yIChTdGFja0l0ZXJhdG9yIGN1cnJlbnRDaGlsZCA9IG1f
Y2hpbGRyZW4uYmVnaW4oKTsgY3VycmVudENoaWxkICE9IG1fY2hpbGRyZW4uZW5kKCk7ICsrY3Vy
cmVudENoaWxkKQotICAgICAgICAoKmN1cnJlbnRDaGlsZCktPmRlYnVnUHJpbnRSZWN1cnNpdmVs
eShpbmRlbnRMZXZlbCwgZGF0YSk7Ci19Ci0KLS8vIHByaW50IHRoZSBwcm9maWxlZCBkYXRhIGlu
IGEgZm9ybWF0IHRoYXQgbWF0Y2hlcyB0aGUgdG9vbCBzYW1wbGUncyBvdXRwdXQuCi1kb3VibGUg
UHJvZmlsZU5vZGU6OmRlYnVnUHJpbnRTYW1wbGVTdHlsZVJlY3Vyc2l2ZWx5KGludCBpbmRlbnRM
ZXZlbCwgRnVuY3Rpb25DYWxsSGFzaENvdW50JiBjb3VudGVkRnVuY3Rpb25zLCBjb25zdCBQcm9m
aWxlU3VidHJlZURhdGEmIGRhdGEpCi17Ci0gICAgZGF0YUxvZ0YoIiAgICAiKTsKLQotICAgIGF1
dG8gaXQgPSBkYXRhLnNlbGZBbmRUb3RhbFRpbWVzLmZpbmQodGhpcyk7Ci0gICAgQVNTRVJUKGl0
ICE9IGRhdGEuc2VsZkFuZFRvdGFsVGltZXMuZW5kKCkpOwotICAgIGRvdWJsZSBub2RlVG90YWxU
aW1lID0gaXQtPnZhbHVlLnNlY29uZDsKLQotICAgIC8vIFByaW50IGZ1bmN0aW9uIG5hbWVzCi0g
ICAgY29uc3QgY2hhciogbmFtZSA9IGZ1bmN0aW9uTmFtZSgpLnV0ZjgoKS5kYXRhKCk7Ci0gICAg
ZG91YmxlIHNhbXBsZUNvdW50ID0gbm9kZVRvdGFsVGltZSAqIDEwMDA7Ci0gICAgaWYgKGluZGVu
dExldmVsKSB7Ci0gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kZW50TGV2ZWw7ICsraSkK
LSAgICAgICAgICAgIGRhdGFMb2dGKCIgICIpOwotCi0gICAgICAgICBjb3VudGVkRnVuY3Rpb25z
LmFkZChmdW5jdGlvbk5hbWUoKS5pbXBsKCkpOwotCi0gICAgICAgIGRhdGFMb2dGKCIlLjBmICVz
XG4iLCBzYW1wbGVDb3VudCA/IHNhbXBsZUNvdW50IDogMSwgbmFtZSk7Ci0gICAgfSBlbHNlCi0g
ICAgICAgIGRhdGFMb2dGKCIlc1xuIiwgbmFtZSk7Ci0KLSAgICArK2luZGVudExldmVsOwotCi0g
ICAgLy8gUHJpbnQgY2hpbGRyZW4ncyBuYW1lcyBhbmQgaW5mb3JtYXRpb24KLSAgICBkb3VibGUg
c3VtT2ZDaGlsZHJlbnNDb3VudCA9IDAuMDsKLSAgICBmb3IgKFN0YWNrSXRlcmF0b3IgY3VycmVu
dENoaWxkID0gbV9jaGlsZHJlbi5iZWdpbigpOyBjdXJyZW50Q2hpbGQgIT0gbV9jaGlsZHJlbi5l
bmQoKTsgKytjdXJyZW50Q2hpbGQpCi0gICAgICAgIHN1bU9mQ2hpbGRyZW5zQ291bnQgKz0gKCpj
dXJyZW50Q2hpbGQpLT5kZWJ1Z1ByaW50U2FtcGxlU3R5bGVSZWN1cnNpdmVseShpbmRlbnRMZXZl
bCwgY291bnRlZEZ1bmN0aW9ucywgZGF0YSk7Ci0KLSAgICBzdW1PZkNoaWxkcmVuc0NvdW50ICo9
IDEwMDA7ICAgIC8vCi0gICAgLy8gUHJpbnQgcmVtYWluZGVyIG9mIHNhbXBsZXMgdG8gbWF0Y2gg
c2FtcGxlJ3Mgb3V0cHV0Ci0gICAgaWYgKHN1bU9mQ2hpbGRyZW5zQ291bnQgPCBzYW1wbGVDb3Vu
dCkgewotICAgICAgICBkYXRhTG9nRigiICAgICIpOwotICAgICAgICB3aGlsZSAoaW5kZW50TGV2
ZWwtLSkKLSAgICAgICAgICAgIGRhdGFMb2dGKCIgICIpOwotCi0gICAgICAgIGRhdGFMb2dGKCIl
LjBmICVzXG4iLCBzYW1wbGVDb3VudCAtIHN1bU9mQ2hpbGRyZW5zQ291bnQsIGZ1bmN0aW9uTmFt
ZSgpLnV0ZjgoKS5kYXRhKCkpOwotICAgIH0KLQotICAgIHJldHVybiBub2RlVG90YWxUaW1lOwot
fQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZU5vZGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Fk
MTQ5ZS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZU5vZGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDE5NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0g
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUHJvZmlsZU5vZGVf
aAotI2RlZmluZSBQcm9maWxlTm9kZV9oCi0KLSNpbmNsdWRlICJDYWxsSWRlbnRpZmllci5oIgot
I2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQot
bmFtZXNwYWNlIEpTQyB7Ci0KLSAgICBjbGFzcyBFeGVjU3RhdGU7Ci0gICAgY2xhc3MgUHJvZmls
ZU5vZGU7Ci0KLSAgICB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PFN0cmluZ0ltcGwqPiBGdW5jdGlv
bkNhbGxIYXNoQ291bnQ7Ci0KLSAgICBjbGFzcyBQcm9maWxlTm9kZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFByb2ZpbGVOb2RlPiB7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPFByb2Zp
bGVOb2RlPiBjcmVhdGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVu
dGlmaWVyJiBjYWxsSWRlbnRpZmllciwgUHJvZmlsZU5vZGUqIHBhcmVudE5vZGUpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByb2ZpbGVOb2RlKGNhbGxlckNh
bGxGcmFtZSwgY2FsbElkZW50aWZpZXIsIHBhcmVudE5vZGUpKTsKLSAgICAgICAgfQotCi0gICAg
ICAgIHN0YXRpYyBSZWY8UHJvZmlsZU5vZGU+IGNyZWF0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxG
cmFtZSwgUHJvZmlsZU5vZGUqIG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFByb2ZpbGVOb2RlKGNhbGxlckNhbGxGcmFtZSwgbm9kZSkpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgc3RydWN0IENhbGwgewotICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAg
ICBDYWxsKGRvdWJsZSBzdGFydFRpbWUsIGRvdWJsZSBlbGFwc2VkVGltZSA9IE5BTikKLSAgICAg
ICAgICAgICAgICA6IG1fc3RhcnRUaW1lKHN0YXJ0VGltZSkKLSAgICAgICAgICAgICAgICAsIG1f
ZWxhcHNlZFRpbWUoZWxhcHNlZFRpbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGRvdWJsZSBzdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0VGlt
ZTsgfQotICAgICAgICAgICAgdm9pZCBzZXRTdGFydFRpbWUoZG91YmxlIHRpbWUpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUX0FSRyh0aW1lLCB0aW1lID49IDAuMCB8fCBz
dGQ6OmlzbmFuKHRpbWUpKTsKLSAgICAgICAgICAgICAgICBtX3N0YXJ0VGltZSA9IHRpbWU7Ci0g
ICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGRvdWJsZSBlbGFwc2VkVGltZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZWxhcHNlZFRpbWU7IH0KLSAgICAgICAgICAgIHZvaWQgc2V0RWxhcHNlZFRpbWUo
ZG91YmxlIHRpbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUX0FSRyh0
aW1lLCB0aW1lID49IDAuMCB8fCBzdGQ6OmlzbmFuKHRpbWUpKTsKLSAgICAgICAgICAgICAgICBt
X2VsYXBzZWRUaW1lID0gdGltZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICBwcml2YXRlOgot
ICAgICAgICAgICAgZG91YmxlIG1fc3RhcnRUaW1lOwotICAgICAgICAgICAgZG91YmxlIG1fZWxh
cHNlZFRpbWU7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvcj09KFByb2ZpbGVO
b2RlKiBub2RlKSB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyID09IG5vZGUtPmNhbGxJZGVudGlm
aWVyKCk7IH0KLQotICAgICAgICBFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY2FsbGVyQ2FsbEZyYW1lOyB9Ci0gICAgICAgIGNvbnN0IENhbGxJZGVudGlmaWVy
JiBjYWxsSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbElkZW50aWZpZXI7IH0KLSAg
ICAgICAgdW5zaWduZWQgaWQoKSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyLmhhc2go
KTsgfQotICAgICAgICBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fY2FsbElkZW50aWZpZXIuZnVuY3Rpb25OYW1lKCk7IH0KLSAgICAgICAgY29uc3QgU3RyaW5n
JiB1cmwoKSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyLnVybCgpOyB9Ci0gICAgICAg
IHVuc2lnbmVkIGxpbmVOdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyLmxp
bmVOdW1iZXIoKTsgfQotICAgICAgICB1bnNpZ25lZCBjb2x1bW5OdW1iZXIoKSBjb25zdCB7IHJl
dHVybiBtX2NhbGxJZGVudGlmaWVyLmNvbHVtbk51bWJlcigpOyB9Ci0KLSAgICAgICAgUHJvZmls
ZU5vZGUqIHBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9Ci0gICAgICAgIHZvaWQg
c2V0UGFyZW50KFByb2ZpbGVOb2RlKiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KLQot
ICAgICAgICBjb25zdCBWZWN0b3I8Q2FsbD4mIGNhbGxzKCkgY29uc3QgeyByZXR1cm4gbV9jYWxs
czsgfQotICAgICAgICBDYWxsJiBsYXN0Q2FsbCgpIHsgQVNTRVJUKCFtX2NhbGxzLmlzRW1wdHko
KSk7IHJldHVybiBtX2NhbGxzLmxhc3QoKTsgfQotICAgICAgICB2b2lkIGFwcGVuZENhbGwoQ2Fs
bCBjYWxsKSB7IG1fY2FsbHMuYXBwZW5kKGNhbGwpOyB9Ci0KLSAgICAgICAgY29uc3QgVmVjdG9y
PFJlZlB0cjxQcm9maWxlTm9kZT4+JiBjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRy
ZW47IH0KLSAgICAgICAgUHJvZmlsZU5vZGUqIGZpcnN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBt
X2NoaWxkcmVuLnNpemUoKSA/IG1fY2hpbGRyZW4uZmlyc3QoKS5nZXQoKSA6IG51bGxwdHI7IH0K
LSAgICAgICAgUHJvZmlsZU5vZGUqIGxhc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRy
ZW4uc2l6ZSgpID8gbV9jaGlsZHJlbi5sYXN0KCkuZ2V0KCkgOiBudWxscHRyOyB9Ci0KLSAgICAg
ICAgdm9pZCByZW1vdmVDaGlsZChQcm9maWxlTm9kZSopOwotICAgICAgICB2b2lkIGFkZENoaWxk
KFBhc3NSZWZQdHI8UHJvZmlsZU5vZGU+KTsKLSAgICAgICAgLy8gUmVwYXJlbnQgb3VyIGNoaWxk
IG5vZGVzIHRvIHRoZSBwYXNzZWQgbm9kZSwgYW5kIG1ha2UgaXQgYSBjaGlsZCBub2RlIG9mIHx0
aGlzfC4KLSAgICAgICAgdm9pZCBzcGxpY2VOb2RlKFBhc3NSZWZQdHI8UHJvZmlsZU5vZGU+KTsK
LQotI2lmbmRlZiBOREVCVUcKLSAgICAgICAgc3RydWN0IFByb2ZpbGVTdWJ0cmVlRGF0YSB7Ci0g
ICAgICAgICAgICBIYXNoTWFwPFByb2ZpbGVOb2RlKiwgc3RkOjpwYWlyPGRvdWJsZSwgZG91Ymxl
Pj4gc2VsZkFuZFRvdGFsVGltZXM7Ci0gICAgICAgICAgICBkb3VibGUgcm9vdFRvdGFsVGltZTsK
LSAgICAgICAgfTsKLQotICAgICAgICAvLyBVc2UgdGhlc2UgZnVuY3Rpb25zIHRvIGR1bXAgdGhl
IHN1YnRyZWUgcm9vdGVkIGF0IHRoaXMgbm9kZS4KLSAgICAgICAgdm9pZCBkZWJ1Z1ByaW50KCk7
Ci0gICAgICAgIHZvaWQgZGVidWdQcmludFNhbXBsZVN0eWxlKCk7Ci0KLSAgICAgICAgLy8gVGhl
c2UgYXJlIHVzZWQgdG8gcmVjdXJzaXZlbHkgcHJpbnQgZW50aXJlIHN1YnRyZWVzIHVzaW5nIHBy
ZWNvbXB1dGVkIHNlbGYgYW5kIHRvdGFsIHRpbWVzLgotICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgRnVuY3Rvcj4gdm9pZCBmb3JFYWNoTm9kZVBvc3RvcmRlcihGdW5jdG9yJik7Ci0KLSAgICAg
ICAgdm9pZCBkZWJ1Z1ByaW50UmVjdXJzaXZlbHkoaW50IGluZGVudExldmVsLCBjb25zdCBQcm9m
aWxlU3VidHJlZURhdGEmKTsKLSAgICAgICAgZG91YmxlIGRlYnVnUHJpbnRTYW1wbGVTdHlsZVJl
Y3Vyc2l2ZWx5KGludCBpbmRlbnRMZXZlbCwgRnVuY3Rpb25DYWxsSGFzaENvdW50JiwgY29uc3Qg
UHJvZmlsZVN1YnRyZWVEYXRhJik7Ci0jZW5kaWYKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHR5
cGVkZWYgVmVjdG9yPFJlZlB0cjxQcm9maWxlTm9kZT4+Ojpjb25zdF9pdGVyYXRvciBTdGFja0l0
ZXJhdG9yOwotCi0gICAgICAgIFByb2ZpbGVOb2RlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1l
LCBjb25zdCBDYWxsSWRlbnRpZmllciYsIFByb2ZpbGVOb2RlKiBwYXJlbnROb2RlKTsKLSAgICAg
ICAgUHJvZmlsZU5vZGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIFByb2ZpbGVOb2RlKiBu
b2RlVG9Db3B5KTsKLQotI2lmbmRlZiBOREVCVUcKLSAgICAgICAgUHJvZmlsZU5vZGUqIG5leHRT
aWJsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9uZXh0U2libGluZzsgfQotICAgICAgICB2b2lkIHNl
dE5leHRTaWJsaW5nKFByb2ZpbGVOb2RlKiBuZXh0U2libGluZykgeyBtX25leHRTaWJsaW5nID0g
bmV4dFNpYmxpbmc7IH0KLQotICAgICAgICBQcm9maWxlTm9kZSogdHJhdmVyc2VOZXh0Tm9kZVBv
c3RPcmRlcigpIGNvbnN0OwotI2VuZGlmCi0KLSAgICAgICAgRXhlY1N0YXRlKiBtX2NhbGxlckNh
bGxGcmFtZTsKLSAgICAgICAgQ2FsbElkZW50aWZpZXIgbV9jYWxsSWRlbnRpZmllcjsKLSAgICAg
ICAgUHJvZmlsZU5vZGUqIG1fcGFyZW50OwotICAgICAgICBWZWN0b3I8Q2FsbD4gbV9jYWxsczsK
LSAgICAgICAgVmVjdG9yPFJlZlB0cjxQcm9maWxlTm9kZT4+IG1fY2hpbGRyZW47Ci0KLSNpZm5k
ZWYgTkRFQlVHCi0gICAgICAgIFByb2ZpbGVOb2RlKiBtX25leHRTaWJsaW5nOwotI2VuZGlmCi0g
ICAgfTsKLQotI2lmbmRlZiBOREVCVUcKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4g
aW5saW5lIHZvaWQgUHJvZmlsZU5vZGU6OmZvckVhY2hOb2RlUG9zdG9yZGVyKEZ1bmN0b3ImIGZ1
bmN0b3IpCi0gICAgewotICAgICAgICBQcm9maWxlTm9kZSogY3VycmVudE5vZGUgPSB0aGlzOwot
ICAgICAgICAvLyBHbyBkb3duIHRvIHRoZSBmaXJzdCBub2RlIG9mIHRoZSB0cmF2ZXJzYWwsIGFu
ZCBzbG93bHkgd2FsayBiYWNrIHVwLgotICAgICAgICBmb3IgKFByb2ZpbGVOb2RlKiBuZXh0Tm9k
ZSA9IGN1cnJlbnROb2RlOyBuZXh0Tm9kZTsgbmV4dE5vZGUgPSBuZXh0Tm9kZS0+Zmlyc3RDaGls
ZCgpKQotICAgICAgICAgICAgY3VycmVudE5vZGUgPSBuZXh0Tm9kZTsKLQotICAgICAgICBQcm9m
aWxlTm9kZSogZW5kTm9kZSA9IHRoaXM7Ci0gICAgICAgIHdoaWxlIChjdXJyZW50Tm9kZSAmJiBj
dXJyZW50Tm9kZSAhPSBlbmROb2RlKSB7Ci0gICAgICAgICAgICBmdW5jdG9yKGN1cnJlbnROb2Rl
KTsKLSAgICAgICAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUtPnRyYXZlcnNlTmV4dE5v
ZGVQb3N0T3JkZXIoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0b3IoZW5kTm9kZSk7Ci0g
ICAgfQotCi0gICAgc3RydWN0IENhbGN1bGF0ZVByb2ZpbGVTdWJ0cmVlRGF0YUZ1bmN0b3Igewot
ICAgICAgICB2b2lkIG9wZXJhdG9yKCkoUHJvZmlsZU5vZGUqIG5vZGUpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGRvdWJsZSBzZWxmVGltZSA9IDAuMDsKLSAgICAgICAgICAgIGZvciAoY29uc3Qg
UHJvZmlsZU5vZGU6OkNhbGwmIGNhbGwgOiBub2RlLT5jYWxscygpKQotICAgICAgICAgICAgICAg
IHNlbGZUaW1lICs9IGNhbGwuZWxhcHNlZFRpbWUoKTsKLQotICAgICAgICAgICAgZG91YmxlIHRv
dGFsVGltZSA9IHNlbGZUaW1lOwotICAgICAgICAgICAgZm9yIChSZWZQdHI8UHJvZmlsZU5vZGU+
IGNoaWxkIDogbm9kZS0+Y2hpbGRyZW4oKSkgewotICAgICAgICAgICAgICAgIGF1dG8gaXQgPSBt
X2RhdGEuc2VsZkFuZFRvdGFsVGltZXMuZmluZChjaGlsZC5nZXQoKSk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGl0ICE9IG1fZGF0YS5zZWxmQW5kVG90YWxUaW1lcy5lbmQoKSkKLSAgICAgICAgICAg
ICAgICAgICAgdG90YWxUaW1lICs9IGl0LT52YWx1ZS5zZWNvbmQ7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIEFTU0VSVChub2RlKTsKLSAgICAgICAgICAgIG1fZGF0YS5zZWxmQW5kVG90
YWxUaW1lcy5zZXQobm9kZSwgc3RkOjptYWtlX3BhaXIoc2VsZlRpbWUsIHRvdGFsVGltZSkpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgUHJvZmlsZU5vZGU6OlByb2ZpbGVTdWJ0cmVlRGF0YSByZXR1
cm5WYWx1ZSgpIHsgcmV0dXJuIFdURk1vdmUobV9kYXRhKTsgfQotCi0gICAgICAgIFByb2ZpbGVO
b2RlOjpQcm9maWxlU3VidHJlZURhdGEgbV9kYXRhOwotICAgIH07Ci0jZW5kaWYKLQotfSAvLyBu
YW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBQcm9maWxlTm9kZV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5jcHAK
aW5kZXggMzA2OGZmMy4uMzc1MWZlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmNwcApAQCAtNDcsOSArNDcs
NiBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgSmV0dGlzb25SZWFzb24g
cmVhc29uKQogICAgIGNhc2UgSmV0dGlzb25EdWVUb0RlYnVnZ2VyU3RlcHBpbmc6CiAgICAgICAg
IG91dC5wcmludCgiRGVidWdnZXJTdGVwcGluZyIpOwogICAgICAgICByZXR1cm47Ci0gICAgY2Fz
ZSBKZXR0aXNvbkR1ZVRvTGVnYWN5UHJvZmlsZXI6Ci0gICAgICAgIG91dC5wcmludCgiTGVnYWN5
UHJvZmlsZXIiKTsKLSAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSmV0dGlzb25EdWVUb0Jhc2Vs
aW5lTG9vcFJlb3B0aW1pemF0aW9uVHJpZ2dlcjoKICAgICAgICAgb3V0LnByaW50KCJCYXNlbGlu
ZUxvb3BSZW9wdGltaXphdGlvblRyaWdnZXIiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24u
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckpldHRpc29uUmVhc29u
LmgKaW5kZXggNmE3OTMyNi4uNTMwMGEyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24uaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5oCkBAIC0zMyw3ICszMyw2
IEBAIGVudW0gSmV0dGlzb25SZWFzb24gewogICAgIEpldHRpc29uRHVlVG9XZWFrUmVmZXJlbmNl
LAogICAgIEpldHRpc29uRHVlVG9EZWJ1Z2dlckJyZWFrcG9pbnQsCiAgICAgSmV0dGlzb25EdWVU
b0RlYnVnZ2VyU3RlcHBpbmcsCi0gICAgSmV0dGlzb25EdWVUb0xlZ2FjeVByb2ZpbGVyLAogICAg
IEpldHRpc29uRHVlVG9CYXNlbGluZUxvb3BSZW9wdGltaXphdGlvblRyaWdnZXIsCiAgICAgSmV0
dGlzb25EdWVUb0Jhc2VsaW5lTG9vcFJlb3B0aW1pemF0aW9uVHJpZ2dlck9uT1NSRW50cnlGYWls
LAogICAgIEpldHRpc29uRHVlVG9PU1JFeGl0LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvZGVDYWNoZS5jcHAKaW5kZXggMGU4ZDRhMC4uODc1N2NhZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCkBAIC04MywxMSArODMsMTEgQEAgdGVt
cGxhdGUgPD4gc3RydWN0IENhY2hlVHlwZXM8VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2Nr
PiB7CiB9OwogCiB0ZW1wbGF0ZSA8Y2xhc3MgVW5saW5rZWRDb2RlQmxvY2tUeXBlLCBjbGFzcyBF
eGVjdXRhYmxlVHlwZT4KLVVubGlua2VkQ29kZUJsb2NrVHlwZSogQ29kZUNhY2hlOjpnZXRHbG9i
YWxDb2RlQmxvY2soVk0mIHZtLCBFeGVjdXRhYmxlVHlwZSogZXhlY3V0YWJsZSwgY29uc3QgU291
cmNlQ29kZSYgc291cmNlLCBKU1BhcnNlckJ1aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBKU1BhcnNl
clN0cmljdE1vZGUgc3RyaWN0TW9kZSwgVGhpc1REWk1vZGUgdGhpc1REWk1vZGUsIGJvb2wsIERl
YnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUsIFBhcnNl
ckVycm9yJiBlcnJvciwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogdmFyaWFibGVzVW5kZXJU
RFopCitVbmxpbmtlZENvZGVCbG9ja1R5cGUqIENvZGVDYWNoZTo6Z2V0R2xvYmFsQ29kZUJsb2Nr
KFZNJiB2bSwgRXhlY3V0YWJsZVR5cGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNv
dXJjZSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2Rl
IHN0cmljdE1vZGUsIFRoaXNURFpNb2RlIHRoaXNURFpNb2RlLCBib29sLCBEZWJ1Z2dlck1vZGUg
ZGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1l
bnQqIHZhcmlhYmxlc1VuZGVyVERaKQogewogICAgIFNvdXJjZUNvZGVLZXkga2V5ID0gU291cmNl
Q29kZUtleShzb3VyY2UsIFN0cmluZygpLCBDYWNoZVR5cGVzPFVubGlua2VkQ29kZUJsb2NrVHlw
ZT46OmNvZGVUeXBlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9kZSwgdGhpc1REWk1vZGUpOwogICAg
IFNvdXJjZUNvZGVWYWx1ZSogY2FjaGUgPSBtX3NvdXJjZUNvZGUuZmluZENhY2hlQW5kVXBkYXRl
QWdlKGtleSk7Ci0gICAgYm9vbCBjYW5DYWNoZSA9IGRlYnVnZ2VyTW9kZSA9PSBEZWJ1Z2dlck9m
ZiAmJiBwcm9maWxlck1vZGUgPT0gUHJvZmlsZXJPZmYgJiYgIXZtLnR5cGVQcm9maWxlcigpICYm
ICF2bS5jb250cm9sRmxvd1Byb2ZpbGVyKCk7CisgICAgYm9vbCBjYW5DYWNoZSA9IGRlYnVnZ2Vy
TW9kZSA9PSBEZWJ1Z2dlck9mZiAmJiAhdm0udHlwZVByb2ZpbGVyKCkgJiYgIXZtLmNvbnRyb2xG
bG93UHJvZmlsZXIoKTsKICAgICBpZiAoY2FjaGUgJiYgY2FuQ2FjaGUpIHsKICAgICAgICAgVW5s
aW5rZWRDb2RlQmxvY2tUeXBlKiB1bmxpbmtlZENvZGVCbG9jayA9IGpzQ2FzdDxVbmxpbmtlZENv
ZGVCbG9ja1R5cGUqPihjYWNoZS0+Y2VsbC5nZXQoKSk7CiAgICAgICAgIHVuc2lnbmVkIGZpcnN0
TGluZSA9IHNvdXJjZS5maXJzdExpbmUoKSArIHVubGlua2VkQ29kZUJsb2NrLT5maXJzdExpbmUo
KTsKQEAgLTExNyw3ICsxMTcsNyBAQCBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIENvZGVDYWNoZTo6
Z2V0R2xvYmFsQ29kZUJsb2NrKFZNJiB2bSwgRXhlY3V0YWJsZVR5cGUqIGV4ZQogICAgIFVubGlu
a2VkQ29kZUJsb2NrVHlwZSogdW5saW5rZWRDb2RlQmxvY2sgPSBVbmxpbmtlZENvZGVCbG9ja1R5
cGU6OmNyZWF0ZSgmdm0sIGV4ZWN1dGFibGUtPmV4ZWN1dGFibGVJbmZvKCkpOwogICAgIHVubGlu
a2VkQ29kZUJsb2NrLT5yZWNvcmRQYXJzZShyb290Tm9kZS0+ZmVhdHVyZXMoKSwgcm9vdE5vZGUt
Pmhhc0NhcHR1cmVkVmFyaWFibGVzKCksIHJvb3ROb2RlLT5maXJzdExpbmUoKSAtIHNvdXJjZS5m
aXJzdExpbmUoKSwgbGluZUNvdW50LCB1bmxpbmtlZEVuZENvbHVtbik7CiAKLSAgICBhdXRvIGdl
bmVyYXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8Qnl0ZWNvZGVHZW5lcmF0b3I+KHZtLCByb290Tm9k
ZS5nZXQoKSwgdW5saW5rZWRDb2RlQmxvY2ssIGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJNb2RlLCB2
YXJpYWJsZXNVbmRlclREWik7CisgICAgYXV0byBnZW5lcmF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVl
PEJ5dGVjb2RlR2VuZXJhdG9yPih2bSwgcm9vdE5vZGUuZ2V0KCksIHVubGlua2VkQ29kZUJsb2Nr
LCBkZWJ1Z2dlck1vZGUsIHZhcmlhYmxlc1VuZGVyVERaKTsKICAgICBlcnJvciA9IGdlbmVyYXRv
ci0+Z2VuZXJhdGUoKTsKICAgICBpZiAoZXJyb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKQEAgLTEyOSwyMSArMTI5LDIxIEBAIFVubGlua2VkQ29kZUJsb2NrVHlwZSogQ29k
ZUNhY2hlOjpnZXRHbG9iYWxDb2RlQmxvY2soVk0mIHZtLCBFeGVjdXRhYmxlVHlwZSogZXhlCiAg
ICAgcmV0dXJuIHVubGlua2VkQ29kZUJsb2NrOwogfQogCi1VbmxpbmtlZFByb2dyYW1Db2RlQmxv
Y2sqIENvZGVDYWNoZTo6Z2V0UHJvZ3JhbUNvZGVCbG9jayhWTSYgdm0sIFByb2dyYW1FeGVjdXRh
YmxlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRp
bk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBEZWJ1Z2dl
ck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJv
ciYgZXJyb3IpCitVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqIENvZGVDYWNoZTo6Z2V0UHJvZ3Jh
bUNvZGVCbG9jayhWTSYgdm0sIFByb2dyYW1FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25zdCBT
b3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFy
c2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQYXJz
ZXJFcnJvciYgZXJyb3IpCiB7CiAgICAgVmFyaWFibGVFbnZpcm9ubWVudCBlbXB0eVBhcmVudFRE
WlZhcmlhYmxlczsKLSAgICByZXR1cm4gZ2V0R2xvYmFsQ29kZUJsb2NrPFVubGlua2VkUHJvZ3Jh
bUNvZGVCbG9jaz4odm0sIGV4ZWN1dGFibGUsIHNvdXJjZSwgYnVpbHRpbk1vZGUsIHN0cmljdE1v
ZGUsIFRoaXNURFpNb2RlOjpDaGVja0lmTmVlZGVkLCBmYWxzZSwgZGVidWdnZXJNb2RlLCBwcm9m
aWxlck1vZGUsIGVycm9yLCAmZW1wdHlQYXJlbnRURFpWYXJpYWJsZXMpOworICAgIHJldHVybiBn
ZXRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrPih2bSwgZXhlY3V0YWJs
ZSwgc291cmNlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9kZSwgVGhpc1REWk1vZGU6OkNoZWNrSWZO
ZWVkZWQsIGZhbHNlLCBkZWJ1Z2dlck1vZGUsIGVycm9yLCAmZW1wdHlQYXJlbnRURFpWYXJpYWJs
ZXMpOwogfQogCi1VbmxpbmtlZEV2YWxDb2RlQmxvY2sqIENvZGVDYWNoZTo6Z2V0RXZhbENvZGVC
bG9jayhWTSYgdm0sIEV2YWxFeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2Rl
JiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0
TW9kZSBzdHJpY3RNb2RlLCBUaGlzVERaTW9kZSB0aGlzVERaTW9kZSwgYm9vbCBpc0Fycm93RnVu
Y3Rpb25Db250ZXh0LCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUgcHJv
ZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQq
IHZhcmlhYmxlc1VuZGVyVERaKQorVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBDb2RlQ2FjaGU6Omdl
dEV2YWxDb2RlQmxvY2soVk0mIHZtLCBFdmFsRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlLCBKU1BhcnNlckJ1aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBKU1Bh
cnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSwgVGhpc1REWk1vZGUgdGhpc1REWk1vZGUsIGJvb2wg
aXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUGFyc2Vy
RXJyb3ImIGVycm9yLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiB2YXJpYWJsZXNVbmRlclRE
WikKIHsKLSAgICByZXR1cm4gZ2V0R2xvYmFsQ29kZUJsb2NrPFVubGlua2VkRXZhbENvZGVCbG9j
az4odm0sIGV4ZWN1dGFibGUsIHNvdXJjZSwgYnVpbHRpbk1vZGUsIHN0cmljdE1vZGUsIHRoaXNU
RFpNb2RlLCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9k
ZSwgZXJyb3IsIHZhcmlhYmxlc1VuZGVyVERaKTsKKyAgICByZXR1cm4gZ2V0R2xvYmFsQ29kZUJs
b2NrPFVubGlua2VkRXZhbENvZGVCbG9jaz4odm0sIGV4ZWN1dGFibGUsIHNvdXJjZSwgYnVpbHRp
bk1vZGUsIHN0cmljdE1vZGUsIHRoaXNURFpNb2RlLCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBk
ZWJ1Z2dlck1vZGUsIGVycm9yLCB2YXJpYWJsZXNVbmRlclREWik7CiB9CiAKLVVubGlua2VkTW9k
dWxlUHJvZ3JhbUNvZGVCbG9jayogQ29kZUNhY2hlOjpnZXRNb2R1bGVQcm9ncmFtQ29kZUJsb2Nr
KFZNJiB2bSwgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJj
ZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgRGVidWdnZXJN
b2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSwgUGFyc2VyRXJyb3Im
IGVycm9yKQorVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiBDb2RlQ2FjaGU6OmdldE1v
ZHVsZVByb2dyYW1Db2RlQmxvY2soVk0mIHZtLCBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSogZXhl
Y3V0YWJsZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1BhcnNlckJ1aWx0aW5Nb2RlIGJ1
aWx0aW5Nb2RlLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3Ip
CiB7CiAgICAgVmFyaWFibGVFbnZpcm9ubWVudCBlbXB0eVBhcmVudFREWlZhcmlhYmxlczsKLSAg
ICByZXR1cm4gZ2V0R2xvYmFsQ29kZUJsb2NrPFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9j
az4odm0sIGV4ZWN1dGFibGUsIHNvdXJjZSwgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9k
ZTo6U3RyaWN0LCBUaGlzVERaTW9kZTo6Q2hlY2tJZk5lZWRlZCwgZmFsc2UsIGRlYnVnZ2VyTW9k
ZSwgcHJvZmlsZXJNb2RlLCBlcnJvciwgJmVtcHR5UGFyZW50VERaVmFyaWFibGVzKTsKKyAgICBy
ZXR1cm4gZ2V0R2xvYmFsQ29kZUJsb2NrPFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jaz4o
dm0sIGV4ZWN1dGFibGUsIHNvdXJjZSwgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZTo6
U3RyaWN0LCBUaGlzVERaTW9kZTo6Q2hlY2tJZk5lZWRlZCwgZmFsc2UsIGRlYnVnZ2VyTW9kZSwg
ZXJyb3IsICZlbXB0eVBhcmVudFREWlZhcmlhYmxlcyk7CiB9CiAKIC8vIEZJWE1FOiBUaGVyZSdz
IG5vIG5lZWQgdG8gYWRkIHRoZSBmdW5jdGlvbidzIG5hbWUgdG8gdGhlIGtleSBoZXJlLiBJdCdz
IGFscmVhZHkgaW4gdGhlIHNvdXJjZSBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db2RlQ2FjaGUuaAppbmRleCAyMTMyZjBjLi5jYjBmYWM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaApAQCAtMTkzLDkgKzE5Myw5IEBAIHB1YmxpYzoKICAg
ICBDb2RlQ2FjaGUoKTsKICAgICB+Q29kZUNhY2hlKCk7CiAKLSAgICBVbmxpbmtlZFByb2dyYW1D
b2RlQmxvY2sqIGdldFByb2dyYW1Db2RlQmxvY2soVk0mLCBQcm9ncmFtRXhlY3V0YWJsZSosIGNv
bnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1vZGUs
IERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYpOwotICAgIFVubGlua2Vk
RXZhbENvZGVCbG9jayogZ2V0RXZhbENvZGVCbG9jayhWTSYsIEV2YWxFeGVjdXRhYmxlKiwgY29u
c3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSwg
VGhpc1REWk1vZGUsIGJvb2wsIERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJv
ciYsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKLSAgICBVbmxpbmtlZE1vZHVsZVByb2dy
YW1Db2RlQmxvY2sqIGdldE1vZHVsZVByb2dyYW1Db2RlQmxvY2soVk0mLCBNb2R1bGVQcm9ncmFt
RXhlY3V0YWJsZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBEZWJ1
Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSwgUGFyc2VyRXJyb3ImKTsKKyAgICBVbmxpbmtlZFByb2dy
YW1Db2RlQmxvY2sqIGdldFByb2dyYW1Db2RlQmxvY2soVk0mLCBQcm9ncmFtRXhlY3V0YWJsZSos
IGNvbnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1v
ZGUsIERlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImKTsKKyAgICBVbmxpbmtlZEV2YWxDb2RlQmxv
Y2sqIGdldEV2YWxDb2RlQmxvY2soVk0mLCBFdmFsRXhlY3V0YWJsZSosIGNvbnN0IFNvdXJjZUNv
ZGUmLCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1vZGUsIFRoaXNURFpNb2Rl
LCBib29sLCBEZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJiwgY29uc3QgVmFyaWFibGVFbnZpcm9u
bWVudCopOworICAgIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayogZ2V0TW9kdWxlUHJv
Z3JhbUNvZGVCbG9jayhWTSYsIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlKiwgY29uc3QgU291cmNl
Q29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIERlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImKTsK
ICAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZ2V0RnVuY3Rpb25FeGVjdXRhYmxlRnJv
bUdsb2JhbENvZGUoVk0mLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgU291cmNlQ29kZSYsIFBh
cnNlckVycm9yJik7CiAKICAgICB2b2lkIGNsZWFyKCkKQEAgLTIwNSw3ICsyMDUsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPGNsYXNzIFVubGlua2VkQ29kZUJsb2NrVHlw
ZSwgY2xhc3MgRXhlY3V0YWJsZVR5cGU+IAotICAgIFVubGlua2VkQ29kZUJsb2NrVHlwZSogZ2V0
R2xvYmFsQ29kZUJsb2NrKFZNJiwgRXhlY3V0YWJsZVR5cGUqLCBjb25zdCBTb3VyY2VDb2RlJiwg
SlNQYXJzZXJCdWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlLCBUaGlzVERaTW9kZSwgYm9v
bCwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUsIFBhcnNlckVycm9yJiwgY29uc3QgVmFyaWFi
bGVFbnZpcm9ubWVudCopOworICAgIFVubGlua2VkQ29kZUJsb2NrVHlwZSogZ2V0R2xvYmFsQ29k
ZUJsb2NrKFZNJiwgRXhlY3V0YWJsZVR5cGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJC
dWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlLCBUaGlzVERaTW9kZSwgYm9vbCwgRGVidWdn
ZXJNb2RlLCBQYXJzZXJFcnJvciYsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKIAogICAg
IENvZGVDYWNoZU1hcCBtX3NvdXJjZUNvZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGVjdXRhYmxlLmNwcAppbmRleCA5ZTQ3NTE5Li4xMGIxYWU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApAQCAtMjk3LDEwICsyOTcs
OSBAQCBDb2RlQmxvY2sqIFNjcmlwdEV4ZWN1dGFibGU6Om5ld0NvZGVCbG9ja0ZvcigKICAgICBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc2NvcGUtPmdsb2JhbE9iamVjdCgpOwogICAg
IFBhcnNlckVycm9yIGVycm9yOwogICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUgPSBnbG9i
YWxPYmplY3QtPmhhc0RlYnVnZ2VyKCkgPyBEZWJ1Z2dlck9uIDogRGVidWdnZXJPZmY7Ci0gICAg
UHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSA9IGdsb2JhbE9iamVjdC0+aGFzUHJvZmlsZXIoKSA/
IFByb2ZpbGVyT24gOiBQcm9maWxlck9mZjsKICAgICBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2Nr
KiB1bmxpbmtlZENvZGVCbG9jayA9IAogICAgICAgICBleGVjdXRhYmxlLT5tX3VubGlua2VkRXhl
Y3V0YWJsZS0+dW5saW5rZWRDb2RlQmxvY2tGb3IoCi0gICAgICAgICAgICAqdm0sIGV4ZWN1dGFi
bGUtPm1fc291cmNlLCBraW5kLCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwgZXJyb3IsIAor
ICAgICAgICAgICAgKnZtLCBleGVjdXRhYmxlLT5tX3NvdXJjZSwga2luZCwgZGVidWdnZXJNb2Rl
LCBlcnJvciwgCiAgICAgICAgICAgICBleGVjdXRhYmxlLT5wYXJzZU1vZGUoKSk7CiAgICAgcmVj
b3JkUGFyc2UoCiAgICAgICAgIGV4ZWN1dGFibGUtPm1fdW5saW5rZWRFeGVjdXRhYmxlLT5mZWF0
dXJlcygpLCAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAppbmRleCAxZmI3ZmQ0Li4yMjRjZGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xMDksNyArMTA5LDYgQEAKICNp
bmNsdWRlICJKU1dlYWtNYXAuaCIKICNpbmNsdWRlICJKU1dlYWtTZXQuaCIKICNpbmNsdWRlICJK
U1dpdGhTY29wZS5oIgotI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiTG9v
a3VwLmgiCiAjaW5jbHVkZSAiTWFwQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJNYXBJdGVyYXRv
clByb3RvdHlwZS5oIgpAQCAtMTczLDcgKzE3Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25z
dCBDbGFzc0luZm8gSlNHbG9iYWxPYmplY3Q6OnNfaW5mbyA9IHsgIkdsb2JhbE9iamVjdCIsICZC
YXNlOjpzX2luZm8sICZnbG9iYWxPYmplY3RUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0ds
b2JhbE9iamVjdCkgfTsKIAotY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNHbG9iYWxP
YmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nlc3NGcm9tLCAm
c3VwcG9ydHNQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJy
dXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgbnVsbHB0ciwgJnNob3VsZEludGVy
cnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIgfTsKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTR2xvYmFsT2Jq
ZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNjZXNzRnJvbSwgJnN1
cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0
UnVudGltZUZsYWdzLCBudWxscHRyLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91
dCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OwogCiAvKiBT
b3VyY2UgZm9yIEpTR2xvYmFsT2JqZWN0Lmx1dC5oCiBAYmVnaW4gZ2xvYmFsT2JqZWN0VGFibGUK
QEAgLTIzNyw5ICsyMzYsNiBAQCBKU0dsb2JhbE9iamVjdDo6fkpTR2xvYmFsT2JqZWN0KCkKIAog
ICAgIGlmIChtX2RlYnVnZ2VyKQogICAgICAgICBtX2RlYnVnZ2VyLT5kZXRhY2godGhpcywgRGVi
dWdnZXI6Okdsb2JhbE9iamVjdElzRGVzdHJ1Y3RpbmcpOwotCi0gICAgaWYgKExlZ2FjeVByb2Zp
bGVyKiBwcm9maWxlciA9IHZtKCkuZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVy
LT5zdG9wUHJvZmlsaW5nKHRoaXMpOwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0OjpkZXN0cm95
KEpTQ2VsbCogY2VsbCkKQEAgLTYxMiwxNCArNjA4LDYgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5z
aXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1
Y3QKICAgICByZXNldFByb3RvdHlwZSh2bSwgcHJvdG90eXBlKCkpOwogfQogCi1ib29sIEpTR2xv
YmFsT2JqZWN0OjpoYXNQcm9maWxlcigpIGNvbnN0Ci17Ci0gICAgaWYgKG1fZGVidWdnZXIgJiYg
bV9kZWJ1Z2dlci0+aGFzUHJvZmlsaW5nQ2xpZW50KCkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgcmV0dXJuIGdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPnN1cHBvcnRzUHJvZmlsaW5n
KHRoaXMpOwotfQotCiB2b2lkIEpTR2xvYmFsT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU0dsb2JhbE9iamVjdCogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGNlbGwpOwpAQCAtOTc5LDEwICs5NjcsOSBAQCBVbmxp
bmtlZFByb2dyYW1Db2RlQmxvY2sqIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVQcm9ncmFtQ29kZUJs
b2NrKENhbGxGcmFtZSogY2FsbAogICAgIFBhcnNlckVycm9yIGVycm9yOwogICAgIEpTUGFyc2Vy
U3RyaWN0TW9kZSBzdHJpY3RNb2RlID0gZXhlY3V0YWJsZS0+aXNTdHJpY3RNb2RlKCkgPyBKU1Bh
cnNlclN0cmljdE1vZGU6OlN0cmljdCA6IEpTUGFyc2VyU3RyaWN0TW9kZTo6Tm90U3RyaWN0Owog
ICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUgPSBoYXNEZWJ1Z2dlcigpID8gRGVidWdnZXJP
biA6IERlYnVnZ2VyT2ZmOwotICAgIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUgPSBoYXNQcm9m
aWxlcigpID8gUHJvZmlsZXJPbiA6IFByb2ZpbGVyT2ZmOwogICAgIFVubGlua2VkUHJvZ3JhbUNv
ZGVCbG9jayogdW5saW5rZWRDb2RlQmxvY2sgPSB2bSgpLmNvZGVDYWNoZSgpLT5nZXRQcm9ncmFt
Q29kZUJsb2NrKAogICAgICAgICB2bSgpLCBleGVjdXRhYmxlLCBleGVjdXRhYmxlLT5zb3VyY2Uo
KSwgSlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRpbiwgc3RyaWN0TW9kZSwgCi0gICAgICAg
IGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJNb2RlLCBlcnJvcik7CisgICAgICAgIGRlYnVnZ2VyTW9k
ZSwgZXJyb3IpOwogCiAgICAgaWYgKGhhc0RlYnVnZ2VyKCkpCiAgICAgICAgIGRlYnVnZ2VyKCkt
PnNvdXJjZVBhcnNlZChjYWxsRnJhbWUsIGV4ZWN1dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVyKCks
IGVycm9yLmxpbmUoKSwgZXJyb3IubWVzc2FnZSgpKTsKQEAgLTEwMDAsOSArOTg3LDggQEAgVW5s
aW5rZWRFdmFsQ29kZUJsb2NrKiBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlRXZhbENvZGVCbG9jayhD
YWxsRnJhbWUqIGNhbGxGcmFtZSwKICAgICBQYXJzZXJFcnJvciBlcnJvcjsKICAgICBKU1BhcnNl
clN0cmljdE1vZGUgc3RyaWN0TW9kZSA9IGV4ZWN1dGFibGUtPmlzU3RyaWN0TW9kZSgpID8gSlNQ
YXJzZXJTdHJpY3RNb2RlOjpTdHJpY3QgOiBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdDsK
ICAgICBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlID0gaGFzRGVidWdnZXIoKSA/IERlYnVnZ2Vy
T24gOiBEZWJ1Z2dlck9mZjsKLSAgICBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlID0gaGFzUHJv
ZmlsZXIoKSA/IFByb2ZpbGVyT24gOiBQcm9maWxlck9mZjsKICAgICBVbmxpbmtlZEV2YWxDb2Rl
QmxvY2sqIHVubGlua2VkQ29kZUJsb2NrID0gdm0oKS5jb2RlQ2FjaGUoKS0+Z2V0RXZhbENvZGVC
bG9jaygKLSAgICAgICAgdm0oKSwgZXhlY3V0YWJsZSwgZXhlY3V0YWJsZS0+c291cmNlKCksIEpT
UGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIHN0cmljdE1vZGUsIHRoaXNURFpNb2RlLCBp
c0Fycm93RnVuY3Rpb25Db250ZXh0LCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwgZXJyb3Is
IHZhcmlhYmxlc1VuZGVyVERaKTsKKyAgICAgICAgdm0oKSwgZXhlY3V0YWJsZSwgZXhlY3V0YWJs
ZS0+c291cmNlKCksIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIHN0cmljdE1vZGUs
IHRoaXNURFpNb2RlLCBpc0Fycm93RnVuY3Rpb25Db250ZXh0LCBkZWJ1Z2dlck1vZGUsIGVycm9y
LCB2YXJpYWJsZXNVbmRlclREWik7CiAKICAgICBpZiAoaGFzRGVidWdnZXIoKSkKICAgICAgICAg
ZGVidWdnZXIoKS0+c291cmNlUGFyc2VkKGNhbGxGcmFtZSwgZXhlY3V0YWJsZS0+c291cmNlKCku
cHJvdmlkZXIoKSwgZXJyb3IubGluZSgpLCBlcnJvci5tZXNzYWdlKCkpOwpAQCAtMTAxOSw5ICsx
MDA1LDggQEAgVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiBKU0dsb2JhbE9iamVjdDo6
Y3JlYXRlTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayhDYWwKIHsKICAgICBQYXJzZXJFcnJvciBlcnJv
cjsKICAgICBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlID0gaGFzRGVidWdnZXIoKSA/IERlYnVn
Z2VyT24gOiBEZWJ1Z2dlck9mZjsKLSAgICBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlID0gaGFz
UHJvZmlsZXIoKSA/IFByb2ZpbGVyT24gOiBQcm9maWxlck9mZjsKICAgICBVbmxpbmtlZE1vZHVs
ZVByb2dyYW1Db2RlQmxvY2sqIHVubGlua2VkQ29kZUJsb2NrID0gdm0oKS5jb2RlQ2FjaGUoKS0+
Z2V0TW9kdWxlUHJvZ3JhbUNvZGVCbG9jaygKLSAgICAgICAgdm0oKSwgZXhlY3V0YWJsZSwgZXhl
Y3V0YWJsZS0+c291cmNlKCksIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIGRlYnVn
Z2VyTW9kZSwgcHJvZmlsZXJNb2RlLCBlcnJvcik7CisgICAgICAgIHZtKCksIGV4ZWN1dGFibGUs
IGV4ZWN1dGFibGUtPnNvdXJjZSgpLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RCdWlsdGluLCBk
ZWJ1Z2dlck1vZGUsIGVycm9yKTsKIAogICAgIGlmIChoYXNEZWJ1Z2dlcigpKQogICAgICAgICBk
ZWJ1Z2dlcigpLT5zb3VyY2VQYXJzZWQoY2FsbEZyYW1lLCBleGVjdXRhYmxlLT5zb3VyY2UoKS5w
cm92aWRlcigpLCBlcnJvci5saW5lKCksIGVycm9yLm1lc3NhZ2UoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBiNGZmMmZiLi42MGY5
YTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmgKQEAgLTE0MSw5ICsxNDEsNiBAQCBzdHJ1Y3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgewog
ICAgIHR5cGVkZWYgYm9vbCAoKkFsbG93c0FjY2Vzc0Zyb21GdW5jdGlvblB0cikoY29uc3QgSlNH
bG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqKTsKICAgICBBbGxvd3NBY2Nlc3NGcm9tRnVuY3Rpb25Q
dHIgYWxsb3dzQWNjZXNzRnJvbTsKIAotICAgIHR5cGVkZWYgYm9vbCAoKlN1cHBvcnRzUHJvZmls
aW5nRnVuY3Rpb25QdHIpKGNvbnN0IEpTR2xvYmFsT2JqZWN0Kik7IAotICAgIFN1cHBvcnRzUHJv
ZmlsaW5nRnVuY3Rpb25QdHIgc3VwcG9ydHNQcm9maWxpbmc7Ci0KICAgICB0eXBlZGVmIGJvb2wg
KCpTdXBwb3J0c1JpY2hTb3VyY2VJbmZvRnVuY3Rpb25QdHIpKGNvbnN0IEpTR2xvYmFsT2JqZWN0
Kik7CiAgICAgU3VwcG9ydHNSaWNoU291cmNlSW5mb0Z1bmN0aW9uUHRyIHN1cHBvcnRzUmljaFNv
dXJjZUluZm87CiAKQEAgLTM2MCw3ICszNTcsNiBAQCBwdWJsaWM6CiAgICAgREVDTEFSRV9FWFBP
UlRfSU5GTzsKIAogICAgIGJvb2wgaGFzRGVidWdnZXIoKSBjb25zdCB7IHJldHVybiBtX2RlYnVn
Z2VyOyB9Ci0gICAgYm9vbCBoYXNQcm9maWxlcigpIGNvbnN0OwogICAgIGNvbnN0IFJ1bnRpbWVG
bGFncyYgcnVudGltZUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9ydW50aW1lRmxhZ3M7IH0KIAog
cHJvdGVjdGVkOgpAQCAtNjE5LDcgKzYxNSw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBHbG9iYWxP
YmplY3RNZXRob2RUYWJsZSogZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKSBjb25zdCB7IHJldHVy
biBtX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOyB9CiAKICAgICBzdGF0aWMgYm9vbCBhbGxvd3NB
Y2Nlc3NGcm9tKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKikgeyByZXR1cm4gdHJ1
ZTsgfQotICAgIHN0YXRpYyBib29sIHN1cHBvcnRzUHJvZmlsaW5nKGNvbnN0IEpTR2xvYmFsT2Jq
ZWN0KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1JpY2hTb3Vy
Y2VJbmZvKGNvbnN0IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgRXhlY1N0YXRlKiBnbG9iYWxFeGVjKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zLmgKaW5kZXggYmY4NTk3Yi4uODk0Yjg0YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtMTI5LDcgKzEyOSw2IEBAIHR5cGVkZWYg
Y29uc3QgY2hhciogb3B0aW9uU3RyaW5nOwogICAgIHYoYm9vbCwgZHVtcEJ5dGVjb2RlTGl2ZW5l
c3NSZXN1bHRzLCBmYWxzZSwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgdmFsaWRhdGVCeXRlY29k
ZSwgZmFsc2UsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIGZvcmNlRGVidWdnZXJCeXRlY29kZUdl
bmVyYXRpb24sIGZhbHNlLCBudWxscHRyKSBcCi0gICAgdihib29sLCBmb3JjZVByb2ZpbGVyQnl0
ZWNvZGVHZW5lcmF0aW9uLCBmYWxzZSwgbnVsbHB0cikgXAogICAgIFwKICAgICB2KGJvb2wsIHVz
ZUZ1bmN0aW9uRG90QXJndW1lbnRzLCB0cnVlLCBudWxscHRyKSBcCiAgICAgdihib29sLCB1c2VU
YWlsQ2FsbHMsIHRydWUsIG51bGxwdHIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNw
cAppbmRleCAwZTQ0YzM0Li45MmE1OGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
Y3BwCkBAIC0xOTEsNyArMTkxLDYgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhl
YXBUeXBlKQogI2VuZGlmCiAgICAgLCBtX2luRGVmaW5lT3duUHJvcGVydHkoZmFsc2UpCiAgICAg
LCBtX2NvZGVDYWNoZShzdGQ6Om1ha2VfdW5pcXVlPENvZGVDYWNoZT4oKSkKLSAgICAsIG1fZW5h
YmxlZFByb2ZpbGVyKG51bGxwdHIpCiAgICAgLCBtX2J1aWx0aW5FeGVjdXRhYmxlcyhzdGQ6Om1h
a2VfdW5pcXVlPEJ1aWx0aW5FeGVjdXRhYmxlcz4oKnRoaXMpKQogICAgICwgbV90eXBlUHJvZmls
ZXJFbmFibGVkQ291bnQoMCkKICAgICAsIG1fY29udHJvbEZsb3dQcm9maWxlckVuYWJsZWRDb3Vu
dCgwKQpAQCAtNzUxLDI1ICs3NTAsNiBAQCB2b2lkIFZNOjphZGRJbXB1cmVQcm9wZXJ0eShjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKICAgICAgICAgd2F0Y2hwb2ludFNldC0+ZmlyZUFsbCgi
SW1wdXJlIHByb3BlcnR5IGFkZGVkIik7CiB9CiAKLWNsYXNzIFNldEVuYWJsZWRQcm9maWxlckZ1
bmN0b3IgewotcHVibGljOgotICAgIGJvb2wgb3BlcmF0b3IoKShDb2RlQmxvY2sqIGNvZGVCbG9j
aykKLSAgICB7Ci0gICAgICAgIGlmIChKSVRDb2RlOjppc09wdGltaXppbmdKSVQoY29kZUJsb2Nr
LT5qaXRUeXBlKCkpKQotICAgICAgICAgICAgY29kZUJsb2NrLT5qZXR0aXNvbihQcm9maWxlcjo6
SmV0dGlzb25EdWVUb0xlZ2FjeVByb2ZpbGVyKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLX07Ci0KLXZvaWQgVk06OnNldEVuYWJsZWRQcm9maWxlcihMZWdhY3lQcm9maWxlciogcHJv
ZmlsZXIpCi17Ci0gICAgbV9lbmFibGVkUHJvZmlsZXIgPSBwcm9maWxlcjsKLSAgICBpZiAobV9l
bmFibGVkUHJvZmlsZXIpIHsKLSAgICAgICAgU2V0RW5hYmxlZFByb2ZpbGVyRnVuY3RvciBmdW5j
dG9yOwotICAgICAgICBoZWFwLmZvckVhY2hDb2RlQmxvY2soZnVuY3Rvcik7Ci0gICAgfQotfQot
CiBzdGF0aWMgYm9vbCBlbmFibGVQcm9maWxlcldpdGhSZXNwZWN0VG9Db3VudCh1bnNpZ25lZCYg
Y291bnRlciwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRvRW5hYmxlV29yaykKIHsKICAgICBib29s
IG5lZWRzVG9SZWNvbXBpbGUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmlu
ZGV4IGFlZTBhYzEuLmI5ZmU3NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAt
OTAsNyArOTAsNiBAQCBjbGFzcyBJbnRlcnByZXRlcjsKIGNsYXNzIEpTR2xvYmFsT2JqZWN0Owog
Y2xhc3MgSlNPYmplY3Q7CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7Ci1jbGFzcyBMZWdh
Y3lQcm9maWxlcjsKIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGU7CiBjbGFzcyBSZWdFeHBDYWNoZTsK
IGNsYXNzIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OwpAQCAtMzUwLDExICszNDksNiBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBtX2luRGVmaW5lT3duUHJvcGVydHk7CiAgICAgfQogCi0gICAgTGVn
YWN5UHJvZmlsZXIqIGVuYWJsZWRQcm9maWxlcigpIHsgcmV0dXJuIG1fZW5hYmxlZFByb2ZpbGVy
OyB9Ci0gICAgdm9pZCBzZXRFbmFibGVkUHJvZmlsZXIoTGVnYWN5UHJvZmlsZXIqKTsKLQotICAg
IHZvaWQqIGVuYWJsZWRQcm9maWxlckFkZHJlc3MoKSB7IHJldHVybiAmbV9lbmFibGVkUHJvZmls
ZXI7IH0KLQogI2lmIEVOQUJMRShKSVQpCiAgICAgYm9vbCBjYW5Vc2VKSVQoKSB7IHJldHVybiBt
X2NhblVzZUpJVDsgfQogI2Vsc2UKQEAgLTY0OSw3ICs2NDMsNiBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9pbkRlZmluZU93blByb3BlcnR5OwogICAgIGJvb2wgbV9zaG91bGRSZXdyaXRlQ29uc3RB
c1ZhciB7IGZhbHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvZGVDYWNoZT4gbV9jb2RlQ2Fj
aGU7Ci0gICAgTGVnYWN5UHJvZmlsZXIqIG1fZW5hYmxlZFByb2ZpbGVyOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxCdWlsdGluRXhlY3V0YWJsZXM+IG1fYnVpbHRpbkV4ZWN1dGFibGVzOwogICAgIEhh
c2hNYXA8U3RyaW5nLCBSZWZQdHI8V2F0Y2hwb2ludFNldD4+IG1faW1wdXJlUHJvcGVydHlXYXRj
aHBvaW50U2V0czsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VHlwZVByb2ZpbGVyPiBtX3R5cGVQcm9m
aWxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjZmZmRmNy4uMTQ5ZTc0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTU5MCw4ICs1OTAsNiBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9G
SUxFUwogCiAgICAgaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5pZGwKICAgICBpbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAotICAgIGluc3BlY3Rvci9TY3JpcHRQcm9maWxl
LmlkbAotICAgIGluc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwKIAogICAgIGxvYWRlci9h
cHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5j
cHAKaW5kZXggMDBmMTkwMi4uYTVkN2I5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApA
QCAtMzE4LDggKzMxOCw2IEBACiAjaW5jbHVkZSAiSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxs
YmFjay5jcHAiCiAjaW5jbHVkZSAiSlNSR0JDb2xvci5jcHAiCiAjaW5jbHVkZSAiSlNTY3JlZW4u
Y3BwIgotI2luY2x1ZGUgIkpTU2NyaXB0UHJvZmlsZS5jcHAiCi0jaW5jbHVkZSAiSlNTY3JpcHRQ
cm9maWxlTm9kZS5jcHAiCiAjaWYgRU5BQkxFKENTUF9ORVhUKQogI2luY2x1ZGUgIkpTU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudC5jcHAiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IGVkNjAwYjQuLjRjNWZhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtNDk0LDggKzQ5NCw2IEBAIE5PTl9TVkdfQklORElOR19JRExTID0gXAogICAgICQo
V2ViQ29yZSkvaHRtbC90cmFjay9WVFRDdWUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2luc3BlY3Rv
ci9Db21tYW5kTGluZUFQSUhvc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9TY3JpcHRQ
cm9maWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hl
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0Fic3RyYWN0Vmlldy5pZGwgXAogICAgICQoV2Vi
Q29yZSkvcGFnZS9CYXJQcm9wLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3
YXJkaW5nSGVhZGVycy9wcm9maWxlci9MZWdhY3lQcm9maWxlci5oIGIvU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZGMwZTliZi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9G
b3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9MZWdhY3lQcm9maWxlci5oCisrKyAvZGV2L251bGwK
QEAgLTEsNSArMCwwIEBACi0jaWZuZGVmIFdlYkNvcmVfRldEX0xlZ2FjeVByb2ZpbGVyX2gKLSNk
ZWZpbmUgV2ViQ29yZV9GV0RfTGVnYWN5UHJvZmlsZXJfaAotI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0xlZ2FjeVByb2ZpbGVyLmg+Ci0jZW5kaWYKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvcHJvZmlsZXIvUHJvZmlsZS5oIGIvU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvcHJvZmlsZXIvUHJvZmlsZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBkMjZiYWZkLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRp
bmdIZWFkZXJzL3Byb2ZpbGVyL1Byb2ZpbGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBA
QAotI2lmbmRlZiBXZWJDb3JlX0ZXRF9Qcm9maWxlX2gKLSNkZWZpbmUgV2ViQ29yZV9GV0RfUHJv
ZmlsZV9oCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvZmlsZS5oPgotI2VuZGlmCi0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL1Byb2Zp
bGVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9Qcm9m
aWxlTm9kZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMTlhMDdlLi4wMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL1Byb2ZpbGVO
b2RlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLSNpZm5kZWYgV2ViQ29yZV9GV0Rf
UHJvZmlsZU5vZGVfaAotI2RlZmluZSBXZWJDb3JlX0ZXRF9Qcm9maWxlTm9kZV9oCi0jaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvUHJvZmlsZU5vZGUuaD4KLSNlbmRpZgotCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCA5MDU5NzIyLi5kMmI0
NDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oKQEAgLTIwNDMzLDcgKzIwNDMzLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZv
cndhcmRpbmdIZWFkZXJzXG1hc21cWDg2QXNzZW1ibGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xwYXJzZXJcU291cmNlQ29kZS5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccGFyc2VyXFNvdXJjZVBy
b3ZpZGVyLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xwcm9maWxlclxMZWdhY3lQcm9maWxlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxBcnJheVByb3RvdHlwZS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccnVudGltZVxCb29sZWFuT2Jq
ZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xy
dW50aW1lXENhbGxEYXRhLmgiIC8+CkBAIC0yMjUzNiw4ICsyMjUzNSw2IEBACiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xTY3JpcHRDb250cm9sbGVyLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxiaW5kaW5nc1xqc1xTY3JpcHRIZWFwU25hcHNob3QuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNjcmlwdEdsb2JhbE9i
amVjdC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcU2NyaXB0
UHJvZmlsZS5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cYmluZGluZ3NcanNcU2Ny
aXB0UHJvZmlsZU5vZGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJpbmRpbmdz
XGpzXFNjcmlwdFNvdXJjZUNvZGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGJp
bmRpbmdzXGpzXFNjcmlwdFN0YXRlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxi
aW5kaW5nc1xqc1xTY3JpcHRXcmFwcGFibGUuaCIgLz4KQEAgLTIyNzg1LDggKzIyNzgyLDYgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHlhcnJcWWFyci5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFyclxZ
YXJySW50ZXJwcmV0ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXHlhcnJcWWFyclBhdHRlcm4uaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHByb2ZpbGVyXFByb2ZpbGUuaCIgLz4KLSAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXHByb2ZpbGVyXFByb2ZpbGVOb2RlLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xoZWFwXFN0
cm9uZy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGlzdG9yeVxCYWNrRm9yd2Fy
ZENsaWVudC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGlzdG9yeVxCYWNrRm9y
d2FyZENvbnRyb2xsZXIuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCAxOGU0OWNhLi5lMWUwMjM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
LmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzCkBAIC0xMTUwNiwxMiArMTE1MDYsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cYmluZGluZ3NcanNcU2NyaXB0R2xvYmFsT2JqZWN0LmgiPgogICAgICAgPEZpbHRl
cj5iaW5kaW5nc1xqczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cYmluZGluZ3NcanNcU2NyaXB0UHJvZmlsZS5oIj4KLSAgICAgIDxGaWx0ZXI+
YmluZGluZ3NcanM8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXGJpbmRpbmdzXGpzXFNjcmlwdFByb2ZpbGVOb2RlLmgiPgotICAgICAgPEZpbHRl
cj5iaW5kaW5nc1xqczwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5cYmluZGluZ3NcanNcU2NyaXB0U291cmNlQ29kZS5oIj4KICAgICAgIDxGaWx0
ZXI+YmluZGluZ3NcanM8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KQEAgLTExNzA3LDEyICsx
MTcwMSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1x5
YXJyXFlhcnJQYXR0ZXJuLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1x5YXJy
PC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxG
b3J3YXJkaW5nSGVhZGVyc1xwcm9maWxlclxQcm9maWxlLmgiPgotICAgICAgPEZpbHRlcj5Gb3J3
YXJkaW5nSGVhZGVyc1xwcm9maWxlcjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgotICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNccHJvZmlsZXJcUHJvZmlsZU5v
ZGUuaCI+Ci0gICAgICA8RmlsdGVyPkZvcndhcmRpbmdIZWFkZXJzXHByb2ZpbGVyPC9GaWx0ZXI+
Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5n
SGVhZGVyc1xoZWFwXFN0cm9uZy5oIj4KICAgICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNc
aGVhcDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpAQCAtMTIwNDEsOSArMTIwMjksNiBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cbmV0d29ya1xjZlxTb2NrZXRTdHJl
YW1IYW5kbGUuaCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXG5ldHdvcmtcY2Y8L0ZpbHRlcj4K
ICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdI
ZWFkZXJzXHByb2ZpbGVyXExlZ2FjeVByb2ZpbGVyLmgiPgotICAgICAgPEZpbHRlcj5Gb3J3YXJk
aW5nSGVhZGVyc1xwcm9maWxlcjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNceWFyclxZYXJySklULmgiPgogICAg
ICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVhZGVyc1x5YXJyPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZGE1Y2NjNi4uMTZiZjNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDAyOCwxMiArNDAyOCw2IEBACiAJCTlE
QUM3QzU0MUFGMkNBQTEwMDQzN0M0NCAvKiBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOURBQzdDNTIx
QUYyQ0FBMTAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5jcHAgKi87IH07
CiAJCTlEQUM3QzU1MUFGMkNBQTIwMDQzN0M0NCAvKiBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFs
dWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlEQUM3
QzUzMUFGMkNBQTEwMDQzN0M0NCAvKiBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuaCAqLzsg
fTsKIAkJOURBQzdDNTcxQUYyQ0I2NDAwNDM3QzQ0IC8qIFN0eWxlQ29udGVudEFsaWdubWVudERh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlEQUM3
QzU2MUFGMkNCNjQwMDQzN0M0NCAvKiBTdHlsZUNvbnRlbnRBbGlnbm1lbnREYXRhLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOUY3MjMwNEYxMTE4
NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNzIzMDRDMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQ
cm9maWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJOUZBMzdFRTQxMTcyRkM4MDAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkEzN0VFMzExNzJGQzgw
MDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5RkEzN0VGQTExNzJGREE2MDBDNENENTUgLyogSlNT
Y3JpcHRQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlGQTM3RUY2MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuY3BwICov
OyB9OwotCQk5RkEzN0VGQjExNzJGREE2MDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkEzN0VGNzExNzJG
RDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlLmggKi87IH07Ci0JCTlGQTM3RUZDMTE3MkZE
QTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGQTM3RUY4MTE3MkZEOTMwMEM0Q0Q1NSAvKiBK
U1NjcmlwdFByb2ZpbGVOb2RlLmNwcCAqLzsgfTsKLQkJOUZBMzdFRkQxMTcyRkRBNjAwQzRDRDU1
IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlGQTM3RUY5MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2Zp
bGVOb2RlLmggKi87IH07CiAJCUEwN0QzMzU1MTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEwN0QzMzUzMTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0LmNwcCAqLzsgfTsKIAkJQTA3RDMzNTYxNTJCNjMwRTAwMUI2MzkzIC8qIEpT
V2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEEwN0QzMzU0MTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0LmggKi87IH07CiAJCUEwN0QzMzU4MTUyQjYzMkQwMDFCNjM5MyAv
KiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMzNTcxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hh
ZGVyUHJlY2lzaW9uRm9ybWF0LmggKi87IH07CkBAIC0xMTYzMywxNCArMTE2MjcsNiBAQAogCQk5
REFDN0M1MjFBRjJDQUExMDA0MzdDNDQgLyogQ1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0NvbnRlbnREaXN0cmli
dXRpb25WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlEQUM3QzUzMUFG
MkNBQTEwMDQzN0M0NCAvKiBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlEQUM3QzU2MUFGMkNCNjQwMDQzN0M0NCAvKiBT
dHlsZUNvbnRlbnRBbGlnbm1lbnREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFN0eWxlQ29udGVudEFsaWdubWVudERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJOUY3MjMwNEMxMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0UHJvZmlsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk5RkEzN0VFMzExNzJGQzgwMDBDNENENTUgLyogU2NyaXB0UHJvZmls
ZU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0UHJvZmlsZU5v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUZBMzdFRUYxMTcyRkQ0MTAwQzRD
RDU1IC8qIFNjcmlwdFByb2ZpbGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcmlwdFBy
b2ZpbGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VGMDExNzJGRDQx
MDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFNjcmlwdFByb2ZpbGVOb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUZB
MzdFRjYxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NjcmlwdFByb2ZpbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VGNzExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQ
cm9maWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2NyaXB0UHJvZmls
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VGODExNzJGRDkzMDBDNENE
NTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3JpcHRQcm9maWxlTm9kZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMDdEMzM1MzE1MkI2MzBFMDAxQjYzOTMg
LyogSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTA3RDMzNTQxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2Vi
R0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBMDdEMzM1NzE1MkI2MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25G
b3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MDUxLDEwICsx
NjAzNyw2IEBACiAJCQkJQTU4NEZFM0ExODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVB
UElIb3N0LmggKi8sCiAJCQkJN0EwRTc3MUMxMEMwMERCMTAwQTAyNzZFIC8qIEpTSW5zcGVjdG9y
RnJvbnRlbmRIb3N0LmNwcCAqLywKIAkJCQk3QTBFNzcxRDEwQzAwREIxMDBBMDI3NkUgLyogSlNJ
bnNwZWN0b3JGcm9udGVuZEhvc3QuaCAqLywKLQkJCQk5RkEzN0VGNjExNzJGRDkzMDBDNENENTUg
LyogSlNTY3JpcHRQcm9maWxlLmNwcCAqLywKLQkJCQk5RkEzN0VGNzExNzJGRDkzMDBDNENENTUg
LyogSlNTY3JpcHRQcm9maWxlLmggKi8sCi0JCQkJOUZBMzdFRjgxMTcyRkQ5MzAwQzRDRDU1IC8q
IEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwICovLAotCQkJCTlGQTM3RUY5MTE3MkZEOTMwMEM0Q0Q1
NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IEluc3BlY3Rv
cjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNjEzNyw4ICsxNjExOSw2IEBACiAJ
CQkJRjM4MjA4OEQxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VSdW50aW1lQWdlbnQuaCAqLywKIAkJ
CQlBNUYzNkQzODE4Rjc1ODcyMDA1NEMwMjQgLyogUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcCAq
LywKIAkJCQlBNUYzNkQzOTE4Rjc1ODcyMDA1NEMwMjQgLyogUGFnZVNjcmlwdERlYnVnU2VydmVy
LmggKi8sCi0JCQkJOUZBMzdFRUYxMTcyRkQ0MTAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGUuaWRs
ICovLAotCQkJCTlGQTM3RUYwMTE3MkZENDEwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5p
ZGwgKi8sCiAJCQkJNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFj
dG9yeS5jcHAgKi8sCiAJCQkJNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oICovLAogCQkJCUE1NkM1Qjk4MTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25z
b2xlQWdlbnQuY3BwICovLApAQCAtMjIxMTgsOCArMjIwOTgsNiBAQAogCQkJCUE4M0UxQzcyMEU0
OTA0MkIwMDE0MEI5QyAvKiBTY3JpcHRDb250cm9sbGVyTWFjLm1tICovLAogCQkJCTQxRjA2NkUz
MEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3QuY3BwICovLAogCQkJCTQxRjA2
NkUyMEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3QuaCAqLywKLQkJCQk5Rjcy
MzA0QzExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oICovLAotCQkJCTlGQTM3RUUz
MTE3MkZDODAwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5oICovLAogCQkJCTkzNENDMTA5
MEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggKi8sCiAJCQkJNDEyN0Q1MzYw
RjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAqLywKIAkJCQk0MUM3NjBCMDBFREUw
M0QzMDBDMTY1NUYgLyogU2NyaXB0U3RhdGUuaCAqLywKQEAgLTI2NDc0LDggKzI2NDUyLDYgQEAK
IAkJCQk1RTJDNDM2QzFCQ0YwNzFFMDAwMUUyQkMgLyogSlNSVENUcmFja0V2ZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0VDMDFDMzBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZEQTE1RUNFMTJCMDNGNjEwMDNBNTgzQSAvKiBKU1NjcmlwdFByb2Nl
c3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTlGQTM3RUZCMTE3MkZEQTYwMEM0Q0Q1NSAv
KiBKU1NjcmlwdFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTlGQTM3RUZEMTE3MkZEQTYw
MEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkRB
NjREODFCOTc1Q0YyMDA5QzQzODcgLyogSlNTaGFkb3dSb290LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDRDlERTE3QjE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VCdWZmZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNEOURFMTdEMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3Qu
aCBpbiBIZWFkZXJzICovLApAQCAtMjc0NjgsOCArMjc0NDQsNiBAQAogCQkJCUUxMUM5RDlCMEVC
MzY4MTIwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0MUYwNjZFNDBGNjRCQ0Y2MDBBMDdFQUMgLyogU2NyaXB0R2xvYmFsT2JqZWN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRDMxNjAzNjEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0UHJvY2Vz
c29yTm9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUY3MjMwNEYxMTE4NEI0MTAwQUQwMTI2IC8q
IFNjcmlwdFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTlGQTM3RUU0MTE3MkZDODAwMEM0
Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEE0MTNBRTAx
MjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0
Q0MxMEEwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxQzc2MEIxMEVERTAzRDMwMEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zMDE4NSw4ICszMDE1OSw2IEBACiAJCQkJNUUyQzQzNkIxQkNGMDcxRTAwMDFF
MkJDIC8qIEpTUlRDVHJhY2tFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VDMDFDMjBD
Mjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRBMTVF
Q0QxMkIwM0Y2MTAwM0E1ODNBIC8qIEpTU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQk5RkEzN0VGQTExNzJGREE2MDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTlGQTM3RUZDMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1Njcmlw
dFByb2ZpbGVOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlCREE2NEQ3MUI5NzVDRTUwMDlD
NDM4NyAvKiBKU1NoYWRvd1Jvb3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q5REUxN0ExN0FB
Qzc1QjAwRUEzODZEIC8qIEpTU291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
OURFMTdDMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlckxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlci5jcHAKaW5kZXggZDIwODRhOC4uMThmMTdiNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcApA
QCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ29uc29s
ZUNsaWVudC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSA8cHJvZmls
ZXIvUHJvZmlsZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZi5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcAppbmRleCBhNmM3YTA0Li4xM2ExNjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgc3RhdGljIGJvb2wg
c2hvdWxkQWxsb3dBY2Nlc3NGcm9tKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0LCBF
eGVjU3RhdGUqIGUKIAogY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93QmFzZTo6c19pbmZvID0g
eyAiV2luZG93IiwgJkpTRE9NR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNET01XaW5kb3dCYXNlKSB9OwogCi1jb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSBKU0RPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZzaG91bGRB
bGxvd0FjY2Vzc0Zyb20sICZzdXBwb3J0c1Byb2ZpbGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUlu
Zm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAmcXVl
dWVUYXNrVG9FdmVudExvb3AsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCAm
bW9kdWxlTG9hZGVyUmVzb2x2ZSwgJm1vZHVsZUxvYWRlckZldGNoLCBudWxscHRyLCBudWxscHRy
LCAmbW9kdWxlTG9hZGVyRXZhbHVhdGUgfTsKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
IEpTRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJnNob3VsZEFs
bG93QWNjZXNzRnJvbSwgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRT
Y3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAmcXVldWVUYXNrVG9FdmVudExvb3AsICZz
aG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwg
Jm1vZHVsZUxvYWRlckZldGNoLCBudWxscHRyLCBudWxscHRyLCAmbW9kdWxlTG9hZGVyRXZhbHVh
dGUgfTsKIAogSlNET01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdywgSlNET01XaW5kb3dT
aGVsbCogc2hlbGwpCiAgICAgOiBKU0RPTUdsb2JhbE9iamVjdCh2bSwgc3RydWN0dXJlLCAmc2hl
bGwtPndvcmxkKCksICZzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlKQpAQCAtMTE1LDIwICsxMTUs
NiBAQCB2b2lkIEpTRE9NV2luZG93QmFzZTo6cHJpbnRFcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKSBjb25zdAogICAgIHByaW50RXJyb3JNZXNzYWdlRm9yRnJhbWUod3JhcHBlZCgp
LmZyYW1lKCksIG1lc3NhZ2UpOwogfQogCi1ib29sIEpTRE9NV2luZG93QmFzZTo6c3VwcG9ydHNQ
cm9maWxpbmcoY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkKLXsKLSAgICBjb25zdCBKU0RP
TVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxjb25zdCBKU0RPTVdpbmRvd0Jh
c2UqPihvYmplY3QpOwotICAgIEZyYW1lKiBmcmFtZSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5m
cmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFBh
Z2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgcmV0dXJuIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5wcm9maWxl
ckVuYWJsZWQoKTsKLX0KLQogYm9vbCBKU0RPTVdpbmRvd0Jhc2U6OnN1cHBvcnRzUmljaFNvdXJj
ZUluZm8oY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkKIHsKICAgICBjb25zdCBKU0RPTVdp
bmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxjb25zdCBKU0RPTVdpbmRvd0Jhc2Uq
PihvYmplY3QpOwpAQCAtMTQyLDcgKzEyOCw2IEBAIGJvb2wgSlNET01XaW5kb3dCYXNlOjpzdXBw
b3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCiAKICAgICBi
b29sIGVuYWJsZWQgPSBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuZW5hYmxlZCgpOwogICAg
IEFTU0VSVChlbmFibGVkIHx8ICF0aGlzT2JqZWN0LT5kZWJ1Z2dlcigpKTsKLSAgICBBU1NFUlQo
ZW5hYmxlZCB8fCAhc3VwcG9ydHNQcm9maWxpbmcodGhpc09iamVjdCkpOwogICAgIHJldHVybiBl
bmFibGVkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5oCmluZGV4IDljNTdhNmMuLjI1YmM2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC02MCw3ICs2MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBz
X2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOwogCi0gICAgICAgIHN0YXRpYyBib29sIHN1cHBvcnRz
UHJvZmlsaW5nKGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGJv
b2wgc3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAg
ICAgICAgIHN0YXRpYyBib29sIHNob3VsZEludGVycnVwdFNjcmlwdChjb25zdCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBib29sIHNob3VsZEludGVycnVwdFNjcmlwdEJl
Zm9yZVRpbWVvdXQoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4
IDk5NmIwMjYuLjg3ZjYxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjb25zdCBDbGFzc0luZm8gSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6
OnNfaW5mbyA9IHsgIldvcmtlckdsb2JhbFNjb3BlIiwgJkpTRE9NR2xvYmFsT2JqZWN0OjpzX2lu
Zm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UpIH07CiAK
LWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpz
X2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNjZXNzRnJvbSwgJnN1cHBvcnRz
UHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlw
dCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3Vs
ZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIs
IG51bGxwdHIsIG51bGxwdHIgfTsKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29y
a2VyR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dz
QWNjZXNzRnJvbSwgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3Jp
cHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAmcXVldWVUYXNrVG9FdmVudExvb3AsICZzaG91
bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCBudWxscHRyLCBudWxscHRyLCBudWxscHRy
LCBudWxscHRyLCBudWxscHRyIH07CiAKIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpKU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
UGFzc1JlZlB0cjxXb3JrZXJHbG9iYWxTY29wZT4gaW1wbCkKICAgICA6IEpTRE9NR2xvYmFsT2Jq
ZWN0KHZtLCBzdHJ1Y3R1cmUsICZub3JtYWxXb3JsZCh2bSksICZzX2dsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlKQpAQCAtNzIsMTEgKzcyLDYgQEAgYm9vbCBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6
YWxsb3dzQWNjZXNzRnJvbShjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0LCBFeGUKICAgICBy
ZXR1cm4gSlNHbG9iYWxPYmplY3Q6OmFsbG93c0FjY2Vzc0Zyb20ob2JqZWN0LCBleGVjKTsKIH0K
IAotYm9vbCBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNQcm9maWxpbmcoY29uc3Qg
SlNHbG9iYWxPYmplY3QqIG9iamVjdCkKLXsKLSAgICByZXR1cm4gSlNHbG9iYWxPYmplY3Q6OnN1
cHBvcnRzUHJvZmlsaW5nKG9iamVjdCk7Ci19Ci0KIGJvb2wgSlNXb3JrZXJHbG9iYWxTY29wZUJh
c2U6OnN1cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkK
IHsKICAgICByZXR1cm4gSlNHbG9iYWxPYmplY3Q6OnN1cHBvcnRzUmljaFNvdXJjZUluZm8ob2Jq
ZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xv
YmFsU2NvcGVCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZS5oCmluZGV4IDJkZThjYzQuLjgwODliOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaApAQCAtNTMsNyAr
NTMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6Okds
b2JhbE9iamVjdE1ldGhvZFRhYmxlIHNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGU7CiAKICAgICAg
ICAgc3RhdGljIGJvb2wgYWxsb3dzQWNjZXNzRnJvbShjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNQcm9maWxp
bmcoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgICAgICBzdGF0aWMgYm9vbCBzdXBw
b3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAg
c3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0KGNvbnN0IEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKICAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGlt
ZW91dChjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcAppbmRleCAxY2NjZjhhLi41
NjE2YjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNo
ZWRGcmFtZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENh
Y2hlZEZyYW1lRGF0YS5jcHAKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlICJQYWdlR3JvdXAu
aCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJ
bmxpbmVzLmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9XZWFrR0NNYXBJbmxpbmVzLmg+CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXgg
MzRlMDllNC4uZDQ0M2Y3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5jcHAKQEAgLTUyLDcgKzUyLDYgQEAKICNpbmNsdWRlIDxkZWJ1Z2dlci9E
ZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgogI2luY2x1ZGUgPGlu
c3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KLSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CkBAIC0yMTUsMTMgKzIx
NCw2IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxlcjo6Y2xlYXJXaW5kb3dTaGVsbChET01XaW5kb3cq
IG5ld0RPTVdpbmRvdywgYm9vbCBnb2luZ0ludG9QCiAgICAgICAgIGF0dGFjaERlYnVnZ2VyKHdp
bmRvd1NoZWxsLCBudWxscHRyKTsKICAgICAgICAgd2luZG93U2hlbGwtPndpbmRvdygpLT5zZXRD
b25zb2xlQ2xpZW50KG51bGxwdHIpOwogCi0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY2xl
YXIgY29uc29sZSBwcm9maWxlcyBmb3IgZWFjaCBmcmFtZSBhcyBzb29uIGFzIHRoZSBmcmFtZSBp
cyBkZXN0cm95ZWQuCi0gICAgICAgIC8vIEluc3RlYWQgb2YgY2xlYXJpbmcgYWxsIG9mIHRoZW0g
d2hlbiB0aGUgbWFpbiBmcmFtZSBpcyBkZXN0cm95ZWQuCi0gICAgICAgIGlmIChtX2ZyYW1lLmlz
TWFpbkZyYW1lKCkpIHsKLSAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdl
KCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y29uc29sZSgpLmNsZWFyUHJvZmlsZXMoKTsKLSAg
ICAgICAgfQotCiAgICAgICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+d2lsbFJlbW92ZUZyb21X
aW5kb3dTaGVsbCgpOwogICAgICAgICB3aW5kb3dTaGVsbC0+c2V0V2luZG93KG5ld0RPTVdpbmRv
dyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2Zp
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I0M2Y4Mi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIFNjcmlwdFByb2ZpbGVfaAotI2RlZmluZSBTY3JpcHRQcm9maWxlX2gKLQotI2lu
Y2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi10eXBl
ZGVmIEpTQzo6UHJvZmlsZSBTY3JpcHRQcm9maWxlOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBTY3JpcHRQcm9maWxlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRQcm9maWxlTm9kZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
ZDEyODNkLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFBy
b2ZpbGVOb2RlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNjcmlwdFByb2ZpbGVOb2Rl
X2gKLSNkZWZpbmUgU2NyaXB0UHJvZmlsZU5vZGVfaAotCi0jaW5jbHVkZSA8cHJvZmlsZXIvUHJv
ZmlsZU5vZGUuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi10eXBlZGVmIEpTQzo6UHJvZmls
ZU5vZGUgU2NyaXB0UHJvZmlsZU5vZGU7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIFNjcmlwdFByb2ZpbGVOb2RlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggOGQ1MGMyYi4uNDVjOGY3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KQEAgLTI2MCw4ICsyNjAsNiBAQCBteSAlY2xhc3Nlc05lZWRpbmdXZWJDb3JlRXhwb3J0ID0g
KAogICAgICJKU05vZGUiID0+IDEsCiAgICAgIkpTTm90aWZpY2F0aW9uIiA9PiAxLAogICAgICJK
U1JhbmdlIiA9PiAxLAotICAgICJKU1NjcmlwdFByb2ZpbGUiID0+IDEsCi0gICAgIkpTU2NyaXB0
UHJvZmlsZU5vZGUiID0+IDEsCiAgICAgIkpTU291cmNlQnVmZmVyIiA9PiAxLAogICAgICJKU1Rp
bWVSYW5nZXMiID0+IDEsCiAgICAgIkpTWE1MSHR0cFJlcXVlc3QiID0+IDEsCkBAIC0zMjgsMzgg
KzMyNiwxOSBAQCBzdWIgQWRkVG9JbXBsSW5jbHVkZXMKICAgICB9CiB9CiAKLXN1YiBJc1Njcmlw
dFByb2ZpbGVUeXBlCi17Ci0gICAgbXkgJHR5cGUgPSBzaGlmdDsKLSAgICByZXR1cm4gMSBpZiAo
JHR5cGUgZXEgIlNjcmlwdFByb2ZpbGVOb2RlIik7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHN1YiBJ
c1JlYWRvbmx5CiB7CiAgICAgbXkgJGF0dHJpYnV0ZSA9IHNoaWZ0OwogICAgIHJldHVybiAkYXR0
cmlidXRlLT5pc1JlYWRPbmx5ICYmICEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJSZXBsYWNlYWJsZSJ9ICYmICEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJQdXRGb3J3YXJkcyJ9OwogfQogCi1zdWIgQWRkVHlwZWRlZkZvclNj
cmlwdFByb2ZpbGVUeXBlCi17Ci0gICAgbXkgJHR5cGUgPSBzaGlmdDsKLSAgICAobXkgJGpzY1R5
cGUgPSAkdHlwZSkgPX4gcy9TY3JpcHQvLzsKLQotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ0
eXBlZGVmIEpTQzo6JGpzY1R5cGUgJHR5cGU7XG5cbiIpOwotfQotCiBzdWIgQWRkQ2xhc3NGb3J3
YXJkSWZOZWVkZWQKIHsKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0OwogCiAgICAgIyBT
VkdBbmltYXRlZExlbmd0aC9OdW1iZXIvZXRjLiBhcmUgdHlwZWRlZnMgdG8gU1ZHQW5pbWF0ZWRU
ZW1wbGF0ZSwgc28gZG9uJ3QgdXNlIGNsYXNzIGZvcndhcmRzIGZvciB0aGVtIQotICAgIHVubGVz
cyAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRpbnRlcmZhY2VOYW1lKSBvciBJ
c1NjcmlwdFByb2ZpbGVUeXBlKCRpbnRlcmZhY2VOYW1lKSBvciAkY29kZUdlbmVyYXRvci0+SXNU
eXBlZEFycmF5VHlwZSgkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICB1bmxlc3MgKCRjb2RlR2VuZXJh
dG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkaW50ZXJmYWNlTmFtZSkgb3IgJGNvZGVHZW5lcmF0b3It
PklzVHlwZWRBcnJheVR5cGUoJGludGVyZmFjZU5hbWUpKSB7CiAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJjbGFzcyAkaW50ZXJmYWNlTmFtZTtcblxuIik7Ci0gICAgIyBTY3JpcHRQcm9m
aWxlIGFuZCBTY3JpcHRQcm9maWxlTm9kZSBhcmUgdHlwZWRlZnMgdG8gSlNDOjpQcm9maWxlIGFu
ZCBKU0M6OlByb2ZpbGVOb2RlLgotICAgIH0gZWxzaWYgKElzU2NyaXB0UHJvZmlsZVR5cGUoJGlu
dGVyZmFjZU5hbWUpKSB7Ci0gICAgICAgICRoZWFkZXJJbmNsdWRlc3siPHByb2ZpbGVyL1Byb2Zp
bGVOb2RlLmg+In0gPSAxOwotICAgICAgICBBZGRUeXBlZGVmRm9yU2NyaXB0UHJvZmlsZVR5cGUo
JGludGVyZmFjZU5hbWUpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDBiNThhYjAuLmZhNjA2NDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAg
LTkyLDkgKzkyLDYgQEAgZW51bSBfb3B0aW9uYWwgeyAiIiwgIk9wdGlvbmFsVmFsdWUxIiwgIk9w
dGlvbmFsVmFsdWUyIiwgIk9wdGlvbmFsVmFsdWUzIiB9OwogICAgIFRlc3RPYmogb2JqTWV0aG9k
KCk7CiAgICAgVGVzdE9iaiBvYmpNZXRob2RXaXRoQXJncyhsb25nIGxvbmdBcmcsIERPTVN0cmlu
ZyBzdHJBcmcsIFRlc3RPYmogb2JqQXJnKTsKIAotICAgIHZvaWQgbWV0aG9kV2l0aFNlcXVlbmNl
QXJnKHNlcXVlbmNlPFNjcmlwdFByb2ZpbGU+IHNlcXVlbmNlQXJnKTsKLSAgICBzZXF1ZW5jZTxT
Y3JpcHRQcm9maWxlPiBtZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShsb25nIGxvbmdBcmcpOwotCiAg
ICAgdm9pZCBtZXRob2RXaXRoRW51bUFyZyhUZXN0RW51bVR5cGUgZW51bUFyZyk7CiAgICAgdm9p
ZCBtZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlKG9wdGlvbmFsIFRlc3RF
bnVtVHlwZSBlbnVtQXJnID0gIkVudW1WYWx1ZTEiKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBU
ZXN0T2JqIG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJvd3MoRE9NU3RyaW5nIHN0ckFy
ZywgVGVzdE9iaiBvYmpBcmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA4OGJlNWE3
Li45YjNmODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtOTcsNyArOTcsNiBAQAog
I2luY2x1ZGUgIldlYktpdENTU0ZpbHRlclZhbHVlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTUmVn
aW9uUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgiCi0jaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvUHJvZmlsZS5oPgogI2luY2x1ZGUgPGJpdHNldD4KICNpbmNsdWRl
IDxsaW1pdHMuaD4KICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCAwZTdjNjFmLi42ZGU3N2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTE3Nyw3ICsxNzcsNiBAQAogI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5oIgogI2luY2x1ZGUg
IlhQYXRoUmVzdWx0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKLSNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8Y3RpbWU+CiAjaW5jbHVkZSA8aW5zcGVj
dG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVt
ZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5z
dHJ1bWVudGF0aW9uLmgKaW5kZXggNmEwNWMyZi4uYmI5MTRkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlv
bi5oCkBAIC0zMyw3ICszMyw2IEBACiAjZGVmaW5lIEluc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50
YXRpb25faAogCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCi0jaW5jbHVk
ZSAiU2NyaXB0UHJvZmlsZS5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMu
aD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAKQEAgLTc4LDkgKzc3
LDkgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdGFydFByb2ZpbGlu
ZyhQYWdlJiBwYWdlLCBKU0M6OkV4ZWNTdGF0ZSoKICAgICBzdGFydFByb2ZpbGluZ0ltcGwoaW5z
dHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSksIGV4ZWMsIHRpdGxlKTsKIH0KIAotaW5saW5l
IFJlZlB0cjxKU0M6OlByb2ZpbGU+IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFByb2Zp
bGluZyhQYWdlJiBwYWdlLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nICZ0aXRs
ZSkKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFByb2ZpbGluZyhQ
YWdlJiBwYWdlLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nICZ0aXRsZSkKIHsK
LSAgICByZXR1cm4gc3RvcFByb2ZpbGluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2Uo
cGFnZSksIGV4ZWMsIHRpdGxlKTsKKyAgICBzdG9wUHJvZmlsaW5nSW1wbChpbnN0cnVtZW50aW5n
QWdlbnRzRm9yUGFnZShwYWdlKSwgZXhlYywgdGl0bGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHAKaW5kZXggZjE2NjcyZS4uOGY3Zjc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNzEsNyArNzEsNiBAQAogI2luY2x1
ZGUgPGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaD4KICNpbmNsdWRlIDxpbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oPgotI2luY2x1ZGUgPHByb2ZpbGVyL0xl
Z2FjeVByb2ZpbGVyLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvU3RvcHdhdGNoLmg+CiAKQEAgLTE0MCw2ICsxMzksNyBAQCBJbnNwZWN0b3JDb250cm9sbGVy
OjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVj
dG9yQwogICAgIG1fYWdlbnRzLmFwcGVuZChXVEZNb3ZlKGRhdGFiYXNlQWdlbnRQdHIpKTsKIAog
ICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3Rvck5ldHdvcmtBZ2Vu
dD4ocGFnZUNvbnRleHQsIHBhZ2VBZ2VudCkpOworICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1h
a2VfdW5pcXVlPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+KHBhZ2VDb250ZXh0LCBwYWdlQWdlbnQp
KTsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIG1fYWdlbnRzLmFwcGVuZChz
dGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckluZGV4ZWREQkFnZW50PihwYWdlQ29udGV4dCwgcGFn
ZUFnZW50KSk7CkBAIC0xNTMsMTAgKzE1Myw2IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3Bl
Y3RvckNvbnRyb2xsZXIoUGFnZSYgcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAg
ICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KiBkb21TdG9yYWdlQWdlbnQgPSBkb21TdG9yYWdl
QWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKFdURk1vdmUoZG9tU3RvcmFnZUFn
ZW50UHRyKSk7CiAKLSAgICBhdXRvIHRpbWVsaW5lQWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVl
PEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+KHBhZ2VDb250ZXh0LCBwYWdlQWdlbnQpOwotICAgIG1f
dGltZWxpbmVBZ2VudCA9IHRpbWVsaW5lQWdlbnRQdHIuZ2V0KCk7Ci0gICAgbV9hZ2VudHMuYXBw
ZW5kKFdURk1vdmUodGltZWxpbmVBZ2VudFB0cikpOwotCiAgICAgYXV0byBjb25zb2xlQWdlbnRQ
dHIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDb25zb2xlQWdlbnQ+KHBhZ2VDb250ZXh0LCBtX2Rv
bUFnZW50KTsKICAgICBXZWJDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGNvbnNvbGVBZ2Vu
dFB0ci5nZXQoKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFdlYkNvbnNvbGVBZ2Vu
dChjb25zb2xlQWdlbnRQdHIuZ2V0KCkpOwpAQCAtNDAzLDI0ICszOTksNiBAQCB2b2lkIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OnNldEluZGljYXRpbmcoYm9vbCBpbmRpY2F0aW5nKQogI2VuZGlmCiB9
CiAKLWJvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6cHJvZmlsZXJFbmFibGVkKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5wZXJzaXN0ZW50SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudCgpOwotfQotCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldFByb2ZpbGVy
RW5hYmxlZChib29sIGVuYWJsZSkKLXsKLSAgICBFcnJvclN0cmluZyB1bnVzZWQ7Ci0KLSAgICBp
ZiAoZW5hYmxlKSB7Ci0gICAgICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGVyc2lzdGVu
dEluc3BlY3RvclRpbWVsaW5lQWdlbnQobV90aW1lbGluZUFnZW50KTsKLSAgICAgICAgbV90aW1l
bGluZUFnZW50LT5zdGFydCh1bnVzZWQpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG1faW5zdHJ1
bWVudGluZ0FnZW50cy0+c2V0UGVyc2lzdGVudEluc3BlY3RvclRpbWVsaW5lQWdlbnQobnVsbHB0
cik7Ci0gICAgICAgIG1fdGltZWxpbmVBZ2VudC0+c3RvcCh1bnVzZWQpOwotICAgIH0KLX0KLQog
Ym9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9wYWdlLnNldHRpbmdzKCkuZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5k
ZXggMDAxOWE3Yi4uMmI1ZThiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5oCkBAIC02Myw3ICs2Myw2IEBAIGNsYXNzIEluc3BlY3RvckRPTUFn
ZW50OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb247CiBjbGFzcyBJbnNwZWN0b3JQYWdlQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIE5vZGU7CiBj
bGFzcyBQYWdlOwpAQCAtMTExLDkgKzExMCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzVW5k
ZXJUZXN0KGJvb2wgaXNVbmRlclRlc3QpIHsgbV9pc1VuZGVyVGVzdCA9IGlzVW5kZXJUZXN0OyB9
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGNvbnN0
IFN0cmluZyYgc2NyaXB0KTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcHJvZmlsZXJFbmFi
bGVkKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRQcm9maWxlckVuYWJsZWQo
Ym9vbCk7Ci0KICAgICBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckNsaWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1faW5zcGVjdG9yQ2xpZW50OyB9CiAgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdl
QWdlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VBZ2VudDsgfQogCkBAIC0xNDcsNyArMTQzLDYg
QEAgcHJpdmF0ZToKICAgICBJbnNwZWN0b3I6Okluc3BlY3RvckFnZW50KiBtX2luc3BlY3RvckFn
ZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckRPTUFnZW50KiBtX2RvbUFnZW50IHsgbnVs
bHB0ciB9OwogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9wYWdlQWdlbnQgeyBudWxscHRyIH07
Ci0gICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogbV90aW1lbGluZUFnZW50IHsgbnVsbHB0ciB9
OwogCiAgICAgYm9vbCBtX2lzVW5kZXJUZXN0IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNBdXRv
bWF0aWNJbnNwZWN0aW9uIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggZTdiZTY5ZS4uZDg1ZTkx
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKQEAgLTY2LDcgKzY2LDYgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvU2Ny
aXB0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgog
I2luY2x1ZGUgPGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oPgotI2lu
Y2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0NvbnNvbGVUeXBl
cy5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CkBAIC04ODUsMTEgKzg4NCwxMCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6c3RhcnRQcm9maWxpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbgog
ICAgICAgICB0aW1lbGluZUFnZW50LT5zdGFydEZyb21Db25zb2xlKGV4ZWMsIHRpdGxlKTsKIH0K
IAotUmVmUHRyPEpTQzo6UHJvZmlsZT4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wUHJv
ZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3ZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpzdG9wUHJvZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRs
ZSkKIHsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMucGVyc2lzdGVudEluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKLSAg
ICAgICAgcmV0dXJuIHRpbWVsaW5lQWdlbnQtPnN0b3BGcm9tQ29uc29sZShleGVjLCB0aXRsZSk7
Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPnN0b3BGcm9tQ29u
c29sZShleGVjLCB0aXRsZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRPcGVuRGF0YWJhc2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIFJlZlB0cjxEYXRhYmFzZT4mJiBkYXRhYmFzZSwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IGZiYjY1
Y2QuLjRjYzVmMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTIxOCw3ICsyMTgsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgZGlkRmlyZUFuaW1hdGlvbkZyYW1lKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbkNvb2tpZSYpOwogCiAgICAgc3RhdGljIHZvaWQgc3RhcnRQcm9maWxpbmcoUGFnZSYsIEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxK
U0M6OlByb2ZpbGU+IHN0b3BQcm9maWxpbmcoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSk7CisgICAgc3RhdGljIHZvaWQgc3RvcFByb2ZpbGluZyhQYWdlJiwgSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKIAogICAgIHN0YXRpYyB2b2lkIGRp
ZE9wZW5EYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPERhdGFiYXNlPiYm
LCBjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcm
IHZlcnNpb24pOwogCkBAIC0zODcsNyArMzg3LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9p
ZCBkaWRGaXJlQW5pbWF0aW9uRnJhbWVJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSYpOwogCiAgICAgc3RhdGljIHZvaWQgc3RhcnRQcm9maWxpbmdJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAg
IHN0YXRpYyBSZWZQdHI8SlNDOjpQcm9maWxlPiBzdG9wUHJvZmlsaW5nSW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyAgICBz
dGF0aWMgdm9pZCBzdG9wUHJvZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKIAogICAgIHN0YXRpYyB2b2lkIGRpZE9w
ZW5EYXRhYmFzZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIFJlZlB0cjxEYXRhYmFzZT4mJiwg
Y29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2
ZXJzaW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clRpbWVsaW5lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuY3BwCmluZGV4IDU3Mjg1MzQuLjBkYThkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTQzLDcg
KzQzLDYgQEAKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogI2luY2x1ZGUgIlRpbWVsaW5lUmVj
b3JkRmFjdG9yeS5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRCcmVha3BvaW50Lmg+Ci0j
aW5jbHVkZSA8cHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RvcHdh
dGNoLmg+CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC04NCwxOSArODMsMTIgQEAgSW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6fkluc3BlY3RvclRpbWVsaW5lQWdlbnQoKQogdm9pZCBJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQoSW5zcGVjdG9yOjpGcm9u
dGVuZFJvdXRlciosIEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXIqKQogewogICAgIG1faW5z
dHJ1bWVudGluZ0FnZW50cy5zZXRQZXJzaXN0ZW50SW5zcGVjdG9yVGltZWxpbmVBZ2VudCh0aGlz
KTsKLQotICAgIC8vIFJlY29tcGlsZSB0byBpbmNsdWRlIHByb2ZpbGluZyBpbmZvcm1hdGlvbi4K
LSAgICAvLyBGSVhNRTogVGhpcyBkb2Vzbid0IHNlZW0gbGlrZSB0aGUgbW9zdCBhcHByb3ByaWF0
ZSBwbGFjZS4KLSAgICBtX2Vudmlyb25tZW50LnNjcmlwdERlYnVnU2VydmVyKCkucmVjb21waWxl
QWxsSlNGdW5jdGlvbnMoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxs
RGVzdHJveUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24gcmVh
c29uKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsRGVzdHJveUZyb250ZW5kQW5k
QmFja2VuZChJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb24pCiB7CiAgICAgbV9pbnN0cnVtZW50
aW5nQWdlbnRzLnNldFBlcnNpc3RlbnRJbnNwZWN0b3JUaW1lbGluZUFnZW50KG51bGxwdHIpOwog
Ci0gICAgaWYgKHJlYXNvbiAhPSBJbnNwZWN0b3I6OkRpc2Nvbm5lY3RSZWFzb246Okluc3BlY3Rl
ZFRhcmdldERlc3Ryb3llZCkKLSAgICAgICAgbV9lbnZpcm9ubWVudC5zY3JpcHREZWJ1Z1NlcnZl
cigpLnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7Ci0KICAgICBFcnJvclN0cmluZyB1bnVzZWQ7
CiAgICAgc3RvcCh1bnVzZWQpOwogfQpAQCAtMjAzLDY0ICsxOTUsMTQgQEAgZG91YmxlIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OnRpbWVzdGFtcCgpCiAgICAgcmV0dXJuIG1fZW52aXJvbm1lbnQu
ZXhlY3V0aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRUaW1lKCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
dm9pZCBzdGFydFByb2ZpbGluZyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0
aXRsZSwgUmVmUHRyPFN0b3B3YXRjaD4mJiBzdG9wd2F0Y2gpCit2b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OnN0YXJ0RnJvbUNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
KQogewotICAgIEpTQzo6TGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCktPnN0YXJ0UHJvZmlsaW5n
KGV4ZWMsIHRpdGxlLCBXVEZNb3ZlKHN0b3B3YXRjaCkpOworICAgIC8vIEZJWE1FOiA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMTUzNDk5PiBXZWIgSW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUgc2hv
dWxkIHVzZSB0aGUgbmV3IFNhbXBsaW5nIFByb2ZpbGVyCiB9CiAKLXN0YXRpYyBpbmxpbmUgUmVm
UHRyPEpTQzo6UHJvZmlsZT4gc3RvcFByb2ZpbGluZyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgU3RyaW5nJiB0aXRsZSkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcEZyb21D
b25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikKIHsKLSAgICByZXR1cm4gSlND
OjpMZWdhY3lQcm9maWxlcjo6cHJvZmlsZXIoKS0+c3RvcFByb2ZpbGluZyhleGVjLCB0aXRsZSk7
Ci19Ci0KLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnRGcm9tQ29uc29sZShKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nICZ0aXRsZSkKLXsKLSAgICAvLyBPbmx5IGFs
bG93IHJlY29yZGluZyBvZiBhIHByb2ZpbGUgaWYgaXQgaXMgYW5vbnltb3VzIChlbXB0eSB0aXRs
ZSkgb3IgZG9lcyBub3QgbWF0Y2gKLSAgICAvLyB0aGUgdGl0bGUgb2YgYW4gYWxyZWFkeSByZWNv
cmRpbmcgcHJvZmlsZS4KLSAgICBpZiAoIXRpdGxlLmlzRW1wdHkoKSkgewotICAgICAgICBmb3Ig
KGNvbnN0IFRpbWVsaW5lUmVjb3JkRW50cnkmIHJlY29yZCA6IG1fcGVuZGluZ0NvbnNvbGVQcm9m
aWxlUmVjb3JkcykgewotICAgICAgICAgICAgU3RyaW5nIHJlY29yZFRpdGxlOwotICAgICAgICAg
ICAgcmVjb3JkLmRhdGEtPmdldFN0cmluZyhBU0NJSUxpdGVyYWwoInRpdGxlIiksIHJlY29yZFRp
dGxlKTsKLSAgICAgICAgICAgIGlmIChyZWNvcmRUaXRsZSA9PSB0aXRsZSkKLSAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIW1fZW5hYmxlZCAmJiBt
X3BlbmRpbmdDb25zb2xlUHJvZmlsZVJlY29yZHMuaXNFbXB0eSgpKQotICAgICAgICBpbnRlcm5h
bFN0YXJ0KCk7Ci0KLSAgICBzdGFydFByb2ZpbGluZyhleGVjLCB0aXRsZSwgbV9lbnZpcm9ubWVu
dC5leGVjdXRpb25TdG9wd2F0Y2goKSk7Ci0KLSAgICBtX3BlbmRpbmdDb25zb2xlUHJvZmlsZVJl
Y29yZHMuYXBwZW5kKGNyZWF0ZVJlY29yZEVudHJ5KFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlQ29uc29sZVByb2ZpbGVEYXRhKHRpdGxlKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpDb25zb2xl
UHJvZmlsZSwgdHJ1ZSwgZnJhbWVGcm9tRXhlY1N0YXRlKGV4ZWMpKSk7Ci19Ci0KLVJlZlB0cjxK
U0M6OlByb2ZpbGU+IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0b3BGcm9tQ29uc29sZShKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKLXsKLSAgICAvLyBTdG9wIHBy
b2ZpbGVzIGluIHJldmVyc2Ugb3JkZXIuIElmIHRoZSB0aXRsZSBpcyBlbXB0eSwgdGhlbiBzdG9w
IHRoZSBsYXN0IHByb2ZpbGUuCi0gICAgLy8gT3RoZXJ3aXNlLCBtYXRjaCB0aGUgdGl0bGUgb2Yg
dGhlIHByb2ZpbGUgdG8gc3RvcC4KLSAgICBmb3IgKHB0cmRpZmZfdCBpID0gbV9wZW5kaW5nQ29u
c29sZVByb2ZpbGVSZWNvcmRzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgIGNv
bnN0IFRpbWVsaW5lUmVjb3JkRW50cnkmIHJlY29yZCA9IG1fcGVuZGluZ0NvbnNvbGVQcm9maWxl
UmVjb3Jkc1tpXTsKLQotICAgICAgICBTdHJpbmcgcmVjb3JkVGl0bGU7Ci0gICAgICAgIHJlY29y
ZC5kYXRhLT5nZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJ0aXRsZSIpLCByZWNvcmRUaXRsZSk7Ci0K
LSAgICAgICAgaWYgKHRpdGxlLmlzRW1wdHkoKSB8fCByZWNvcmRUaXRsZSA9PSB0aXRsZSkgewot
ICAgICAgICAgICAgUmVmUHRyPEpTQzo6UHJvZmlsZT4gcHJvZmlsZSA9IHN0b3BQcm9maWxpbmco
ZXhlYywgdGl0bGUpOwotICAgICAgICAgICAgaWYgKHByb2ZpbGUpCi0gICAgICAgICAgICAgICAg
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjphcHBlbmRQcm9maWxlKHJlY29yZC5kYXRhLmdldCgpLCBw
cm9maWxlLmNvcHlSZWYoKSk7Ci0KLSAgICAgICAgICAgIGRpZENvbXBsZXRlUmVjb3JkRW50cnko
cmVjb3JkKTsKLQotICAgICAgICAgICAgbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzLnJl
bW92ZShpKTsKLQotICAgICAgICAgICAgaWYgKCFtX2VuYWJsZWRGcm9tRnJvbnRlbmQgJiYgbV9w
ZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBp
bnRlcm5hbFN0b3AoKTsKLQotICAgICAgICAgICAgcmV0dXJuIHByb2ZpbGU7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzE1MzQ5OT4gV2ViIEluc3BlY3RvcjogY29uc29sZS5wcm9maWxlIHNob3VsZCB1
c2UgdGhlIG5ldyBTYW1wbGluZyBQcm9maWxlcgogfQogCiB2b2lkIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OndpbGxDYWxsRnVuY3Rpb24oY29uc3QgU3RyaW5nJiBzY3JpcHROYW1lLCBpbnQgc2Ny
aXB0TGluZSwgRnJhbWUqIGZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmgKaW5kZXggNTBjMDk3Mi4uNDU2Y2UzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCkBAIC0x
MDYsOCArMTA2LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ29tbWl0TG9hZCgpOwogCiAgICAg
Ly8gTWV0aG9kcyBjYWxsZWQgZnJvbSBXZWJDb3JlLgotICAgIHZvaWQgc3RhcnRGcm9tQ29uc29s
ZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyAmdGl0bGUpOwotICAgIFJlZlB0cjxKU0M6
OlByb2ZpbGU+IHN0b3BGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYg
dGl0bGUpOworICAgIHZvaWQgc3RhcnRGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IFN0cmluZyYgdGl0bGUpOworICAgIHZvaWQgc3RvcEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAKICAgICAvLyBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24gY2FsbGJhY2tzLgogICAgIHZvaWQgZGlkSW5zdGFsbFRpbWVyKGludCB0aW1lcklkLCBpbnQg
dGltZW91dCwgYm9vbCBzaW5nbGVTaG90LCBGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggMjAwZWJmZS4uNTNmNjY1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCkBAIC00
NSw3ICs0NSw2IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5o
PgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxpbnNw
ZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgotI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2Zp
bGUuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IEluc3BlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVu
dGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50
LmNwcAppbmRleCBhNWZhZTRjLi40ZjRmYTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiU2Vj
dXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaD4KICNp
bmNsdWRlIDxpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg+Ci0jaW5jbHVkZSA8cHJv
ZmlsZXIvUHJvZmlsZS5oPgogCiB1c2luZyBJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpF
eGVjdXRpb25Db250ZXh0RGVzY3JpcHRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9T
Y3JpcHRQcm9maWxlLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkzYzhiYTIu
LjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRs
CisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0LAotICAgIFNraXBW
VGFibGVWYWxpZGF0aW9uCi1dIGludGVyZmFjZSBTY3JpcHRQcm9maWxlIHsKLSAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRpdGxlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNp
Z25lZCBsb25nIHVpZDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU2NyaXB0UHJvZmlsZU5vZGUg
cm9vdE5vZGU7Ci19OwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2Ny
aXB0UHJvZmlsZU5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2Zp
bGVOb2RlLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWYxNWM1Zi4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCisr
KyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0LAotICAgIEltcGxlbWVu
dGF0aW9uTGFja3NWVGFibGUKLV0gaW50ZXJmYWNlIFNjcmlwdFByb2ZpbGVOb2RlIHsKLSAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBpZDsKLQotICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgZnVuY3Rpb25OYW1lOwotCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyB1cmw7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGluZU51
bWJlcjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBjb2x1bW5OdW1iZXI7
Ci0KLSAgICBzZXF1ZW5jZTxTY3JpcHRQcm9maWxlTm9kZT4gY2hpbGRyZW4oKTsKLX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCmlu
ZGV4IDViZGJjZWIuLjJlOTliOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSA8
aW5zcGVjdG9yL1NjcmlwdEJyZWFrcG9pbnQuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0
Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3Rvcnku
aD4KLSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBJbnNw
ZWN0b3I7CiAKQEAgLTE1Miw2MyArMTUxLDQgQEAgdm9pZCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6
OmFwcGVuZExheW91dFJvb3QoSW5zcGVjdG9yT2JqZWN0KiBkYXRhLCBjb25zdCBGbG9hdFEKICAg
ICBkYXRhLT5zZXRBcnJheShBU0NJSUxpdGVyYWwoInJvb3QiKSwgY3JlYXRlUXVhZChxdWFkKSk7
CiB9CiAKLXN0YXRpYyBSZWY8UHJvdG9jb2w6OlRpbWVsaW5lOjpDUFVQcm9maWxlTm9kZUFnZ3Jl
Z2F0ZUNhbGxJbmZvPiBidWlsZEFnZ3JlZ2F0ZUNhbGxJbmZvSW5zcGVjdG9yT2JqZWN0KGNvbnN0
IEpTQzo6UHJvZmlsZU5vZGUqIG5vZGUpCi17Ci0gICAgZG91YmxlIHN0YXJ0VGltZSA9IG5vZGUt
PmNhbGxzKClbMF0uc3RhcnRUaW1lKCk7Ci0gICAgZG91YmxlIGVuZFRpbWUgPSBub2RlLT5jYWxs
cygpLmxhc3QoKS5zdGFydFRpbWUoKSArIG5vZGUtPmNhbGxzKCkubGFzdCgpLmVsYXBzZWRUaW1l
KCk7Ci0KLSAgICBkb3VibGUgdG90YWxUaW1lID0gMDsKLSAgICBmb3IgKGNvbnN0IEpTQzo6UHJv
ZmlsZU5vZGU6OkNhbGwmIGNhbGwgOiBub2RlLT5jYWxscygpKQotICAgICAgICB0b3RhbFRpbWUg
Kz0gY2FsbC5lbGFwc2VkVGltZSgpOwotCi0gICAgcmV0dXJuIFByb3RvY29sOjpUaW1lbGluZTo6
Q1BVUHJvZmlsZU5vZGVBZ2dyZWdhdGVDYWxsSW5mbzo6Y3JlYXRlKCkKLSAgICAgICAgLnNldENh
bGxDb3VudChub2RlLT5jYWxscygpLnNpemUoKSkKLSAgICAgICAgLnNldFN0YXJ0VGltZShzdGFy
dFRpbWUpCi0gICAgICAgIC5zZXRFbmRUaW1lKGVuZFRpbWUpCi0gICAgICAgIC5zZXRUb3RhbFRp
bWUodG90YWxUaW1lKQotICAgICAgICAucmVsZWFzZSgpOwotfQotCi1zdGF0aWMgUmVmPFByb3Rv
Y29sOjpUaW1lbGluZTo6Q1BVUHJvZmlsZU5vZGU+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0KGNvbnN0
IEpTQzo6UHJvZmlsZU5vZGUqIG5vZGUpCi17Ci0gICAgYXV0byByZXN1bHQgPSBQcm90b2NvbDo6
VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlOjpjcmVhdGUoKQotICAgICAgICAuc2V0SWQobm9kZS0+
aWQoKSkKLSAgICAgICAgLnNldENhbGxJbmZvKGJ1aWxkQWdncmVnYXRlQ2FsbEluZm9JbnNwZWN0
b3JPYmplY3Qobm9kZSkpCi0gICAgICAgIC5yZWxlYXNlKCk7Ci0KLSAgICBpZiAoIW5vZGUtPmZ1
bmN0aW9uTmFtZSgpLmlzRW1wdHkoKSkKLSAgICAgICAgcmVzdWx0LT5zZXRGdW5jdGlvbk5hbWUo
bm9kZS0+ZnVuY3Rpb25OYW1lKCkpOwotCi0gICAgaWYgKCFub2RlLT51cmwoKS5pc0VtcHR5KCkp
IHsKLSAgICAgICAgcmVzdWx0LT5zZXRVcmwobm9kZS0+dXJsKCkpOwotICAgICAgICByZXN1bHQt
PnNldExpbmVOdW1iZXIobm9kZS0+bGluZU51bWJlcigpKTsKLSAgICAgICAgcmVzdWx0LT5zZXRD
b2x1bW5OdW1iZXIobm9kZS0+Y29sdW1uTnVtYmVyKCkpOwotICAgIH0KLQotICAgIGlmICghbm9k
ZS0+Y2hpbGRyZW4oKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgYXV0byBjaGlsZHJlbiA9IFByb3Rv
Y29sOjpBcnJheTxQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlPjo6Y3JlYXRlKCk7
Ci0gICAgICAgIGZvciAoUmVmUHRyPEpTQzo6UHJvZmlsZU5vZGU+IHByb2ZpbGVOb2RlIDogbm9k
ZS0+Y2hpbGRyZW4oKSkKLSAgICAgICAgICAgIGNoaWxkcmVuLT5hZGRJdGVtKGJ1aWxkSW5zcGVj
dG9yT2JqZWN0KHByb2ZpbGVOb2RlLmdldCgpKSk7Ci0gICAgICAgIHJlc3VsdC0+c2V0Q2hpbGRy
ZW4oV1RGTW92ZShjaGlsZHJlbikpOwotICAgIH0KLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0K
LXN0YXRpYyBSZWY8UHJvdG9jb2w6OlRpbWVsaW5lOjpDUFVQcm9maWxlPiBidWlsZFByb2ZpbGVJ
bnNwZWN0b3JPYmplY3QoY29uc3QgSlNDOjpQcm9maWxlKiBwcm9maWxlKQotewotICAgIGF1dG8g
cm9vdE5vZGVzID0gUHJvdG9jb2w6OkFycmF5PFByb3RvY29sOjpUaW1lbGluZTo6Q1BVUHJvZmls
ZU5vZGU+OjpjcmVhdGUoKTsKLSAgICBmb3IgKFJlZlB0cjxKU0M6OlByb2ZpbGVOb2RlPiBwcm9m
aWxlTm9kZSA6IHByb2ZpbGUtPnJvb3ROb2RlKCktPmNoaWxkcmVuKCkpCi0gICAgICAgIHJvb3RO
b2Rlcy0+YWRkSXRlbShidWlsZEluc3BlY3Rvck9iamVjdChwcm9maWxlTm9kZS5nZXQoKSkpOwot
Ci0gICAgcmV0dXJuIFByb3RvY29sOjpUaW1lbGluZTo6Q1BVUHJvZmlsZTo6Y3JlYXRlKCkKLSAg
ICAgICAgLnNldFJvb3ROb2RlcyhXVEZNb3ZlKHJvb3ROb2RlcykpCi0gICAgICAgIC5yZWxlYXNl
KCk7Ci19Ci0KLXZvaWQgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjphcHBlbmRQcm9maWxlKEluc3Bl
Y3Rvck9iamVjdCogZGF0YSwgUmVmUHRyPEpTQzo6UHJvZmlsZT4mJiBwcm9maWxlKQotewotICAg
IGRhdGEtPnNldFZhbHVlKEFTQ0lJTGl0ZXJhbCgicHJvZmlsZSIpLCBidWlsZFByb2ZpbGVJbnNw
ZWN0b3JPYmplY3QocHJvZmlsZS5nZXQoKSkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggODYyYjkwMi4uZDNkYjIwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTAyLDcgKzEwMiw2IEBACiAjaW5jbHVkZSAiV2Vi
S2l0UG9pbnQuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgIldpbmRv
d0ZvY3VzQWxsb3dlZEluZGljYXRvci5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2Zp
bGUuaD4KICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENh
bGxTdGFjay5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAppbmRleCBhMzRiZjZjLi5kOTI1OWZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKQEAgLTk0LDcgKzk0LDYgQEAKICNpbmNsdWRlICJWaXNpdGVkTGlua1N0b3JlLmgiCiAjaW5j
bHVkZSAiVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCi0jaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvUHJvZmlsZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKaW5kZXggMTgx
NDA5MS4uMzY5OTljYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29s
ZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5j
cHAKQEAgLTE4NCwxMyArMTg0LDE0IEBAIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmNvdW50KEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFyCiAKIHZvaWQg
UGFnZUNvbnNvbGVDbGllbnQ6OnByb2ZpbGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0
cmluZyYgdGl0bGUpCiB7CisgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNTM0
OTk+IFdlYiBJbnNwZWN0b3I6IGNvbnNvbGUucHJvZmlsZSBzaG91bGQgdXNlIHRoZSBuZXcgU2Ft
cGxpbmcgUHJvZmlsZXIKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0UHJvZmls
aW5nKG1fcGFnZSwgZXhlYywgdGl0bGUpOwogfQogCiB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojpw
cm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlKQogewot
ICAgIGlmIChSZWZQdHI8SlNDOjpQcm9maWxlPiBwcm9maWxlID0gSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpzdG9wUHJvZmlsaW5nKG1fcGFnZSwgZXhlYywgdGl0bGUpKQotICAgICAgICBtX3By
b2ZpbGVzLmFwcGVuZChXVEZNb3ZlKHByb2ZpbGUpKTsKKyAgICAvLyBGSVhNRTogPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzE1MzQ5OT4gV2ViIEluc3BlY3RvcjogY29uc29sZS5wcm9maWxlIHNob3Vs
ZCB1c2UgdGhlIG5ldyBTYW1wbGluZyBQcm9maWxlcgorICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6c3RvcFByb2ZpbGluZyhtX3BhZ2UsIGV4ZWMsIHRpdGxlKTsKIH0KIAogdm9pZCBQYWdl
Q29uc29sZUNsaWVudDo6dGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUp
CkBAIC0yMDksOSArMjEwLDQgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6dGltZVN0YW1wKEpT
Qzo6RXhlY1N0YXRlKiwgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJiBhcmcKICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmNvbnNvbGVUaW1lU3RhbXAobV9wYWdlLm1haW5GcmFtZSgpLCBX
VEZNb3ZlKGFyZ3VtZW50cykpOwogfQogCi12b2lkIFBhZ2VDb25zb2xlQ2xpZW50OjpjbGVhclBy
b2ZpbGVzKCkKLXsKLSAgICBtX3Byb2ZpbGVzLmNsZWFyKCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAppbmRleCAxNGI2
NWE3Li44N2U2NWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xl
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCkBA
IC0zMCw3ICszMCw2IEBACiAjZGVmaW5lIFBhZ2VDb25zb2xlQ2xpZW50X2gKIAogI2luY2x1ZGUg
PGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KLSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxl
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9Db25zb2xlQ2xpZW50Lmg+CiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KIApAQCAtNDMsOCArNDIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBE
b2N1bWVudDsKIGNsYXNzIFBhZ2U7CiAKLXR5cGVkZWYgVmVjdG9yPFJlZlB0cjxKU0M6OlByb2Zp
bGU+PiBQcm9maWxlc0FycmF5OwotCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBQYWdlQ29uc29sZUNs
aWVudCBmaW5hbCA6IHB1YmxpYyBKU0M6OkNvbnNvbGVDbGllbnQgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNjEsOSArNTgsNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOwogICAgIHZvaWQg
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDAsIERvY3VtZW50KiA9IG51
bGxwdHIpOwogCi0gICAgY29uc3QgUHJvZmlsZXNBcnJheSYgcHJvZmlsZXMoKSBjb25zdCB7IHJl
dHVybiBtX3Byb2ZpbGVzOyB9Ci0gICAgdm9pZCBjbGVhclByb2ZpbGVzKCk7Ci0KIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIHZvaWQgbWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUs
IE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRB
cmd1bWVudHM+JiYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBjb3VudChKU0M6OkV4ZWNT
dGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CkBA
IC03NSw3ICs2OSw2IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBQYWdlJiBtX3BhZ2U7
Ci0gICAgUHJvZmlsZXNBcnJheSBtX3Byb2ZpbGVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGUzZGZmNGYuLjc1YzI3
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTEyMSw3ICsxMjEsNiBA
QAogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJl
YWQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxieXRlY29kZS9Db2RlQmxvY2suaD4KICNpbmNsdWRl
IDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oPgpAQCAtMzcyLDcgKzM3MSw2IEBAIHZvaWQgSW50ZXJu
YWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2UqIHBhZ2UpCiAKICAgICBXZWJDb3JlOjpv
dmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoVmVjdG9yPFN0cmluZz4oKSk7CiAgICAgV2Vi
Q29yZTo6U2V0dGluZ3M6OnNldFVzZXNPdmVybGF5U2Nyb2xsYmFycyhmYWxzZSk7Ci0gICAgcGFn
ZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldFByb2ZpbGVyRW5hYmxlZChmYWxzZSk7CiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQogICAgIHBhZ2UtPmdyb3VwKCkuY2FwdGlvblByZWZlcmVuY2Vz
KCktPnNldENhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKGVtcHR5U3RyaW5nKCkpOwogICAgIHBh
Z2UtPmdyb3VwKCkuY2FwdGlvblByZWZlcmVuY2VzKCktPnNldFRlc3RpbmdNb2RlKGZhbHNlKTsK
QEAgLTE3OTQsMTEgKzE3OTIsNiBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6OmNvdW50TWF0Y2hlc0Zv
clRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25lZCBmaW5kT3B0aW9ucwogICAgIHJldHVy
biBkb2N1bWVudC0+ZnJhbWUoKS0+ZWRpdG9yKCkuY291bnRNYXRjaGVzRm9yVGV4dCh0ZXh0LCBu
dWxscHRyLCBmaW5kT3B0aW9ucywgMTAwMCwgbWFyaywgbnVsbHB0cik7CiB9CiAKLWNvbnN0IFBy
b2ZpbGVzQXJyYXkmIEludGVybmFsczo6Y29uc29sZVByb2ZpbGVzKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gY29udGV4dERvY3VtZW50KCktPnBhZ2UoKS0+Y29uc29sZSgpLnByb2ZpbGVzKCk7Ci19
Ci0KIHVuc2lnbmVkIEludGVybmFsczo6bnVtYmVyT2ZMaXZlTm9kZXMoKSBjb25zdAogewogICAg
IHVuc2lnbmVkIG5vZGVDb3VudCA9IDA7CkBAIC0xODI3LDE3ICsxODIwLDYgQEAgdm9pZCBJbnRl
cm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpCiAgICAgbV9pbnNwZWN0b3JGcm9u
dGVuZCA9IG51bGxwdHI7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjpzZXRKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFBhZ2Uq
IHBhZ2UgPSBjb250ZXh0RG9jdW1lbnQoKS0+ZnJhbWUoKS0+cGFnZSgpOwotICAgIGlmICghcGFn
ZSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5zZXRQcm9maWxlckVuYWJs
ZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQgSW50ZXJuYWxzOjpzZXRJbnNwZWN0b3JJc1VuZGVyVGVz
dChib29sIGlzVW5kZXJUZXN0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBQYWdlKiBwYWdl
ID0gY29udGV4dERvY3VtZW50KCktPmZyYW1lKCktPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCmluZGV4IDJlNzU3NTEuLmVlMzkzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtMjcxLDE0ICsyNzEsMTEgQEAgcHVibGljOgogICAgIHZvaWQgaW5zZXJ0QXV0
aG9yQ1NTKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICB2b2lkIGlu
c2VydFVzZXJDU1MoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogCi0gICAg
Y29uc3QgUHJvZmlsZXNBcnJheSYgY29uc29sZVByb2ZpbGVzKCkgY29uc3Q7Ci0KICAgICB1bnNp
Z25lZCBudW1iZXJPZkxpdmVOb2RlcygpIGNvbnN0OwogICAgIHVuc2lnbmVkIG51bWJlck9mTGl2
ZURvY3VtZW50cygpIGNvbnN0OwogCiAgICAgUmVmUHRyPERPTVdpbmRvdz4gb3BlbkR1bW15SW5z
cGVjdG9yRnJvbnRlbmQoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgY2xvc2VEdW1teUlu
c3BlY3RvckZyb250ZW5kKCk7Ci0gICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEluc3BlY3Rvcklz
VW5kZXJUZXN0KGJvb2wgaXNVbmRlclRlc3QsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFN0cmlu
ZyBjb3VudGVyVmFsdWUoRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CmluZGV4IDdjNmEwNDcuLjk5MmNlZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKQEAgLTI0OCwxNiArMjQ4LDEwIEBAIGVudW0gTWVkaWFDb250cm9sRXZlbnQgewogICAgIFtS
YWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0RGV2aWNlUHJveGltaXR5KERPTVN0cmluZyBldmVudFR5
cGUsIHVucmVzdHJpY3RlZCBkb3VibGUgdmFsdWUsIHVucmVzdHJpY3RlZCBkb3VibGUgbWluLCB1
bnJlc3RyaWN0ZWQgZG91YmxlIG1heCk7CiAjZW5kaWYKIAotICAgIC8vIEFzIHBlciBzcGVjOiBo
dHRwOi8vd3d3LnczLm9yZy9UUi9XZWJJREwvI2lkbC1zZXF1ZW5jZQotICAgIC8vICJTZXF1ZW5j
ZXMgbXVzdCBub3QgYmUgdXNlZCBhcyB0aGUgdHlwZSBvZiBhbiBhdHRyaWJ1dGUsIGNvbnN0YW50
IG9yIGV4Y2VwdGlvbiBmaWVsZC4iCi0gICAgLy8gRklYTUU6IHRoaXMgd2lsbCBsZWFkIHRvIEJV
RyBpbnRlcm5hbHMuY29uc29sZVByb2ZpbGVzICE9PSBpbnRlcm5hbHMuY29uc29sZVByb2ZpbGVz
IGFzIHByb2ZpbGUgd2lsbCBhbHdheXMgcmV0dXJucyBuZXcgYXJyYXkuCi0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIFNjcmlwdFByb2ZpbGVbXSBjb25zb2xlUHJvZmlsZXM7Ci0KICAgICB1bnNpZ25l
ZCBsb25nIG51bWJlck9mTGl2ZU5vZGVzKCk7CiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZkxp
dmVEb2N1bWVudHMoKTsKICAgICBET01XaW5kb3cgb3BlbkR1bW15SW5zcGVjdG9yRnJvbnRlbmQo
RE9NU3RyaW5nIHVybCk7CiAgICAgdm9pZCBjbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQoKTsK
LSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KGJvb2xlYW4gY3JlYXRlcyk7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRJbnNwZWN0
b3JJc1VuZGVyVGVzdChib29sZWFuIGlzVW5kZXJUZXN0KTsKIAogICAgIERPTVN0cmluZyBjb3Vu
dGVyVmFsdWUoRWxlbWVudCBlbGVtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAppbmRleCBmN2M5NzFjLi45NjQ1OTk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCkBAIC0z
NSw3ICszNSw2IEBACiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
VmFsdWVSZWYuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVk
ZSA8aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmg+CiAjaW5jbHVkZSA8cnVudGltZS9JZGVudGlmaWVy
SW5saW5lcy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVl
dExpYnhzbHQuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNw
cAppbmRleCA5Njc3MGE2Li40YjI0NmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WFNMU3R5bGVTaGVldExpYnhzbHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHls
ZVNoZWV0TGlieHNsdC5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJYTUxEb2N1bWVu
dFBhcnNlclNjb3BlLmgiCiAjaW5jbHVkZSAiWFNMSW1wb3J0UnVsZS5oIgogI2luY2x1ZGUgIlhT
TFRQcm9jZXNzb3IuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5j
bHVkZSA8bGlieG1sL3VyaS5oPgogI2luY2x1ZGUgPGxpYnhzbHQveHNsdHV0aWxzLmg+CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCmluZGV4IDhhMTg0YzMu
LmU0YTMzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGli
eHNsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNw
cApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIlhTTFRFeHRlbnNpb25zLmgiCiAjaW5jbHVk
ZSAiWFNMVFVuaWNvZGVTb3J0LmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCi0jaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvUHJvZmlsZS5oPgogI2luY2x1ZGUgPGxpYnhzbHQvaW1wb3J0cy5oPgogI2lu
Y2x1ZGUgPGxpYnhzbHQvc2VjdXJpdHkuaD4KICNpbmNsdWRlIDxsaWJ4c2x0L3ZhcmlhYmxlcy5o
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278912</attachid>
            <date>2016-05-13 19:52:36 -0700</date>
            <delta_ts>2016-05-13 20:01:06 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>rm-LegacyProfiler-1.patch</filename>
            <type>text/plain</type>
            <size>337301</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMmQyMDZlLi4yYWY1ZTMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAzIEBACisyMDE2LTA1
LTEzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVt
b3ZlIExlZ2FjeVByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTM1NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhhbmRsZXItZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50
LWhhbmRsZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91
cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxl
ZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVu
Y3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
ZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2Fs
bHMtZXZhbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3Vz
LWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFt
ZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2FwcGx5LWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2FwcGx5Lmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9u
eW1vdXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYnVp
bHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
ZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rp
b24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYnVpbHQt
aW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9wcm9maWxlci9jYWxsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUt
cHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUt
cHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9kZWFkLXRpbWUtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRl
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9ldmVudC1oYW5kbGVyLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRs
ZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250
ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9wcm9maWxlci9leGVjdXRpb24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2lubGluZS1ldmVudC1oYW5k
bGVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2lubGlu
ZS1ldmVudC1oYW5kbGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9t
YW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2Nv
cGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1v
dXMtZnVuY3Rpb24tY2FsbHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVy
L211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJl
bnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1l
LWZ1bmN0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVy
L211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rp
b24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1l
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9tdWx0aXBs
ZS1mcmFtZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL25hbWVkLWZ1
bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGZhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5j
dG9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL25lc3Rl
ZC1hbm9ueW1vdXMtZnVuY3Rvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmls
ZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL25lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNvbnRl
eHQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbm8tZXhl
Y3V0aW9uLWNvbnRleHQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL29u
ZS1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4taW5jbHVkZWQtZmlsZS1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWlu
Y2x1ZGVkLWZpbGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2Zp
bGUtd2l0aC1uby10aXRsZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXBy
b2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1z
dG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1h
LW5lc3RlZC1sb2NhdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
cmVzb3VyY2VzL290aGVyLWZyYW1lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9m
aWxlci9yZXNvdXJjZXMvb3RoZXItd2luZG93Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9wcm9maWxlci9yZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanM6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNo
YW5nZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zaW1w
bGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxl
ci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1t
dWx0aXBsZS10aW1lcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3Rh
cnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGlu
Zy1pbi10aGUtc2FtZS1mdW5jdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmcu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFm
dGVyLXNldFRpbWVvdXQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNhbGwtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNh
bGwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlv
bi1mcm9tLWV2YWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmls
ZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2FibGVkOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRz
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVu
Y3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBmYXN0L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1p
bi1mdW5jdGlvbnMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3dpbmRv
dy1kb3QtZXZhbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxl
ci93aW5kb3ctZG90LWV2YWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6CisK
IDIwMTYtMDUtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgY3Jvc3MtZmFkZSgpIHJlbmRlcmluZyBkb2Vzbid0IG1hdGNoIGV4cGVjdGF0aW9uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5k
bGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2
ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
NDhiZjM4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3Vz
LWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA
QAotVGhpcyBwYWdlIGhhcyBhbiBhbm9ueW1vdXMgZXZlbnQgaGFuZGxlci4gCi0KLVRvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBX
ZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEl0IHNob3VsZCBzaG93IHRoZSBh
bm9ueW1vdXMgZnVuY3Rpb24gYXQgdGhlIHNhbWUgbGV2ZWwgYXMgdGhlIG9ubG9hZCBoYW5kbGVy
LiAKLQotUHJvZmlsZSB0aXRsZTogQW5vbnltb3VzIGV2ZW50IGhhbmRsZXIKLVRocmVhZF8xIChu
byBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgYW5vbnltb3VzLWV2ZW50LWhhbmRsZXIu
aHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICBjbGljayAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgb25jbGljayBh
bm9ueW1vdXMtZXZlbnQtaGFuZGxlci5odG1sIChsaW5lIDE1OjUxKQotICAgICAgICAgICAgaW5z
ZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAg
ICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgZ2V0RWxl
bWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDJiY2ZmYTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFuZGxlci5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2Zp
bGUoIkFub255bW91cyBldmVudCBoYW5kbGVyIik7Ci0KLSAgICB2YXIgYnV0dG9uV2l0aEFub255
bW91c0hhbmRsZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnV0dG9uV2l0aEFuQW5vbnlt
b3VzRXZlbnRIYW5kbGVyIikKLSAgICBidXR0b25XaXRoQW5vbnltb3VzSGFuZGxlci5vbmNsaWNr
ID0gZnVuY3Rpb24gKCkgewotICAgICAgICBpbnNlcnROZXdUZXh0KCk7Ci0gICAgfQotCi0gICAg
YnV0dG9uV2l0aEFub255bW91c0hhbmRsZXIuY2xpY2soKTsKLQotICAgIGVuZFRlc3QoKTsKLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMg
cGFnZSBoYXMgYW4gYW5vbnltb3VzIGV2ZW50IGhhbmRsZXIuCi08YnI+Ci08YnI+Ci1UbyBydW4g
dGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUg
V2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEl0IHNob3VsZCBzaG93IHRo
ZSBhbm9ueW1vdXMgZnVuY3Rpb24gYXQgdGhlIHNhbWUgbGV2ZWwgYXMgdGhlIG9ubG9hZAotaGFu
ZGxlci4KLTxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJidXR0b25XaXRoQW5Bbm9ueW1vdXNFdmVu
dEhhbmRsZXIiIHZhbHVlPSJCdXR0b24gd2l0aCBhbiBhbm9ueW1vdXMgZXZlbnQgaGFuZGxlciI+
Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20t
ZGlmZmVyZW50LWNvbnRleHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjYmJmMDQuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVk
LWZyb20tZGlmZmVyZW50LWNvbnRleHRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDI0ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIGZ1
bmN0aW9uIGZyb20gZGlmZmVyZW50IGNvbnRleHRzLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gQmVuZWF0aCBvbmxvYWQgYW5kIHN0YXJ0VGVzdCBpdCBz
aG91bGQgc2hvdyB0aHJlZSBjaGlsZHJlbiwgYW4gYW5vbnltb3VzIGZ1bmN0aW9uLCBzY3JpcHQg
Y29udGV4dCwgYW5kIHRoZSBlbmRUZXN0IGNhbGwuCi0KLVByb2ZpbGUgdGl0bGU6IFNhbWUgYW5v
bnltb3VzIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGRpZmZlcmVudCBjb250ZXh0cwotVGhyZWFkXzEg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBhbm9ueW1vdXMtZnVuY3Rpb24tY2Fs
bGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9u
eW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkK
LSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVs
ZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBldmFsIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAocHJvZ3JhbSkgKG5vIGZpbGUpIChsaW5lIDE6MSkKLSAgICAgICAg
ICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDI5OjM0KQotICAgICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fu
b255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRp
ZmZlcmVudC1jb250ZXh0cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYWI4
MzE3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1
bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5k
b3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnBy
b2ZpbGUoIlNhbWUgYW5vbnltb3VzIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGRpZmZlcmVudCBjb250
ZXh0cyIpOwotCi0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBldmFsKCJhbm9ueW1vdXNG
dW5jdGlvbigpIik7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxz
IGFuIGFub255bW91cyBmdW5jdGlvbiBmcm9tIGRpZmZlcmVudCBjb250ZXh0cy4KLTxicj4KLTxi
cj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgQmVuZWF0
aCBvbmxvYWQgYW5kIHN0YXJ0VGVzdCBpdCBzaG91bGQgc2hvdyB0aHJlZSBjaGlsZHJlbiwgYW4K
LWFub255bW91cyBmdW5jdGlvbiwgc2NyaXB0IGNvbnRleHQsIGFuZCB0aGUgZW5kVGVzdCBjYWxs
LgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0
LWluLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fu
b255bW91cy1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTIwNjAwLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1
bmN0aW9ucy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UaGlz
IHBhZ2UgaGFzIGFuIGFub255bW91cyBKYXZhU2NyaXB0IGZ1bmN0aW9uIHRoYXQgY2FsbHMgYnVp
bHQtaW4gZnVuY3Rpb25zLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBp
biB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUg
cHJvZmlsZS4gQmVuZWF0aCBvbmxvYWQgYW5kIHN0YXJ0VGVzdCBpdCBzaG91bGQgc2hvdyB0aHJl
ZSBjaGlsZHJlbiwgYW4gYW5vbnltb3VzIGZ1bmN0aW9uLCBzY3JpcHQgY29udGV4dCwgYW5kIHRo
ZSBlbmRUZXN0IGNhbGwuCi0KLVByb2ZpbGUgdGl0bGU6IEFub255bW91cyBmdW5jdGlvbiBjYWxs
cyBidWlsdC1pbiBmdW5jdGlvbnMKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBz
dGFydFRlc3QgYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1s
IChsaW5lIDEwOjE5KQotICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxl
bWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQot
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0
aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViYzczYjUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVu
Y3Rpb25zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFy
dFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGZ1bmN0aW9uIGNhbGxz
IGJ1aWx0LWluIGZ1bmN0aW9ucyIpOwotICAgIGFub255bW91c0Z1bmN0aW9uKCk7Ci0gICAgZW5k
VGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0
KCkiPgotVGhpcyBwYWdlIGhhcyBhbiBhbm9ueW1vdXMgSmF2YVNjcmlwdCBmdW5jdGlvbiB0aGF0
IGNhbGxzIGJ1aWx0LWluIGZ1bmN0aW9ucy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3Qg
bWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0
b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgQmVuZWF0aCBvbmxvYWQgYW5kIHN0YXJ0VGVz
dCBpdCBzaG91bGQgc2hvdyB0aHJlZSBjaGlsZHJlbiwgYW4KLWFub255bW91cyBmdW5jdGlvbiwg
c2NyaXB0IGNvbnRleHQsIGFuZCB0aGUgZW5kVGVzdCBjYWxsLgotPGRpdiBpZD0ib3V0cHV0Ij48
L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhMGZkNGIuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZh
bC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGlzIHBhZ2Un
cyBKYXZhU2NyaXB0IGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlvbiB3aGljaCBjYWxscyBldmFs
KCkuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2Vy
IHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBCZW5l
YXRoIG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNob3VsZCBzaG93IGFuIChhbm9ueW1vdXMgZnVu
Y3Rpb24pIHdoaWNoIGhhcyBhIChwcm9ncmFtKSBjaGlsZC4KLQotUHJvZmlsZSB0aXRsZTogQW5v
bnltb3VzIGZ1bmN0aW9uIGNhbGxlcyBldmFsCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgc3RhcnRUZXN0IGFub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwgKGxpbmUg
MTA6MTkpCi0gICAgICB2YXJpYWJsZVRoYXRQb2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24gYW5v
bnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwuaHRtbCAobGluZSAxNDo1OSkKLSAgICAgICAgIGV2
YWwgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIChwcm9ncmFtKSAobm8gZmlsZSkg
KGxpbmUgMToxKQotICAgICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1l
bnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2Rl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDE5Zjc2NjYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5k
b3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnBy
b2ZpbGUoIkFub255bW91cyBmdW5jdGlvbiBjYWxsZXMgZXZhbCIpOwotCi0gICAgdmFyIHZhcmlh
YmxlVGhhdFBvaW50c1RvQW5Bbm9ueW1vdXNGdW5jdGlvbiA9IGZ1bmN0aW9uKCkgewotICAgICAg
ICBldmFsKCJpbnNlcnROZXdUZXh0KCkiKTsKLSAgICB9Ci0KLSAgICB2YXJpYWJsZVRoYXRQb2lu
dHNUb0FuQW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZh
U2NyaXB0IGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlvbiB3aGljaCBjYWxscyBldmFsKCkuCi08
YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93
c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4g
IEJlbmVhdGggb25sb2FkIGFuZCBzdGFydFRlc3QgaXQgc2hvdWxkIHNob3cgYW4gKGFub255bW91
cyBmdW5jdGlvbikKLXdoaWNoIGhhcyBhIChwcm9ncmFtKSBjaGlsZC4KLTxkaXYgaWQ9Im91dHB1
dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRo
LWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3YjhkODA3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnlt
b3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBhbm9ueW1v
dXMgZnVuY3Rpb25zIHdpdGggZGlzcGxheSBuYW1lcy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIFlvdSBzaG91bGQgc2VlIGZ1bmN0aW9ucyBuYW1lZCAi
W3hdIGl0ZXJhdGlvbnMgZnVuY3Rpb24iLCBhbmQgbm8gYW5vbnltb3VzIGZ1bmN0aW9ucy4KLQot
UHJvZmlsZSB0aXRsZTogQW5vbnltb3VzIGZ1bmN0aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMKLVRo
cmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgYW5vbnltb3VzLWZ1bmN0
aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAyMjoxOSkKLSAgICAgIGFub255bW91
c0Z1bmN0aW9uR2VuZXJhdG9yIGFub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVz
Lmh0bWwgKGxpbmUgMTA6MzYpCi0gICAgICAwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnltb3Vz
LWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMjo1OSkKLSAgICAgIDEg
aXRlcmF0aW9ucyBmdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1l
cy5odG1sIChsaW5lIDEyOjU5KQotICAgICAgMiBpdGVyYXRpb25zIGZ1bmN0aW9uIGFub255bW91
cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMTI6NTkpCi0gICAgICAy
MCBpdGVyYXRpb25zIGZ1bmN0aW9uIGFub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5h
bWVzLmh0bWwgKGxpbmUgMTI6NTkpCi0gICAgICAxMDAwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5v
bnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMjo1OSkKLSAg
ICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlv
bnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fu
b255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDdiOWZjMzQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gYW5vbnltb3VzRnVuY3Rpb25HZW5l
cmF0b3IoaXRlcmF0aW9ucykKLXsKLSAgICB2YXIgdmFyaWFibGVUaGF0UG9pbnRzVG9BbkFub255
bW91c0Z1bmN0aW9uID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBpdGVyYXRpb25zOyArK2kpIDsKLSAgICB9Ci0gICAgCi0gICAgdmFyaWFibGVUaGF0UG9p
bnRzVG9BbkFub255bW91c0Z1bmN0aW9uLmRpc3BsYXlOYW1lID0gaXRlcmF0aW9ucyArICIgaXRl
cmF0aW9ucyBmdW5jdGlvbiI7Ci0gICAgCi0gICAgcmV0dXJuIHZhcmlhYmxlVGhhdFBvaW50c1Rv
QW5Bbm9ueW1vdXNGdW5jdGlvbjsKLX0KLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBj
b25zb2xlLnByb2ZpbGUoIkFub255bW91cyBmdW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzIik7
Ci0KLSAgICBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcigwKSgpOwotICAgIGFub255bW91c0Z1
bmN0aW9uR2VuZXJhdG9yKDEpKCk7Ci0gICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IoMiko
KTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcigyMCkoKTsKLSAgICBhbm9ueW1vdXNG
dW5jdGlvbkdlbmVyYXRvcigxMDAwKSgpOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscyBhbm9ueW1vdXMgZnVuY3Rpb25zIHdpdGggZGlzcGxheSBuYW1lcy4KLTxi
cj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dz
ZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAg
WW91IHNob3VsZCBzZWUgZnVuY3Rpb25zIG5hbWVkICJbeF0gaXRlcmF0aW9ucyBmdW5jdGlvbiIs
IGFuZCBubyBhbm9ueW1vdXMgZnVuY3Rpb25zLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBw
bHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwOGJkMDYuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBhIGNhbGwg
dG8gYXBwbHkoKSBpbiBpdC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQg
aW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhl
IHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZmFrZUlu
dGVyaW9yRnVuY3Rpb24oKSBhbmQgYSBjYWxsIHRvIGFwcGx5KCkuCi0KLVByb2ZpbGUgdGl0bGU6
IFVzaW5nIHRoZSBhcHBseSgpIG1ldGhvZAotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgIHN0YXJ0VGVzdCBhcHBseS5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZmFrZU9iamVjdCBh
cHBseS5odG1sIChsaW5lIDE3OjIxKQotICAgICAgICAgZmFrZUludGVyaW9yRnVuY3Rpb24gYXBw
bHkuaHRtbCAobGluZSAyMzozMCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2FwcGx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2FwcGx5Lmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4ZDQxYWIuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJu
YWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIlVz
aW5nIHRoZSBhcHBseSgpIG1ldGhvZCIpOwotICAgIHZhciBteU9iamVjdCA9IG5ldyBmYWtlT2Jq
ZWN0KDEsIDIpOwotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gZmFrZU9iamVjdCAoeCwg
eSkKLXsKLSAgICB0aGlzLnggPSB4OwotICAgIGZha2VJbnRlcmlvckZ1bmN0aW9uLmFwcGx5KHRo
aXMsIGFyZ3VtZW50cyk7Ci19Ci0KLWZ1bmN0aW9uIGZha2VJbnRlcmlvckZ1bmN0aW9uKHgsIHkp
Ci17Ci0gICAgdGhpcy55ID0geTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgYSBjYWxsIHRv
IGFwcGx5KCkgaW4gaXQuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBs
b2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29r
IGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwg
dG8gZmFrZUludGVyaW9yRnVuY3Rpb24oKSBhbmQKLWEgY2FsbCB0byBhcHBseSgpLgotPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2Fs
bHMtYW5vbnltb3VzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MmE2YmFmMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWlu
LWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyMyArMCwwIEBACi1UaGlzIHBhZ2UgdXNlcyBhIGJ1aWx0LWluIGZ1bmN0aW9uIHRvIGNhbGwg
YW4gYW5vbnltb3VzIGZ1bmN0aW9uLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9h
ZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBh
dCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgbWFwKCkgc2hvdWxkIGJlIHRoZSBzaWJsaW5n
IG9mIGFuIChhbm9ueW1vdXMgZnVuY3Rpb24pIHdoaWNoIGhhcyBhcnJheU9wZXJhdG9yRnVuY3Rp
b24oKSBhcyBhIGNoaWxkLgotCi1Qcm9maWxlIHRpdGxlOiBCdWlsdC1pbiBmdW5jdGlvbiBjYWxs
cyBhbiBhbm9ueW1vdXMgZnVuY3Rpb24KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICBzdGFydFRlc3QgYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWwgKGxpbmUg
MTA6MTkpCi0gICAgICBBcnJheSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgbWFwIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICBPYmplY3QgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgIHRvTGVuZ3RoIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICB0b0ludGVn
ZXIgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIE51bWJlciAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgIGlzQXJyYXkgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBz
cGVjaWVzR2V0dGVyIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBBcnJheSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgbXlGdW5jdGlvbiBidWlsdC1pbi1mdW5jdGlvbi1jYWxs
cy1hbm9ueW1vdXMuaHRtbCAobGluZSAxNDozMCkKLSAgICAgICAgICAgIGFycmF5T3BlcmF0b3JG
dW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyNTozMSkKLSAgICAg
IGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNh
bGxzLWFub255bW91cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1m
dW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDVhZWQ0OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0
LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJu
YWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkJ1
aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlvbiIpOwotCi0gICAgdmFy
IG15RnVuY3Rpb24gPSBmdW5jdGlvbihhcnJheUVsZW1lbnQpIHsKLSAgICAgICAgcmV0dXJuIGFy
cmF5T3BlcmF0b3JGdW5jdGlvbihhcnJheUVsZW1lbnQpOwotICAgIH0KLQotICAgIHZhciBteUFy
cmF5ID0gbmV3IEFycmF5ICgwLCAxLCAyKTsKLSAgICBteUFycmF5Lm1hcChteUZ1bmN0aW9uKTsK
LQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9
InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSB1c2VzIGEgYnVpbHQtaW4gZnVuY3Rpb24gdG8gY2Fs
bCBhbiBhbm9ueW1vdXMgZnVuY3Rpb24uCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1h
bnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9y
IGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIG1hcCgpIHNob3VsZCBi
ZSB0aGUgc2libGluZyBvZiBhbiAoYW5vbnltb3VzIGZ1bmN0aW9uKQotd2hpY2ggaGFzIGFycmF5
T3BlcmF0b3JGdW5jdGlvbigpIGFzIGEgY2hpbGQuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9i
dWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2Vy
LWRlZmluZWQtZnVuY3Rpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1NzE1NWU3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVp
bHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgcGFnZSB1c2VzIGEgYnVpbHQtaW4g
ZnVuY3Rpb24gdG8gY2FsbCBhIHVzZXIgZGVmaW5lZCBmdW5jdGlvbi4gCi0KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIG1hcCgpIHNo
b3VsZCBoYXZlIGFycmF5T3BlcmF0b3JGdW5jdGlvbigpIGFzIGEgY2hpbGQuCi0KLVByb2ZpbGUg
dGl0bGU6IEJ1aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGEgdXNlciBkZWZpbmVkIGZ1bmN0aW9uCi1U
aHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGJ1aWx0LWluLWZ1bmN0
aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sIChsaW5lIDEwOjE5KQotICAgICAg
QXJyYXkgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIG1hcCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgT2JqZWN0IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICB0b0xlbmd0
aCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgdG9JbnRlZ2VyIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICBOdW1iZXIgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICBpc0FycmF5IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAoYW5vbnltb3Vz
IGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgc3BlY2llc0dldHRlciAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgQXJyYXkgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgIGFycmF5T3BlcmF0b3JGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAyNTozMSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRl
ZmluZWQtZnVuY3Rpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY2M2I2
OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0
aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MzAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUo
IkJ1aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGEgdXNlciBkZWZpbmVkIGZ1bmN0aW9uIik7Ci0KLSAg
ICB2YXIgbXlBcnJheSA9IG5ldyBBcnJheSAoMCwgMSwgMik7Ci0gICAgbXlBcnJheS5tYXAoYXJy
YXlPcGVyYXRvckZ1bmN0aW9uKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSB1c2VzIGEgYnVp
bHQtaW4gZnVuY3Rpb24gdG8gY2FsbCBhIHVzZXIgZGVmaW5lZCBmdW5jdGlvbi4KLTxicj4KLTxi
cj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhl
IHByb2ZpbGUgbWFwKCkgc2hvdWxkIGhhdmUgYXJyYXlPcGVyYXRvckZ1bmN0aW9uKCkgYXMgYSBj
aGlsZC4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZmM4NmZkOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2NhbGwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGhp
cyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgYSBjYWxsIHRvIGNhbGwoKSBpbiBpdC4gCi0KLVRvIHJ1
biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRo
ZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRo
ZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZmFrZU9iamVjdCgpIHdpdGggY2FsbCgpIGFzIGl0cyBj
aGlsZCBhbmQgYSBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFzIGNhbGwoKSdzIGNoaWxkLgotCi1Q
cm9maWxlIHRpdGxlOiBVc2luZyB0aGUgY2FsbCgpIG1ldGhvZAotVGhyZWFkXzEgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBjYWxsLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBm
YWtlT2JqZWN0IGNhbGwuaHRtbCAobGluZSAxOToyMSkKLSAgICAgICAgIGZha2VJbnRlcmlvckZ1
bmN0aW9uIGNhbGwuaHRtbCAobGluZSAyNTozMCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzNjQ3YmYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWstZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhpcyBwYWdlIHRlc3RzIHRoYXQgdGhlIGdlbmVyYXRp
b24gb2YgYnl0ZWNvZGUgYWxsb2NhdGVzIHJlZ2lzdGVycyBjb3JyZWN0bHkgd2hlbiBwcm9maWxp
bmcgaXMgZW5hYmxlZC4gVG8gcnVuIHRoZSB0ZXN0IG1hbnVhbGx5LCBlbmFibGUgcHJvZmlsaW5n
IGluIHRoZSB3ZWIgaW5zcGVjdG9yIGFuZCByZWxvYWQgdGhpcyBwYWdlLgotCi1QQVNTOiBsb2Nh
bENhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQotUEFTUzogZ2xvYmFsQ2FsbFRl
c3QoMSwgMikgc2hvdWxkIGJlIDIgYW5kIGlzLgotCi1QQVNTOiBzY29wZWRDYWxsVGVzdCgxLCAy
KSBzaG91bGQgYmUgMiBhbmQgaXMuCi0KLVBBU1M6IHJlc29sdmVDYWxsVGVzdCgxLCAyKSBzaG91
bGQgYmUgMiBhbmQgaXMuCi0KLVBBU1M6IGJyYWNrZXRDYWxsVGVzdCgxLCAyKSBzaG91bGQgYmUg
MiBhbmQgaXMuCi0KLVBBU1M6IGRvdENhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4K
LQotUEFTUzogbmV3VGVzdCgxLCAyKSBzaG91bGQgYmUgMiBhbmQgaXMuCi0KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2NmI0NDEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDEwNSArMCwwIEBACi08Ym9keT4KLTxoZWFkPgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxz
KQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVl
KTsKLQotZnVuY3Rpb24gbG9nKHMpCi17Ci0gICAgaWYgKHRoaXMuZG9jdW1lbnQpCi0gICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUocyArICJcbiIpKTsKLSAgICBlbHNlCi0gICAgICAgIHByaW50KHMgKyAi
XG4iKTsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmUoYSwgYURlc2NyaXB0aW9uLCBiKQotewotICAg
IGlmIChhID09PSBiKQotICAgICAgICBsb2coIlBBU1M6ICIgKyBhRGVzY3JpcHRpb24gKyAiIHNo
b3VsZCBiZSAiICsgYiArICIgYW5kIGlzLlxuIik7Ci0gICAgZWxzZQotICAgICAgICBsb2coIkZB
SUw6ICIgKyBhRGVzY3JpcHRpb24gKyAiIHNob3VsZCBiZSAiICsgYiArICIgYnV0IGluc3RlYWQg
aXMgIiArIGEgKyAiLlxuIik7Ci19Ci0KLWZ1bmN0aW9uIGxvY2FsQ2FsbFRlc3QoYSwgYikKLXsK
LSAgICBmdW5jdGlvbiBsb2NhbENhbGwobykKLSAgICB7Ci0gICAgICAgIHJldHVybiBvLnRvU3Ry
aW5nKCk7Ci0gICAgfQotICAgIHJldHVybiBbbG9jYWxDYWxsKGEpLCBiXVsxXTsKLX0KLQotZnVu
Y3Rpb24gZ2xvYmFsQ2FsbChvKQotewotICAgIHJldHVybiBvLnRvU3RyaW5nKCk7Ci19Ci0KLWZ1
bmN0aW9uIGdsb2JhbENhbGxUZXN0KGEsIGIpCi17Ci0gICAgcmV0dXJuIFtnbG9iYWxDYWxsKGEp
LCBiXVsxXTsKLX0KLQotZnVuY3Rpb24gc2NvcGVkQ2FsbFRlc3QoYSwgYikKLXsKLSAgICBmdW5j
dGlvbiBzY29wZWRDYWxsKG8pCi0gICAgewotICAgICAgICByZXR1cm4gby50b1N0cmluZygpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIGYoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFtzY29wZWRD
YWxsKGEpLCBiXVsxXTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZigpOwotfQotCi1mdW5jdGlvbiBy
ZXNvbHZlQ2FsbFRlc3QoYSwgYikKLXsKLSAgICBvID0geyByZXNvbHZlZENhbGw6IGZ1bmN0aW9u
KG8pIHsgcmV0dXJuIG8udG9TdHJpbmcoKTsgfX07Ci0gICAgd2l0aCAobykgewotICAgICAgICBy
ZXR1cm4gW3Jlc29sdmVkQ2FsbChvKSwgYl1bMV07Ci0gICAgfQotfQotCi1mdW5jdGlvbiBicmFj
a2V0Q2FsbFRlc3QoYSwgYikKLXsKLSAgICByZXR1cm4gW2FbInRvU3RyaW5nIl0oKSwgYl1bMV07
Ci19Ci0KLWZ1bmN0aW9uIGRvdENhbGxUZXN0KGEsIGIpCi17Ci0gICAgcmV0dXJuIFthLnRvU3Ry
aW5nKCksIGJdWzFdOwotfQotCi1mdW5jdGlvbiB0ZXN0Q29uc3RydWN0b3IobykKLXsKLSAgICBy
ZXR1cm4gby50b1N0cmluZygpOwotfQotCi1mdW5jdGlvbiBuZXdUZXN0KGEsIGIpCi17Ci0gICAg
cmV0dXJuIFtuZXcgdGVzdENvbnN0cnVjdG9yKGEpLCBiXVsxXTsKLX0KLQotZnVuY3Rpb24gc3Rh
cnRUZXN0KCkKLXsKLSAgICBzaG91bGRCZShsb2NhbENhbGxUZXN0KDEsIDIpLCAibG9jYWxDYWxs
VGVzdCgxLCAyKSIsIDIpOwotICAgIHNob3VsZEJlKGdsb2JhbENhbGxUZXN0KDEsIDIpLCAiZ2xv
YmFsQ2FsbFRlc3QoMSwgMikiLCAyKTsKLSAgICBzaG91bGRCZShzY29wZWRDYWxsVGVzdCgxLCAy
KSwgInNjb3BlZENhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxkQmUocmVzb2x2ZUNhbGxU
ZXN0KDEsIDIpLCAicmVzb2x2ZUNhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxkQmUoYnJh
Y2tldENhbGxUZXN0KDEsIDIpLCAiYnJhY2tldENhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hv
dWxkQmUoZG90Q2FsbFRlc3QoMSwgMiksICJkb3RDYWxsVGVzdCgxLCAyKSIsIDIpOwotICAgIHNo
b3VsZEJlKG5ld1Rlc3QoMSwgMiksICJuZXdUZXN0KDEsIDIpIiwgMik7Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotPHA+Ci1UaGlzIHBhZ2UgdGVz
dHMgdGhhdCB0aGUgZ2VuZXJhdGlvbiBvZiBieXRlY29kZSBhbGxvY2F0ZXMgcmVnaXN0ZXJzIGNv
cnJlY3RseSB3aGVuIHByb2ZpbGluZyBpcyBlbmFibGVkLiBUbyBydW4gdGhlIHRlc3QgbWFudWFs
bHksIGVuYWJsZSBwcm9maWxpbmcgaW4gdGhlIHdlYiBpbnNwZWN0b3IgYW5kIHJlbG9hZCB0aGlz
IHBhZ2UuCi08L3A+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDIxMDVjN2EuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxs
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2Fj
eUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3Qo
KQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVXNpbmcgdGhlIGNhbGwoKSBtZXRob2QiKTsKLQot
ICAgIHZhciBteU9iamVjdCA9IG5ldyBmYWtlT2JqZWN0KDEsIDIpOwotCi0gICAgZW5kVGVzdCgp
OwotfQotCi1mdW5jdGlvbiBmYWtlT2JqZWN0ICh4LCB5KQotewotICAgIHRoaXMueCA9IHg7Ci0g
ICAgZmFrZUludGVyaW9yRnVuY3Rpb24uY2FsbCh0aGlzLCB5KTsKLX0KLQotZnVuY3Rpb24gZmFr
ZUludGVyaW9yRnVuY3Rpb24oeSkKLXsKLSAgICB0aGlzLnkgPSB5OwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNj
cmlwdCBoYXMgYSBjYWxsIHRvIGNhbGwoKSBpbiBpdC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUg
c2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0KCkgd2l0aCBjYWxsKCkgYXMKLWl0cyBjaGls
ZCBhbmQgYSBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFzIGNhbGwoKSdzIGNoaWxkLgotPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1w
cm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9jYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVy
LWZyb20tYW5vdGhlci1zY29wZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDZjMmJiMTguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9j
YWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhl
ci1zY29wZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UaGlz
IHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJvbSB3aXRoaW4gYSBmdW5jdGlv
biB3aGljaCBpcyB0aGVuIGNhbGxlZCBsYXRlciBmcm9tIGFub3RoZXIgY29udGV4dC4gCi0KLVRv
IHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2Fk
IHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxl
ciB5b3Ugc2hvdWxkIHNlZSBhIGNhbGwgdG8gaW5kaXJlY3Rpb24oKSBhbmQgZnVuY3Rpb25XaWNo
U3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpCi0KLVByb2ZpbGUgdGl0bGU6IENhbGxpbmcgdGhl
IHNhbWUgZnVuY3Rpb24gd2hlcmUgdGhlIHByb2ZpbGUgc3RhcnRlZCBmcm9tIGFub3RoZXIgZnVu
Y3Rpb24KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBpbmRpcmVjdGlvbiBjYWxs
aW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1z
Y29wZS5odG1sIChsaW5lIDE3OjIxKQotICAgICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNU
aGVQcm9maWxlciBjYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVy
LWZyb20tYW5vdGhlci1zY29wZS5odG1sIChsaW5lIDIzOjQ3KQotICAgZnVuY3Rpb25XaWNoU3Rh
cnRzQW5kU3RvcHNUaGVQcm9maWxlciBjYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQt
dGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS5odG1sIChsaW5lIDIzOjQ3KQotICAgZW5k
VGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhh
dC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1w
cm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNTc1NjdmMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Nh
bGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVy
LXNjb3BlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFy
dFRlc3QoKQotewotICAgIGluZGlyZWN0aW9uKCk7Ci0gICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5k
U3RvcHNUaGVQcm9maWxlcigpOwotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gaW5kaXJl
Y3Rpb24oKQotewotICAgIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKTsK
LX0KLQotdmFyIGZpcnN0VGltZSA9IHRydWU7Ci1mdW5jdGlvbiBmdW5jdGlvbldpY2hTdGFydHNB
bmRTdG9wc1RoZVByb2ZpbGVyKCkKLXsKLSAgICBpZiAoZmlyc3RUaW1lKSB7Ci0gICAgICAgIGNv
bnNvbGUucHJvZmlsZSgiQ2FsbGluZyB0aGUgc2FtZSBmdW5jdGlvbiB3aGVyZSB0aGUgcHJvZmls
ZSBzdGFydGVkIGZyb20gYW5vdGhlciBmdW5jdGlvbiIpOwotICAgICAgICBmaXJzdFRpbWUgPSBm
YWxzZTsKLSAgICB9Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDAwOyBpKyspCi0g
ICAgICAgIHZhciBiID0gaSArIDI7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgc3RhcnRzIHByb2Zp
bGluZyBmcm9tIHdpdGhpbiBhIGZ1bmN0aW9uIHdoaWNoIGlzIHRoZW4gY2FsbGVkCi1sYXRlciBm
cm9tIGFub3RoZXIgY29udGV4dC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGVyIHlvdSBzaG91bGQgc2VlIGEg
Y2FsbCB0byBpbmRpcmVjdGlvbigpIGFuZAotZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQ
cm9maWxlcigpCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2Zp
bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29tcGFyZS1tdWx0
aXBsZS1wcm9maWxlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGMzYmJlMjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJl
LW11bHRpcGxlLXByb2ZpbGVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICsw
LDAgQEAKLVRoaXMgcGFnZSBoYXMgbXVsdGlwbGUgcHJvZmlsZXMgd2l0aCB0aGUgc2FtZSBuYW1l
LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0
aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSXQgc2hv
dWxkIG5vdCBjcmFzaCBvciBoYW5nIGFuZCB0aGVyZSBzaG91bGQgYmUgbXVsdGlwbGUgcnVucyBv
ZiB0aGUgc2FtZSBuYW1lZCBwcm9maWxlLgotCi1Qcm9maWxlIHRpdGxlOiBUZXN0Ci1UaHJlYWRf
MSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGNvbXBhcmUtbXVsdGlwbGUtcHJv
ZmlsZXMuaHRtbCAobGluZSAyMjoxOSkKLSAgICAgIHRlc3QgY29tcGFyZS1tdWx0aXBsZS1wcm9m
aWxlcy5odG1sIChsaW5lIDExOjE0KQotICAgICAgICAgdGVzdDIgY29tcGFyZS1tdWx0aXBsZS1w
cm9maWxlcy5odG1sIChsaW5lIDE3OjE1KQotCi1Qcm9maWxlIHRpdGxlOiBUZXN0Ci1UaHJlYWRf
MSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGNvbXBhcmUtbXVsdGlwbGUtcHJv
ZmlsZXMuaHRtbCAobGluZSAyMjoxOSkKLSAgICAgIHRlc3QgY29tcGFyZS1tdWx0aXBsZS1wcm9m
aWxlcy5odG1sIChsaW5lIDExOjE0KQotICAgICAgICAgdGVzdDIgY29tcGFyZS1tdWx0aXBsZS1w
cm9maWxlcy5odG1sIChsaW5lIDE3OjE1KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvY29tcGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGE2MDJiNDQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotCi12YXIgaiA9IDA7Ci1mdW5jdGlvbiB0ZXN0KGxlbikgewotICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpCi0gICAgICAgICsrajsKLSAgICB0ZXN0MigyMDAw
IC0gbGVuKTsKLX0KLQotZnVuY3Rpb24gdGVzdDIobGVuKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBsZW47ICsraSkKLSAgICAgICAgLS1qOwotfQotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQot
ewotICAgIGNvbnNvbGUucHJvZmlsZSgiVGVzdCIpOwotICAgIHRlc3QoMTAwKTsKLSAgICBjb25z
b2xlLnByb2ZpbGVFbmQoIlRlc3QiKTsKLQotICAgIGNvbnNvbGUucHJvZmlsZSgiVGVzdCIpOwot
ICAgIHRlc3QoMTAwMCk7Ci0gICAgY29uc29sZS5wcm9maWxlRW5kKCJUZXN0Iik7Ci0KLSAgICBw
cmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIG11bHRpcGxlIHByb2Zp
bGVzIHdpdGggdGhlIHNhbWUgbmFtZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSXQgc2hvdWxkIG5vdCBjcmFzaCBvciBoYW5nIGFu
ZCB0aGVyZSBzaG91bGQgYmUgbXVsdGlwbGUgcnVucyBvZiB0aGUKLXNhbWUgbmFtZWQgcHJvZmls
ZS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5M2Q4OTYzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTIgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgYSBjYWxsIHRvIG5ldygp
IGluIGl0LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJv
d3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4g
SW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0KCkgYW5k
IEFycmF5KCkgaW4gaXQuCi0KLVByb2ZpbGUgdGl0bGU6IFVzaW5nIGEgY29uc3RydWN0b3IuCi1U
aHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGNvbnN0cnVjdG9yLmh0
bWwgKGxpbmUgMTA6MTkpCi0gICAgICBmYWtlT2JqZWN0IGNvbnN0cnVjdG9yLmh0bWwgKGxpbmUg
MTk6MjEpCi0gICAgICAgICBBcnJheSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVz
dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYmM2MzkwOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2NvbnN0cnVjdG9yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJu
YWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlv
biBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVXNpbmcgYSBjb25zdHJ1Y3Rv
ci4iKTsKLQotICAgIHZhciBteU9iamVjdCA9IG5ldyBmYWtlT2JqZWN0KDEsIDIpOwotCi0gICAg
ZW5kVGVzdCgpOwotfQotCi1mdW5jdGlvbiBmYWtlT2JqZWN0ICh4LCB5KQotewotICAgIHZhciBt
eUFycmF5ID0gbmV3IEFycmF5KCkKLSAgICBteUFycmF5WzBdID0gNTsKLX0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFT
Y3JpcHQgaGFzIGEgY2FsbCB0byBuZXcoKSBpbiBpdC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUg
c2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0KCkgYW5kIEFycmF5KCkKLWluIGl0LgotPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMWRlNjRmNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2RlYWQtdGltZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBA
Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IEhhcyBzb21lIGRlYWQgdGltZSBpbiB0aGUgcHJvZmls
ZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRo
ZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGxhcmdlIGFtb3VudCBvZiB0aGUgJSBzcGVudCBp
biAobm9uLUphdmFTY3JpcHQpLgotCi1Qcm9maWxlIHRpdGxlOiBEZWFkIHRpbWUgaW4gcHJvZmls
ZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBvbmxvYWQgZGVhZC10aW1lLmh0
bWwgKGxpbmUgMjE6NDQpCi0gICAgICBzdGFydFRlc3QgZGVhZC10aW1lLmh0bWwgKGxpbmUgMTI6
MTkpCi0gICAgICAgICBzZXRUaW1lb3V0IChubyBmaWxlKSAobGluZSAwOjApCi0gICAocHJvZ3Jh
bSkgZGVhZC10aW1lLmh0bWwgKGxpbmUgMToxKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2RlYWQtdGltZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjY0Y2UwLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci19Ci1pZiAod2luZG93LmludGVy
bmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJE
ZWFkIHRpbWUgaW4gcHJvZmlsZS4iKTsKLSAgICBzZXRUaW1lb3V0KCJlbmRUZXN0KCkiLCAxMjM0
KTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCki
PgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBIYXMgc29tZSBkZWFkIHRpbWUgaW4gdGhlIHByb2Zp
bGUuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRo
ZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJv
ZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGxhcmdlIGFtb3VudCBvZiB0
aGUgJSBzcGVudCBpbiAKLShub24tSmF2YVNjcmlwdCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2RvY3VtZW50LWRvdC13cml0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDg0OWYxYmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9kb2N1bWVudC1kb3Qtd3JpdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
OCArMCwwIEBACi0KLVByb2ZpbGUgdGl0bGU6IENhbGwgRG9jdW1lbnQud3JpdGUoKQotVGhyZWFk
XzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBkb2N1bWVudC1kb3Qtd3JpdGUu
aHRtbCAobGluZSAxMDoxOSkKLSAgICAgIHdyaXRlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmNTRmNDAuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDI4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1p
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAo
d2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29s
ZS5wcm9maWxlKCJDYWxsIERvY3VtZW50LndyaXRlKCkiKTsKLQotICAgIGRvY3VtZW50LndyaXRl
KCI8ZGl2IGlkPVwib3V0cHV0XCI+PC9kaXY+Iik7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2Ug
Y2FsbHMgZG9jdW1lbnQud3JpdGUoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSWYgdGhlcmUgaXMgYSBwcm9maWxlIGl0IHNob3Vs
ZCBzaG93IHdyaXRlKCkuCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9ldmVudC1oYW5kbGVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMTVjNDhjZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2V2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTgg
KzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhbiBldmVudCBoYW5kbGVyLiAKLQotVG8gcnVuIHRoaXMg
dGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYklu
c3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgaW5zZXJ0bmV3
VGV4dCgpIHNob3VsZCBiZSBhIHNpYmxpbmcgdG8gb25sb2FkKCkuIAotCi1Qcm9maWxlIHRpdGxl
OiBFdmVudCBoYW5kbGVyCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRU
ZXN0IGV2ZW50LWhhbmRsZXIuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGdldEVsZW1lbnRCeUlk
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBhZGRFdmVudExpc3RlbmVyIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICBjbGljayAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgaW5z
ZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAg
ICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
IGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRD
aGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2V2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQt
aGFuZGxlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNmE0NjFkLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsgICAg
Ci0gICAgY29uc29sZS5wcm9maWxlKCJFdmVudCBoYW5kbGVyIik7Ci0KLSAgICB2YXIgbXlCdXR0
b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnV0dG9uV2l0aEFuRXZlbnRMaXN0ZW5lciIp
OwotICAgIG15QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgaW5zZXJ0TmV3VGV4dCwg
ZmFsc2UpOwotICAgIG15QnV0dG9uLmNsaWNrKCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2Ug
aGFzIGFuIGV2ZW50IGhhbmRsZXIuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVh
bGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFu
ZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIGluc2VydG5ld1RleHQoKSBz
aG91bGQgYmUgYSBzaWJsaW5nIHRvIG9ubG9hZCgpLgotPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9
ImJ1dHRvbldpdGhBbkV2ZW50TGlzdGVuZXIiIHZhbHVlPSJCdXR0b24gd2l0aCBhbiBldmVudCBs
aXN0ZW5lciI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9leGVjdXRpb24tY29udGV4dC1hbmQt
ZXZhbC1vbi1zYW1lLWxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9leGVjdXRpb24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTVjMjYxLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1s
aW5lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRoaXMgcGFn
ZSBoYXMgYSBjYWxsIHRvIGV2YWwgYW5kIGEgc2NyaXB0IHRhZyBvbiB0aGUgc2FtZSBsaW5lLiAK
LQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHBy
b2ZpbGUgdGhlcmUgc2hvdWxkIGJlIG11bHRpcGxlIChwcm9ncmFtKSBlbGVtZW50cyBhbmQgb25l
IHRoYXQgcmVwcmVzZW50cyB0aGUgZXZhbCgpLgotCi1Qcm9maWxlIHRpdGxlOiBUd28gRXhlY3V0
aW9uIENvbnRleHRzIG9uIHRoZSBzYW1lIGxpbmUKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAw
OjApCi0gICBzdGFydFRlc3QgZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5l
Lmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBldmFsRnVuY3Rpb24gKG5vIGZpbGUpIChsaW5lIDE6
MjIpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
IChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBn
ZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1s
aW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFu
ZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
NzViMjlhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9u
LWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwz
MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgi
VHdvIEV4ZWN1dGlvbiBDb250ZXh0cyBvbiB0aGUgc2FtZSBsaW5lIik7Ci0KLSAgICBldmFsRnVu
Y3Rpb24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLWV2YWwo
ImZ1bmN0aW9uIGV2YWxGdW5jdGlvbigpIHsgaW5zZXJ0TmV3VGV4dCgpOyB9Iik7Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFz
IGEgY2FsbCB0byBldmFsIGFuZCBhIHNjcmlwdCB0YWcgb24gdGhlIHNhbWUgbGluZS4KLTxicj4K
LTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4g
dGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIG11bHRpcGxlIChwcm9ncmFtKSBlbGVtZW50cyBh
bmQKLW9uZSB0aGF0IHJlcHJlc2VudHMgdGhlIGV2YWwoKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9k
aXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2lubGluZS1ldmVudC1oYW5kbGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhMDIzZTVmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMjAgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhbiBpbmxpbmUgZXZlbnQgaGFuZGxlci4g
Ci0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBw
cm9maWxlIG9uY2xpY2soKSBzaG91bGQgYmUgYSBzaWJsaW5nIHRvIG9ubG9hZCgpIGFuZCBvbmNs
aWNrKCkgc2hvdWxkIGhhdmUgZXZlbnRMaXN0ZW5lcigpIGFzIGEgY2hpbGQuIAotCi1Qcm9maWxl
IHRpdGxlOiBJbmxpbmUgZXZlbnQgaGFuZGxlcgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgIHN0YXJ0VGVzdCBpbmxpbmUtZXZlbnQtaGFuZGxlci5odG1sIChsaW5lIDEwOjE5KQot
ICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGNsaWNrIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBvbmNsaWNrIGlubGluZS1ldmVudC1oYW5kbGVy
Lmh0bWwgKGxpbmUgMzE6MTI3KQotICAgICAgICAgICAgZXZlbnRMaXN0ZW5lciBpbmxpbmUtZXZl
bnQtaGFuZGxlci5odG1sIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgICAgYW5vbnltb3VzRnVu
Y3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAg
ICAgICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChs
aW5lIDE3OjIzKQotICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTAwMTQ2My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2lubGlu
ZS1ldmVudC1oYW5kbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50
ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5j
dGlvbiBzdGFydFRlc3QoKQoteyAgICAKLSAgICBjb25zb2xlLnByb2ZpbGUoIklubGluZSBldmVu
dCBoYW5kbGVyIik7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXZlbnRMaXN0ZW5l
clNldElubGluZSIpLmNsaWNrKCk7Ci19Ci0KLWZ1bmN0aW9uIGV2ZW50TGlzdGVuZXIoKSB7ICAg
IAotICAgIGFub255bW91c0Z1bmN0aW9uKCk7Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIGhhcyBh
biBpbmxpbmUgZXZlbnQgaGFuZGxlci4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgb25jbGljaygpIHNob3Vs
ZCBiZSBhIHNpYmxpbmcgdG8gb25sb2FkKCkgYW5kIG9uY2xpY2soKQotc2hvdWxkIGhhdmUgZXZl
bnRMaXN0ZW5lcigpIGFzIGEgY2hpbGQuCi08aW5wdXQgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJl
dmVudExpc3RlbmVyKCkiIGlkPSJldmVudExpc3RlbmVyU2V0SW5saW5lIiB2YWx1ZT0iRXZlbnQg
TGlzdGVuZXIgU2V0IElubGluZSI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNhbGxz
LWluLXRoZS1zYW1lLXNjb3BlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDBjZDQ1ZDEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9tYW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgaGFzIG1h
bnkgZnVuY3Rpb24gY2FsbHMgaW4gdGhlIHNhbWUgc2NvcGUuIAotCi1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSBtYW55IGZ1bmN0aW9u
cyBzaG91bGQgYmUgdGhlIGNoaWxkcmVuIG9mIHN0YXJ0VGVzdC4gVXNlIHRoZSBzb3J0aW5nIGNh
cGFiaWxpdGVzIHRvIG1ha2Ugc3VyZSB0aGUgc2ltaWxhcmx5IG5hbWVkIGZ1bmN0aW9ucyBhcmUg
c29ydGVkIGNvcnJlY3RseS4KLQotUHJvZmlsZSB0aXRsZTogTWFueSBDYWxscyBJbiBUaGUgU2Ft
ZSBTY29wZQotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBtYW55
LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBpbnNlcnRO
ZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAg
ICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgY3JlYXRlVGV4
dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgaW5zZXJ0R2l2ZW5UZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChs
aW5lIDk6MjUpCi0gICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgYXBw
ZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGdldEVsZW1lbnRCeUlkIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICBhcnJheU9wZXJhdG9yRnVuY3Rpb24gcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjU6MzEpCi0gICAgICBpbnRlcm1lZGlhcnlGdW5j
dGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAzMjozMCkKLSAgICAgICAg
IGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5
OjM0KQotICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
IGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5
OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
Z2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZCBtYW55LWNhbGxz
LWluLXRoZS1zYW1lLXNjb3BlLmh0bWwgKGxpbmUgMjY6MTMpCi0gICAgICBlbmRUIG1hbnktY2Fs
bHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbCAobGluZSAzMToxNCkKLSAgICAgIGVuZFRlc3QgcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29w
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzE5YmNlLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29w
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdh
Y3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0
KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIk1hbnkgQ2FsbHMgSW4gVGhlIFNhbWUgU2NvcGUi
KTsKLQotICAgIGluc2VydE5ld1RleHQoKTsKLSAgICBpbnNlcnRHaXZlblRleHQoIlRoaXMgd2Fz
IGEgdHJpdW1waC4iKTsKLSAgICBhcnJheU9wZXJhdG9yRnVuY3Rpb24oNyk7Ci0gICAgaW50ZXJt
ZWRpYXJ5RnVuY3Rpb24oKTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGVuZCgpCi0g
ICAgZW5kVCgpOwotICAgIGVuZFQoKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24g
ZW5kKCkKLXsKLSAgICB2YXIgeCA9IDA7Ci19Ci0KLWZ1bmN0aW9uIGVuZFQoKQotewotICAgIHZh
ciB5ID0gMTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRU
ZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgbWFueSBmdW5jdGlvbiBjYWxscyBp
biB0aGUgc2FtZSBzY29wZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgbWFueSBmdW5jdGlvbnMgc2hvdWxk
IGJlIHRoZSBjaGlsZHJlbiBvZiBzdGFydFRlc3QuCi1Vc2UgdGhlIHNvcnRpbmcgY2FwYWJpbGl0
ZXMgdG8gbWFrZSBzdXJlIHRoZSBzaW1pbGFybHkgbmFtZWQgZnVuY3Rpb25zIGFyZSBzb3J0ZWQK
LWNvcnJlY3RseS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJl
bnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91
cy1mdW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDA1MWVjODEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0
aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNj
cmlwdCBjYWxscyB0aGUgc2FtZSBhbm9ueW1vdXMgZnVuY3Rpb24gZnJvbSBtdWx0aXBsZSBhbmQg
ZGlmZmVyZW50bHkgc2NvcGVkIGxvY2F0aW9ucy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNh
bGwgdG8gZmFrZU9iamVjdCB3aXRoIGZha2VJbnRlcmlvckZ1bmN0aW9uIGFzIGl0cyBjaGlsZCwg
YnV0IGNhbGwoKSBzaG91bGQgbm90IGJlIHNob3duLgotCi1Qcm9maWxlIHRpdGxlOiBNdWx0aXBs
ZSBhbmQgZGlmZmVyZW50IHNjb3BlZCBjYWxscyB0byB0aGUgc2FtZSBhbm9ueW1vdXMgZnVuY3Rp
b24KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbXVsdGlwbGUt
YW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLmh0bWwgKGxpbmUg
MTA6MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBp
bnRlcm1lZGlhcnlGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAz
MjozMCkKLSAgICAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgIGNyZWF0ZUVs
ZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2Rl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRp
cGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1h
bm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzJkMDA1YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRp
cGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAg
ICBjb25zb2xlLnByb2ZpbGUoIk11bHRpcGxlIGFuZCBkaWZmZXJlbnQgc2NvcGVkIGNhbGxzIHRv
IHRoZSBzYW1lIGFub255bW91cyBmdW5jdGlvbiIpOwotCi0gICAgYW5vbnltb3VzRnVuY3Rpb24o
KTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotCi0gICAgaW50ZXJtZWRpYXJ5RnVuY3Rpb24o
KTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgdGhlIHNhbWUg
YW5vbnltb3VzIGZ1bmN0aW9uIGZyb20gbXVsdGlwbGUgYW5kIGRpZmZlcmVudGx5IHNjb3BlZCBs
b2NhdGlvbnMuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0
IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10
aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZmFr
ZU9iamVjdCB3aXRoCi1mYWtlSW50ZXJpb3JGdW5jdGlvbiBhcyBpdHMgY2hpbGQsIGJ1dCBjYWxs
KCkgc2hvdWxkIG5vdCBiZSBzaG93bi4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxl
LWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rp
b24tY2FsbHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOWZk
Y2VkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5k
LWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyB0aGUgc2Ft
ZSBmdW5jdGlvbiBmcm9tIG11bHRpcGxlIGFuZCBkaWZmZXJlbnRseSBzY29wZWQgbG9jYXRpb25z
LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0
aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhl
IHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIHR3byBjYWxscyB0byBpbnNlcnROZXdUZXh0IHVuZGVy
IHN0YXJ0VGVzdCgpIGFuZCBvbmUgdW5kZXIgYW4gKGFub255bW91cyBmdW5jdGlvbikgdW5kZXIg
aW50ZXJtZWRpYXJ5RnVuY3Rpb24oKS4KLQotUHJvZmlsZSB0aXRsZTogTXVsdGlwbGUgYW5kIGRp
ZmZlcmVudCBzY29wZWQgY2FsbHMgdG8gdGhlIHNhbWUgZnVuY3Rpb24KLVRocmVhZF8xIChubyBm
aWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29w
ZWQtZnVuY3Rpb24tY2FsbHMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGluc2VydE5ld1RleHQg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICBjcmVh
dGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBjcmVhdGVUZXh0Tm9kZSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICBpbnRlcm1lZGlhcnlGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSAzMjozMCkKLSAgICAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgIGNyZWF0
ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHRO
b2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211
bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9u
LWNhbGxzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjMmUyMjEuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50
LXNjb3BlZC1mdW5jdGlvbi1jYWxscy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
LQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIk11bHRpcGxl
IGFuZCBkaWZmZXJlbnQgc2NvcGVkIGNhbGxzIHRvIHRoZSBzYW1lIGZ1bmN0aW9uIik7Ci0KLSAg
ICBpbnNlcnROZXdUZXh0KCk7Ci0gICAgaW5zZXJ0TmV3VGV4dCgpOwotCi0gICAgaW50ZXJtZWRp
YXJ5RnVuY3Rpb24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2Fs
bHMgdGhlIHNhbWUgZnVuY3Rpb24gZnJvbSBtdWx0aXBsZSBhbmQgZGlmZmVyZW50bHkgc2NvcGVk
IGxvY2F0aW9ucy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQg
aXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQK
LXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIHR3byBjYWxscyB0
byBpbnNlcnROZXdUZXh0IHVuZGVyCi1zdGFydFRlc3QoKSBhbmQgb25lIHVuZGVyIGFuIChhbm9u
eW1vdXMgZnVuY3Rpb24pIHVuZGVyIGludGVybWVkaWFyeUZ1bmN0aW9uKCkuCi08ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRo
ZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlv
bi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0MDE0MDQuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMt
ZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMg
dGhlIGRpZmZlcmVudCBhbm9ueW1vdXMgZnVuY3Rpb25zIHRoZSBzYW1lIHNjb3BlLiAKLQotVG8g
cnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQg
dGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUg
dGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0d28gZW50cmllcyBuYW1lZCB0byAoYW5vbnltb3VzIGZ1
bmN0aW9uKSwgYXMgb3Bwb3NlZCB0byBvbmUgZW50cnkgY2FsbGVkIHR3aWNlLgotCi1Qcm9maWxl
IHRpdGxlOiBNdWx0aXBsZSBjYWxscyB0byBkaWZmZXJlbnQgYW5vbnltb3VzIGZ1bmN0aW9ucwot
VGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBtdWx0aXBsZS1hbm9u
eW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwgKGxpbmUg
MTA6MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBh
bm90aGVyQW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMzA6NDEpCi0gICAgICAgICBpbnNlcnRHaXZlblRleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMgKGxpbmUgOToyNSkKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3Qg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMt
Y2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1m
dW5jdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjFjZjJkLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1
bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5k
b3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnBy
b2ZpbGUoIk11bHRpcGxlIGNhbGxzIHRvIGRpZmZlcmVudCBhbm9ueW1vdXMgZnVuY3Rpb25zIik7
Ci0KLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGFub3RoZXJBbm9ueW1vdXNGdW5jdGlv
bigpOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyB0aGUgZGlm
ZmVyZW50IGFub255bW91cyBmdW5jdGlvbnMgdGhlIHNhbWUgc2NvcGUuCi08YnI+Ci08YnI+Ci1U
byBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9h
ZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9m
aWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdHdvIGVudHJpZXMgbmFtZWQgdG8gKGFub255bW91
cyBmdW5jdGlvbiksCi1hcyBvcHBvc2VkIHRvIG9uZSBlbnRyeSBjYWxsZWQgdHdpY2UuCi08ZGl2
IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTIzZjRjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDE4ICswLDAgQEAKLVRoaXMgdGVzdCBoYXMgSlMgZXhlY3V0aW5nIGluIGFub3RoZXIg
d2luZG93LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJv
d3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4g
SW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmdW5jdGlvbkluT3RoZXJG
cmFtZSgpLgotCi1Qcm9maWxlIHRpdGxlOiBPdGhlciB3aW5kb3cgZXhlY3V0aW5nIEphdmFTY3Jp
cHQKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbXVsdGlwbGUt
ZnJhbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgZnVuY3Rpb25Jbk90aGVyRnJhbWUgb3RoZXItZnJhbWUuaHRtbCAo
bGluZSA0OjMwKQotICAgICAgICAgZnVuY3Rpb25JblBhcmVudEZyYW1lIG11bHRpcGxlLWZyYW1l
cy5odG1sIChsaW5lIDIxOjMxKQotICAgICAgaW5zZXJ0R2l2ZW5UZXh0IHByb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIChsaW5lIDk6MjUpCi0gICAgICAgICBjcmVhdGVFbGVtZW50IChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
IGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtZnJhbWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGQxYjRmZjYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9tdWx0aXBsZS1mcmFtZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBp
bnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1
bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJPdGhlciB3aW5kb3cg
ZXhlY3V0aW5nIEphdmFTY3JpcHQiKTsKLQotICAgIHZhciBteUZyYW1lID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm15U3ViRnJhbWUiKTsKLSAgICB2YXIgc2VjcmV0ID0gbXlGcmFtZS5jb250
ZW50V2luZG93LmZ1bmN0aW9uSW5PdGhlckZyYW1lKCk7Ci0gICAgaW5zZXJ0R2l2ZW5UZXh0KHNl
Y3JldCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGZ1bmN0aW9uSW5QYXJlbnRG
cmFtZSgpIHsKLSAgICByZXR1cm4gIlBpIjsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgdGVzdCBoYXMgSlMgZXhlY3V0aW5nIGluIGFu
b3RoZXIgd2luZG93LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9h
ZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBh
dAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRv
IGZ1bmN0aW9uSW5PdGhlckZyYW1lKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPGlmcmFt
ZSBzcmM9InJlc291cmNlcy9vdGhlci1mcmFtZS5odG1sIiBpZD0ibXlTdWJGcmFtZSI+PC9pZnJh
bWU+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTkwYTY0Yy4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRo
LWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBA
QAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBuYW1lZCBmdW5jdGlvbnMgYW5kIGNoYW5n
ZXMgdGhlaXIgZGlzcGxheSBuYW1lcy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxv
YWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sg
YXQgdGhlIHByb2ZpbGUuIFlvdSBzaG91bGQgc2VlIGZ1bmN0aW9ucyBuYW1lZCAiW3hdIGl0ZXJh
dGlvbltzXSBmdW5jdGlvbiIsIGFuZCBub3QgImZ1bmN0aW9uW3hdIgotCi1Qcm9maWxlIHRpdGxl
OiBOYW1lZCBmdW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzCi1UaHJlYWRfMSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFt
ZXMuaHRtbCAobGluZSA1MzoxOSkKLSAgICAgIDAgaXRlcmF0aW9ucyBmdW5jdGlvbiBuYW1lZC1m
dW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICAxIGl0
ZXJhdGlvbiBmdW5jdGlvbiBuYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwg
KGxpbmUgMTc6MTkpCi0gICAgICAyIGl0ZXJhdGlvbnMgZnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25z
LXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDI0OjE5KQotICAgICAgMjAgaXRlcmF0aW9u
cyBmdW5jdGlvbiBuYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUg
MzE6MjApCi0gICAgICAxMDAwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25zLXdp
dGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDM4OjIyKQotICAgICAgYm9ndXNEaXNwbGF5TmFt
ZUZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSA0
NjozNCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
MToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1
bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3YWYyZWMwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNzcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlm
ICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gZnVuY3Rpb24wKCkKLXsKLSAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDA7ICsraSkgOwotfQotCi1mdW5jdGlvbjAuZGlzcGxheU5hbWUgPSAi
MCBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKLQotZnVuY3Rpb24gZnVuY3Rpb24xKCkKLXsKLSAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDE7ICsraSkgOwotfQotCi1mdW5jdGlvbjEuZGlzcGxheU5hbWUg
PSAiMSBpdGVyYXRpb24gZnVuY3Rpb24iOwotCi1mdW5jdGlvbiBmdW5jdGlvbjIoKQotewotICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMjsgKytpKSA7Ci19Ci0KLWZ1bmN0aW9uMi5kaXNwbGF5TmFt
ZSA9ICIyIGl0ZXJhdGlvbnMgZnVuY3Rpb24iOwotCi1mdW5jdGlvbiBmdW5jdGlvbjIwKCkKLXsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwOyArK2kpIDsKLX0KLQotZnVuY3Rpb24yMC5kaXNw
bGF5TmFtZSA9ICIyMCBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKLQotZnVuY3Rpb24gZnVuY3Rpb24x
MDAwKCkKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgOwotfQotCi1mdW5j
dGlvbjEwMDAuZGlzcGxheU5hbWUgPSAiMTAwMCBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKLQotCi1m
dW5jdGlvbiBib2d1c0Rpc3BsYXlOYW1lRnVuY3Rpb24oKQotewotICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMDsgKytpKSA7Ci19Ci0KLWJvZ3VzRGlzcGxheU5hbWVGdW5jdGlvbi5kaXNwbGF5TmFt
ZSA9IGJvZ3VzRGlzcGxheU5hbWVGdW5jdGlvbjsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsK
LSAgICBjb25zb2xlLnByb2ZpbGUoIk5hbWVkIGZ1bmN0aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMi
KTsKLQotICAgIGZ1bmN0aW9uMCgpOwotICAgIGZ1bmN0aW9uMSgpOwotICAgIGZ1bmN0aW9uMigp
OwotICAgIGZ1bmN0aW9uMjAoKTsKLSAgICBmdW5jdGlvbjEwMDAoKTsKLSAgICBib2d1c0Rpc3Bs
YXlOYW1lRnVuY3Rpb24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQg
Y2FsbHMgbmFtZWQgZnVuY3Rpb25zIGFuZCBjaGFuZ2VzIHRoZWlyIGRpc3BsYXkgbmFtZXMuCi08
YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93
c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4g
IFlvdSBzaG91bGQgc2VlIGZ1bmN0aW9ucyBuYW1lZCAiW3hdIGl0ZXJhdGlvbltzXSBmdW5jdGlv
biIsIGFuZCBub3QgImZ1bmN0aW9uW3hdIgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVk
LWFub255bW91cy1mdW5jdG9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDIyOWE0Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxNyArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGFuIGFub255
bW91cyB3aGljaCBjYWxscyBhIG5lc3RlZCBhbm9ueW1vdXMgZnVuY3Rpb24uIAotCi1UbyBydW4g
dGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUg
V2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVy
ZSBzaG91bGQgYmUgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2l0aCBhIGNoaWxkIChhbm9ueW1v
dXMgZnVuY3Rpb24pLgotCi1Qcm9maWxlIHRpdGxlOiBOZXN0ZWQgYW5vbnltb3VzIGZ1bmN0aW9u
cyBjYWxsZWQKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVz
dGVkLWFub255bW91cy1mdW5jdG9uLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBBbm9ueW1vdXNG
dW5jdGlvbldpY2hDYWxsc0FuQW5vbnltb3VzRnVuY3Rpb24gbmVzdGVkLWFub255bW91cy1mdW5j
dG9uLmh0bWwgKGxpbmUgMTQ6NjUpCi0gICAgICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgICAgIGluc2VydE5l
d1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAg
ICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgYXBw
ZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGdldEVsZW1lbnRC
eUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGY2YjkyNWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDM0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93Lmlu
dGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxl
KCJOZXN0ZWQgYW5vbnltb3VzIGZ1bmN0aW9ucyBjYWxsZWQiKTsKLQotICAgIHZhciBBbm9ueW1v
dXNGdW5jdGlvbldpY2hDYWxsc0FuQW5vbnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbigpIHsKLSAg
ICAgICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICB9Ci0KLSAgICBBbm9ueW1vdXNGdW5jdGlv
bldpY2hDYWxsc0FuQW5vbnltb3VzRnVuY3Rpb24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFn
ZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIHdoaWNoIGNhbGxzIGEgbmVzdGVkIGFu
b255bW91cyBmdW5jdGlvbi4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGFuIChh
bm9ueW1vdXMgZnVuY3Rpb24pIHdpdGggYSBjaGlsZAotKGFub255bW91cyBmdW5jdGlvbikuCi08
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0
b3AtcHJvZmlsZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
NWEzMDlkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0
YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE4
NiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGNvbnNvbGUucHJvZmlsZSgp
IHRocmVlIHRpbWVzIHRoZW4gY29uc29sZS5wcm9maWxlRW5kKCkgdGhyZWUgdGltZXMuIAotCi1U
byBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9h
ZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmls
ZXIgdGhlcmUgc2hvdWxkIGJlIHRocmVlIHByb2ZpbGVzLgotCi1Qcm9maWxlIHRpdGxlOiBTdGFy
dCB0aGUgcHJvZmlsZXIgdGhlIHRoaXJkIHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgc3RhcnRUZXN0IG5lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci5odG1sIChs
aW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAo
bGluZSAxOjE3KQotCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgdGhp
cmQgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVz
dGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRU
ZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLVByb2ZpbGUg
dGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25kIHRpbWUuCi1UaHJlYWRfMSAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG5lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9m
aWxlci5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSAxOjE3KQotICAgICAgICAgcHJvZmlsZUVuZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA2MjozOCkKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1l
bnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHByb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAgcmVwbGFjZSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgaGFzT2JzZXJ2YWJsZVNpZGVF
ZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgICAgIGFub255bW91cyAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGFw
cGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjaGlsZHJlbiAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhv
dXRUaW1lIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAg
ICAgICAgICAgICAgcmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFub255bW91cyAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAgICAgICAg
cmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgaGFz
T2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGFub255bW91cyAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgIG5vdGlmeURvbmUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLQotCi1Qcm9maWxlIHRp
dGxlOiBTdGFydCB0aGUgcHJvZmlsZXIgdGhlIHRoaXJkIHRpbWUuCi1UaHJlYWRfMSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG5lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxl
ci5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxOjE3KQotCi1Qcm9maWxlIHRpdGxlOiBTdGFydCB0aGUgcHJvZmlsZXIg
dGhlIHNlY29uZCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0
VGVzdCBuZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbCAobGluZSAxMDoxOSkKLSAg
ICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLSAg
ICAgICAgIHByb2ZpbGVFbmQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIHByaW50UHJv
ZmlsZXNEYXRhV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
NjI6MzgpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIHByaW50UHJv
ZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3
NzozNykKLSAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rp
b24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZm
ZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIHByaW50
UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0
cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVs
ZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBub3RpZnlEb25lIChubyBm
aWxlKSAobGluZSAwOjApCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUg
Zmlyc3QgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qg
bmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBl
bmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0gICAgICAg
ICBwcm9maWxlRW5kIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBwcmludFByb2ZpbGVz
RGF0YVdpdGhvdXRUaW1lIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDYyOjM4
KQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFw
cGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBwcmludFByb2ZpbGVO
b2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6Mzcp
Ci0gICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNG
b3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNo
aWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBwcmludFByb2Zp
bGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6
MzcpCi0gICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdS
ZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAo
YW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBw
cmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVm
ZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRp
bWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBs
YWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRp
bWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJp
bmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxk
cmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
YXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1
bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludFByb2Zp
bGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6
MzcpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNP
YnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1
bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxk
cmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludFByb2ZpbGVO
b2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6Mzcp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVU
ZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgbm90aWZ5RG9uZSAobm8gZmlsZSkgKGxpbmUgMDowKQotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1zdGFydC1hbmQtc3RvcC1w
cm9maWxlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTc4NzIzLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9w
LXByb2ZpbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxz
LnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQgdGhlIHByb2ZpbGVyIHRo
ZSBmaXJzdCB0aW1lLiIpOwotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQgdGhlIHByb2ZpbGVy
IHRoZSBzZWNvbmQgdGltZS4iKTsKLSAgICBjb25zb2xlLnByb2ZpbGUoIlN0YXJ0IHRoZSBwcm9m
aWxlciB0aGUgdGhpcmQgdGltZS4iKTsKLSAgICBlbmRUZXN0KCk7Ci0gICAgZW5kVGVzdCgpOwot
ICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0
YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxl
KCkgdGhyZWUgdGltZXMgdGhlbiBjb25zb2xlLnByb2ZpbGVFbmQoKQotdGhyZWUgdGltZXMuCi08
YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93
c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4g
IEluIHRoZSBwcm9maWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJvZmlsZXMuCi08ZGl2IGlk
PSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzU1ZGNjYi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhIG5vIHByb2ZpbGlu
ZyBpbmZvcm1hdGlvbi4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4g
dGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHBy
b2ZpbGUuIFlvdSBzaG91bGQgbm90IHNlZSBhbnkgcHJvZmlsZSBkYXRlIGluIHRoZSBXZWJJbnNw
ZWN0b3IuCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uby1leGVj
dXRpb24tY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uby1leGVjdXRp
b24tY29udGV4dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWM4NTM5Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNvbnRl
eHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVn
YWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCkiPgotVGhpcyBw
YWdlIGhhcyBhIG5vIHByb2ZpbGluZyBpbmZvcm1hdGlvbi4KLTxicj4KLTxicj4KLVRvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBX
ZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgWW91IHNob3VsZCBub3Qgc2Vl
IGFueSBwcm9maWxlIGRhdGUgaW4gdGhlIFdlYkluc3BlY3Rvci4KLTxkaXYgaWQ9Im91dHB1dCI+
PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4ZGQ2NzAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhIHNpbmdsZSBzY3JpcHQgdGFn
IHdpdGggc29tZSBzaW1wbGUgSmF2YVNjcmlwdC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQgdGhlIHByb2ZpbGUuCi0KLVByb2ZpbGUgdGl0bGU6IE9uZSBFeGVjdXRpb24gQ29u
dGV4dAotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBvbmUtZXhl
Y3V0aW9uLWNvbnRleHQuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDU1Zjg3My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MjcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUo
Ik9uZSBFeGVjdXRpb24gQ29udGV4dCIpOwotICAgIGVuZFRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIGhhcyBh
IHNpbmdsZSBzY3JpcHQgdGFnIHdpdGggc29tZSBzaW1wbGUgSmF2YVNjcmlwdC4KLTxicj4KLTxi
cj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLgotPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRl
ZC1maWxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQyZDE3
MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtY2FsbHMt
aW4taW5jbHVkZWQtZmlsZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCww
IEBACi1UaGlzIHBhZ2UgY2FsbHMgdGhlIHByb2ZpbGVyIGZyb20gdGhlIGluY2x1ZGVkIGZpbGUu
IAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRo
ZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJZiB0aGVy
ZSBpcyBhIHByb2ZpbGUgdGhhdCBpcyBzdWZmaWNpZW50IGZvciB0aGlzIHRlc3QuCi0KLVByb2Zp
bGUgdGl0bGU6IFByb2ZpbGUgY2FsbCBpbiBpbmNsdWRlZCBmaWxlCi1UaHJlYWRfMSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgc3RhcnRQcm9maWxlIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIChsaW5lIDQyOjIyKQotICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
cHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4taW5jbHVkZWQtZmlsZS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZjBmOGYyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwyOCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIHN0YXJ0UHJv
ZmlsZSgiUHJvZmlsZSBjYWxsIGluIGluY2x1ZGVkIGZpbGUiKTsKLSAgICBlbmRUZXN0KCk7Ci19
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlz
IHBhZ2UgY2FsbHMgdGhlIHByb2ZpbGVyIGZyb20gdGhlIGluY2x1ZGVkIGZpbGUuCi08YnI+Ci08
YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRo
ZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIElmIHRo
ZXJlIGlzIGEgcHJvZmlsZSB0aGF0IGlzIHN1ZmZpY2llbnQgZm9yIHRoaXMgdGVzdC4KLTxkaXYg
aWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10
aXRsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0
aC1uby10aXRsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4
ZGFjZGIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdp
dGgtbm8tdGl0bGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAot
VGhpcyBwYWdlIGNyZWF0ZXMgYSBwcm9maWxlIHdpdGhvdXQgYSB0aXRsZS4gCi0KLVRvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBX
ZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIElmIHRoZXJlIGlzIGEgcHJvZmls
ZSB0aGF0IGlzIHN1ZmZpY2llbnQgZm9yIHRoaXMgdGVzdC4KLQotUHJvZmlsZSB0aXRsZTogCi1U
aHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHByb2ZpbGUtd2l0aC1u
by10aXRsZS5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlYTUyNWJjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgpOwotICAg
IGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0
VGVzdCgpIj4KLVRoaXMgcGFnZSBjcmVhdGVzIGEgcHJvZmlsZSB3aXRob3V0IGEgdGl0bGUuCi08
YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93
c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4g
IElmIHRoZXJlIGlzIGEgcHJvZmlsZSB0aGF0IGlzIHN1ZmZpY2llbnQgZm9yIHRoaXMgdGVzdC4K
LTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1m
cm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0
aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZy
b20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3Rp
bmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTZhMmIzLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1u
ZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmctZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2
YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVzdGVkIGxvY2F0aW9uIGJ1
dCBzdG9wcyB0aGUgcHJvZmlsZXIgZnJvbSBhIGRpZmZlcmVudCBsZXZlbCBvZiBuZXN0aW5nLiAK
LQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHBy
b2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9w
c1RoZVByb2ZpbGVyKCkuCi0KLVByb2ZpbGUgdGl0bGU6IFByb2ZpbGluZyBGcm9tIEEgTmVzdGVk
IExvY2F0aW9uIEJ1dCBTdG9wIFByb2ZpbGluZyBPdXRzaWRlIFRoZSBOZXN0aW5nCi1UaHJlYWRf
MSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgZnVuY3Rpb25XaWNoU3RhcnRzVGhlUHJvZmlsZXIg
cHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNp
ZGUtdGhlLW5lc3RpbmcuaHRtbCAobGluZSAxNjozOSkKLSAgIGVuZFRlc3QgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9w
LXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXByb2ZpbGlu
Zy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQ4YjVmNzcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxp
bmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUt
bmVzdGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5z
ZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3Rh
cnRUZXN0KCkKLXsKLSAgICBmdW5jdGlvbldpY2hTdGFydHNUaGVQcm9maWxlcigpOwotICAgIGVu
ZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gZnVuY3Rpb25XaWNoU3RhcnRzVGhlUHJvZmlsZXIoKQot
ewotICAgIGNvbnNvbGUucHJvZmlsZSgiUHJvZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24g
QnV0IFN0b3AgUHJvZmlsaW5nIE91dHNpZGUgVGhlIE5lc3RpbmciKTsKLQotICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwMDA7IGkrKykKLSAgICAgICAgdmFyIGIgPSBpICsgMjsKLX0KLQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBw
YWdlJ3MgSmF2YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVzdGVkIGxv
Y2F0aW9uIGJ1dCBzdG9wcyB0aGUgcHJvZmlsZXIKLWZyb20gYSBkaWZmZXJlbnQgbGV2ZWwgb2Yg
bmVzdGluZy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQg
aW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRo
ZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmdW5j
dGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwv
ZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDg0MjgzYi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVk
LWxvY2F0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRo
aXMgcGFnZSdzIEphdmFTY3JpcHQgc3RhcnRzIHByb2ZpbGluZyBmcm9tIHdpdGhpbiBhIG5lc3Rl
ZCBsb2NhdGlvbi4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhl
IGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2Zp
bGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25XaWNo
U3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpLgotCi1Qcm9maWxlIHRpdGxlOiBQcm9maWxpbmcg
RnJvbSBBIE5lc3RlZCBMb2NhdGlvbgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
IGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIgcHJvZmlsaW5nLWZyb20tYS1u
ZXN0ZWQtbG9jYXRpb24uaHRtbCAobGluZSAxNTo0NykKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0
aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4MWZkMDMuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1s
b2NhdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5z
ZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3Rh
cnRUZXN0KCkKLXsKLSAgICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCk7
Ci19Ci0KLWZ1bmN0aW9uIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKQot
ewotICAgIGNvbnNvbGUucHJvZmlsZSgiUHJvZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24i
KTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDA7IGkrKykKLSAgICAgICAgdmFy
IGIgPSBpICsgMjsKLQotICAgIGVuZFRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0K
LTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBzdGFy
dHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVzdGVkIGxvY2F0aW9uLgotPGJyPgotPGJyPgot
VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxv
YWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJv
ZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3Bz
VGhlUHJvZmlsZXIoKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci1m
cmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9yZXNvdXJjZXMvb3RoZXItZnJh
bWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTgzNmZiZi4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci1mcmFtZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+
Ci1mdW5jdGlvbiBmdW5jdGlvbkluT3RoZXJGcmFtZSgpIHsKLSAgICAgICAgcmV0dXJuIHBhcmVu
dC5mdW5jdGlvbkluUGFyZW50RnJhbWUoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eT4KLVRoaXMgZmlsZSBjb250YWlucyBzb21lIEphdmFTY3JpcHQuCi08L2JvZHk+Ci08L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9yZXNvdXJjZXMvb3RoZXItd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci13aW5kb3cuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzQ4NDFhOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3Jlc291cmNlcy9vdGhlci13aW5kb3cuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIyICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBpbnRlcmVzdGluZ0tub3dsZWRnZTsK
LWZ1bmN0aW9uIG90aGVyVGVzdFN0YXJ0KCkKLXsKLSAgICBpbnRlcmVzdGluZ0tub3dsZWRnZSA9
IGlzRXF1YWxUb0ZpdmUoMyk7Ci0gICAgb3BlbmVyLndpbmRvd0ZpbmlzaGVkTG9hZGluZygpOwot
fQotCi1mdW5jdGlvbiBmdW5jdGlvbkluT3RoZXJXaW5kb3coKSB7Ci0gICAgICAgIHJldHVybiBp
bnRlcmVzdGluZ0tub3dsZWRnZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9Im90aGVyVGVzdFN0YXJ0KCkiPgotVGhpcyBmaWxlIGV4ZWN1dGVzIHNvbWUgSmF2YVNjcmlw
dC4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9yZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYzNTQyZi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcworKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAKLWZ1bmN0aW9uIGVuZFRlc3QoKSB7
Ci0gICAgY29uc29sZS5wcm9maWxlRW5kKCk7Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0
VGltZSgpOwotCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKLX0KLQotZnVuY3Rpb24gaW5zZXJ0R2l2ZW5UZXh0KHRleHQpIHsKLSAg
ICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwotICAgIHBhcmFn
cmFwaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7Ci0gICAgcGFy
YWdyYXBoLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7IC8vIEhpZGRlbiBzaW5jZSB0aGlzIGlzbid0
IGltcG9ydGFudCBpbiB0aGUgdGVzdCByZXN1bHRzLgotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm91dHB1dCIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7Ci19Ci0KLWZ1bmN0aW9uIGlu
c2VydE5ld1RleHQoKSB7Ci0gICAgdmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInAiKTsKLSAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIlRoaXMgaXMgaW5zZXJ0ZWQgVGV4dCIpKTsKLSAgICBwYXJhZ3JhcGguc3R5bGUuZGlzcGxh
eSA9ICJub25lIjsgLy8gSGlkZGVuIHNpbmNlIHRoaXMgaXNuJ3QgaW1wb3J0YW50IGluIHRoZSB0
ZXN0IHJlc3VsdHMuCi0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBw
ZW5kQ2hpbGQocGFyYWdyYXBoKTsKLX0KLQotZnVuY3Rpb24gYXJyYXlPcGVyYXRvckZ1bmN0aW9u
KGFycmF5RWxlbWVudCkgewotICAgIHJldHVybiBhcnJheUVsZW1lbnQgKyA1OwotfQotCi12YXIg
YW5vbnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbiAoKSB7IGluc2VydE5ld1RleHQoKTsgfTsKLXZh
ciBhbm90aGVyQW5vbnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbiAoKSB7IGluc2VydEdpdmVuVGV4
dCgiQW5vdGhlciBhbm9ueW1vdXMgZnVuY3Rpb24gd2FzIGNhbGxlZC4iKSB9OwotCi1mdW5jdGlv
biBpbnRlcm1lZGlhcnlGdW5jdGlvbigpCi17Ci0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLX0K
LQotZnVuY3Rpb24gaXNFcXVhbFRvRml2ZShpbnB1dCkKLXsKLSAgICByZXR1cm4gaW5wdXQgPT09
IDU7Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0UHJvZmlsZSh0aXRsZSkKLXsKLSAgICBjb25zb2xlLnBy
b2ZpbGUodGl0bGUpOwotfQotCi1mdW5jdGlvbiBwcmludEhlYXZ5UHJvZmlsZXNEYXRhV2l0aG91
dFRpbWUoKQotewotICAgIHZhciBwcmVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
cHJlIik7Ci0gICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgiXG4iKSk7Ci0KLSAgICB2YXIgcHJvZmlsZXMgPSBpbnRlcm5hbHMuY29uc29sZVByb2ZpbGVz
OwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZmlsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUHJvZmls
ZSB0aXRsZTogIiArIHByb2ZpbGVzW2ldLnRpdGxlICsgIlxuIikpOwotICAgICAgICBwcmludFBy
b2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgcHJvZmlsZXNbaV0uaGVhdnlQcm9maWxl
LnJvb3ROb2RlLCAwKTsKLSAgICAgICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiXG4iKSk7Ci0gICAgfQotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm91dHB1dCIpLmFwcGVuZENoaWxkKHByZUVsZW1lbnQpOwotfQotCi1mdW5jdGlvbiBwcmlu
dFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCkKLXsKLSAgICB2YXIgcHJlRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInByZSIpOwotICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoIlxuIikpOwotCi0gICAgdmFyIHByb2ZpbGVzID0gaW50ZXJu
YWxzLmNvbnNvbGVQcm9maWxlczsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2ZpbGVzLmxl
bmd0aDsgKytpKSB7Ci0gICAgICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoIlByb2ZpbGUgdGl0bGU6ICIgKyBwcm9maWxlc1tpXS50aXRsZSArICJcbiIp
KTsKLSAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lKHByZUVsZW1lbnQsIHByb2Zp
bGVzW2ldLnJvb3ROb2RlLCAwKTsKLSAgICAgICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiXG4iKSk7Ci0gICAgfQotCi0gICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmFwcGVuZENoaWxkKHByZUVsZW1lbnQpOwotfQotCi1mdW5jdGlv
biBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgbm9kZSwgaW5kZW50TGV2
ZWwpCi17Ci0gICAgdmFyIHNwYWNlID0gIiI7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmRl
bnRMZXZlbDsgKytpKQotICAgICAgICBzcGFjZSArPSAiICAgIgotCi0gICAgKytpbmRlbnRMZXZl
bDsKLQotICAgIHZhciBzdHJpcHBlZFVSTCA9IG5vZGUudXJsLnJlcGxhY2UoLy4qXC8vLCAiIik7
Ci0gICAgaWYgKCFzdHJpcHBlZFVSTCkKLSAgICAgICAgc3RyaXBwZWRVUkwgPSAiKG5vIGZpbGUp
IjsKLQotICAgIHZhciBsaW5lID0gc3BhY2UgKyBub2RlLmZ1bmN0aW9uTmFtZSArICIgIiArIHN0
cmlwcGVkVVJMICsgIiAobGluZSAiICsgbm9kZS5saW5lTnVtYmVyICsgIjoiICsgbm9kZS5jb2x1
bW5OdW1iZXIgKyAiKVxuIjsKLSAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKGxpbmUpKTsKLQotICAgIHZhciBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4o
KTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQotICAgICAg
ICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgY2hpbGRyZW5baV0sIGlu
ZGVudExldmVsKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2lt
cGxlLWV2ZW50LWNhbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9z
aW1wbGUtZXZlbnQtY2FsbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGM0Y2VlM2QuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1w
bGUtZXZlbnQtY2FsbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBA
Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBhbiBvbmxvYWQgZXZlbnQuIAotCi1UbyBydW4g
dGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUg
V2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBUaGVyZSBzaG91bGQgYmUgb25s
eSBvbmUgb25sb2FkIG5vZGUuCi0KLVByb2ZpbGUgdGl0bGU6IEEgc2ltcGxlIHByb2ZpbGUgdGVz
dCB3aGVyZSBhbiBldmVudCBoYXBwZW5zLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgIHN0YXJ0VGVzdCBzaW1wbGUtZXZlbnQtY2FsbC5odG1sIChsaW5lIDEwOjE5KQotICAgICAg
ZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDRiZGI1MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwyNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJv
ZmlsZSgiQSBzaW1wbGUgcHJvZmlsZSB0ZXN0IHdoZXJlIGFuIGV2ZW50IGhhcHBlbnMuIik7Ci0g
ICAgLy8gRklYTUU6IHRoaXMgaXMgbm90IHRlc3Rpbmcgd2hhdCBpdCBzYXlzIGl0IGlzLgotICAg
IGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0
VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgaGFzIGFuIG9ubG9hZCBldmVudC4KLTxi
cj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dz
ZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAg
VGhlcmUgc2hvdWxkIGJlIG9ubHkgb25lIG9ubG9hZCBub2RlLgotPGRpdiBpZD0ib3V0cHV0Ij48
L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YmMzOGE1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBh
bmQgc3RvcHMgcHJvZmlsaW5nIGZyb20gdGhlIHNhbWUgc2NvcGUuIAotCi1UbyBydW4gdGhpcyB0
ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5z
cGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBUaGVyZSBzaG91bGQgYmUgbm8gZnVuY3Rp
b24gY2FsbHMgYmV0d2VlbiBjb25zb2xlLnByb2ZpbGUoKSBhbmQgY29uc29sZS5wcm9maWxlRW5k
KCkuCi0KLVByb2ZpbGUgdGl0bGU6IEEgc2ltcGxlIHByb2ZpbGUgdGVzdCB3aGVyZSBubyBzY29w
ZSBjaGFnbmVzCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgZnVuY3Rpb25XaWNo
U3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlciBzaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwgKGxp
bmUgMTU6NDcpCi0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNo
YW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hh
bmdlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzNjJjODMuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQot
ewotICAgIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKTsKLX0KLQotZnVu
Y3Rpb24gZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpCi17Ci0gICAgY29u
c29sZS5wcm9maWxlKCJBIHNpbXBsZSBwcm9maWxlIHRlc3Qgd2hlcmUgbm8gc2NvcGUgY2hhZ25l
cyIpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgaSsrKQotICAgICAgICB2
YXIgYiA9IGkgKyAyOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOwot
Ci0gICAgY29uc29sZS5wcm9maWxlRW5kKCk7Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0
VGltZSgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0
KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBzdGFydHMgYW5kIHN0b3BzIHByb2ZpbGluZyBm
cm9tIHRoZSBzYW1lIHNjb3BlLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdAotdGhlIHByb2ZpbGUuICBUaGVyZSBzaG91bGQgYmUgbm8gZnVuY3Rpb24gY2FsbHMg
YmV0d2VlbiBjb25zb2xlLnByb2ZpbGUoKSBhbmQKLWNvbnNvbGUucHJvZmlsZUVuZCgpLgotPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGlt
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3Rv
cC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDI4MWU0YmYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNh
bGxzIGNvbnNvbGUucHJvZmlsZSgpIGFuZCBjb25zb2xlLnByb2ZpbGVFbmQoKSB0aHJlZSB0aW1l
cy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRo
ZSBwcm9maWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJvZmlsZXMuCi0KLVByb2ZpbGUgdGl0
bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgZmlyc3QgdGltZS4KLVRocmVhZF8xIChubyBmaWxl
KSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlw
bGUtdGltZXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3
VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAg
ICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0
ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMToxNykKLQotCi1Qcm9maWxlIHRpdGxlOiBTdGFydCB0aGUgcHJvZmlsZXIgdGhlIGZp
cnN0IHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHN0
YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0g
ICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHBy
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLVByb2ZpbGUgdGl0bGU6
IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25kIHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxl
LXRpbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1Rl
eHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAg
ICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVU
ZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChs
aW5lIDE6MTcpCi0KLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBmaXJz
dCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBzdGFy
dC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1sIChsaW5lIDEwOjE5KQotICAg
ICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
Mjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi1Qcm9maWxlIHRpdGxlOiBT
dGFydCB0aGUgcHJvZmlsZXIgdGhlIHNlY29uZCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBzdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10
aW1lcy5odG1sIChsaW5lIDEwOjE5KQotICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAg
Y3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4
dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSAxOjE3KQotCi1Qcm9maWxlIHRpdGxlOiBTdGFydCB0aGUgcHJvZmlsZXIgdGhlIHRoaXJkIHRp
bWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0LWFu
ZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBh
bm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOToz
NCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdl
dEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1l
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxl
ci1tdWx0aXBsZS10aW1lcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjlh
NzYzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0
b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICsw
LDAgQEAKLSA8aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU3Rh
cnQgdGhlIHByb2ZpbGVyIHRoZSBmaXJzdCB0aW1lLiIpOwotICAgIGFub255bW91c0Z1bmN0aW9u
KCk7Ci0gICAgZW5kVGVzdCgpOwotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQgdGhlIHByb2Zp
bGVyIHRoZSBzZWNvbmQgdGltZS4iKTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGVu
ZFRlc3QoKTsKLSAgICBjb25zb2xlLnByb2ZpbGUoIlN0YXJ0IHRoZSBwcm9maWxlciB0aGUgdGhp
cmQgdGltZS4iKTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGVuZFRlc3QoKTsKLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMg
cGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxlKCkgYW5kIGNvbnNvbGUucHJv
ZmlsZUVuZCgpIHRocmVlIHRpbWVzLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZXIgdGhlcmUgc2hvdWxkIGJl
IHRocmVlIHByb2ZpbGVzLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3At
cHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0
aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E4ZjVhNi4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXBy
b2ZpbGluZy1pbi10aGUtc2FtZS1mdW5jdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcg
ZnJvbSB3aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24uIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVh
bGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFu
ZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBj
YWxsIHRvIGZ1bmN0aW9uV2ljaFN0b3BzVGhlUHJvZmlsZXIoKS4KLQotUHJvZmlsZSB0aXRsZTog
UHJvZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24KLVRocmVhZF8xIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1l
LWZ1bmN0aW9uLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBmdW5jdGlvbldpY2hTdG9wc1RoZVBy
b2ZpbGVyIHN0YXJ0LWFuZC1zdG9wLXByb2ZpbGluZy1pbi10aGUtc2FtZS1mdW5jdGlvbi5odG1s
IChsaW5lIDE3OjM4KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
c3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGluZy1pbi10aGUtc2Ft
ZS1mdW5jdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZWMwNzMxLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJv
ZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiUHJv
ZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24iKTsKLQotICAgIGZ1bmN0aW9uV2ljaFN0b3Bz
VGhlUHJvZmlsZXIoKTsKLX0KLQotZnVuY3Rpb24gZnVuY3Rpb25XaWNoU3RvcHNUaGVQcm9maWxl
cigpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgaSsrKQotICAgICAgICB2
YXIgYiA9IGkgKyAyOwotCi0gICAgY29uc29sZS5wcm9maWxlRW5kKCJQcm9maWxpbmcgRnJvbSBB
IE5lc3RlZCBMb2NhdGlvbiIpOwotICAgIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUoKTsK
LX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgot
VGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVz
dGVkIGxvY2F0aW9uLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9h
ZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBh
dAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRv
IGZ1bmN0aW9uV2ljaFN0b3BzVGhlUHJvZmlsZXIoKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmctZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZGJjMTJkLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmctZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZh
U2NyaXB0IGNhbGxzIGNvbnNvbGUucHJvZmlsZSgpIGJ1dCBub3QgY29uc29sZS5wcm9maWxlRW5k
KCkuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2Vy
IHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBZb3Ug
c2hvdWxkIHNlZSB0aGUgcHJvZmlsZSBydW5uaW5nICh3aGVuIHRoYXQgZmVhdHVyZSBpcyBpbXBs
ZW1lbnRlZCA2MDYwNTU2KS4gVGhlbiBuYXZpZ2F0ZSB0byBhbm90aGVyIHBhZ2UgYW5kIGNoZWNr
IHRoZSBXZWJJbnNwZWN0b3IgYWdhaW4uIFNhZmFyaSBzaG91bGQgbm90IGhhdmUgY3Jhc2hlZCBh
bmQgdGhlIEluc3BlY3RvciBzaG91bGQgbm90IHNob3cgYSBwcm9maWxlICh1bmxlc3Mgd2UgYWxs
b3cgY3Jvc3MtbG9hZCBwcm9maWxpbmcgaW4gdGhlIGZ1dHVyZSA1OTUxNDc4ICYgNTk1NDkxMiku
Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9u
dC1zdG9wLXByb2ZpbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1i
dXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3MTM2ZDczLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQt
YnV0LWRvbnQtc3RvcC1wcm9maWxpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAg
QEAKLSA8aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQg
dGhlIHByb2ZpbGVyIGJ1dCBkb24ndCBzdG9wIGl0LiIpOwotICAgIGFub255bW91c0Z1bmN0aW9u
KCk7Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNj
cmlwdCBjYWxscyBjb25zb2xlLnByb2ZpbGUoKSBidXQgbm90IGNvbnNvbGUucHJvZmlsZUVuZCgp
LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUg
YnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2Zp
bGUuICBZb3Ugc2hvdWxkIHNlZSB0aGUgcHJvZmlsZSBydW5uaW5nICh3aGVuIHRoYXQgZmVhdHVy
ZSBpcyBpbXBsZW1lbnRlZCA2MDYwNTU2KS4KLVRoZW4gbmF2aWdhdGUgdG8gYW5vdGhlciBwYWdl
IGFuZCBjaGVjayB0aGUgV2ViSW5zcGVjdG9yIGFnYWluLiBTYWZhcmkgc2hvdWxkIG5vdAotaGF2
ZSBjcmFzaGVkIGFuZCB0aGUgSW5zcGVjdG9yIHNob3VsZCBub3Qgc2hvdyBhIHByb2ZpbGUgKHVu
bGVzcyB3ZSBhbGxvdyBjcm9zcy1sb2FkCi1wcm9maWxpbmcgaW4gdGhlIGZ1dHVyZSA1OTUxNDc4
ICZhbXA7IDU5NTQ5MTIpLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmct
YWZ0ZXItc2V0VGltZW91dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiMzI1ZGE0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0
b3BzIHByb2ZpbGluZyBmcm9tIGEgdGltZW91dC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIGVuZFByb2ZpbGUoKSBzaG91bGQg
bm90IGJlIGEgY2hpbGQgb2YgKHByb2dyYW0pLgotCi1Qcm9maWxlIHRpdGxlOiBTdG9wIHByb2Zp
bGluZyBmcm9tIGEgdGltZW91dAotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIG9u
bG9hZCBzdG9wLXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0bWwgKGxpbmUgMjE6NDQpCi0g
ICAgICBzdGFydFRlc3Qgc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sIChsaW5l
IDEyOjE5KQotICAgICAgICAgc2V0VGltZW91dCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgKHBy
b2dyYW0pIHN0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbCAobGluZSAxOjEpCi0g
ICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1h
ZnRlci1zZXRUaW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJv
ZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTlmZDU4ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3At
cHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKLX0KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5z
ZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3Rh
cnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIlN0b3AgcHJvZmlsaW5nIGZyb20gYSB0
aW1lb3V0Iik7ICAgIAotICAgIHNldFRpbWVvdXQoImVuZFRlc3QoKSIsIDIwKTsKLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdl
J3MgSmF2YVNjcmlwdCBzdG9wcyBwcm9maWxpbmcgZnJvbSBhIHRpbWVvdXQuCi08YnI+Ci08YnI+
Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4g
bG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBw
cm9maWxlIGVuZFByb2ZpbGUoKSBzaG91bGQgbm90IGJlIGEgY2hpbGQgb2YgKHByb2dyYW0pLgot
PGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNhbGwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMDUwNDUuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2Fs
bC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2Ug
aGFzIGFuIGFub255bW91cyBKYXZhU2NyaXB0IGZ1bmN0aW9uIHRoYXQgY2FsbHMgYnVpbHQtaW4g
ZnVuY3Rpb25zLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUg
YnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmls
ZS4gVGhlcmUgc2hvdWxkIGJlIHR3byBub2RlcyBpbiB0aGUgcHJvZmlsZSwgYSAiKHByb2dyYW0p
IiBub2RlIHdpdGggb25lIGNoaWxkIHRoYXQgaXMgInRlc3QiLgotCi1Qcm9maWxlIHRpdGxlOiBU
ZXN0Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgKHByb2dyYW0pIChubyBmaWxl
KSAobGluZSAxOjE2KQotICAgICAgdGVzdCBzdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sIChs
aW5lIDExOjE0KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3Rv
cC10aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3Rv
cC10aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTE2YTE5YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtdGhl
bi1mdW5jdGlvbi1jYWxsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50
ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi12YXIg
aiA9IDA7Ci1mdW5jdGlvbiB0ZXN0KGxlbikgewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVu
OyArK2kpCi0gICAgICAgICsrajsKLX0KLQotZnVuY3Rpb24gdGVzdDIobGVuKSB7Ci0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkKLSAgICAgICAgLS1qOwotfQotCi1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIHZhciBzY3JpcHQgPSAiY29uc29sZS5wcm9maWxlKCdUZXN0Jyk7
XG4iOwotICAgIHNjcmlwdCArPSAidGVzdCgxMDAwKTtcbiI7Ci0gICAgc2NyaXB0ICs9ICJjb25z
b2xlLnByb2ZpbGVFbmQoJ1Rlc3QnKTtcbiI7Ci0gICAgc2NyaXB0ICs9ICJ0ZXN0MigxMDAwKTtc
biI7Ci0KLSAgICBldmFsKHNjcmlwdCk7Ci0KLSAgICBwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRU
aW1lKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3Qo
KSI+Ci1UaGlzIHBhZ2UgaGFzIGFuIGFub255bW91cyBKYXZhU2NyaXB0IGZ1bmN0aW9uIHRoYXQg
Y2FsbHMgYnVpbHQtaW4gZnVuY3Rpb25zLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBt
YW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3Rv
ciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuIFRoZXJlIHNob3VsZCBiZSB0d28gbm9kZXMgaW4g
dGhlIHByb2ZpbGUsIGEgIihwcm9ncmFtKSIgbm9kZSB3aXRoIG9uZSBjaGlsZCB0aGF0IGlzICJ0
ZXN0Ii4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24t
ZnJvbS1ldmFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA3
YzllYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2Vw
dGlvbi1mcm9tLWV2YWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBA
QAotQ09OU09MRSBNRVNTQUdFOiBUZXN0IGV4Y2VwdGlvbi4KLVRoaXMgcGFnZSB0aHJvd3MgYW4g
ZXhjZXB0aW9uIGZyb20gd2l0aGluIGV2YWwoKS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQgdGhlIHByb2ZpbGUuIFRoZSBwcm9maWxlciBzaG91bGQgbm90IGNyYXNoIGFuZCBz
dGlsbCBzaG93IHRoZSBzdGFjayB1bmRlciBpbnNlcnRuZXdUZXh0KCkuCi0KLVByb2ZpbGUgdGl0
bGU6IFRocm93IHdpdGhpbiBhbiBldmFsLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDApCi0g
ICAocHJvZ3JhbSkgdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sIChsaW5lIDE5KQotICAg
ICAgKHByb2dyYW0pIHRocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbCAobGluZSAxMCkKLSAg
ICAgICAgIChwcm9ncmFtKSB0aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwgKGxpbmUgNCkK
LSAgICAgICAgIChwcm9ncmFtKSB0aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwgKGxpbmUg
MTkpCi0gICAgICAgICAgICBldmFsIChubyBmaWxlKSAobGluZSAwKQotICAgICAgICAgICAgICAg
KHByb2dyYW0pIChubyBmaWxlKSAobGluZSAxKQotICAgb25sb2FkIHRocm93LWV4Y2VwdGlvbi1m
cm9tLWV2YWwuaHRtbCAobGluZSAyNCkKLSAgICAgIHN0YXJ0VGVzdCB0aHJvdy1leGNlcHRpb24t
ZnJvbS1ldmFsLmh0bWwgKGxpbmUgMTMpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3KQotICAgICAgICAgICAgY3JlYXRlRWxlbWVu
dCAobm8gZmlsZSkgKGxpbmUgMCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxl
KSAobGluZSAwKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDApCi0g
ICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMCkKLSAgICAgICAgIGVu
ZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMSkKLQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwu
aHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9u
LWZyb20tZXZhbC5odG1sLWRpc2FibGVkCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
N2VhYzlhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhj
ZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2FibGVkCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxz
KQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKLQotY29uc29sZS5wcm9maWxlKCJUaHJvdyB3aXRoaW4gYW4gZXZhbC4iKTsK
LQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBpbnNlcnROZXdUZXh0KCk7Ci0KLSAgICBl
bmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci1ldmFsKCJ0aHJvdygnVGVzdCBleGNl
cHRpb24uJyk7Iik7Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRl
c3QoKSI+Ci1UaGlzIHBhZ2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiBmcm9tIHdpdGhpbiBldmFsKCku
Ci08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBi
cm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmls
ZS4gIFRoZSBwcm9maWxlciBzaG91bGQgbm90IGNyYXNoIGFuZCBzdGlsbCBzaG93IHRoZSBzdGFj
ayB1bmRlcgotaW5zZXJ0bmV3VGV4dCgpLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4
ZWN1dGlvbi1jb250ZXh0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3R3by1leGVjdXRpb24tY29udGV4dHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMWU5ZGQxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxMSArMCwwIEBACi1UaGlzIHBhZ2UgaGFzIHR3byBzY3JpcHQgdGFncyB3aXRoIHNvbWUgc2lt
cGxlIEphdmFTY3JpcHQuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGlu
IHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBw
cm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgdHdvIChwcm9ncmFtKSBlbGVt
ZW50cy4KLQotUHJvZmlsZSB0aXRsZTogVHdvIEV4ZWN1dGlvbiBDb250ZXh0cwotVGhyZWFkXzEg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCB0d28tZXhlY3V0aW9uLWNvbnRleHRz
Lmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbiB0d28tZXhlY3V0
aW9uLWNvbnRleHRzLmh0bWwgKGxpbmUgMTc6MzApCi0gICAgICAgICB0ZXN0RW5kIHR3by1leGVj
dXRpb24tY29udGV4dHMuaHRtbCAobGluZSAzMzoxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3R3by1leGVjdXRpb24tY29udGV4dHMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2ODUxNjU1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2Zp
bGUoIlR3byBFeGVjdXRpb24gQ29udGV4dHMiKTsKLQotICAgIGludGVybWVkaWFyeUZ1bmN0aW9u
KCk7Ci19Ci0KLWZ1bmN0aW9uIGludGVybWVkaWFyeUZ1bmN0aW9uKCkKLXsKLSAgICB0ZXN0RW5k
KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+
Ci1UaGlzIHBhZ2UgaGFzIHR3byBzY3JpcHQgdGFncyB3aXRoIHNvbWUgc2ltcGxlIEphdmFTY3Jp
cHQuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRo
ZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJv
ZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSB0d28gKHByb2dyYW0pIGVsZW1l
bnRzLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTxzY3JpcHQ+Ci1mdW5jdGlv
biB0ZXN0RW5kKCkgewotICAgIGNvbnNvbGUucHJvZmlsZUVuZCgpOwotICAgIHByaW50UHJvZmls
ZXNEYXRhV2l0aG91dFRpbWUoKTsKLX0KLTwvc2NyaXB0PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVp
bHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
dXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2Y2U1NTEuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVp
bHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAg
QEAKLVRoaXMgcGFnZSBoYXMgSmF2YVNjcmlwdCB0aGF0IGNhbGxzIGJ1aWx0LWluIGZ1bmN0aW9u
cy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRo
ZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBjYWxscyB0byBjcmVhdGVFbGVtZW50KCkgY3JlYXRl
VGV4dE5vZGUoKSBhcHBlbmRDaGlsZCgpIGFuZCB0ZXN0RW5kKCksIGFtb25nIG90aGVycy4KLVRo
aXMgaXMgaW5zZXJ0ZWQgVGV4dAotCi0KLVByb2ZpbGUgdGl0bGU6IFVzZXIgZGVmaW5lZCBmdW5j
dGlvbiBjYWxsZXMgYnVpbHQtaW4gZnVuY3Rpb25zCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgc3RhcnRUZXN0IHVzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1m
dW5jdGlvbnMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZ2V0RWxlbWVudEJ5
SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNh
bGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjNzUyN2I3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1k
ZWZpbmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMzQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3
aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xl
LnByb2ZpbGUoIlVzZXIgZGVmaW5lZCBmdW5jdGlvbiBjYWxsZXMgYnVpbHQtaW4gZnVuY3Rpb25z
Iik7Ci0KLSAgICB2YXIgbmV3UCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKLSAgICB2
YXIgdGV4dE5vZGUgPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUaGlzIGlzIGluc2VydGVkIFRl
eHQiKTsKLSAgICBuZXdQLmFwcGVuZENoaWxkKHRleHROb2RlKTsKLSAgICB2YXIgb3V0cHV0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOwotICAgIG91dHB1dC5hcHBlbmRDaGls
ZChuZXdQKTsKLSAgICAKLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIEphdmFTY3JpcHQgdGhh
dCBjYWxscyBidWlsdC1pbiBmdW5jdGlvbnMuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3Vs
ZCBiZSBjYWxscyB0byBjcmVhdGVFbGVtZW50KCkgY3JlYXRlVGV4dE5vZGUoKQotYXBwZW5kQ2hp
bGQoKSBhbmQgdGVzdEVuZCgpLCBhbW9uZyBvdGhlcnMuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci93aW5kb3ctZG90LWV2YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci93aW5kb3ctZG90LWV2YWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkY2U4OGRjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2lu
ZG93LWRvdC1ldmFsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAK
LVRoaXMgcGFnZSBoYXMgYSBjYWxsIHRvIHdpbmRvdy5ldmFsKCkuIAotCi1UbyBydW4gdGhpcyB0
ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5z
cGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91
bGQgYmUgYSBjYWxsIHRvIGV2YWwoKS4KLQotUHJvZmlsZSB0aXRsZTogQ2FsbCB3aW5kb3cuZXZh
bCgpCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHdpbmRvdy1k
b3QtZXZhbC5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZXZhbEZ1bmN0aW9uIChubyBmaWxlKSAo
bGluZSAxOjIyKQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3Qg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci93aW5kb3ctZG90LWV2YWwuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODdhMmIzYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
LQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkNhbGwgd2lu
ZG93LmV2YWwoKSIpOwotCi0gICAgZXZhbEZ1bmN0aW9uKCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19
Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci13aW5kb3cuZXZhbCgiZnVuY3Rpb24gZXZhbEZ1bmN0aW9u
KCkgeyBpbnNlcnROZXdUZXh0KCk7IH0iKTsKLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgYSBjYWxsIHRvIHdpbmRvdy5ldmFs
KCkuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRo
ZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJv
ZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZXZhbCgpLgot
PGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDNmM2M5Ni4uNGVkMmFhZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEwMjEsOSArMTAyMSw2
IEBAIHdlYmtpdC5vcmcvYi8xNDIxNTYgY3NzMy9zaGFwZXMvc3BlYy1leGFtcGxlcy9zaGFwZS1v
dXRzaWRlLTAxMS5odG1sIFsgRmFpbHVyZSBQCiB3ZWJraXQub3JnL2IvMTQyMTU2IGNzczMvc2hh
cGVzL3NwZWMtZXhhbXBsZXMvc2hhcGUtb3V0c2lkZS0wMTIuaHRtbCBbIEZhaWx1cmUgUGFzcyBd
CiB3ZWJraXQub3JnL2IvMTQyMTU2IGNzczMvc2hhcGVzL3NwZWMtZXhhbXBsZXMvc2hhcGUtb3V0
c2lkZS0wMTkuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKLXdlYmtpdC5vcmcvYi8xNDIxNTcgZmFz
dC9wcm9maWxlci9kZWFkLXRpbWUuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCi13ZWJraXQub3JnL2Iv
MTQyMTU3IGZhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1s
IFsgRmFpbHVyZSBQYXNzIF0KLQogd2Via2l0Lm9yZy9iLzk1NTUxIGZhc3QvZm9ybXMvZGF0YWxp
c3QvdXBkYXRlLXJhbmdlLXdpdGgtZGF0YWxpc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFz
cyBdCiAKIHdlYmtpdC5vcmcvYi8xMjk4MjAgc3ZnL2NsaXAtcGF0aC9tYXNrLW5lc3RlZC1jbGlw
LXBhdGgtMDA2LnN2ZyBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdiZmFlYzAuLmVlNzA1ODkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjAxLDkgKzEyMDEsNiBA
QCB3ZWJraXQub3JnL2IvMTM2MDY2IGFuaW1hdGlvbnMvbWlzc2luZy1rZXlmcmFtZS1wcm9wZXJ0
aWVzLmh0bWwgWyBDcmFzaCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMzYwNjYgYW5pbWF0aW9ucy9t
aXNzaW5nLXZhbHVlcy1maXJzdC1rZXlmcmFtZS5odG1sIFsgQ3Jhc2ggUGFzcyBdCiB3ZWJraXQu
b3JnL2IvMTM2MDY2IGFuaW1hdGlvbnMvc3RhdGUtYXQtZW5kLWV2ZW50Lmh0bWwgWyBDcmFzaCBQ
YXNzIF0KIAotd2Via2l0Lm9yZy9iLzEzNjA2NyBmYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1s
IFsgRmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzYwNjcgZmFzdC9wcm9maWxlci9zdG9w
LXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotCiB3ZWJr
aXQub3JnL2IvMTM2MDcwIGZhc3QvZm9ybXMvbGFiZWwvbGFiZWwtYmVjb21lcy12aXNpYmxlLXdo
aWxlLWNsaWNraW5nLW9uLWxhYmVsLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3Jn
L2IvMTM2NTgwIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgWyBUaW1lb3V0IFBhc3Mg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGM4MDFlYTguLmMzYjc1ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4OTIsNyArMTg5Miw2
IEBAIGZhc3QvcGFyc2VyL25lc3RlZC1mcmFnbWVudC1wYXJzZXItY3Jhc2guaHRtbCBbIEZhaWx1
cmUgXQogZmFzdC9wcmVsb2FkZXIvZG9jdW1lbnQtd3JpdGUtMi5odG1sIFsgRmFpbHVyZSBdCiBm
YXN0L3ByZWxvYWRlci9kb2N1bWVudC13cml0ZS5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L3ByZWxv
YWRlci9pbWFnZS1zcmNzZXQuaHRtbCBbIEZhaWx1cmUgXQotZmFzdC9wcm9maWxlci9wcm9maWxp
bmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUt
bmVzdGluZy5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L3JlZ2lvbnMvYWJzb2x1dGUtaW4tcmVsYXRp
dmUtb3ZlcmZsb3cuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC9yZWdpb25zL2Fic29s
dXRlLXBvcy1lbGVtLWluLXJlZ2lvbi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L3Jl
Z2lvbnMvYW5pbWF0aW9uLWVsZW1lbnQtaW4tcmVnaW9uLWZsb3dlZC10by1vdGhlci10aHJlYWQu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTUHJvZmlsZXJQcml2YXRlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWMx
MTJhZS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTUHJvZmlsZXJQ
cml2YXRlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkpTUHJvZmlsZXJQcml2YXRlLmgiCi0KLSNpbmNsdWRlICJBUElDYXN0LmgiCi0jaW5j
bHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKLSNpbmNsdWRlICJPcGFxdWVKU1N0cmluZy5oIgotCi11
c2luZyBuYW1lc3BhY2UgSlNDOwotCi12b2lkIEpTU3RhcnRQcm9maWxpbmcoSlNDb250ZXh0UmVm
IGN0eCwgSlNTdHJpbmdSZWYgdGl0bGUpCi17Ci0gICAgLy8gVXNlIGFuIGluZGVwZW5kZW50IHN0
b3B3YXRjaCBmb3IgQVBJLWluaXRpYXRlZCBwcm9maWxpbmcsIHNpbmNlIHRoZSB1c2VyIHdpbGwg
ZXhwZWN0IGl0Ci0gICAgLy8gdG8gYmUgcmVsYXRpdmUgdG8gd2hlbiB0aGVpciBjb21tYW5kIHdh
cyBpc3N1ZWQuCi0gICAgUmVmUHRyPFN0b3B3YXRjaD4gc3RvcHdhdGNoID0gU3RvcHdhdGNoOjpj
cmVhdGUoKTsKLSAgICBzdG9wd2F0Y2gtPnN0YXJ0KCk7Ci0gICAgTGVnYWN5UHJvZmlsZXI6OnBy
b2ZpbGVyKCktPnN0YXJ0UHJvZmlsaW5nKHRvSlMoY3R4KSwgdGl0bGUtPnN0cmluZygpLCBzdG9w
d2F0Y2gucmVsZWFzZSgpKTsKLX0KLQotdm9pZCBKU0VuZFByb2ZpbGluZyhKU0NvbnRleHRSZWYg
Y3R4LCBKU1N0cmluZ1JlZiB0aXRsZSkKLXsKLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGN0
eCk7Ci0gICAgTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gTGVnYWN5UHJvZmlsZXI6OnByb2Zp
bGVyKCk7Ci0gICAgcHJvZmlsZXItPnN0b3BQcm9maWxpbmcoZXhlYywgdGl0bGUtPnN0cmluZygp
KTsKLX0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Byb2ZpbGVy
UHJpdmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNGYyNmEyLi4wMDAwMDAwCi0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNQcm9maWxlclByaXZhdGUuaAorKysgL2Rldi9udWxs
CkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNpZm5kZWYgSlNQcm9maWxlcl9oCi0jZGVmaW5lIEpTUHJvZmlsZXJfaAotCi0j
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+Ci0KLSNpZm5kZWYgX19jcGx1c3BsdXMK
LSNpbmNsdWRlIDxzdGRib29sLmg+Ci0jZW5kaWYKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRl
cm4gIkMiIHsKLSNlbmRpZgotCi0vKiEKLUBmdW5jdGlvbiBKU1N0YXJ0UHJvZmlsaW5nCi1AYWJz
dHJhY3QgRW5hYmxlcyB0aGUgcHJvZmxlci4KLUBwYXJhbSBjdHggVGhlIGV4ZWN1dGlvbiBjb250
ZXh0IHRvIHVzZS4KLUBwYXJhbSB0aXRsZSBUaGUgdGl0bGUgb2YgdGhlIHByb2ZpbGUuCi1AcmVz
dWx0IFRoZSBwcm9maWxlciBpcyB0dXJuZWQgb24uCi0qLwotSlNfRVhQT1JUIHZvaWQgSlNTdGFy
dFByb2ZpbGluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiB0aXRsZSk7Ci0KLS8qIQot
QGZ1bmN0aW9uIEpTRW5kUHJvZmlsaW5nCi1AYWJzdHJhY3QgRGlzYWJsZXMgdGhlIHByb2ZsZXIu
Ci1AcGFyYW0gY3R4IFRoZSBleGVjdXRpb24gY29udGV4dCB0byB1c2UuCi1AcGFyYW0gdGl0bGUg
VGhlIHRpdGxlIG9mIHRoZSBwcm9maWxlLgotQHJlc3VsdCBUaGUgcHJvZmlsZXIgaXMgdHVybmVk
IG9mZi4gSWYgdGhlcmUgaXMgbm8gbmFtZSwgdGhlIG1vc3QgcmVjZW50bHkgc3RhcnRlZAotICAg
ICAgICBwcm9maWxlIGlzIHN0b3BwZWQuIElmIHRoZSBuYW1lIGRvZXMgbm90IG1hdGNoIGFueSBw
cm9maWxlIHRoZW4gbm8gcHJvZmlsZQotICAgICAgICBpcyBzdG9wcGVkLgotKi8KLUpTX0VYUE9S
VCB2b2lkIEpTRW5kUHJvZmlsaW5nKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHRpdGxl
KTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIEpTUHJvZmls
ZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGJmNTIxODEuLjli
YjVjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTU4NiwxMCArNTg2
LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBwYXJzZXIvU291cmNlUHJvdmlk
ZXJDYWNoZS5jcHAKICAgICBwYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5jcHAKIAotICAgIHBy
b2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAotICAgIHByb2ZpbGVyL1Byb2ZpbGUuY3BwCi0gICAg
cHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAKLSAgICBwcm9maWxlci9Qcm9maWxlTm9kZS5j
cHAKICAgICBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmNwcAogICAgIHByb2ZpbGVyL1Byb2Zp
bGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAKICAgICBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDgxZDg1YjguLjU1ZWFjMDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEyOSBAQAogMjAxNi0wNS0xMyAgSm9zZXBoIFBl
Y29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAgICAgIFJlbW92ZSBMZWdhY3lQcm9m
aWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUz
NTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSmF2
YVNjcmlwdENvcmUgbm93IHByb3ZpZGVzIGEgc2FtcGxpbmcgcHJvZmlsZXIgYW5kIGl0IGlzIGVu
YWJsZWQKKyAgICAgICAgYnkgYWxsIHBvcnRzLiBXZWIgSW5zcGVjdG9yIHN3aXRjaGVkIG1vbnRo
cyBhZ28gdG8gdXNpbmcgdGhlCisgICAgICAgIHNhbXBsaW5nIHByb2ZpbGVyIGFuZCBkaXNwbGF5
aW5nIGl0cyBkYXRhLiBSZW1vdmUgdGhlIGxlZ2FjeQorICAgICAgICBwcm9maWxlciwgYXMgaXQg
aXMgbm8gbG9uZ2VyIGJlaW5nIHVzZWQgYnkgYW55dGhpbmcgb3RoZXIgdGhlbgorICAgICAgICBj
b25zb2xlLnByb2ZpbGUgYW5kIHRlc3RzLiBXZSB3aWxsIHVwZGF0ZSBjb25zb2xlLnByb2ZpbGUn
cworICAgICAgICBiZWhhdmlvciBzb29uIHRvIGhhdmUgbmV3IGJlaGF2aW9yIGFuZCB1c2UgdGhl
IHNhbXBsaW5nIGRhdGEuCisKKyAgICAgICAgKiBBUEkvSlNQcm9maWxlclByaXZhdGUuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIEFQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb246
CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29t
cHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbXB1
dGVEZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0Nv
ZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHA6
CisgICAgICAgIChKU0M6OmdlbmVyYXRlVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayk6CisgICAg
ICAgIChKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjp1bmxpbmtlZENvZGVCbG9ja0Zv
cik6CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAg
ICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdENhbGxWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXRDYWxsVmFyYXJnc0luVGFpbFBvc2l0aW9uKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3RWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3QpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpDYWxsQXJndW1lbnRzOjpwcm9maWxlSG9va1Jl
Z2lzdGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OnNob3Vs
ZEVtaXRQcm9maWxlSG9va3MpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpDYWxsRnVuY3Rpb25DYWxsRG90Tm9kZTo6ZW1p
dEJ5dGVjb2RlKToKKyAgICAgICAgKEpTQzo6QXBwbHlGdW5jdGlvbkNhbGxEb3ROb2RlOjplbWl0
Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpDYWxsQXJndW1lbnRzOjpDYWxsQXJndW1lbnRzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBl
Pjo6ZXhlY3V0ZUVmZmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sp
OiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0Ns
b2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOiBE
ZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdO
b2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHA6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZH
OjpzYWZlVG9FeGVjdXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUp
OiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6IERlbGV0ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6
OkluamVjdGVkU2NyaXB0QmFzZTo6Y2FsbEZ1bmN0aW9uV2l0aEV2YWxFbmFibGVkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbjoKKyAgICAgICAgKiBpbnRlcnBy
ZXRlci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OlVud2luZEZ1bmN0b3I6Om9wZXJh
dG9yKCkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZSk6IERl
bGV0ZWQuCisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlQ2FsbCk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KTogRGVsZXRlZC4K
KyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGls
ZU1haW5QYXNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0
L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHJvZmlsZV93aWxs
X2NhbGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHJvZmlsZV9kaWRf
Y2FsbCk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wcm9maWxlX3dpbGxfY2FsbCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wcm9maWxlX2RpZF9jYWxsKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMu
aDoKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNw
cDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKTogRGVsZXRlZC4K
KyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5oOgorICAgICAgICAqIGxsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIHBhcnNlci9QYXJzZXJNb2Rlcy5oOgorICAg
ICAgICAqIHByb2ZpbGVyL0NhbGxJZGVudGlmaWVyLmg6IFJlbW92ZWQuCisgICAgICAgICogcHJv
ZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHByb2ZpbGVyL0xl
Z2FjeVByb2ZpbGVyLmg6IFJlbW92ZWQuCisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZS5oOiBSZW1vdmVkLgorICAgICAg
ICAqIHByb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBy
b2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwcm9maWxlci9Q
cm9maWxlTm9kZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZU5vZGUu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmNw
cDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogcHJv
ZmlsZXIvUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNh
Y2hlLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUNhY2hlOjpnZXRHbG9iYWxDb2RlQmxvY2spOgor
ICAgICAgICAoSlNDOjpDb2RlQ2FjaGU6OmdldFByb2dyYW1Db2RlQmxvY2spOgorICAgICAgICAo
SlNDOjpDb2RlQ2FjaGU6OmdldEV2YWxDb2RlQmxvY2spOgorICAgICAgICAoSlNDOjpDb2RlQ2Fj
aGU6OmdldE1vZHVsZVByb2dyYW1Db2RlQmxvY2spOgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNh
Y2hlLmg6CisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6
U2NyaXB0RXhlY3V0YWJsZTo6bmV3Q29kZUJsb2NrRm9yKToKKyAgICAgICAgKiBydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVBy
b2dyYW1Db2RlQmxvY2spOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6Y3JlYXRlRXZh
bENvZGVCbG9jayk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpjcmVhdGVNb2R1bGVQ
cm9ncmFtQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6On5KU0dsb2Jh
bE9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpoYXNMZWdh
Y3lQcm9maWxlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5o
OgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6c3VwcG9ydHNMZWdhY3lQcm9maWxpbmcp
OiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHJ1bnRp
bWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6Vk0pOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpTZXRFbmFibGVkUHJvZmlsZXJGdW5jdG9yOjpvcGVyYXRvcigpKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Vk06OnNldEVuYWJsZWRQcm9maWxlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVu
dGltZS9WTS5oOgorICAgICAgICAoSlNDOjpWTTo6ZW5hYmxlZFByb2ZpbGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6Vk06OmVuYWJsZWRQcm9maWxlckFkZHJlc3MpOiBEZWxldGVkLgorCisy
MDE2LTA1LTEzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogSW5mb3JtIGF1Z21lbnRpbmcgY2xpZW50IHdoZW4gaW5zcGVjdG9y
IGNvbnRyb2xsZXIgaXMgZGVzdHJveWVkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTc2ODgKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI1ODMyNzI0
PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmMTJiZmQ1Li4wZjlkZWUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQxNSwxNCArMTQxNSw2IEBACiAJCTkzMzA0
MDA0MEU2QTc0OTQwMDc4NkU2QSAvKiBTbWFsbFN0cmluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMzAzRkVBMEU2QTcyQzAwMDc4NkU2QSAvKiBT
bWFsbFN0cmluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5MzMwNDAyQzBFNkE3NjQwMDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMzAzRkU4MEU2QTcy
QjUwMDc4NkU2QSAvKiBTbWFsbFN0cmluZ3MuY3BwICovOyB9OwogCQk5MzM1RjI0RDEyRTY3NjVC
MDAyQjU1NTMgLyogU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzM0NUE4NzEyRDgzOEM0MDAzMDJCRTMgLyog
U3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAgKi87IH07Ci0JCTk1MzRBQUZCMEU1QjdBOTYwMEI4
QTQ1QiAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTUyQzYzQUMwRTQ3NzdENjAwQzEzOTM2IC8qIEpTUHJvZmlsZXJQ
cml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJOTU3NDJGNjUwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU3NDJGNjMwREQxMUY1QTAwMDkxN0ZC
IC8qIFByb2ZpbGUuY3BwICovOyB9OwotCQk5NUFCODM0MjBEQTQzMjI1MDBCQzgzRjMgLyogTGVn
YWN5UHJvZmlsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTVBQjgzMkUwREE0MkNBRDAwQkM4M0YzIC8qIExlZ2FjeVByb2ZpbGVyLmNwcCAqLzsg
fTsKLQkJOTVBQjgzNTYwREE0M0MzMDAwQkM4M0YzIC8qIFByb2ZpbGVOb2RlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QUI4MzU0MERBNDNCNDQw
MEJDODNGMyAvKiBQcm9maWxlTm9kZS5jcHAgKi87IH07Ci0JCTk1Q0Q0NTc2MEUxQzRGREQwMDg1
MzU4RSAvKiBQcm9maWxlR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk1Q0Q0NTc0MEUxQzRGREQwMDg1MzU4RSAvKiBQcm9maWxlR2Vu
ZXJhdG9yLmNwcCAqLzsgfTsKLQkJOTVDRDQ1NzcwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVH
ZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1Q0Q0NTc1MEUxQzRGREQwMDg1MzU4RSAvKiBQcm9maWxlR2VuZXJhdG9yLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKLQkJOTVFM0JDMDUwRTFBRTY4MjAwQjJEMUMx
IC8qIENhbGxJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NUUzQkMwNDBFMUFFNjgyMDBCMkQxQzEgLyogQ2FsbElkZW50aWZpZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5NUY2RTY5
NTBFNUI1Rjk3MDA5MUU4NjAgLyogSlNQcm9maWxlclByaXZhdGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU5ODhCQTkwRTQ3N0JFQzAwRDI4RDRE
IC8qIEpTUHJvZmlsZXJQcml2YXRlLmNwcCAqLzsgfTsKIAkJOTYwMDk3QTYwRUJBQkI1ODAwN0E3
Mjk3IC8qIExhYmVsU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk2MDA5N0E1MEVCQUJCNTgwMDdBNzI5NyAvKiBMYWJlbFNjb3BlLmggKi87IH07
CiAJCTk2ODhDQjE1MEVEMTJCNEUwMDFENjQ5RiAvKiBBc3NlbWJsZXJCdWZmZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2ODhDQjEzMEVEMTJCNEUw
MDFENjQ5RiAvKiBBc3NlbWJsZXJCdWZmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5Njg4Q0IxNjBFRDEyQjRFMDAxRDY0OUYgLyogWDg2QXNz
ZW1ibGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
Njg4Q0IxNDBFRDEyQjRFMDAxRDY0OUYgLyogWDg2QXNzZW1ibGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE4OTEsOSArMTg4Myw2IEBACiAJ
CUJDMThDNDQ2MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPYmplY3RQcm90b3R5cGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjY4MEM5MEUxNkQ0RTkwMEEw
NkU5MiAvKiBPYmplY3RQcm90b3R5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ0ODBFMTZGNUNEMDBCMzQ0NjAgLyogT3BlcmF0aW9u
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY5MkE4
NzgwMjU1NTk3RDAxRkY2MEY3IC8qIE9wZXJhdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ0QjBFMTZGNUNEMDBCMzQ0NjAgLyog
UGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0YwQjNBQTA5QkI0REMwMDA2OEZDRTMgLyogUGFyc2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkMxOEM0NTAwRTE2RjVDRDAwQjM0NDYwIC8q
IFByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1NzQyRjY0MEREMTFGNUEwMDA5MTdGQiAvKiBQcm9maWxlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkMxOEM0NTEwRTE2RjVDRDAwQjM0NDYw
IC8qIFByb2ZpbGVOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NUFCODM1NTBEQTQzQjQ0MDBCQzgzRjMgLyogUHJvZmlsZU5vZGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzE4QzQ1MjBFMTZG
NUNEMDBCMzQ0NjAgLyogTGVnYWN5UHJvZmlsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QUI4MzJGMERBNDJDQUQwMEJDODNGMyAvKiBMZWdhY3lQ
cm9maWxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUJDMThDNDU0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9wZXJ0eU5hbWVBcnJheS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU0MDBDMTAwQTY5QkFG
MjAwNTA5ODg3IC8qIFByb3BlcnR5TmFtZUFycmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0NTUwRTE2RjVDRDAwQjM0NDYwIC8qIFBy
b3BlcnR5U2xvdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNjU2MjFFNkMwODlFODU5NzAwNzYwRjM1IC8qIFByb3BlcnR5U2xvdC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDU2MEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBQcm90ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2NUMwMkZCQjA2Mzc0NjJBMDAzRTdFRTYgLyogUHJvdGVjdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNjMzLDE4ICszNjIy
LDcgQEAKIAkJOTNGMEIzQTkwOUJCNERDMDAwNjhGQ0UzIC8qIFBhcnNlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0YwQjNBQTA5QkI0REMwMDA2OEZDRTMgLyogUGFyc2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0YxOTgxQTA4MjQ1QUFFMDAxRTlBQkMgLyogS2V5d29yZHMudGFibGUgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBLZXl3b3Jkcy50YWJsZTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwotCQk5NTJDNjNBQzBFNDc3N0Q2
MDBDMTM5MzYgLyogSlNQcm9maWxlclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNQcm9maWxlclByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTU3NDJGNjMwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2ZpbGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUHJvZmlsZS5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9m
aWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTU3NDJGNjQwREQxMUY1QTAw
MDkxN0ZCIC8qIFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJv
ZmlsZS5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk5NTk4OEJBOTBFNDc3QkVDMDBEMjhENEQgLyogSlNQcm9maWxlclByaXZhdGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQcm9maWxlclByaXZhdGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NUFCODMyRTBEQTQyQ0FEMDBCQzgz
RjMgLyogTGVnYWN5UHJvZmlsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gTGVnYWN5UHJvZmlsZXIuY3BwOyBwYXRoID0gcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NUFCODMyRjBEQTQyQ0FEMDBCQzgz
RjMgLyogTGVnYWN5UHJvZmlsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
TGVnYWN5UHJvZmlsZXIuaDsgcGF0aCA9IHByb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk1QUI4MzU0MERBNDNCNDQwMEJDODNGMyAvKiBQcm9m
aWxlTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxl
Tm9kZS5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTk1QUI4MzU1MERBNDNCNDQwMEJDODNGMyAvKiBQcm9maWxlTm9kZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlTm9kZS5oOyBwYXRoID0g
cHJvZmlsZXIvUHJvZmlsZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVD
MThEM0UwQzkwRTdFRjAwRTcyRjczIC8qIEpTUmV0YWluUHRyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTUmV0YWluUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTk1Q0Q0NTc0MEUxQzRGREQwMDg1MzU4RSAvKiBQcm9maWxlR2VuZXJhdG9yLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVHZW5lcmF0b3IuY3BwOyBw
YXRoID0gcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTk1Q0Q0NTc1MEUxQzRGREQwMDg1MzU4RSAvKiBQcm9maWxlR2VuZXJhdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2ZpbGVHZW5lcmF0b3IuaDsgcGF0
aCA9IHByb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJOTVFM0JDMDQwRTFBRTY4MjAwQjJEMUMxIC8qIENhbGxJZGVudGlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENhbGxJZGVudGlmaWVyLmg7IHBhdGggPSBwcm9m
aWxlci9DYWxsSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NjAw
OTdBNTBFQkFCQjU4MDA3QTcyOTcgLyogTGFiZWxTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBMYWJlbFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk2ODhDQjEzMEVEMTJCNEUwMDFENjQ5RiAvKiBBc3NlbWJsZXJCdWZmZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXNzZW1ibGVyQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk2ODhDQjE0MEVEMTJCNEUwMDFENjQ5RiAvKiBYODZBc3NlbWJsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWDg2QXNzZW1ibGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MjY2LDggKzUyNDQsNiBAQAogCQkJCTE0ODJCN0Uy
MEE0MzA3NjAwMDUxN0NGQyAvKiBKU09iamVjdFJlZi5jcHAgKi8sCiAJCQkJMTQ4MkI3RTEwQTQz
MDc2MDAwNTE3Q0ZDIC8qIEpTT2JqZWN0UmVmLmggKi8sCiAJCQkJQTc5RURCMDgxMTUzMUNENjAw
MTlFOTEyIC8qIEpTT2JqZWN0UmVmUHJpdmF0ZS5oICovLAotCQkJCTk1OTg4QkE5MEU0NzdCRUMw
MEQyOEQ0RCAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHAgKi8sCi0JCQkJOTUyQzYzQUMwRTQ3NzdE
NjAwQzEzOTM2IC8qIEpTUHJvZmlsZXJQcml2YXRlLmggKi8sCiAJCQkJQTU1MkMzN0QxQUREQjhG
RTAwMTM5NzI2IC8qIEpTUmVtb3RlSW5zcGVjdG9yLmNwcCAqLywKIAkJCQlBNTUyQzM3RTFBRERC
OEZFMDAxMzk3MjYgLyogSlNSZW1vdGVJbnNwZWN0b3IuaCAqLywKIAkJCQk5NUMxOEQzRTBDOTBF
N0VGMDBFNzJGNzMgLyogSlNSZXRhaW5QdHIuaCAqLywKQEAgLTY0MzAsMTUgKzY0MDYsNiBAQAog
CQk5NUFCODMxQTBEQTQyQzY5MDBCQzgzRjMgLyogcHJvZmlsZXIgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTk1RTNCQzA0MEUxQUU2ODIwMEIyRDFDMSAv
KiBDYWxsSWRlbnRpZmllci5oICovLAotCQkJCTk1QUI4MzJFMERBNDJDQUQwMEJDODNGMyAvKiBM
ZWdhY3lQcm9maWxlci5jcHAgKi8sCi0JCQkJOTVBQjgzMkYwREE0MkNBRDAwQkM4M0YzIC8qIExl
Z2FjeVByb2ZpbGVyLmggKi8sCi0JCQkJOTU3NDJGNjMwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2Zp
bGUuY3BwICovLAotCQkJCTk1NzQyRjY0MEREMTFGNUEwMDA5MTdGQiAvKiBQcm9maWxlLmggKi8s
Ci0JCQkJOTVDRDQ1NzQwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuY3BwICov
LAotCQkJCTk1Q0Q0NTc1MEUxQzRGREQwMDg1MzU4RSAvKiBQcm9maWxlR2VuZXJhdG9yLmggKi8s
Ci0JCQkJOTVBQjgzNTQwREE0M0I0NDAwQkM4M0YzIC8qIFByb2ZpbGVOb2RlLmNwcCAqLywKLQkJ
CQk5NUFCODM1NTBEQTQzQjQ0MDBCQzgzRjMgLyogUHJvZmlsZU5vZGUuaCAqLywKIAkJCQkwRkY3
Mjk5MjE2NkFEMzQ3MDAwRjVCQTMgLyogUHJvZmlsZXJCeXRlY29kZS5jcHAgKi8sCiAJCQkJMEZG
NzI5OTMxNjZBRDM0NzAwMEY1QkEzIC8qIFByb2ZpbGVyQnl0ZWNvZGUuaCAqLywKIAkJCQkwRkY3
Mjk5NDE2NkFEMzQ3MDAwRjVCQTMgLyogUHJvZmlsZXJCeXRlY29kZXMuY3BwICovLApAQCAtNzEx
NSw3ICs3MDgyLDYgQEAKIAkJCQkxNDI5RDhERTBFRDIyMDVCMDBCODk2MTkgLyogQ2FsbEZyYW1l
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2MkVDOUJCNzFCN0VCMDdDMDAzMDNBRDEgLyogQ2FsbEZy
YW1lU2h1ZmZsZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTYyRDc1NUQ3MUI4NEZCNEEwMDE4
MDFGQSAvKiBDYWxsRnJhbWVTaHVmZmxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTVFM0JDMDUw
RTFBRTY4MjAwQjJEMUMxIC8qIENhbGxJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjBCODNCMTE0QkNGNzE4MDA4ODVCNEYgLyogQ2FsbExpbmtJbmZvLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjkzMzI5RTE0Q0E3REM1MDA4NUYzQzYgLyogQ2FsbExpbmtTdGF0dXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTYyNzY3MzI0MUI2ODBDMUUwMEZEOUYyRSAvKiBDYWxsTW9kZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC03NzMzLDcgKzc2OTksNiBAQAogCQkJCUE3MjgwQTI4MTE1NTdFMzAwMEQ1
Njk1NyAvKiBKU09iamVjdFJlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3Rjk5MzVG
MEZENzMyNTEwMEEwQjJEMCAvKiBKU09OT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg3
Q0RCOTEwNzEyQUQ0MDAwNjE0Q0YgLyogSlNPTk9iamVjdC5sdXQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTk1MzRBQUZCMEU1QjdBOTYwMEI4QTQ1QiAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0MxODRFMUIxN0JFREJEMzAwN0NCNjNBIC8qIEpTUHJvbWlzZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0MxODRFMjMxN0JFRTI0MDAwN0NCNjNBIC8qIEpTUHJvbWlzZUNv
bnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTZCNzMxRTFCREEwOEVGMDAzMzFCODQg
LyogSlNQcm9taXNlQ29uc3RydWN0b3IubHV0LmggaW4gSGVhZGVycyAqLywKQEAgLTc3OTksNyAr
Nzc2NCw2IEBACiAJCQkJOTYwMDk3QTYwRUJBQkI1ODAwN0E3Mjk3IC8qIExhYmVsU2NvcGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQjU0Njc3MTRGNTlCNUMwMDJDMjk4OSAvKiBMYXp5T3BlcmFu
ZFZhbHVlUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTlEQTAwQjAxQkQ1OTk0RTAwRjQ1
NzVDIC8qIGxhenl3cml0ZXIucHkgaW4gSGVhZGVycyAqLywKLQkJCQlCQzE4QzQ1MjBFMTZGNUNE
MDBCMzQ0NjAgLyogTGVnYWN5UHJvZmlsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDMx
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBMZXhlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM1MkUw
RTE2RkNFMTAwQjM0NDYwIC8qIExleGVyLmx1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRENGM0Q1
NkIxQ0QyOTQ3MjAwM0Q1QzY1IC8qIExhenlDbGFzc1N0cnVjdHVyZUlubGluZXMuaCBpbiBIZWFk
ZXJzICovLApAQCAtNzkwNCw5ICs3ODY4LDYgQEAKIAkJCQkwRkU4MzQxODFBNkVGOTdCMDBEMDQ4
NDcgLyogUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
OTgyMDYxMTZCRkUzODMwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg2ODkxNkIwMTU1RjI4NjMwMENCMkI5QSAvKiBQcml2YXRlTmFtZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJQkMxOEM0NTAwRTE2RjVDRDAwQjM0NDYwIC8qIFByb2ZpbGUuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTk1Q0Q0NTc3MEUxQzRGREQwMDg1MzU4RSAvKiBQcm9maWxlR2VuZXJh
dG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzE4QzQ1MTBFMTZGNUNEMDBCMzQ0NjAgLyogUHJv
ZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjcyOUE1MTY2QUQzNTEwMDBGNUJBMyAv
KiBQcm9maWxlckJ5dGVjb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY3MjlCOTE2NkFEMzYw
MDAwRjVCQTMgLyogUHJvZmlsZXJCeXRlY29kZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTM5
MTJBMTY3NzFDMzYwMDlDQ0IwNyAvKiBQcm9maWxlckJ5dGVjb2RlU2VxdWVuY2UuaCBpbiBIZWFk
ZXJzICovLApAQCAtOTE1MSw3ICs5MTEyLDYgQEAKIAkJCQkxNDdGMzlENDEwN0VDMzc2MDA0MjdB
NDggLyogSlNPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ4MkI3RTQwQTQzMDc2MDAw
NTE3Q0ZDIC8qIEpTT2JqZWN0UmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Rjk5MzYwMEZE
NzMyNTEwMEEwQjJEMCAvKiBKU09OT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTk1RjZF
Njk1MEU1QjVGOTcwMDkxRTg2MCAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QzE4NEUxQTE3QkVEQkQzMDA3Q0I2M0EgLyogSlNQcm9taXNlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDMTg0RTIyMTdCRUUyNDAwMDdDQjYzQSAvKiBKU1Byb21pc2VDb25zdHJ1
Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzAwOENEQTE4NzEyNEJCMDA5NTVDMjQgLyog
SlNQcm9taXNlRGVmZXJyZWQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05MTk0LDcgKzkxNTQsNiBA
QAogCQkJCTE0MjgwODcwMTA3RUMxMzQwMDEzRTdCMiAvKiBKU1dyYXBwZXJPYmplY3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNGRDhDOTIwRUVCMkVFNzAwMjgzODQ4IC8qIEp1bXBUYWJsZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkI1NDY3OTE0RjVDNDZCMDAyQzI5ODkgLyogTGF6eU9w
ZXJhbmRWYWx1ZVByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTVBQjgzNDIwREE0MzIy
NTAwQkM4M0YzIC8qIExlZ2FjeVByb2ZpbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0OEYy
MUIwMTA3RUM1NDEwMDQyRUMyQyAvKiBMZXhlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY0
Mjc1NzE1OTE0QTIwMDA0Q0I5RkYgLyogTGlua0J1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBN0UyRUE2QzBGQjQ2MENGMDA2MDFGMDYgLyogTGl0ZXJhbFBhcnNlci5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTkyNjIsOSArOTIyMSw2IEBACiAJCQkJMEZFODM0MTcxQTZFRjk3QjAwRDA0ODQ3
IC8qIFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
MzM4RTE0MUJGMDI3NkMwMDEzQzg4RiAvKiBCM1ZhbHVlS2V5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGOTgyMDYwMTZCRkUzODEwMDI0MEQwMiAvKiBQcmVjaXNlSnVtcFRhcmdldHMuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJOTU3NDJGNjUwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2ZpbGUuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJOTVDRDQ1NzYwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVH
ZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTVBQjgzNTYwREE0M0MzMDAwQkM4M0Yz
IC8qIFByb2ZpbGVOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjcyOUFEMTY2QUQzNUMw
MDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjcy
OUFFMTY2QUQzNUMwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2Rlcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjEzOTEyOTE2NzcxQzMzMDA5Q0NCMDcgLyogUHJvZmlsZXJCeXRlY29kZVNlcXVl
bmNlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlTGlzdC5qc29uCmluZGV4IDdiNDljNjQuLjkxYTk2YzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KQEAgLTEyMyw4
ICsxMjMsNiBAQAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfdGhyb3ciLCAibGVuZ3RoIiA6
IDIgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3Rocm93X3N0YXRpY19lcnJvciIsICJs
ZW5ndGgiIDogMyB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZGVidWciLCAibGVuZ3Ro
IiA6IDMgfSwKLSAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3Byb2ZpbGVfd2lsbF9jYWxsIiwg
Imxlbmd0aCIgOiAyIH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wcm9maWxlX2RpZF9j
YWxsIiwgImxlbmd0aCIgOiAyIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9lbmQiLCAi
bGVuZ3RoIiA6IDIgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3Byb2ZpbGVfdHlwZSIs
ICJsZW5ndGgiIDogNiB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHJvZmlsZV9jb250
cm9sX2Zsb3ciLCAibGVuZ3RoIiA6IDIgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKaW5kZXggNGExNjcyZS4uN2NmMGQ1NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKQEAgLTYyLDgg
KzYyLDYgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KAogICAgIGNhc2Ugb3Bf
Z2V0X3Njb3BlOgogICAgIGNhc2Ugb3BfdG9fdGhpczoKICAgICBjYXNlIG9wX2NoZWNrX3RkejoK
LSAgICBjYXNlIG9wX3Byb2ZpbGVfd2lsbF9jYWxsOgotICAgIGNhc2Ugb3BfcHJvZmlsZV9kaWRf
Y2FsbDoKICAgICBjYXNlIG9wX3Byb2ZpbGVfdHlwZToKICAgICBjYXNlIG9wX3Rocm93OgogICAg
IGNhc2Ugb3BfZW5kOgpAQCAtMzEyLDggKzMxMCw2IEBAIHZvaWQgY29tcHV0ZURlZnNGb3JCeXRl
Y29kZU9mZnNldChDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnl0ZWNvZGVCYXNpY0Jsb2NrKiBibG9j
CiAgICAgY2FzZSBvcF9jb3B5X3Jlc3Q6CiAgICAgY2FzZSBvcF9wdXRfdG9fc2NvcGU6CiAgICAg
Y2FzZSBvcF9lbmQ6Ci0gICAgY2FzZSBvcF9wcm9maWxlX3dpbGxfY2FsbDoKLSAgICBjYXNlIG9w
X3Byb2ZpbGVfZGlkX2NhbGw6CiAgICAgY2FzZSBvcF90aHJvdzoKICAgICBjYXNlIG9wX3Rocm93
X3N0YXRpY19lcnJvcjoKICAgICBjYXNlIG9wX3NhdmU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDNhODA4Y2IuLjQxZThjZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0xNjU0LDE2ICsx
NjU0LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZSgKICAgICAgICAgICAgIG91dC5w
cmludGYoIiVzLCAlZCIsIHJlZ2lzdGVyTmFtZShjb25kaXRpb24pLmRhdGEoKSwgbGluZSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBjYXNlIG9wX3Byb2ZpbGVfd2ls
bF9jYWxsOiB7Ci0gICAgICAgICAgICBpbnQgZnVuY3Rpb24gPSAoKytpdCktPnUub3BlcmFuZDsK
LSAgICAgICAgICAgIHByaW50TG9jYXRpb25PcEFuZFJlZ2lzdGVyT3BlcmFuZChvdXQsIGV4ZWMs
IGxvY2F0aW9uLCBpdCwgInByb2ZpbGVfd2lsbF9jYWxsIiwgZnVuY3Rpb24pOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBvcF9wcm9maWxlX2RpZF9jYWxsOiB7
Ci0gICAgICAgICAgICBpbnQgZnVuY3Rpb24gPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAg
ICAgIHByaW50TG9jYXRpb25PcEFuZFJlZ2lzdGVyT3BlcmFuZChvdXQsIGV4ZWMsIGxvY2F0aW9u
LCBpdCwgInByb2ZpbGVfZGlkX2NhbGwiLCBmdW5jdGlvbik7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2VuZDogewogICAgICAgICAgICAgaW50IHIwID0g
KCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBwcmludExvY2F0aW9uT3BBbmRSZWdpc3Rl
ck9wZXJhbmQob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQsICJlbmQiLCByMCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlLmNwcAppbmRleCA2NjI3ODg0Li4zNDYxOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgY29uc3QgQ2xhc3NJbmZvIFVubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlOjpzX2luZm8gPSB7ICJVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWIKIAogc3Rh
dGljIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIGdlbmVyYXRlVW5saW5rZWRGdW5jdGlvbkNv
ZGVCbG9jaygKICAgICBWTSYgdm0sIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRh
YmxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsCi0gICAgQ29kZVNwZWNpYWxpemF0aW9uS2lu
ZCBraW5kLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUgcHJvZmlsZXJN
b2RlLAorICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCwgRGVidWdnZXJNb2RlIGRlYnVn
Z2VyTW9kZSwKICAgICBVbmxpbmtlZEZ1bmN0aW9uS2luZCBmdW5jdGlvbktpbmQsIFBhcnNlckVy
cm9yJiBlcnJvciwgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSkKIHsKICAgICBKU1BhcnNlckJ1
aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlID0gZXhlY3V0YWJsZS0+aXNCdWlsdGluRnVuY3Rpb24oKSA/
IEpTUGFyc2VyQnVpbHRpbk1vZGU6OkJ1aWx0aW4gOiBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RC
dWlsdGluOwpAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9j
ayogZ2VuZXJhdGVVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKAogCiAgICAgVW5saW5rZWRGdW5j
dGlvbkNvZGVCbG9jayogcmVzdWx0ID0gVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jazo6Y3JlYXRl
KCZ2bSwgRnVuY3Rpb25Db2RlLCBFeGVjdXRhYmxlSW5mbyhmdW5jdGlvbi0+dXNlc0V2YWwoKSwg
ZnVuY3Rpb24tPmlzU3RyaWN0TW9kZSgpLCBraW5kID09IENvZGVGb3JDb25zdHJ1Y3QsIGZ1bmN0
aW9uS2luZCA9PSBVbmxpbmtlZEJ1aWx0aW5GdW5jdGlvbiwgZXhlY3V0YWJsZS0+Y29uc3RydWN0
b3JLaW5kKCksIGV4ZWN1dGFibGUtPnN1cGVyQmluZGluZygpLCBwYXJzZU1vZGUsIGV4ZWN1dGFi
bGUtPmRlcml2ZWRDb250ZXh0VHlwZSgpLCBmYWxzZSwgaXNDbGFzc0NvbnRleHQsIEV2YWxDb250
ZXh0VHlwZTo6RnVuY3Rpb25FdmFsQ29udGV4dCkpOwogCi0gICAgZXJyb3IgPSBCeXRlY29kZUdl
bmVyYXRvcjo6Z2VuZXJhdGUodm0sIGZ1bmN0aW9uLmdldCgpLCByZXN1bHQsIGRlYnVnZ2VyTW9k
ZSwgcHJvZmlsZXJNb2RlLCBleGVjdXRhYmxlLT5wYXJlbnRTY29wZVREWlZhcmlhYmxlcygpKTsK
KyAgICBlcnJvciA9IEJ5dGVjb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZSh2bSwgZnVuY3Rpb24uZ2V0
KCksIHJlc3VsdCwgZGVidWdnZXJNb2RlLCBleGVjdXRhYmxlLT5wYXJlbnRTY29wZVREWlZhcmlh
YmxlcygpKTsKIAogICAgIGlmIChlcnJvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtMTkxLDcgKzE5MSw3IEBAIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiBVbmxp
bmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6ZnJvbUdsb2JhbENvZGUoCiAKIFVubGlua2VkRnVuY3Rp
b25Db2RlQmxvY2sqIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjp1bmxpbmtlZENvZGVCbG9j
a0ZvcigKICAgICBWTSYgdm0sIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgQ29kZVNwZWNpYWxp
emF0aW9uS2luZCBzcGVjaWFsaXphdGlvbktpbmQsIAotICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dl
ck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUsIFBhcnNlckVycm9yJiBlcnJvciwgU291
cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSkKKyAgICBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQ
YXJzZXJFcnJvciYgZXJyb3IsIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUpCiB7CiAgICAgc3dp
dGNoIChzcGVjaWFsaXphdGlvbktpbmQpIHsKICAgICBjYXNlIENvZGVGb3JDYWxsOgpAQCAtMjA1
LDcgKzIwNSw3IEBAIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIFVubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlOjp1bmxpbmtlZENvZGVCbG9ja0ZvcigKICAgICB9CiAKICAgICBVbmxpbmtlZEZ1
bmN0aW9uQ29kZUJsb2NrKiByZXN1bHQgPSBnZW5lcmF0ZVVubGlua2VkRnVuY3Rpb25Db2RlQmxv
Y2soCi0gICAgICAgIHZtLCB0aGlzLCBzb3VyY2UsIHNwZWNpYWxpemF0aW9uS2luZCwgZGVidWdn
ZXJNb2RlLCBwcm9maWxlck1vZGUsIAorICAgICAgICB2bSwgdGhpcywgc291cmNlLCBzcGVjaWFs
aXphdGlvbktpbmQsIGRlYnVnZ2VyTW9kZSwgCiAgICAgICAgIGlzQnVpbHRpbkZ1bmN0aW9uKCkg
PyBVbmxpbmtlZEJ1aWx0aW5GdW5jdGlvbiA6IFVubGlua2VkTm9ybWFsRnVuY3Rpb24sIAogICAg
ICAgICBlcnJvciwgcGFyc2VNb2RlKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKaW5kZXgg
YjM1OTE5NC4uNjQ2YjBhNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmgKQEAgLTEwMSw3ICsxMDEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbnZhbGlkVHlwZVByb2ZpbGluZ09mZnNldHMoKTsK
IAogICAgIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIHVubGlua2VkQ29kZUJsb2NrRm9yKAot
ICAgICAgICBWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCBE
ZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSwgCisgICAgICAgIFZNJiwgY29uc3QgU291cmNlQ29k
ZSYsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIERlYnVnZ2VyTW9kZSwKICAgICAgICAgUGFyc2Vy
RXJyb3ImLCBTb3VyY2VQYXJzZU1vZGUpOwogCiAgICAgc3RhdGljIFVubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlKiBmcm9tR2xvYmFsQ29kZSgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXggZWMxMTBmOS4u
OTRmMjI0MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTE0Nyw5ICsxNDcsOCBAQCBQYXJzZXJFcnJv
ciBCeXRlY29kZUdlbmVyYXRvcjo6Z2VuZXJhdGUoKQogICAgIHJldHVybiBQYXJzZXJFcnJvcihQ
YXJzZXJFcnJvcjo6RXJyb3JOb25lKTsKIH0KIAotQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2Rl
R2VuZXJhdG9yKFZNJiB2bSwgUHJvZ3JhbU5vZGUqIHByb2dyYW1Ob2RlLCBVbmxpbmtlZFByb2dy
YW1Db2RlQmxvY2sqIGNvZGVCbG9jaywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmls
ZXJNb2RlIHByb2ZpbGVyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogcGFyZW50U2Nv
cGVURFpWYXJpYWJsZXMpCitCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0m
IHZtLCBQcm9ncmFtTm9kZSogcHJvZ3JhbU5vZGUsIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayog
Y29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmly
b25tZW50KiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcykKICAgICA6IG1fc2hvdWxkRW1pdERlYnVn
SG9va3MoT3B0aW9uczo6Zm9yY2VEZWJ1Z2dlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IGRlYnVn
Z2VyTW9kZSA9PSBEZWJ1Z2dlck9uKQotICAgICwgbV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKE9w
dGlvbnM6OmZvcmNlUHJvZmlsZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBwcm9maWxlck1vZGUg
PT0gUHJvZmlsZXJPbikKICAgICAsIG1fc2NvcGVOb2RlKHByb2dyYW1Ob2RlKQogICAgICwgbV9j
b2RlQmxvY2sodm0sIGNvZGVCbG9jaykKICAgICAsIG1fdGhpc1JlZ2lzdGVyKENhbGxGcmFtZTo6
dGhpc0FyZ3VtZW50T2Zmc2V0KCkpCkBAIC0xOTMsOSArMTkyLDggQEAgQnl0ZWNvZGVHZW5lcmF0
b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgUHJvZ3JhbU5vZGUqIHByb2dyYW1Ob2RlLCBV
bmxpbmtlZFAKICAgICB9CiB9CiAKLUJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRv
cihWTSYgdm0sIEZ1bmN0aW9uTm9kZSogZnVuY3Rpb25Ob2RlLCBVbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9k
ZSBwcm9maWxlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHBhcmVudFNjb3BlVERa
VmFyaWFibGVzKQorQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwg
RnVuY3Rpb25Ob2RlKiBmdW5jdGlvbk5vZGUsIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIGNv
ZGVCbG9jaywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9u
bWVudCogcGFyZW50U2NvcGVURFpWYXJpYWJsZXMpCiAgICAgOiBtX3Nob3VsZEVtaXREZWJ1Z0hv
b2tzKE9wdGlvbnM6OmZvcmNlRGVidWdnZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBkZWJ1Z2dl
ck1vZGUgPT0gRGVidWdnZXJPbikKLSAgICAsIG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcyhPcHRp
b25zOjpmb3JjZVByb2ZpbGVyQnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgcHJvZmlsZXJNb2RlID09
IFByb2ZpbGVyT24pCiAgICAgLCBtX3Njb3BlTm9kZShmdW5jdGlvbk5vZGUpCiAgICAgLCBtX2Nv
ZGVCbG9jayh2bSwgY29kZUJsb2NrKQogICAgICwgbV9jb2RlVHlwZShGdW5jdGlvbkNvZGUpCkBA
IC0yMDcsNyArMjA1LDcgQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZN
JiB2bSwgRnVuY3Rpb25Ob2RlKiBmdW5jdGlvbk5vZGUsIFVubGlua2UKICAgICAvLyBvcF93aWxs
X2NhbGwgLyBvcF9kaWRfY2FsbCBwYWlycyBiZWZvcmUgYW5kIGFmdGVyIGEgY2FsbCwgd2hpY2gg
YXJlIG5vdAogICAgIC8vIGNvbXBhdGlibGUgd2l0aCB0YWlsIGNhbGxzICh3ZSBoYXZlIG5vIHdh
eSBvZiBlbWl0dGluZyBvcF9kaWRfY2FsbCkuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0ODgxOQotICAgICwgbV9pblRhaWxQb3NpdGlvbihPcHRpb25z
Ojp1c2VUYWlsQ2FsbHMoKSAmJiAhaXNDb25zdHJ1Y3RvcigpICYmIGNvbnN0cnVjdG9yS2luZCgp
ID09IENvbnN0cnVjdG9yS2luZDo6Tm9uZSAmJiBpc1N0cmljdE1vZGUoKSAmJiAhbV9zaG91bGRF
bWl0UHJvZmlsZUhvb2tzKQorICAgICwgbV9pblRhaWxQb3NpdGlvbihPcHRpb25zOjp1c2VUYWls
Q2FsbHMoKSAmJiAhaXNDb25zdHJ1Y3RvcigpICYmIGNvbnN0cnVjdG9yS2luZCgpID09IENvbnN0
cnVjdG9yS2luZDo6Tm9uZSAmJiBpc1N0cmljdE1vZGUoKSkKICAgICAsIG1fbmVlZHNUb1VwZGF0
ZUFycm93RnVuY3Rpb25Db250ZXh0KGZ1bmN0aW9uTm9kZS0+dXNlc0Fycm93RnVuY3Rpb24oKSB8
fCBmdW5jdGlvbk5vZGUtPnVzZXNFdmFsKCkpCiAgICAgLCBtX2Rlcml2ZWRDb250ZXh0VHlwZShj
b2RlQmxvY2stPmRlcml2ZWRDb250ZXh0VHlwZSgpKQogewpAQCAtNTk0LDkgKzU5Miw4IEBAIEJ5
dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIEZ1bmN0aW9uTm9kZSog
ZnVuY3Rpb25Ob2RlLCBVbmxpbmtlCiAgICAgcHVzaExleGljYWxTY29wZShtX3Njb3BlTm9kZSwg
VERaQ2hlY2tPcHRpbWl6YXRpb246Ok9wdGltaXplLCBOZXN0ZWRTY29wZVR5cGU6OklzTm90TmVz
dGVkLCBudWxscHRyLCBzaG91bGRJbml0aWFsaXplQmxvY2tTY29wZWRGdW5jdGlvbnMpOwogfQog
Ci1CeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBFdmFsTm9kZSog
ZXZhbE5vZGUsIFVubGlua2VkRXZhbENvZGVCbG9jayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUg
ZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVu
dmlyb25tZW50KiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcykKK0J5dGVjb2RlR2VuZXJhdG9yOjpC
eXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIEV2YWxOb2RlKiBldmFsTm9kZSwgVW5saW5rZWRFdmFs
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIGNvbnN0IFZh
cmlhYmxlRW52aXJvbm1lbnQqIHBhcmVudFNjb3BlVERaVmFyaWFibGVzKQogICAgIDogbV9zaG91
bGRFbWl0RGVidWdIb29rcyhPcHRpb25zOjpmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9u
KCkgfHwgZGVidWdnZXJNb2RlID09IERlYnVnZ2VyT24pCi0gICAgLCBtX3Nob3VsZEVtaXRQcm9m
aWxlSG9va3MoT3B0aW9uczo6Zm9yY2VQcm9maWxlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IHBy
b2ZpbGVyTW9kZSA9PSBQcm9maWxlck9uKQogICAgICwgbV9zY29wZU5vZGUoZXZhbE5vZGUpCiAg
ICAgLCBtX2NvZGVCbG9jayh2bSwgY29kZUJsb2NrKQogICAgICwgbV90aGlzUmVnaXN0ZXIoQ2Fs
bEZyYW1lOjp0aGlzQXJndW1lbnRPZmZzZXQoKSkKQEAgLTY1Miw5ICs2NDksOCBAQCBCeXRlY29k
ZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBFdmFsTm9kZSogZXZhbE5vZGUs
IFVubGlua2VkRXZhbENvZAogICAgIHB1c2hMZXhpY2FsU2NvcGUobV9zY29wZU5vZGUsIFREWkNo
ZWNrT3B0aW1pemF0aW9uOjpPcHRpbWl6ZSwgTmVzdGVkU2NvcGVUeXBlOjpJc05vdE5lc3RlZCwg
bnVsbHB0ciwgc2hvdWxkSW5pdGlhbGl6ZUJsb2NrU2NvcGVkRnVuY3Rpb25zKTsKIH0KIAotQnl0
ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgTW9kdWxlUHJvZ3JhbU5v
ZGUqIG1vZHVsZVByb2dyYW1Ob2RlLCBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIGNv
ZGVCbG9jaywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHByb2ZpbGVy
TW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogcGFyZW50U2NvcGVURFpWYXJpYWJsZXMp
CitCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBNb2R1bGVQcm9n
cmFtTm9kZSogbW9kdWxlUHJvZ3JhbU5vZGUsIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9j
ayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVu
dmlyb25tZW50KiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcykKICAgICA6IG1fc2hvdWxkRW1pdERl
YnVnSG9va3MoT3B0aW9uczo6Zm9yY2VEZWJ1Z2dlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IGRl
YnVnZ2VyTW9kZSA9PSBEZWJ1Z2dlck9uKQotICAgICwgbV9zaG91bGRFbWl0UHJvZmlsZUhvb2tz
KE9wdGlvbnM6OmZvcmNlUHJvZmlsZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBwcm9maWxlck1v
ZGUgPT0gUHJvZmlsZXJPbikKICAgICAsIG1fc2NvcGVOb2RlKG1vZHVsZVByb2dyYW1Ob2RlKQog
ICAgICwgbV9jb2RlQmxvY2sodm0sIGNvZGVCbG9jaykKICAgICAsIG1fdGhpc1JlZ2lzdGVyKENh
bGxGcmFtZTo6dGhpc0FyZ3VtZW50T2Zmc2V0KCkpCkBAIC0zMDUzLDkgKzMwNDksNiBAQCBSZWdp
c3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGwoT3Bjb2RlSUQgb3Bjb2RlSUQsIFJl
Z2lzdGVySUQqIGRzdCwgUmVnaQogICAgIEFTU0VSVChvcGNvZGVJRCA9PSBvcF9jYWxsIHx8IG9w
Y29kZUlEID09IG9wX2NhbGxfZXZhbCB8fCBvcGNvZGVJRCA9PSBvcF90YWlsX2NhbGwpOwogICAg
IEFTU0VSVChmdW5jLT5yZWZDb3VudCgpKTsKICAgICAKLSAgICBpZiAobV9zaG91bGRFbWl0UHJv
ZmlsZUhvb2tzKQotICAgICAgICBlbWl0TW92ZShjYWxsQXJndW1lbnRzLnByb2ZpbGVIb29rUmVn
aXN0ZXIoKSwgZnVuYyk7Ci0KICAgICAvLyBHZW5lcmF0ZSBjb2RlIGZvciBhcmd1bWVudHMuCiAg
ICAgdW5zaWduZWQgYXJndW1lbnQgPSAwOwogICAgIGlmIChjYWxsQXJndW1lbnRzLmFyZ3VtZW50
c05vZGUoKSkgewpAQCAtMzA2Niw3ICszMDU5LDcgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRDYWxsKE9wY29kZUlEIG9wY29kZUlELCBSZWdpc3RlcklEKiBkc3QsIFJlZ2kK
ICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBhcmd1bWVudFJlZ2lzdGVyOwogICAgICAg
ICAgICAgYXJndW1lbnRSZWdpc3RlciA9IGV4cHJlc3Npb24tPmVtaXRCeXRlY29kZSgqdGhpcywg
Y2FsbEFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVyKDApKTsKICAgICAgICAgICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiB0aGlzUmVnaXN0ZXIgPSBlbWl0TW92ZShuZXdUZW1wb3JhcnkoKSwgY2FsbEFy
Z3VtZW50cy50aGlzUmVnaXN0ZXIoKSk7Ci0gICAgICAgICAgICByZXR1cm4gZW1pdENhbGxWYXJh
cmdzKG9wY29kZUlEID09IG9wX3RhaWxfY2FsbCA/IG9wX3RhaWxfY2FsbF92YXJhcmdzIDogb3Bf
Y2FsbF92YXJhcmdzLCBkc3QsIGZ1bmMsIGNhbGxBcmd1bWVudHMudGhpc1JlZ2lzdGVyKCksIGFy
Z3VtZW50UmVnaXN0ZXIuZ2V0KCksIG5ld1RlbXBvcmFyeSgpLCAwLCBjYWxsQXJndW1lbnRzLnBy
b2ZpbGVIb29rUmVnaXN0ZXIoKSwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKKyAgICAg
ICAgICAgIHJldHVybiBlbWl0Q2FsbFZhcmFyZ3Mob3Bjb2RlSUQgPT0gb3BfdGFpbF9jYWxsID8g
b3BfdGFpbF9jYWxsX3ZhcmFyZ3MgOiBvcF9jYWxsX3ZhcmFyZ3MsIGRzdCwgZnVuYywgY2FsbEFy
Z3VtZW50cy50aGlzUmVnaXN0ZXIoKSwgYXJndW1lbnRSZWdpc3Rlci5nZXQoKSwgbmV3VGVtcG9y
YXJ5KCksIDAsIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7CiAgICAgICAgIH0KICAgICAg
ICAgZm9yICg7IG47IG4gPSBuLT5tX25leHQpCiAgICAgICAgICAgICBlbWl0Tm9kZShjYWxsQXJn
dW1lbnRzLmFyZ3VtZW50UmVnaXN0ZXIoYXJndW1lbnQrKyksIG4pOwpAQCAtMzA3NywxMSArMzA3
MCw2IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbChPcGNvZGVJRCBv
cGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpCiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBK
U1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplOyArK2kpCiAgICAgICAgIGNhbGxGcmFtZS5hcHBl
bmQobmV3VGVtcG9yYXJ5KCkpOwogCi0gICAgaWYgKG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcykg
ewotICAgICAgICBlbWl0T3Bjb2RlKG9wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKLSAgICAgICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKGNhbGxBcmd1bWVudHMucHJvZmlsZUhvb2tSZWdpc3RlcigpLT5p
bmRleCgpKTsKLSAgICB9Ci0KICAgICBlbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QsIGRpdm90U3Rh
cnQsIGRpdm90RW5kKTsKIAogICAgIFJlZlB0cjxMYWJlbD4gZG9uZSA9IG5ld0xhYmVsKCk7CkBA
IC0zMTA3LDM3ICszMDk1LDI2IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
Q2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpCiAgICAgaWYgKGV4
cGVjdGVkRnVuY3Rpb24gIT0gTm9FeHBlY3RlZEZ1bmN0aW9uKQogICAgICAgICBlbWl0TGFiZWwo
ZG9uZS5nZXQoKSk7CiAKLSAgICBpZiAobV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7Ci0gICAg
ICAgIGVtaXRPcGNvZGUob3BfcHJvZmlsZV9kaWRfY2FsbCk7Ci0gICAgICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZChjYWxsQXJndW1lbnRzLnByb2ZpbGVIb29rUmVnaXN0ZXIoKS0+aW5kZXgoKSk7
Ci0gICAgfQotCiAgICAgcmV0dXJuIGRzdDsKIH0KIAotUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRDYWxsVmFyYXJncyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMs
IFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3Rl
cklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgUmVnaXN0
ZXJJRCogcHJvZmlsZUhvb2tSZWdpc3RlciwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90RW5kKQorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsVmFyYXJncyhS
ZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3Rl
ciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3Rlciwg
aW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90RW5kKQogewotICAgIHJldHVybiBlbWl0Q2FsbFZhcmFyZ3Mob3BfY2FsbF92YXJhcmdzLCBk
c3QsIGZ1bmMsIHRoaXNSZWdpc3RlciwgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdpc3RlciwgZmly
c3RWYXJBcmdPZmZzZXQsIHByb2ZpbGVIb29rUmVnaXN0ZXIsIGRpdm90LCBkaXZvdFN0YXJ0LCBk
aXZvdEVuZCk7CisgICAgcmV0dXJuIGVtaXRDYWxsVmFyYXJncyhvcF9jYWxsX3ZhcmFyZ3MsIGRz
dCwgZnVuYywgdGhpc1JlZ2lzdGVyLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyLCBmaXJz
dFZhckFyZ09mZnNldCwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKIH0KIAotUmVnaXN0
ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsVmFyYXJnc0luVGFpbFBvc2l0aW9uKFJl
Z2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVy
LCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBp
bnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVy
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCitSZWdpc3RlcklEKiBCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRpb24oUmVnaXN0ZXJJRCog
ZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVy
SUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmly
c3RWYXJBcmdPZmZzZXQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKIHsK
LSAgICByZXR1cm4gZW1pdENhbGxWYXJhcmdzKG1faW5UYWlsUG9zaXRpb24gPyBvcF90YWlsX2Nh
bGxfdmFyYXJncyA6IG9wX2NhbGxfdmFyYXJncywgZHN0LCBmdW5jLCB0aGlzUmVnaXN0ZXIsIGFy
Z3VtZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIsIGZpcnN0VmFyQXJnT2Zmc2V0LCBwcm9maWxlSG9v
a1JlZ2lzdGVyLCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOworICAgIHJldHVybiBlbWl0
Q2FsbFZhcmFyZ3MobV9pblRhaWxQb3NpdGlvbiA/IG9wX3RhaWxfY2FsbF92YXJhcmdzIDogb3Bf
Y2FsbF92YXJhcmdzLCBkc3QsIGZ1bmMsIHRoaXNSZWdpc3RlciwgYXJndW1lbnRzLCBmaXJzdEZy
ZWVSZWdpc3RlciwgZmlyc3RWYXJBcmdPZmZzZXQsIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVu
ZCk7CiB9CiAKLVJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q29uc3RydWN0VmFy
YXJncyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNS
ZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdp
c3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgUmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tS
ZWdpc3RlciwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQorUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3RWYXJhcmdzKFJlZ2lzdGVySUQqIGRz
dCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklE
KiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0
VmFyQXJnT2Zmc2V0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBv
c2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCiB7Ci0g
ICAgcmV0dXJuIGVtaXRDYWxsVmFyYXJncyhvcF9jb25zdHJ1Y3RfdmFyYXJncywgZHN0LCBmdW5j
LCB0aGlzUmVnaXN0ZXIsIGFyZ3VtZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIsIGZpcnN0VmFyQXJn
T2Zmc2V0LCBwcm9maWxlSG9va1JlZ2lzdGVyLCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQp
OworICAgIHJldHVybiBlbWl0Q2FsbFZhcmFyZ3Mob3BfY29uc3RydWN0X3ZhcmFyZ3MsIGRzdCwg
ZnVuYywgdGhpc1JlZ2lzdGVyLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyLCBmaXJzdFZh
ckFyZ09mZnNldCwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKIH0KICAgICAKLVJlZ2lz
dGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3MoT3Bjb2RlSUQgb3Bjb2Rl
LCBSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdp
c3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3Rl
ciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgUmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tSZWdp
c3RlciwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQorUmVnaXN0ZXJJRCog
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsVmFyYXJncyhPcGNvZGVJRCBvcGNvZGUsIFJlZ2lz
dGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBS
ZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQz
Ml90IGZpcnN0VmFyQXJnT2Zmc2V0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RF
bmQpCiB7Ci0gICAgaWYgKG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcykgewotICAgICAgICBlbWl0
TW92ZShwcm9maWxlSG9va1JlZ2lzdGVyLCBmdW5jKTsKLSAgICAgICAgZW1pdE9wY29kZShvcF9w
cm9maWxlX3dpbGxfY2FsbCk7Ci0gICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChwcm9maWxl
SG9va1JlZ2lzdGVyLT5pbmRleCgpKTsKLSAgICB9Ci0gICAgCiAgICAgZW1pdEV4cHJlc3Npb25J
bmZvKGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7CiAKICAgICBpZiAob3Bjb2RlID09IG9w
X3RhaWxfY2FsbF92YXJhcmdzKQpAQCAtMzE1NSwxMCArMzEzMiw2IEBAIFJlZ2lzdGVySUQqIEJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3MoT3Bjb2RlSUQgb3Bjb2RlLCBSZWdpc3Rl
cklEKiBkc3QsCiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGZpcnN0VmFyQXJnT2Zmc2V0KTsK
ICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYXJyYXlQcm9maWxlKTsKICAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQocHJvZmlsZSk7Ci0gICAgaWYgKG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcykg
ewotICAgICAgICBlbWl0T3Bjb2RlKG9wX3Byb2ZpbGVfZGlkX2NhbGwpOwotICAgICAgICBpbnN0
cnVjdGlvbnMoKS5hcHBlbmQocHJvZmlsZUhvb2tSZWdpc3Rlci0+aW5kZXgoKSk7Ci0gICAgfQog
ICAgIHJldHVybiBkc3Q7CiB9CiAKQEAgLTMyNDksOSArMzIyMiw2IEBAIFJlZ2lzdGVySUQqIEJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0Q29uc3RydWN0KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJ
RCogZnVuYywKIHsKICAgICBBU1NFUlQoZnVuYy0+cmVmQ291bnQoKSk7CiAKLSAgICBpZiAobV9z
aG91bGRFbWl0UHJvZmlsZUhvb2tzKQotICAgICAgICBlbWl0TW92ZShjYWxsQXJndW1lbnRzLnBy
b2ZpbGVIb29rUmVnaXN0ZXIoKSwgZnVuYyk7Ci0KICAgICAvLyBHZW5lcmF0ZSBjb2RlIGZvciBh
cmd1bWVudHMuCiAgICAgdW5zaWduZWQgYXJndW1lbnQgPSAwOwogICAgIGlmIChBcmd1bWVudHNO
b2RlKiBhcmd1bWVudHNOb2RlID0gY2FsbEFyZ3VtZW50cy5hcmd1bWVudHNOb2RlKCkpIHsKQEAg
LTMyNjIsMTggKzMyMzIsMTMgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRD
b25zdHJ1Y3QoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLAogICAgICAgICAgICAg
YXV0byBleHByZXNzaW9uID0gc3RhdGljX2Nhc3Q8U3ByZWFkRXhwcmVzc2lvbk5vZGUqPihuLT5t
X2V4cHIpLT5leHByZXNzaW9uKCk7CiAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYXJn
dW1lbnRSZWdpc3RlcjsKICAgICAgICAgICAgIGFyZ3VtZW50UmVnaXN0ZXIgPSBleHByZXNzaW9u
LT5lbWl0Qnl0ZWNvZGUoKnRoaXMsIGNhbGxBcmd1bWVudHMuYXJndW1lbnRSZWdpc3RlcigwKSk7
Ci0gICAgICAgICAgICByZXR1cm4gZW1pdENvbnN0cnVjdFZhcmFyZ3MoZHN0LCBmdW5jLCBjYWxs
QXJndW1lbnRzLnRoaXNSZWdpc3RlcigpLCBhcmd1bWVudFJlZ2lzdGVyLmdldCgpLCBuZXdUZW1w
b3JhcnkoKSwgMCwgY2FsbEFyZ3VtZW50cy5wcm9maWxlSG9va1JlZ2lzdGVyKCksIGRpdm90LCBk
aXZvdFN0YXJ0LCBkaXZvdEVuZCk7CisgICAgICAgICAgICByZXR1cm4gZW1pdENvbnN0cnVjdFZh
cmFyZ3MoZHN0LCBmdW5jLCBjYWxsQXJndW1lbnRzLnRoaXNSZWdpc3RlcigpLCBhcmd1bWVudFJl
Z2lzdGVyLmdldCgpLCBuZXdUZW1wb3JhcnkoKSwgMCwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90
RW5kKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgZm9yIChBcmd1bWVudExpc3ROb2Rl
KiBuID0gYXJndW1lbnRzTm9kZS0+bV9saXN0Tm9kZTsgbjsgbiA9IG4tPm1fbmV4dCkKICAgICAg
ICAgICAgIGVtaXROb2RlKGNhbGxBcmd1bWVudHMuYXJndW1lbnRSZWdpc3Rlcihhcmd1bWVudCsr
KSwgbik7CiAgICAgfQogCi0gICAgaWYgKG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcykgewotICAg
ICAgICBlbWl0T3Bjb2RlKG9wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKLSAgICAgICAgaW5zdHJ1Y3Rp
b25zKCkuYXBwZW5kKGNhbGxBcmd1bWVudHMucHJvZmlsZUhvb2tSZWdpc3RlcigpLT5pbmRleCgp
KTsKLSAgICB9Ci0KICAgICAvLyBSZXNlcnZlIHNwYWNlIGZvciBjYWxsIGZyYW1lLgogICAgIFZl
Y3RvcjxSZWZQdHI8UmVnaXN0ZXJJRD4sIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemUsIFVu
c2FmZVZlY3Rvck92ZXJmbG93PiBjYWxsRnJhbWU7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBK
U1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplOyArK2kpCkBAIC0zMjk4LDExICszMjYzLDYgQEAg
UmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3QoUmVnaXN0ZXJJRCog
ZHN0LCBSZWdpc3RlcklEKiBmdW5jLAogICAgIGlmIChleHBlY3RlZEZ1bmN0aW9uICE9IE5vRXhw
ZWN0ZWRGdW5jdGlvbikKICAgICAgICAgZW1pdExhYmVsKGRvbmUuZ2V0KCkpOwogCi0gICAgaWYg
KG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcykgewotICAgICAgICBlbWl0T3Bjb2RlKG9wX3Byb2Zp
bGVfZGlkX2NhbGwpOwotICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoY2FsbEFyZ3VtZW50
cy5wcm9maWxlSG9va1JlZ2lzdGVyKCktPmluZGV4KCkpOwotICAgIH0KLQogICAgIHJldHVybiBk
c3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRleCA5OWJjNzk3Li4yMmNlNGEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
CkBAIC03NSwxMSArNzUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCog
YXJndW1lbnRSZWdpc3Rlcih1bnNpZ25lZCBpKSB7IHJldHVybiBtX2FyZ3ZbaSArIDFdLmdldCgp
OyB9CiAgICAgICAgIHVuc2lnbmVkIHN0YWNrT2Zmc2V0KCkgeyByZXR1cm4gLW1fYXJndlswXS0+
aW5kZXgoKSArIEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7IH0KICAgICAgICAgdW5zaWdu
ZWQgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoKSB7IHJldHVybiBtX2FyZ3Yuc2l6ZSgpIC0g
bV9wYWRkaW5nOyB9Ci0gICAgICAgIFJlZ2lzdGVySUQqIHByb2ZpbGVIb29rUmVnaXN0ZXIoKSB7
IHJldHVybiBtX3Byb2ZpbGVIb29rUmVnaXN0ZXIuZ2V0KCk7IH0KICAgICAgICAgQXJndW1lbnRz
Tm9kZSogYXJndW1lbnRzTm9kZSgpIHsgcmV0dXJuIG1fYXJndW1lbnRzTm9kZTsgfQogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IG1fcHJvZmlsZUhvb2tSZWdpc3Rl
cjsKICAgICAgICAgQXJndW1lbnRzTm9kZSogbV9hcmd1bWVudHNOb2RlOwogICAgICAgICBWZWN0
b3I8UmVmUHRyPFJlZ2lzdGVySUQ+LCA4LCBVbnNhZmVWZWN0b3JPdmVyZmxvdz4gbV9hcmd2Owog
ICAgICAgICB1bnNpZ25lZCBtX3BhZGRpbmc7CkBAIC0yNjksMTAgKzI2NywxMCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgRGVjbGFyYXRpb25TdGFja3M6
OkZ1bmN0aW9uU3RhY2sgRnVuY3Rpb25TdGFjazsKIAotICAgICAgICBCeXRlY29kZUdlbmVyYXRv
cihWTSYsIFByb2dyYW1Ob2RlKiwgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiwgRGVidWdnZXJN
b2RlLCBQcm9maWxlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKLSAgICAgICAg
Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mLCBGdW5jdGlvbk5vZGUqLCBVbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrKiwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJv
bm1lbnQqKTsKLSAgICAgICAgQnl0ZWNvZGVHZW5lcmF0b3IoVk0mLCBFdmFsTm9kZSosIFVubGlu
a2VkRXZhbENvZGVCbG9jayosIERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBjb25zdCBWYXJp
YWJsZUVudmlyb25tZW50Kik7Ci0gICAgICAgIEJ5dGVjb2RlR2VuZXJhdG9yKFZNJiwgTW9kdWxl
UHJvZ3JhbU5vZGUqLCBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqLCBEZWJ1Z2dlck1v
ZGUsIFByb2ZpbGVyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOworICAgICAgICBC
eXRlY29kZUdlbmVyYXRvcihWTSYsIFByb2dyYW1Ob2RlKiwgVW5saW5rZWRQcm9ncmFtQ29kZUJs
b2NrKiwgRGVidWdnZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7CisgICAgICAg
IEJ5dGVjb2RlR2VuZXJhdG9yKFZNJiwgRnVuY3Rpb25Ob2RlKiwgVW5saW5rZWRGdW5jdGlvbkNv
ZGVCbG9jayosIERlYnVnZ2VyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOworICAg
ICAgICBCeXRlY29kZUdlbmVyYXRvcihWTSYsIEV2YWxOb2RlKiwgVW5saW5rZWRFdmFsQ29kZUJs
b2NrKiwgRGVidWdnZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7CisgICAgICAg
IEJ5dGVjb2RlR2VuZXJhdG9yKFZNJiwgTW9kdWxlUHJvZ3JhbU5vZGUqLCBVbmxpbmtlZE1vZHVs
ZVByb2dyYW1Db2RlQmxvY2sqLCBEZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1l
bnQqKTsKIAogICAgICAgICB+Qnl0ZWNvZGVHZW5lcmF0b3IoKTsKICAgICAgICAgCkBAIC01Nzcs
OCArNTc1LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRDYWxs
KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgRXhwZWN0ZWRGdW5jdGlvbiwgQ2Fs
bEFyZ3VtZW50cyYsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAgICAg
ICAgIFJlZ2lzdGVySUQqIGVtaXRDYWxsSW5UYWlsUG9zaXRpb24oUmVnaXN0ZXJJRCogZHN0LCBS
ZWdpc3RlcklEKiBmdW5jLCBFeHBlY3RlZEZ1bmN0aW9uLCBDYWxsQXJndW1lbnRzJiwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dENhbGxFdmFsKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgQ2FsbEFyZ3VtZW50
cyYsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7Ci0gICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRDYWxsVmFyYXJncyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMs
IFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3Rl
cklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgUmVnaXN0
ZXJJRCogcHJvZmlsZUhvb2tSZWdpc3RlciwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90RW5kKTsKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRp
b24oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVn
aXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0
ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIFJlZ2lzdGVySUQqIHByb2ZpbGVIb29rUmVn
aXN0ZXIsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXRDYWxsVmFyYXJncyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1
bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdp
c3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFy
dCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKKyAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRpb24oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywg
UmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAKICAgICAgICAgZW51bSBQ
cm9wZXJ0eURlc2NyaXB0b3JPcHRpb24gewogICAgICAgICAgICAgUHJvcGVydHlDb25maWd1cmFi
bGUgPSAxLApAQCAtNzA0LDcgKzcwMiw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIENv
ZGVUeXBlIGNvZGVUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlVHlwZTsgfQogCi0gICAgICAg
IGJvb2wgc2hvdWxkRW1pdFByb2ZpbGVIb29rcygpIHsgcmV0dXJuIG1fc2hvdWxkRW1pdFByb2Zp
bGVIb29rczsgfQogICAgICAgICBib29sIHNob3VsZEVtaXREZWJ1Z0hvb2tzKCkgeyByZXR1cm4g
bV9zaG91bGRFbWl0RGVidWdIb29rczsgfQogICAgICAgICAKICAgICAgICAgYm9vbCBpc1N0cmlj
dE1vZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGVCbG9jay0+aXNTdHJpY3RNb2RlKCk7IH0KQEAg
LTg0OSw4ICs4NDYsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICB2b2lkIGdldFZhcmlh
Ymxlc1VuZGVyVERaKFZhcmlhYmxlRW52aXJvbm1lbnQmKTsKIAotICAgICAgICBSZWdpc3RlcklE
KiBlbWl0Q29uc3RydWN0VmFyYXJncyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMs
IFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3Rl
cklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgUmVnaXN0
ZXJJRCogcHJvZmlsZUhvb2tSZWdpc3RlciwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90RW5kKTsKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENhbGxWYXJhcmdzKE9wY29kZUlELCBS
ZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3Rl
ciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3Rlciwg
aW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgUmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tSZWdpc3Rl
ciwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKKyAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdENvbnN0cnVjdFZhcmFyZ3MoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBm
dW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVn
aXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3Rh
cnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRDYWxsVmFyYXJncyhPcGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBm
dW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVn
aXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3Rh
cnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAgICAgICAgIAogICAgICAgICB2
b2lkIGVtaXRMb2dTaGFkb3dDaGlja2VuUHJvbG9ndWVJZk5lY2Vzc2FyeSgpOwogICAgICAgICB2
b2lkIGVtaXRMb2dTaGFkb3dDaGlja2VuVGFpbElmTmVjZXNzYXJ5KCk7CkBAIC04NzIsNyArODY5
LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFZlY3RvcjxVbmxpbmtlZEluc3RydWN0aW9u
LCAwLCBVbnNhZmVWZWN0b3JPdmVyZmxvdz4gbV9pbnN0cnVjdGlvbnM7CiAKICAgICAgICAgYm9v
bCBtX3Nob3VsZEVtaXREZWJ1Z0hvb2tzOwotICAgICAgICBib29sIG1fc2hvdWxkRW1pdFByb2Zp
bGVIb29rczsKIAogICAgICAgICBzdHJ1Y3QgU3ltYm9sVGFibGVTdGFja0VudHJ5IHsKICAgICAg
ICAgICAgIFN5bWJvbFRhYmxlKiBtX3N5bWJvbFRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IGYyNTMwZWUuLjNi
YmQyZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05v
ZGVzQ29kZWdlbi5jcHAKQEAgLTcwNyw5ICs3MDcsNiBAQCBDYWxsQXJndW1lbnRzOjpDYWxsQXJn
dW1lbnRzKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIEFyZ3VtZW50c05vZGUqIGFyZ3Vt
ZQogICAgIDogbV9hcmd1bWVudHNOb2RlKGFyZ3VtZW50c05vZGUpCiAgICAgLCBtX3BhZGRpbmco
MCkKIHsKLSAgICBpZiAoZ2VuZXJhdG9yLnNob3VsZEVtaXRQcm9maWxlSG9va3MoKSkKLSAgICAg
ICAgbV9wcm9maWxlSG9va1JlZ2lzdGVyID0gZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpOwotCiAg
ICAgc2l6ZV90IGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID0gMSArIGFkZGl0aW9uYWxBcmd1
bWVudHM7IC8vICd0aGlzJyByZWdpc3Rlci4KICAgICBpZiAoYXJndW1lbnRzTm9kZSkgewogICAg
ICAgICBmb3IgKEFyZ3VtZW50TGlzdE5vZGUqIG5vZGUgPSBhcmd1bWVudHNOb2RlLT5tX2xpc3RO
b2RlOyBub2RlOyBub2RlID0gbm9kZS0+bV9uZXh0KQpAQCAtMTAyMSwxNiArMTAxOCwxMyBAQCBS
ZWdpc3RlcklEKiBDYWxsRnVuY3Rpb25DYWxsRG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2Rl
R2VuZXJhdG9yJiBnZW5lcmF0b3IsCiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJldHVyblZhbHVl
ID0gZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KTsKICAgICB7CiAgICAgICAgIGlmICht
X2FyZ3MtPm1fbGlzdE5vZGUgJiYgbV9hcmdzLT5tX2xpc3ROb2RlLT5tX2V4cHIgJiYgbV9hcmdz
LT5tX2xpc3ROb2RlLT5tX2V4cHItPmlzU3ByZWFkRXhwcmVzc2lvbigpKSB7Ci0gICAgICAgICAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvZmlsZUhvb2tSZWdpc3RlcjsKLSAgICAgICAgICAgIGlm
IChnZW5lcmF0b3Iuc2hvdWxkRW1pdFByb2ZpbGVIb29rcygpKQotICAgICAgICAgICAgICAgIHBy
b2ZpbGVIb29rUmVnaXN0ZXIgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CiAgICAgICAgICAg
ICBTcHJlYWRFeHByZXNzaW9uTm9kZSogc3ByZWFkID0gc3RhdGljX2Nhc3Q8U3ByZWFkRXhwcmVz
c2lvbk5vZGUqPihtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fZXhwcik7CiAgICAgICAgICAgICBFeHBy
ZXNzaW9uTm9kZSogc3ViamVjdCA9IHNwcmVhZC0+ZXhwcmVzc2lvbigpOwogICAgICAgICAgICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IGFyZ3VtZW50c1JlZ2lzdGVyOwogICAgICAgICAgICAgYXJndW1l
bnRzUmVnaXN0ZXIgPSBnZW5lcmF0b3IuZW1pdE5vZGUoc3ViamVjdCk7CiAgICAgICAgICAgICBn
ZW5lcmF0b3IuZW1pdEV4cHJlc3Npb25JbmZvKHNwcmVhZC0+ZGl2b3QoKSwgc3ByZWFkLT5kaXZv
dFN0YXJ0KCksIHNwcmVhZC0+ZGl2b3RFbmQoKSk7CiAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0
ZXJJRD4gdGhpc1JlZ2lzdGVyID0gZ2VuZXJhdG9yLmVtaXRHZXRCeVZhbChnZW5lcmF0b3IubmV3
VGVtcG9yYXJ5KCksIGFyZ3VtZW50c1JlZ2lzdGVyLmdldCgpLCBnZW5lcmF0b3IuZW1pdExvYWQo
MCwganNOdW1iZXIoMCkpKTsKLSAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0Q2FsbFZhcmFyZ3NJ
blRhaWxQb3NpdGlvbihyZXR1cm5WYWx1ZS5nZXQoKSwgYmFzZS5nZXQoKSwgdGhpc1JlZ2lzdGVy
LmdldCgpLCBhcmd1bWVudHNSZWdpc3Rlci5nZXQoKSwgZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgp
LCAxLCBwcm9maWxlSG9va1JlZ2lzdGVyLmdldCgpLCBkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRp
dm90RW5kKCkpOworICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRDYWxsVmFyYXJnc0luVGFpbFBv
c2l0aW9uKHJldHVyblZhbHVlLmdldCgpLCBiYXNlLmdldCgpLCB0aGlzUmVnaXN0ZXIuZ2V0KCks
IGFyZ3VtZW50c1JlZ2lzdGVyLmdldCgpLCBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIDEsIGRp
dm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAobV9h
cmdzLT5tX2xpc3ROb2RlICYmIG1fYXJncy0+bV9saXN0Tm9kZS0+bV9leHByKSB7CiAgICAgICAg
ICAgICBBcmd1bWVudExpc3ROb2RlKiBvbGRMaXN0ID0gbV9hcmdzLT5tX2xpc3ROb2RlOwogICAg
ICAgICAgICAgbV9hcmdzLT5tX2xpc3ROb2RlID0gbV9hcmdzLT5tX2xpc3ROb2RlLT5tX25leHQ7
CkBAIC0xMDk0LDkgKzEwODgsNiBAQCBSZWdpc3RlcklEKiBBcHBseUZ1bmN0aW9uQ2FsbERvdE5v
ZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLAogICAgICAgICAg
ICAgQXJndW1lbnRMaXN0Tm9kZSogb2xkTGlzdCA9IG1fYXJncy0+bV9saXN0Tm9kZTsKICAgICAg
ICAgICAgIGlmIChtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fZXhwci0+aXNTcHJlYWRFeHByZXNzaW9u
KCkpIHsKICAgICAgICAgICAgICAgICBTcHJlYWRFeHByZXNzaW9uTm9kZSogc3ByZWFkID0gc3Rh
dGljX2Nhc3Q8U3ByZWFkRXhwcmVzc2lvbk5vZGUqPihtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fZXhw
cik7Ci0gICAgICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb2ZpbGVIb29rUmVnaXN0
ZXI7Ci0gICAgICAgICAgICAgICAgaWYgKGdlbmVyYXRvci5zaG91bGRFbWl0UHJvZmlsZUhvb2tz
KCkpCi0gICAgICAgICAgICAgICAgICAgIHByb2ZpbGVIb29rUmVnaXN0ZXIgPSBnZW5lcmF0b3Iu
bmV3VGVtcG9yYXJ5KCk7CiAgICAgICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHJlYWxG
dW5jdGlvbiA9IGdlbmVyYXRvci5lbWl0TW92ZShnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGJh
c2UuZ2V0KCkpOwogICAgICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBpbmRleCA9IGdl
bmVyYXRvci5lbWl0TG9hZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGpzTnVtYmVyKDApKTsK
ICAgICAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdGhpc1JlZ2lzdGVyID0gZ2VuZXJh
dG9yLmVtaXRMb2FkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwganNVbmRlZmluZWQoKSk7CkBA
IC0xMTIwLDcgKzExMTEsNyBAQCBSZWdpc3RlcklEKiBBcHBseUZ1bmN0aW9uQ2FsbERvdE5vZGU6
OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLAogICAgICAgICAgICAg
ICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKGVuZC5nZXQoKSk7CiAgICAgICAgICAgICAgICAg
fTsKICAgICAgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdEVudW1lcmF0aW9uKHRoaXMsIHNwcmVh
ZC0+ZXhwcmVzc2lvbigpLCBleHRyYWN0b3IpOwotICAgICAgICAgICAgICAgIGdlbmVyYXRvci5l
bWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlvbihyZXR1cm5WYWx1ZS5nZXQoKSwgcmVhbEZ1bmN0
aW9uLmdldCgpLCB0aGlzUmVnaXN0ZXIuZ2V0KCksIGFyZ3VtZW50c1JlZ2lzdGVyLmdldCgpLCBn
ZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIDAsIHByb2ZpbGVIb29rUmVnaXN0ZXIuZ2V0KCksIGRp
dm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgICAgICAgICAgICAgZ2VuZXJh
dG9yLmVtaXRDYWxsVmFyYXJnc0luVGFpbFBvc2l0aW9uKHJldHVyblZhbHVlLmdldCgpLCByZWFs
RnVuY3Rpb24uZ2V0KCksIHRoaXNSZWdpc3Rlci5nZXQoKSwgYXJndW1lbnRzUmVnaXN0ZXIuZ2V0
KCksIGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgMCwgZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBk
aXZvdEVuZCgpKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAobV9hcmdzLT5tX2xpc3ROb2RlLT5t
X25leHQpIHsKICAgICAgICAgICAgICAgICBBU1NFUlQobV9hcmdzLT5tX2xpc3ROb2RlLT5tX25l
eHQtPm1fZXhwci0+aXNTaW1wbGVBcnJheSgpKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoIW1f
YXJncy0+bV9saXN0Tm9kZS0+bV9uZXh0LT5tX25leHQpOwpAQCAtMTE0NSw5ICsxMTM2LDYgQEAg
UmVnaXN0ZXJJRCogQXBwbHlGdW5jdGlvbkNhbGxEb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNv
ZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAg
IEFTU0VSVChtX2FyZ3MtPm1fbGlzdE5vZGUgJiYgbV9hcmdzLT5tX2xpc3ROb2RlLT5tX25leHQp
OwotICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvZmlsZUhvb2tSZWdpc3RlcjsKLSAgICAg
ICAgaWYgKGdlbmVyYXRvci5zaG91bGRFbWl0UHJvZmlsZUhvb2tzKCkpCi0gICAgICAgICAgICBw
cm9maWxlSG9va1JlZ2lzdGVyID0gZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpOwogICAgICAgICBS
ZWZQdHI8UmVnaXN0ZXJJRD4gcmVhbEZ1bmN0aW9uID0gZ2VuZXJhdG9yLmVtaXRNb3ZlKGdlbmVy
YXRvci50ZW1wRGVzdGluYXRpb24oZHN0KSwgYmFzZS5nZXQoKSk7CiAgICAgICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiB0aGlzUmVnaXN0ZXIgPSBnZW5lcmF0b3IuZW1pdE5vZGUobV9hcmdzLT5tX2xp
c3ROb2RlLT5tX2V4cHIpOwogICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYXJnc1JlZ2lzdGVy
OwpAQCAtMTE1OSw3ICsxMTQ3LDcgQEAgUmVnaXN0ZXJJRCogQXBwbHlGdW5jdGlvbkNhbGxEb3RO
b2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwKICAgICAgICAg
d2hpbGUgKChhcmdzID0gYXJncy0+bV9uZXh0KSkKICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0
Tm9kZShhcmdzLT5tX2V4cHIpOwogCi0gICAgICAgIGdlbmVyYXRvci5lbWl0Q2FsbFZhcmFyZ3NJ
blRhaWxQb3NpdGlvbihyZXR1cm5WYWx1ZS5nZXQoKSwgcmVhbEZ1bmN0aW9uLmdldCgpLCB0aGlz
UmVnaXN0ZXIuZ2V0KCksIGFyZ3NSZWdpc3Rlci5nZXQoKSwgZ2VuZXJhdG9yLm5ld1RlbXBvcmFy
eSgpLCAwLCBwcm9maWxlSG9va1JlZ2lzdGVyLmdldCgpLCBkaXZvdCgpLCBkaXZvdFN0YXJ0KCks
IGRpdm90RW5kKCkpOworICAgICAgICBnZW5lcmF0b3IuZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9z
aXRpb24ocmV0dXJuVmFsdWUuZ2V0KCksIHJlYWxGdW5jdGlvbi5nZXQoKSwgdGhpc1JlZ2lzdGVy
LmdldCgpLCBhcmdzUmVnaXN0ZXIuZ2V0KCksIGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgMCwg
ZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKICAgICB9CiAgICAgaWYgKGVtaXRD
YWxsQ2hlY2spIHsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wKGVuZC5nZXQoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0
ZXJJbmxpbmVzLmgKaW5kZXggMDkwOTFlYy4uZDA4MzJhNiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApA
QCAtMjg0NCw4ICsyODQ0LDYgQEAgYm9vbCBBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3Rh
dGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxpbWkKICAgICBjYXNlIExv
Z1NoYWRvd0NoaWNrZW5UYWlsOgogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgUHJvZmlsZVdp
bGxDYWxsOgotICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgY2FzZSBQcm9maWxlVHlwZToK
ICAgICBjYXNlIFByb2ZpbGVDb250cm9sRmxvdzoKICAgICBjYXNlIFBoYW50b206CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDZkMDc5
ZjYuLjg1ZDhkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwCkBAIC0zNzk5LDE2ICszNzk5LDYgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6
cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2Rl
YnVnKTsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2Ugb3BfcHJvZmlsZV93aWxsX2NhbGw6IHsK
LSAgICAgICAgICAgIGFkZFRvR3JhcGgoUHJvZmlsZVdpbGxDYWxsKTsKLSAgICAgICAgICAgIE5F
WFRfT1BDT0RFKG9wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKLSAgICAgICAgfQotCi0gICAgICAgIGNh
c2Ugb3BfcHJvZmlsZV9kaWRfY2FsbDogewotICAgICAgICAgICAgYWRkVG9HcmFwaChQcm9maWxl
RGlkQ2FsbCk7Ci0gICAgICAgICAgICBORVhUX09QQ09ERShvcF9wcm9maWxlX2RpZF9jYWxsKTsK
LSAgICAgICAgfQotCiAgICAgICAgIGNhc2Ugb3BfbW92OiB7CiAgICAgICAgICAgICBOb2RlKiBv
cCA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkp
OwogICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kKSwgb3ApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmls
aXRpZXMuY3BwCmluZGV4IGNjMmQ0NzQuLjA2NjY5ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAgLTEyNCw4ICsxMjQsNiBAQCBDYXBhYmls
aXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3BfbW9kOgogICAgIGNhc2Ugb3BfZGl2OgogICAg
IGNhc2Ugb3BfZGVidWc6Ci0gICAgY2FzZSBvcF9wcm9maWxlX3dpbGxfY2FsbDoKLSAgICBjYXNl
IG9wX3Byb2ZpbGVfZGlkX2NhbGw6CiAgICAgY2FzZSBvcF9wcm9maWxlX3R5cGU6CiAgICAgY2Fz
ZSBvcF9wcm9maWxlX2NvbnRyb2xfZmxvdzoKICAgICBjYXNlIG9wX21vdjoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggZjYzNzU0OS4uZmMzNWNiMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTM2MSw4ICszNjEs
NiBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFk
RnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgIGNhc2UgQ2hlY2tUaWVyVXBBdFJldHVy
bjoKICAgICBjYXNlIENoZWNrVGllclVwQW5kT1NSRW50ZXI6CiAgICAgY2FzZSBMb29wSGludDoK
LSAgICBjYXNlIFByb2ZpbGVXaWxsQ2FsbDoKLSAgICBjYXNlIFByb2ZpbGVEaWRDYWxsOgogICAg
IGNhc2UgUHJvZmlsZVR5cGU6CiAgICAgY2FzZSBQcm9maWxlQ29udHJvbEZsb3c6CiAgICAgY2Fz
ZSBTdG9yZUJhcnJpZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5k
ZXggNmNmMGQwYi4uNWZmMmVjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dD
LmNwcApAQCAtMTUwLDggKzE1MCw2IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSog
bm9kZSkKICAgICBjYXNlIENvbnN0cnVjdEZvcndhcmRWYXJhcmdzOgogICAgIGNhc2UgVGFpbENh
bGxGb3J3YXJkVmFyYXJnczoKICAgICBjYXNlIFRhaWxDYWxsRm9yd2FyZFZhcmFyZ3NJbmxpbmVk
Q2FsbGVyOgotICAgIGNhc2UgUHJvZmlsZVdpbGxDYWxsOgotICAgIGNhc2UgUHJvZmlsZURpZENh
bGw6CiAgICAgY2FzZSBQcm9maWxlVHlwZToKICAgICBjYXNlIFByb2ZpbGVDb250cm9sRmxvdzoK
ICAgICBjYXNlIE92ZXJyaWRlc0hhc0luc3RhbmNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRml4dXBQaGFzZS5jcHAKaW5kZXggMDM5NWEzZi4uMTM1OWU1MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xNTM1LDggKzE1MzUsNiBA
QCBwcml2YXRlOgogICAgICAgICBjYXNlIE5ld09iamVjdDoKICAgICAgICAgY2FzZSBOZXdBcnJh
eUJ1ZmZlcjoKICAgICAgICAgY2FzZSBOZXdSZWdleHA6Ci0gICAgICAgIGNhc2UgUHJvZmlsZVdp
bGxDYWxsOgotICAgICAgICBjYXNlIFByb2ZpbGVEaWRDYWxsOgogICAgICAgICBjYXNlIERlbGV0
ZUJ5SWQ6CiAgICAgICAgIGNhc2UgRGVsZXRlQnlWYWw6CiAgICAgICAgIGNhc2UgSXNBcnJheU9i
amVjdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCAxODFjNzkw
Li4xOTc4NzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVU
eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0z
MDMsOCArMzAzLDYgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3Jv
KE1hdGVyaWFsaXplQ3JlYXRlQWN0aXZhdGlvbiwgTm9kZVJlc3VsdEpTIHwgTm9kZUhhc1ZhckFy
Z3MpIFwKICAgICBcCiAgICAgLyogTm9kZXMgZm9yIG1pc2Mgb3BlcmF0aW9ucy4gKi9cCi0gICAg
bWFjcm8oUHJvZmlsZVdpbGxDYWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCi0gICAgbWFjcm8oUHJv
ZmlsZURpZENhbGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhPdmVycmlkZXNIYXNJ
bnN0YW5jZSwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFj
cm8oSW5zdGFuY2VPZiwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhJbnN0YW5jZU9m
Q3VzdG9tLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRp
b25QaGFzZS5jcHAKaW5kZXggMTY2MWU5NC4uNTA2ODRmMiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHAKQEAgLTEwMzUsOCArMTAzNSw2IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgREZHOjpKdW1w
OgogICAgICAgICBjYXNlIEJyYW5jaDoKICAgICAgICAgY2FzZSBTd2l0Y2g6Ci0gICAgICAgIGNh
c2UgUHJvZmlsZVdpbGxDYWxsOgotICAgICAgICBjYXNlIFByb2ZpbGVEaWRDYWxsOgogICAgICAg
ICBjYXNlIFByb2ZpbGVUeXBlOgogICAgICAgICBjYXNlIFByb2ZpbGVDb250cm9sRmxvdzoKICAg
ICAgICAgY2FzZSBUaHJvd1JlZmVyZW5jZUVycm9yOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAppbmRleCBmOWJkZWI5Li42MjllMDU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtMjUwLDggKzI1MCw2
IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBn
cmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIE5ld0FycmF5V2l0aFNpemU6CiAgICAgY2FzZSBO
ZXdBcnJheUJ1ZmZlcjoKICAgICBjYXNlIE5ld1JlZ2V4cDoKLSAgICBjYXNlIFByb2ZpbGVXaWxs
Q2FsbDoKLSAgICBjYXNlIFByb2ZpbGVEaWRDYWxsOgogICAgIGNhc2UgUHJvZmlsZVR5cGU6CiAg
ICAgY2FzZSBQcm9maWxlQ29udHJvbEZsb3c6CiAgICAgY2FzZSBDaGVja1R5cGVJbmZvRmxhZ3M6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAppbmRleCBkNzQwZDc3Li4zMzhhYmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTUxOTcsOCArNTE5
Nyw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAg
bm9SZXN1bHQobm9kZSk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBQcm9maWxlV2lsbENh
bGw6Ci0gICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICBjYXNlIFBoYW50b21Mb2NhbDoKICAg
ICBjYXNlIExvb3BIaW50OgogICAgICAgICAvLyBUaGlzIGlzIGEgbm8tb3AuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBkM2E4
YmE4Li42MGRlMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTQ4MTIsOCArNDgxMiw2IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgbm9SZXN1bHQobm9kZSk7CiAgICAgICAg
IGJyZWFrOwogICAgICAgICAKLSAgICBjYXNlIFByb2ZpbGVXaWxsQ2FsbDoKLSAgICBjYXNlIFBy
b2ZpbGVEaWRDYWxsOgogICAgIGNhc2UgUGhhbnRvbUxvY2FsOgogICAgIGNhc2UgTG9vcEhpbnQ6
CiAgICAgICAgIC8vIFRoaXMgaXMgYSBuby1vcC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcAppbmRleCAxODY0ZTg0Li45
Y2FhNGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0QmFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdEJhc2UuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAiSW5zcGVj
dG9yVmFsdWVzLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTR2xvYmFs
T2JqZWN0LmgiCi0jaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRG
dW5jdGlvbkNhbGwuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNzIs
MTcgKzcxLDggQEAgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0T2JqZWN0JiBJbmplY3RlZFNjcmlw
dEJhc2U6OmluamVjdGVkU2NyaXB0T2JqZWN0KCkgY29uc3QKIEpTQzo6SlNWYWx1ZSBJbmplY3Rl
ZFNjcmlwdEJhc2U6OmNhbGxGdW5jdGlvbldpdGhFdmFsRW5hYmxlZChEZXByZWNhdGVkOjpTY3Jp
cHRGdW5jdGlvbkNhbGwmIGZ1bmN0aW9uLCBib29sJiBoYWRFeGNlcHRpb24pIGNvbnN0CiB7CiAg
ICAgSlNDOjpFeGVjU3RhdGUqIHNjcmlwdFN0YXRlID0gbV9pbmplY3RlZFNjcmlwdE9iamVjdC5z
Y3JpcHRTdGF0ZSgpOwotICAgIEpTQzo6TGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCktPnN1c3Bl
bmRQcm9maWxpbmcoc2NyaXB0U3RhdGUpOwotCi0gICAgSlNDOjpKU1ZhbHVlIHJlc3VsdFZhbHVl
OwotICAgIHsKLSAgICAgICAgSlNDOjpEZWJ1Z2dlckV2YWxFbmFibGVyIGV2YWxFbmFibGVyKHNj
cmlwdFN0YXRlKTsKLSAgICAgICAgcmVzdWx0VmFsdWUgPSBmdW5jdGlvbi5jYWxsKGhhZEV4Y2Vw
dGlvbik7Ci0gICAgfQotCi0gICAgSlNDOjpMZWdhY3lQcm9maWxlcjo6cHJvZmlsZXIoKS0+dW5z
dXNwZW5kUHJvZmlsaW5nKHNjcmlwdFN0YXRlKTsKLQotICAgIHJldHVybiByZXN1bHRWYWx1ZTsK
KyAgICBKU0M6OkRlYnVnZ2VyRXZhbEVuYWJsZXIgZXZhbEVuYWJsZXIoc2NyaXB0U3RhdGUpOwor
ICAgIHJldHVybiBmdW5jdGlvbi5jYWxsKGhhZEV4Y2VwdGlvbik7CiB9CiAKIHZvaWQgSW5qZWN0
ZWRTY3JpcHRCYXNlOjptYWtlQ2FsbChEZXByZWNhdGVkOjpTY3JpcHRGdW5jdGlvbkNhbGwmIGZ1
bmN0aW9uLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1RpbWVsaW5lLmpzb24gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1RpbWVsaW5lLmpzb24KaW5kZXgg
ODIyZmY4Ni4uNjkxNjllMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9wcm90b2NvbC9UaW1lbGluZS5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbgpAQCAtNTEsNDAgKzUxLDYgQEAKICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImRhdGEiLCAidHlwZSI6ICJvYmplY3QiLCAiZGVzY3JpcHRp
b24iOiAiRXZlbnQgZGF0YS4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjaGlsZHJl
biIsICJ0eXBlIjogImFycmF5IiwgIm9wdGlvbmFsIjogdHJ1ZSwgIml0ZW1zIjogeyAiJHJlZiI6
ICJUaW1lbGluZUV2ZW50IiB9LCAiZGVzY3JpcHRpb24iOiAiTmVzdGVkIHJlY29yZHMuIiB9CiAg
ICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJD
UFVQcm9maWxlTm9kZUFnZ3JlZ2F0ZUNhbGxJbmZvIiwKLSAgICAgICAgICAgICJ0eXBlIjogIm9i
amVjdCIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQWdncmVnYXRlIENQVSBQcm9maWxl
IGNhbGwgaW5mby4gSG9sZHMgdGltZSBpbmZvcm1hdGlvbiBmb3IgYWxsIHRoZSBjYWxscyB0aGF0
IGhhcHBlbmVkIG9uIGEgbm9kZS4iLAotICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJjYWxsQ291bnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVz
Y3JpcHRpb24iOiAiVG90YWwgbnVtYmVyIG9mIGNhbGxzLiIgfSwKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInN0YXJ0VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJT
dGFydCB0aW1lIGZvciB0aGUgZmlyc3QgY2FsbC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJlbmRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkVuZCB0aW1l
IGZvciB0aGUgbGFzdCBjYWxsLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRvdGFs
VGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJUb3RhbCBleGVjdXRpb24g
dGltZSBmb3IgYWxsIGNhbGxzIGNvbWJpbmVkLiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9
LAotICAgICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiQ1BVUHJvZmlsZU5vZGUiLAotICAgICAg
ICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDUFUg
UHJvZmlsZSBub2RlLiBIb2xkcyBjYWxsc2l0ZSBpbmZvcm1hdGlvbiwgZXhlY3V0aW9uIHN0YXRp
c3RpY3MgYW5kIGNoaWxkIG5vZGVzLiIsCi0gICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImlkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlw
dGlvbiI6ICJVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBjYWxsIHNpdGUuIiB9LAotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiY2FsbEluZm8iLCAiJHJlZiI6ICJDUFVQcm9maWxlTm9kZUFn
Z3JlZ2F0ZUNhbGxJbmZvIiwgImRlc2NyaXB0aW9uIjogIkFnZ3JlZ2F0ZSBpbmZvIGFib3V0IGFs
bCB0aGUgY2FsbHMgdGhhdCBtYWtpbmcgdXAgdGhpcyBub2RlLiIgfSwKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImZ1bmN0aW9uTmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6
IHRydWUsICJkZXNjcmlwdGlvbiI6ICJGdW5jdGlvbiBuYW1lLiIgfSwKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJVUkwuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibGluZU51
bWJlciIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiTGluZSBudW1iZXIuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29sdW1uTnVt
YmVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJDb2x1bW4gbnVtYmVyLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNoaWxkcmVu
IiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkNQVVByb2ZpbGVOb2RlIiB9
LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ2hpbGQgbm9kZXMuIiB9Ci0gICAg
ICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJDUFVQ
cm9maWxlIiwKLSAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiUHJvZmlsZS4iLAotICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJyb290Tm9kZXMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVt
cyI6IHsgIiRyZWYiOiAiQ1BVUHJvZmlsZU5vZGUiIH0sICJkZXNjcmlwdGlvbiI6ICJUb3AgbGV2
ZWwgbm9kZXMgaW4gdGhlIHN0YWNrLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlk
bGVUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9Ci0gICAgICAgICAg
ICBdCiAgICAgICAgIH0KICAgICBdLAogICAgICJjb21tYW5kcyI6IFsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCmluZGV4IDg5MzBhYzMu
LmJmNjJlZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9J
bnRlcnByZXRlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0lu
dGVycHJldGVyLmNwcApAQCAtNTMsNyArNTMsNiBAQAogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgi
CiAjaW5jbHVkZSAiTExJbnRDTG9vcC5oIgogI2luY2x1ZGUgIkxMSW50VGh1bmtzLmgiCi0jaW5j
bHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKICNpbmNsdWRlICJMaXRlcmFsUGFyc2VyLmgiCiAjaW5j
bHVkZSAiT2JqZWN0UHJvdG90eXBlLmgiCiAjaW5jbHVkZSAiUGFyc2VyLmgiCkBAIC02NzUsNyAr
Njc0LDYgQEAgcHVibGljOgogICAgIFN0YWNrVmlzaXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3Rh
Y2tWaXNpdG9yJiB2aXNpdG9yKSBjb25zdAogICAgIHsKICAgICAgICAgdmlzaXRvci51bndpbmRU
b01hY2hpbmVDb2RlQmxvY2tGcmFtZSgpOwotICAgICAgICBWTSYgdm0gPSBtX2NhbGxGcmFtZS0+
dm0oKTsKICAgICAgICAgbV9jYWxsRnJhbWUgPSB2aXNpdG9yLT5jYWxsRnJhbWUoKTsKICAgICAg
ICAgbV9jb2RlQmxvY2sgPSB2aXNpdG9yLT5jb2RlQmxvY2soKTsKIApAQCAtNjkyLDkgKzY5MCw2
IEBAIHB1YmxpYzoKIAogICAgICAgICBib29sIHNob3VsZFN0b3BVbndpbmRpbmcgPSB2aXNpdG9y
LT5jYWxsZXJJc1ZNRW50cnlGcmFtZSgpOwogICAgICAgICBpZiAoc2hvdWxkU3RvcFVud2luZGlu
ZykgewotICAgICAgICAgICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJs
ZWRQcm9maWxlcigpKQotICAgICAgICAgICAgICAgIHByb2ZpbGVyLT5leGNlcHRpb25VbndpbmQo
bV9jYWxsRnJhbWUpOwotCiAgICAgICAgICAgICBjb3B5Q2FsbGVlU2F2ZXNUb1ZNRW50cnlGcmFt
ZUNhbGxlZVNhdmVzQnVmZmVyKHZpc2l0b3IpOwogCiAgICAgICAgICAgICByZXR1cm4gU3RhY2tW
aXNpdG9yOjpEb25lOwpAQCAtOTU0LDE1ICs5NDksOSBAQCBmYWlsZWRKU09OUDoKICAgICBQcm90
b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KGNvZGVC
bG9jaywgSlNDYWxsZWU6OmNyZWF0ZSh2bSwgc2NvcGUtPmdsb2JhbE9iamVjdCgpLCBzY29wZSks
IHRoaXNPYmosIDEpOwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVu
YWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1l
LCBwcm9ncmFtLT5zb3VyY2VVUkwoKSwgcHJvZ3JhbS0+Zmlyc3RMaW5lKCksIHByb2dyYW0tPnN0
YXJ0Q29sdW1uKCkpOwotCiAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZToKICAgICBKU1ZhbHVlIHJl
c3VsdCA9IHByb2dyYW0tPmdlbmVyYXRlZEpJVENvZGUoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0Nh
bGxGcmFtZSk7CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxl
ZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgcHJv
Z3JhbS0+c291cmNlVVJMKCksIHByb2dyYW0tPmZpcnN0TGluZSgpLCBwcm9ncmFtLT5zdGFydENv
bHVtbigpKTsKLQogICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHJlc3VsdCk7CiB9CiAKQEAgLTEw
MTEsOSArMTAwMCw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBKU09iamVjdCogZnVuY3Rpb24sIENhbGxUCiAgICAgUHJvdG9DYWxsRnJh
bWUgcHJvdG9DYWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChuZXdDb2RlQmxvY2ss
IGZ1bmN0aW9uLCB0aGlzVmFsdWUsIGFyZ3NDb3VudCwgYXJncy5kYXRhKCkpOwogCi0gICAgaWYg
KExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAg
ICBwcm9maWxlci0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBmdW5jdGlvbik7Ci0KICAgICBKU1Zh
bHVlIHJlc3VsdDsKICAgICB7CiAgICAgICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGU6CkBAIC0xMDI2
LDkgKzEwMTIsNiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgSlNPYmplY3QqIGZ1bmN0aW9uLCBDYWxsVAogICAgICAgICB9CiAgICAgfQog
Ci0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigp
KQotICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIGZ1bmN0aW9uKTsKLQog
ICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHJlc3VsdCk7CiB9CiAKQEAgLTEwNzksOSArMTA2Miw2
IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSlNPYmplY3QqIGNvbnN0cnVjCiAgICAgUHJvdG9DYWxsRnJhbWUgcHJvdG9DYWxs
RnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChuZXdDb2RlQmxvY2ssIGNvbnN0cnVjdG9y
LCBuZXdUYXJnZXQsIGFyZ3NDb3VudCwgYXJncy5kYXRhKCkpOwogCi0gICAgaWYgKExlZ2FjeVBy
b2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxl
ci0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBjb25zdHJ1Y3Rvcik7Ci0KICAgICBKU1ZhbHVlIHJl
c3VsdDsKICAgICB7CiAgICAgICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGUuCkBAIC0xMDk1LDkgKzEw
NzUsNiBAQCBKU09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBjb25zdHJ1YwogICAgICAgICB9CiAgICAgfQogCi0gICAg
aWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAg
ICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIGNvbnN0cnVjdG9yKTsKLQogICAg
IGlmIChjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gMDsKICAgICBB
U1NFUlQocmVzdWx0LmlzT2JqZWN0KCkpOwpAQCAtMTE0MCwxOCArMTExNywxMiBAQCBKU1ZhbHVl
IEludGVycHJldGVyOjpleGVjdXRlKENhbGxGcmFtZUNsb3N1cmUmIGNsb3N1cmUpCiAKICAgICBT
dGFja1N0YXRzOjpDaGVja1BvaW50IHN0YWNrQ2hlY2tQb2ludDsKIAotICAgIGlmIChMZWdhY3lQ
cm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmls
ZXItPndpbGxFeGVjdXRlKGNsb3N1cmUub2xkQ2FsbEZyYW1lLCBjbG9zdXJlLmZ1bmN0aW9uKTsK
LQogICAgIGlmIChVTkxJS0VMWSh2bS5zaG91bGRUcmlnZ2VyVGVybWluYXRpb24oY2xvc3VyZS5v
bGRDYWxsRnJhbWUpKSkKICAgICAgICAgcmV0dXJuIHRocm93VGVybWluYXRlZEV4ZWN1dGlvbkV4
Y2VwdGlvbihjbG9zdXJlLm9sZENhbGxGcmFtZSk7CiAKICAgICAvLyBFeGVjdXRlIHRoZSBjb2Rl
OgogICAgIEpTVmFsdWUgcmVzdWx0ID0gY2xvc3VyZS5mdW5jdGlvbkV4ZWN1dGFibGUtPmdlbmVy
YXRlZEpJVENvZGVGb3JDYWxsKCktPmV4ZWN1dGUoJnZtLCBjbG9zdXJlLnByb3RvQ2FsbEZyYW1l
KTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmls
ZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPmRpZEV4ZWN1dGUoY2xvc3VyZS5vbGRDYWxsRnJhbWUs
IGNsb3N1cmUuZnVuY3Rpb24pOwotCiAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsK
IH0KIApAQCAtMTI0OSwxNSArMTIyMCw5IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUo
RXZhbEV4ZWN1dGFibGUqIGV2YWwsIENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU1ZhbHVlCiAgICAg
UHJvdG9DYWxsRnJhbWUgcHJvdG9DYWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChj
b2RlQmxvY2ssIEpTQ2FsbGVlOjpjcmVhdGUodm0sIHNjb3BlLT5nbG9iYWxPYmplY3QoKSwgc2Nv
cGUpLCB0aGlzVmFsdWUsIDEpOwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9
IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+d2lsbEV4ZWN1dGUoY2Fs
bEZyYW1lLCBldmFsLT5zb3VyY2VVUkwoKSwgZXZhbC0+Zmlyc3RMaW5lKCksIGV2YWwtPnN0YXJ0
Q29sdW1uKCkpOwotCiAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZToKICAgICBKU1ZhbHVlIHJlc3Vs
dCA9IGV2YWwtPmdlbmVyYXRlZEpJVENvZGUoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFt
ZSk7CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2Zp
bGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgZXZhbC0+c291
cmNlVVJMKCksIGV2YWwtPmZpcnN0TGluZSgpLCBldmFsLT5zdGFydENvbHVtbigpKTsKLQogICAg
IHJldHVybiBjaGVja2VkUmV0dXJuKHJlc3VsdCk7CiB9CiAKQEAgLTEyOTIsMTUgKzEyNTcsOSBA
QCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlKiBl
eGVjdXRhYmxlLCBDYWxsRnJhbWUqIGNhbAogICAgIFByb3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZy
YW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQoY29kZUJsb2NrLCBKU0NhbGxlZTo6Y3JlYXRl
KHZtLCBzY29wZS0+Z2xvYmFsT2JqZWN0KCksIHNjb3BlKSwganNVbmRlZmluZWQoKSwgMSk7CiAK
LSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkp
Ci0gICAgICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIGV4ZWN1dGFibGUtPnNv
dXJjZVVSTCgpLCBleGVjdXRhYmxlLT5maXJzdExpbmUoKSwgZXhlY3V0YWJsZS0+c3RhcnRDb2x1
bW4oKSk7Ci0KICAgICAvLyBFeGVjdXRlIHRoZSBjb2RlOgogICAgIEpTVmFsdWUgcmVzdWx0ID0g
ZXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZy
YW1lKTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJv
ZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBleGVjdXRh
YmxlLT5zb3VyY2VVUkwoKSwgZXhlY3V0YWJsZS0+Zmlyc3RMaW5lKCksIGV4ZWN1dGFibGUtPnN0
YXJ0Q29sdW1uKCkpOwotCiAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IDFkNTBhYmEuLmFkYWE4NjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTI5MCw4ICsyOTAsNiBAQCB2b2lkIEpJVDo6cHJpdmF0
ZUNvbXBpbGVNYWluUGFzcygpCiAgICAgICAgIERFRklORV9PUChvcF9uc3RyaWN0ZXEpCiAgICAg
ICAgIERFRklORV9PUChvcF9kZWMpCiAgICAgICAgIERFRklORV9PUChvcF9pbmMpCi0gICAgICAg
IERFRklORV9PUChvcF9wcm9maWxlX2RpZF9jYWxsKQotICAgICAgICBERUZJTkVfT1Aob3BfcHJv
ZmlsZV93aWxsX2NhbGwpCiAgICAgICAgIERFRklORV9PUChvcF9wcm9maWxlX3R5cGUpCiAgICAg
ICAgIERFRklORV9PUChvcF9wcm9maWxlX2NvbnRyb2xfZmxvdykKICAgICAgICAgREVGSU5FX09Q
KG9wX3B1c2hfd2l0aF9zY29wZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDUxMTQwMDYu
LjQzZmJlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtNTYwLDggKzU2MCw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRfb3BfbnN0cmljdGVxKEluc3RydWN0aW9u
Kik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9kZWMoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9p
ZCBlbWl0X29wX2luYyhJbnN0cnVjdGlvbiopOwotICAgICAgICB2b2lkIGVtaXRfb3BfcHJvZmls
ZV9kaWRfY2FsbChJbnN0cnVjdGlvbiopOwotICAgICAgICB2b2lkIGVtaXRfb3BfcHJvZmlsZV93
aWxsX2NhbGwoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3Byb2ZpbGVfdHlw
ZShJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfcHJvZmlsZV9jb250cm9sX2Zs
b3coSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3B1c2hfd2l0aF9zY29wZShJ
bnN0cnVjdGlvbiopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKaW5k
ZXggZjBhNzUxOS4uNmQ0NWJiMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwCkBAIC03NzQsMjIgKzc3NCw2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9jaGVja190
ZHooSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlCiAgICAg
c2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRfb3BfcHJvZmlsZV93aWxs
X2NhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKLXsKLSAgICBKdW1wIHByb2Zp
bGVyRG9uZSA9IGJyYW5jaFRlc3RQdHIoWmVybywgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPmVuYWJs
ZWRQcm9maWxlckFkZHJlc3MoKSkpOwotICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVnVDApOwotICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uUHJvZmlsZVdpbGxDYWxsLCByZWdUMCk7Ci0gICAgcHJvZmlsZXJEb25lLmxpbmsodGhp
cyk7Ci19Ci0KLXZvaWQgSklUOjplbWl0X29wX3Byb2ZpbGVfZGlkX2NhbGwoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKLXsKLSAgICBKdW1wIHByb2ZpbGVyRG9uZSA9IGJyYW5jaFRl
c3RQdHIoWmVybywgQWJzb2x1dGVBZGRyZXNzKG1fdm0tPmVuYWJsZWRQcm9maWxlckFkZHJlc3Mo
KSkpOwotICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCwgcmVnVDApOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUHJvZmlsZURpZENh
bGwsIHJlZ1QwKTsKLSAgICBwcm9maWxlckRvbmUubGluayh0aGlzKTsKLX0KLQogCiAvLyBTbG93
IGNhc2VzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
czMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNw
cAppbmRleCBjZjA0Y2E5Li42NGFiMDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzMzJfNjQuY3BwCkBAIC0xMDYwLDI0ICsxMDYwLDYgQEAgdm9pZCBKSVQ6OmVt
aXRTbG93X29wX2NoZWNrX3RkeihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0
b3I8U2xvd0Nhc2UKICAgICBzbG93UGF0aENhbGwuY2FsbCgpOwogfQogCi12b2lkIEpJVDo6ZW1p
dF9vcF9wcm9maWxlX3dpbGxfY2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQot
ewotICAgIGxvYWQzMihtX3ZtLT5lbmFibGVkUHJvZmlsZXJBZGRyZXNzKCksIHJlZ1QwKTsKLSAg
ICBKdW1wIHByb2ZpbGVyRG9uZSA9IGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDApOwotICAgIGVt
aXRMb2FkKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QxLCByZWdUMCk7Ci0g
ICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Qcm9maWxlV2lsbENhbGwsIHJlZ1QxLCByZWdUMCk7
Ci0gICAgcHJvZmlsZXJEb25lLmxpbmsodGhpcyk7Ci19Ci0KLXZvaWQgSklUOjplbWl0X29wX3By
b2ZpbGVfZGlkX2NhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKLXsKLSAgICBs
b2FkMzIobV92bS0+ZW5hYmxlZFByb2ZpbGVyQWRkcmVzcygpLCByZWdUMCk7Ci0gICAgSnVtcCBw
cm9maWxlckRvbmUgPSBicmFuY2hUZXN0UHRyKFplcm8sIHJlZ1QwKTsKLSAgICBlbWl0TG9hZChj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMSwgcmVnVDApOwotICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uUHJvZmlsZURpZENhbGwsIHJlZ1QxLCByZWdUMCk7Ci0gICAgcHJv
ZmlsZXJEb25lLmxpbmsodGhpcyk7Ci19Ci0KIHZvaWQgSklUOjplbWl0X29wX2hhc19zdHJ1Y3R1
cmVfcHJvcGVydHkoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKICAgICBpbnQg
ZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGJjODFjNWMuLjM5MzA0YmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtNTMsNyArNTMs
NiBAQAogI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oIgogI2luY2x1ZGUgIkpT
U3RhY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKLSNpbmNsdWRlICJMZWdh
Y3lQcm9maWxlci5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAi
UG9seW1vcnBoaWNBY2Nlc3MuaCIKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWUuaCIKQEAgLTEyNDIs
MTIgKzEyNDEsNiBAQCBTbG93UGF0aFJldHVyblR5cGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25P
cHRpbWl6ZShFeGVjU3RhdGUqIGV4ZWMsIGludDMyX3QgYnl0ZQogICAgICAgICByZXR1cm4gZW5j
b2RlUmVzdWx0KDAsIDApOwogICAgIH0KICAgICAKLSAgICBpZiAodm0uZW5hYmxlZFByb2ZpbGVy
KCkpIHsKLSAgICAgICAgQ09ERUJMT0NLX0xPR19FVkVOVChjb2RlQmxvY2ssICJkZWxheU9wdGlt
aXplVG9ERkciLCAoInByb2ZpbGVyIGlzIGVuYWJsZWQiKSk7Ci0gICAgICAgIHVwZGF0ZUFsbFBy
ZWRpY3Rpb25zQW5kT3B0aW1pemVBZnRlcldhcm1VcChjb2RlQmxvY2spOwotICAgICAgICByZXR1
cm4gZW5jb2RlUmVzdWx0KDAsIDApOwotICAgIH0KLQogICAgIERlYnVnZ2VyKiBkZWJ1Z2dlciA9
IGNvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCktPmRlYnVnZ2VyKCk7CiAgICAgaWYgKGRlYnVnZ2Vy
ICYmIChkZWJ1Z2dlci0+aXNTdGVwcGluZygpIHx8IGNvZGVCbG9jay0+YmFzZWxpbmVBbHRlcm5h
dGl2ZSgpLT5oYXNEZWJ1Z2dlclJlcXVlc3RzKCkpKSB7CiAgICAgICAgIENPREVCTE9DS19MT0df
RVZFTlQoY29kZUJsb2NrLCAiZGVsYXlPcHRpbWl6ZVRvREZHIiwgKCJkZWJ1Z2dlciBpcyBzdGVw
cGluZyBvciBoYXMgcmVxdWVzdHMiKSk7CkBAIC0xNTU5LDI0ICsxNTUyLDYgQEAgdm9pZCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblBvcFNjb3BlKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBzY29w
ZVJlZykKICAgICBleGVjLT51bmNoZWNrZWRSKHNjb3BlUmVnKSA9IHNjb3BlLT5uZXh0KCk7CiB9
CiAKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlRGlkQ2FsbChFeGVjU3RhdGUq
IGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKLXsKLSAgICBWTSYgdm0gPSBleGVj
LT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKLQot
ICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkK
LSAgICAgICAgcHJvZmlsZXItPmRpZEV4ZWN1dGUoZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRWYWx1ZSkpOwotfQotCi12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZVdpbGxD
YWxsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQotewotICAg
IFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigm
dm0sIGV4ZWMpOwotCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJs
ZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+d2lsbEV4ZWN1dGUoZXhlYywgSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwotfQotCiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uSW5zdGFuY2VPZkN1c3RvbShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSwgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
SGFzSW5zdGFuY2UpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTIzNTgsOSArMjMz
Myw2IEBAIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25DaGVja0lmRXhjZXB0aW9uSXNV
bmNhdGNoYWJsZUFuZE5vdGlmeVByb2ZpbGVyKEV4CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcigmdm0sIGV4ZWMpOwogICAgIFJFTEVBU0VfQVNTRVJUKCEhdm0uZXhjZXB0aW9uKCkp
OwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxl
cigpKQotICAgICAgICBwcm9maWxlci0+ZXhjZXB0aW9uVW53aW5kKGV4ZWMpOwotCiAgICAgaWYg
KGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbih2bS5leGNlcHRpb24oKSkpIHsKICAgICAg
ICAgZ2VuZXJpY1Vud2luZCgmdm0sIGV4ZWMpOwogICAgICAgICByZXR1cm4gMTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggMjEyOTcwMy4uNTdmNzhiOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKQEAgLTM3MCw4ICsz
NzAsNiBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0R2V0dGVyU2V0dGVyKEV4ZWNT
dGF0ZSosIEpTQ2VsbCosIFVuaXF1ZWRTdHJpbmdJbQogI2VuZGlmCiB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHVzaEZ1bmN0aW9uTmFtZVNjb3BlKEV4ZWNTdGF0ZSosIGludDMyX3QsIFN5
bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7
Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZURpZENhbGwoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25Qcm9maWxlV2lsbENhbGwoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5B
TDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6
ZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQs
IEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uR2V0QnlWYWxTdHJpbmcoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9J
TlRFUk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggM2MwNzk4MS4uZTdlZGU3MSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2pzYy5jcHAKQEAgLTg2NCw3ICs4NjQsNyBAQCBwcm90ZWN0ZWQ6CiB9OwogCiBjb25z
dCBDbGFzc0luZm8gR2xvYmFsT2JqZWN0OjpzX2luZm8gPSB7ICJnbG9iYWwiLCAmSlNHbG9iYWxP
YmplY3Q6OnNfaW5mbywgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShHbG9iYWxPYmplY3Qp
IH07Ci1jb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBHbG9iYWxPYmplY3Q6OnNfZ2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nlc3NGcm9tLCAmc3VwcG9ydHNMZWdhY3lQ
cm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0
LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgMCwgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9y
ZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9hZGVyRmV0Y2gsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhv
ZFRhYmxlIEdsb2JhbE9iamVjdDo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJmFsbG93
c0FjY2Vzc0Zyb20sICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2Ny
aXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgMCwgJnNob3VsZEludGVycnVwdFNjcmlwdEJl
Zm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9hZGVyRmV0Y2gsIG51
bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKIAogCiBHbG9iYWxPYmplY3Q6Okds
b2JhbE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggY2NjNThkMS4uOGJmYTdj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
CkBAIC01MCw3ICs1MCw2IEBACiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNsdWRlICJM
TEludENvbW1vbi5oIgogI2luY2x1ZGUgIkxMSW50RXhjZXB0aW9ucy5oIgotI2luY2x1ZGUgIkxl
Z2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiTG93TGV2ZWxJbnRlcnByZXRlci5oIgogI2luY2x1
ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiUHJvdG9DYWxsRnJhbWUuaCIKQEAg
LTE0MjYsMjIgKzE0MjUsNiBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZGVidWcp
CiAgICAgTExJTlRfRU5EKCk7CiB9CiAKLUxMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9w
cm9maWxlX3dpbGxfY2FsbCkKLXsKLSAgICBMTElOVF9CRUdJTigpOwotICAgIGlmIChMZWdhY3lQ
cm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmls
ZXItPndpbGxFeGVjdXRlKGV4ZWMsIExMSU5UX09QKDEpLmpzVmFsdWUoKSk7Ci0gICAgTExJTlRf
RU5EKCk7Ci19Ci0KLUxMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wcm9maWxlX2RpZF9j
YWxsKQotewotICAgIExMSU5UX0JFR0lOKCk7Ci0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9m
aWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0
ZShleGVjLCBMTElOVF9PUCgxKS5qc1ZhbHVlKCkpOwotICAgIExMSU5UX0VORCgpOwotfQotCiBM
TElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfaGFuZGxlX2V4Y2VwdGlvbikKIHsKICAgICBM
TElOVF9CRUdJTl9OT19TRVRfUEMoKTsKQEAgLTE1MzAsOSArMTUxMyw2IEBAIExMSU5UX1NMT1df
UEFUSF9ERUNMKHNsb3dfcGF0aF9jaGVja19pZl9leGNlcHRpb25faXNfdW5jYXRjaGFibGVfYW5k
X25vdGlmeV9wcm9mCiAgICAgTExJTlRfQkVHSU4oKTsKICAgICBSRUxFQVNFX0FTU0VSVCghIXZt
LmV4Y2VwdGlvbigpKTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5l
bmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2luZChleGVj
KTsKLQogICAgIGlmIChpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0uZXhjZXB0aW9u
KCkpKQogICAgICAgICBMTElOVF9SRVRVUk5fVFdPKHBjLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0
YXRpY19jYXN0PHVpbnRwdHJfdD4oMSkpKTsKICAgICBMTElOVF9SRVRVUk5fVFdPKHBjLCAwKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgKaW5kZXggZTNk
NDFlNC4uMjQ5OTU0MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xv
d1BhdGhzLmgKQEAgLTExNyw4ICsxMTcsNiBAQCBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0wo
c2xvd19wYXRoX3Rocm93KTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
dGhyb3dfc3RhdGljX2Vycm9yKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfaGFuZGxlX3dhdGNoZG9nX3RpbWVyKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChz
bG93X3BhdGhfZGVidWcpOwotTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9w
cm9maWxlX3dpbGxfY2FsbCk7Ci1MTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRo
X3Byb2ZpbGVfZGlkX2NhbGwpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9oYW5kbGVfZXhjZXB0aW9uKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfZ2V0X2Zyb21fc2NvcGUpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9wdXRfdG9fc2NvcGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IDQzYmY3N2UuLmEwODc4ZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAg
LTE2NjIsMjggKzE2NjIsNiBAQCBfbGxpbnRfb3BfdGhyb3dfc3RhdGljX2Vycm9yOgogICAgIGRp
c3BhdGNoKDMpCiAKIAotX2xsaW50X29wX3Byb2ZpbGVfd2lsbF9jYWxsOgotICAgIHRyYWNlRXhl
Y3V0aW9uKCkKLSAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKLSAgICBsb2FkcCBDb2RlQmxv
Y2s6Om1fdm1bdDBdLCB0MAotICAgIGxvYWRpIFZNOjptX2VuYWJsZWRQcm9maWxlclt0MF0sIHQw
Ci0gICAgYnRweiB0MCwgLm9wUHJvZmlsZXJXaWxsQ2FsbERvbmUKLSAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9wcm9maWxlX3dpbGxfY2FsbCkKLS5vcFByb2ZpbGVyV2lsbENhbGxE
b25lOgotICAgIGRpc3BhdGNoKDIpCi0KLQotX2xsaW50X29wX3Byb2ZpbGVfZGlkX2NhbGw6Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAotICAgIGxv
YWRwIENvZGVCbG9jazo6bV92bVt0MF0sIHQwCi0gICAgbG9hZGkgVk06Om1fZW5hYmxlZFByb2Zp
bGVyW3QwXSwgdDAKLSAgICBidHB6IHQwLCAub3BQcm9maWxlckRpZENhbGxEb25lCi0gICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV9kaWRfY2FsbCkKLS5vcFByb2ZpbGVy
RGlkQ2FsbERvbmU6Ci0gICAgZGlzcGF0Y2goMikKLQotCiBfbGxpbnRfb3BfZGVidWc6CiAgICAg
dHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oCmluZGV4IGYwYzNhMjIuLjJiNzk1M2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyTW9kZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKQEAgLTM5LDcg
KzM5LDYgQEAgZW51bSBjbGFzcyBDb25zdHJ1Y3RvcktpbmQgeyBOb25lLCBCYXNlLCBEZXJpdmVk
IH07CiBlbnVtIGNsYXNzIFN1cGVyQmluZGluZyB7IE5lZWRlZCwgTm90TmVlZGVkIH07CiBlbnVt
IGNsYXNzIFRoaXNURFpNb2RlIHsgQWx3YXlzQ2hlY2ssIENoZWNrSWZOZWVkZWQgfTsKIAotZW51
bSBQcm9maWxlck1vZGUgeyBQcm9maWxlck9mZiwgUHJvZmlsZXJPbiB9OwogZW51bSBEZWJ1Z2dl
ck1vZGUgeyBEZWJ1Z2dlck9mZiwgRGVidWdnZXJPbiB9OwogCiBlbnVtIGNsYXNzIEZ1bmN0aW9u
TW9kZSB7IEZ1bmN0aW9uRXhwcmVzc2lvbiwgRnVuY3Rpb25EZWNsYXJhdGlvbiwgTWV0aG9kRGVm
aW5pdGlvbiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0Nh
bGxJZGVudGlmaWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvQ2FsbElkZW50
aWZpZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjkxZmM2Mi4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvQ2FsbElkZW50aWZpZXIuaAorKysg
L2Rldi9udWxsCkBAIC0xLDExMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAy
MDE0IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotCi0jaWZuZGVmIENhbGxJZGVudGlmaWVyX2gKLSNkZWZp
bmUgQ2FsbElkZW50aWZpZXJfaAotCi0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLSAgICBzdHJ1Y3QgQ2FsbElkZW50aWZpZXIgewot
ICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIENh
bGxJZGVudGlmaWVyKCkKLSAgICAgICAgICAgIDogbV9saW5lTnVtYmVyKDApCi0gICAgICAgICAg
ICAsIG1fY29sdW1uTnVtYmVyKDApCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIENh
bGxJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lLCBjb25zdCBTdHJpbmcmIHVy
bCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyKQotICAgICAgICAg
ICAgOiBtX2Z1bmN0aW9uTmFtZShmdW5jdGlvbk5hbWUpCi0gICAgICAgICAgICAsIG1fdXJsKCF1
cmwuaXNOdWxsKCkgPyB1cmwgOiAiIikKLSAgICAgICAgICAgICwgbV9saW5lTnVtYmVyKGxpbmVO
dW1iZXIpCi0gICAgICAgICAgICAsIG1fY29sdW1uTnVtYmVyKGNvbHVtbk51bWJlcikKLSAgICAg
ICAgewotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUoKSBj
b25zdCB7IHJldHVybiBtX2Z1bmN0aW9uTmFtZTsgfQotCi0gICAgICAgIGNvbnN0IFN0cmluZyYg
dXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KLSAgICAgICAgdW5zaWduZWQgbGluZU51bWJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fbGluZU51bWJlcjsgfQotICAgICAgICB1bnNpZ25lZCBjb2x1
bW5OdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbHVtbk51bWJlcjsgfQotCi0gICAgICAgIGlu
bGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgQ2FsbElkZW50aWZpZXImIG90aGVyKSBjb25zdCB7
IHJldHVybiBvdGhlci5tX2xpbmVOdW1iZXIgPT0gbV9saW5lTnVtYmVyICYmIG90aGVyLm1fY29s
dW1uTnVtYmVyID09IG1fY29sdW1uTnVtYmVyICYmIG90aGVyLm1fZnVuY3Rpb25OYW1lID09IG1f
ZnVuY3Rpb25OYW1lICYmIG90aGVyLm1fdXJsID09IG1fdXJsOyB9Ci0gICAgICAgIGlubGluZSBi
b29sIG9wZXJhdG9yIT0oY29uc3QgQ2FsbElkZW50aWZpZXImIG90aGVyKSBjb25zdCB7IHJldHVy
biAhKCp0aGlzID09IG90aGVyKTsgfQotCi0gICAgICAgIHN0cnVjdCBIYXNoIHsKLSAgICAgICAg
ICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IENhbGxJZGVudGlmaWVyJiBrZXkpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgaGFzaENvZGVzWzRdID0gewotICAg
ICAgICAgICAgICAgICAgICBrZXkubV9mdW5jdGlvbk5hbWUuaW1wbCgpLT5oYXNoKCksCi0gICAg
ICAgICAgICAgICAgICAgIGtleS5tX3VybC5pbXBsKCktPmhhc2goKSwKLSAgICAgICAgICAgICAg
ICAgICAga2V5Lm1fbGluZU51bWJlciwKLSAgICAgICAgICAgICAgICAgICAga2V5Lm1fY29sdW1u
TnVtYmVyCi0gICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICByZXR1cm4gU3RyaW5n
SGFzaGVyOjpoYXNoTWVtb3J5PHNpemVvZihoYXNoQ29kZXMpPihoYXNoQ29kZXMpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBDYWxsSWRlbnRp
ZmllciYgYSwgY29uc3QgQ2FsbElkZW50aWZpZXImIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAg
ICAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0ZWQg
PSB0cnVlOwotICAgICAgICB9OwotCi0gICAgICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdCB7IHJl
dHVybiBIYXNoOjpoYXNoKCp0aGlzKTsgfQotCi0jaWZuZGVmIE5ERUJVRwotICAgICAgICBvcGVy
YXRvciBjb25zdCBjaGFyKigpIGNvbnN0IHsgcmV0dXJuIGNfc3RyKCk7IH0KLSAgICAgICAgY29u
c3QgY2hhciogY19zdHIoKSBjb25zdCB7IHJldHVybiBtX2Z1bmN0aW9uTmFtZS51dGY4KCkuZGF0
YSgpOyB9Ci0jZW5kaWYKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIFN0cmluZyBtX2Z1bmN0aW9u
TmFtZTsKLSAgICAgICAgU3RyaW5nIG1fdXJsOwotICAgICAgICB1bnNpZ25lZCBtX2xpbmVOdW1i
ZXI7Ci0gICAgICAgIHVuc2lnbmVkIG1fY29sdW1uTnVtYmVyOwotICAgIH07Ci0KLX0gLy8gbmFt
ZXNwYWNlIEpTQwotCi1uYW1lc3BhY2UgV1RGIHsKLQotICAgIHRlbXBsYXRlPD4gc3RydWN0IERl
ZmF1bHRIYXNoPEpTQzo6Q2FsbElkZW50aWZpZXI+IHsgdHlwZWRlZiBKU0M6OkNhbGxJZGVudGlm
aWVyOjpIYXNoIEhhc2g7IH07Ci0KLSAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPEpT
Qzo6Q2FsbElkZW50aWZpZXI+IDogR2VuZXJpY0hhc2hUcmFpdHM8SlNDOjpDYWxsSWRlbnRpZmll
cj4gewotICAgICAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUoSlNDOjpDYWxs
SWRlbnRpZmllciYgc2xvdCkKLSAgICAgICAgewotICAgICAgICAgICAgbmV3IChOb3ROdWxsLCAm
c2xvdCkgSlNDOjpDYWxsSWRlbnRpZmllcihTdHJpbmcoKSwgU3RyaW5nKCksIHN0ZDo6bnVtZXJp
Y19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46
Om1heCgpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVl
KGNvbnN0IEpTQzo6Q2FsbElkZW50aWZpZXImIHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gdmFsdWUuZnVuY3Rpb25OYW1lKCkuaXNOdWxsKCkgJiYgdmFsdWUudXJsKCkuaXNO
dWxsKCkgJiYgdmFsdWUubGluZU51bWJlcigpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWdu
ZWQ+OjptYXgoKSAmJiB2YWx1ZS5jb2x1bW5OdW1iZXIoKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRz
PHVuc2lnbmVkPjo6bWF4KCk7Ci0gICAgICAgIH0KLSAgICB9OwotCi19IC8vIG5hbWVzcGFjZSBX
VEYKLQotI2VuZGlmICAvLyBDYWxsSWRlbnRpZmllcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzg3ZDM2Mi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJv
ZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjA4ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUg
b2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCi0KLSNp
bmNsdWRlICJDYWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDb2RlQmxvY2suaCIKLSNpbmNsdWRlICJD
b21tb25JZGVudGlmaWVycy5oIgotI2luY2x1ZGUgIkludGVybmFsRnVuY3Rpb24uaCIKLSNpbmNs
dWRlICJKU0Z1bmN0aW9uLmgiCi0jaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKLSNpbmNsdWRl
ICJOb2Rlcy5oIgotI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNsdWRlICJQcm9maWxlLmgi
Ci0jaW5jbHVkZSAiUHJvZmlsZUdlbmVyYXRvci5oIgotI2luY2x1ZGUgIlByb2ZpbGVOb2RlLmgi
Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1zdGF0aWMgY29uc3QgY2hhciogR2xvYmFsQ29kZUV4ZWN1
dGlvbiA9ICIocHJvZ3JhbSkiOwotc3RhdGljIGNvbnN0IGNoYXIqIEFub255bW91c0Z1bmN0aW9u
ID0gIihhbm9ueW1vdXMgZnVuY3Rpb24pIjsKLXN0YXRpYyB1bnNpZ25lZCBQcm9maWxlc1VJRCA9
IDA7Ci0KLXN0YXRpYyBDYWxsSWRlbnRpZmllciBjcmVhdGVDYWxsSWRlbnRpZmllckZyb21GdW5j
dGlvbkltcChFeGVjU3RhdGUqLCBKU09iamVjdCosIGNvbnN0IFN0cmluZyYgZGVmYXVsdFNvdXJj
ZVVSTCwgdW5zaWduZWQgZGVmYXVsdExpbmVOdW1iZXIsIHVuc2lnbmVkIGRlZmF1bHRDb2x1bW5O
dW1iZXIpOwotCi1MZWdhY3lQcm9maWxlciogTGVnYWN5UHJvZmlsZXI6OnNfc2hhcmVkTGVnYWN5
UHJvZmlsZXIgPSBudWxscHRyOwotCi1MZWdhY3lQcm9maWxlciogTGVnYWN5UHJvZmlsZXI6OnBy
b2ZpbGVyKCkKLXsKLSAgICBpZiAoIXNfc2hhcmVkTGVnYWN5UHJvZmlsZXIpCi0gICAgICAgIHNf
c2hhcmVkTGVnYWN5UHJvZmlsZXIgPSBuZXcgTGVnYWN5UHJvZmlsZXIoKTsKLSAgICByZXR1cm4g
c19zaGFyZWRMZWdhY3lQcm9maWxlcjsKLX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6c3RhcnRQ
cm9maWxpbmcoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBQYXNzUmVmUHRy
PFN0b3B3YXRjaD4gc3RvcHdhdGNoKQotewotICAgIGlmICghZXhlYykKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgLy8gQ2hlY2sgaWYgd2UgY3VycmVudGx5IGhhdmUgYSBQcm9maWxlIGZvciB0aGlz
IGdsb2JhbCBFeGVjU3RhdGUgYW5kIHRpdGxlLgotICAgIC8vIElmIHNvIHJldHVybiBlYXJseSBh
bmQgZG9uJ3QgY3JlYXRlIGEgbmV3IFByb2ZpbGUuCi0gICAgSlNHbG9iYWxPYmplY3QqIG9yaWdp
biA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9jdXJyZW50UHJvZmlsZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgUHJvZmlsZUdl
bmVyYXRvciogcHJvZmlsZUdlbmVyYXRvciA9IG1fY3VycmVudFByb2ZpbGVzW2ldLmdldCgpOwot
ICAgICAgICBpZiAocHJvZmlsZUdlbmVyYXRvci0+b3JpZ2luKCkgPT0gb3JpZ2luICYmIHByb2Zp
bGVHZW5lcmF0b3ItPnRpdGxlKCkgPT0gdGl0bGUpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgZXhlYy0+dm0oKS5zZXRFbmFibGVkUHJvZmlsZXIodGhpcyk7Ci0gICAgUmVmUHRy
PFByb2ZpbGVHZW5lcmF0b3I+IHByb2ZpbGVHZW5lcmF0b3IgPSBQcm9maWxlR2VuZXJhdG9yOjpj
cmVhdGUoZXhlYywgdGl0bGUsICsrUHJvZmlsZXNVSUQsIHN0b3B3YXRjaCk7Ci0gICAgbV9jdXJy
ZW50UHJvZmlsZXMuYXBwZW5kKHByb2ZpbGVHZW5lcmF0b3IpOwotfQotCi1SZWZQdHI8UHJvZmls
ZT4gTGVnYWN5UHJvZmlsZXI6OnN0b3BQcm9maWxpbmcoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBT
dHJpbmcmIHRpdGxlKQotewotICAgIGlmICghZXhlYykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0KLSAgICBKU0dsb2JhbE9iamVjdCogb3JpZ2luID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpOwotICAgIGZvciAocHRyZGlmZl90IGkgPSBtX2N1cnJlbnRQcm9maWxlcy5zaXplKCkgLSAx
OyBpID49IDA7IC0taSkgewotICAgICAgICBQcm9maWxlR2VuZXJhdG9yKiBwcm9maWxlR2VuZXJh
dG9yID0gbV9jdXJyZW50UHJvZmlsZXNbaV0uZ2V0KCk7Ci0gICAgICAgIGlmIChwcm9maWxlR2Vu
ZXJhdG9yLT5vcmlnaW4oKSA9PSBvcmlnaW4gJiYgKHRpdGxlLmlzTnVsbCgpIHx8IHByb2ZpbGVH
ZW5lcmF0b3ItPnRpdGxlKCkgPT0gdGl0bGUpKSB7Ci0gICAgICAgICAgICBwcm9maWxlR2VuZXJh
dG9yLT5zdG9wUHJvZmlsaW5nKCk7Ci0gICAgICAgICAgICBSZWZQdHI8UHJvZmlsZT4gcmV0dXJu
UHJvZmlsZSA9IHByb2ZpbGVHZW5lcmF0b3ItPnByb2ZpbGUoKTsKLQotICAgICAgICAgICAgbV9j
dXJyZW50UHJvZmlsZXMucmVtb3ZlKGkpOwotICAgICAgICAgICAgaWYgKCFtX2N1cnJlbnRQcm9m
aWxlcy5zaXplKCkpCi0gICAgICAgICAgICAgICAgZXhlYy0+dm0oKS5zZXRFbmFibGVkUHJvZmls
ZXIobnVsbHB0cik7Ci0KLSAgICAgICAgICAgIHJldHVybiByZXR1cm5Qcm9maWxlOwotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLXZvaWQgTGVnYWN5UHJvZmls
ZXI6OnN0b3BQcm9maWxpbmcoSlNHbG9iYWxPYmplY3QqIG9yaWdpbikKLXsKLSAgICBmb3IgKHB0
cmRpZmZfdCBpID0gbV9jdXJyZW50UHJvZmlsZXMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsK
LSAgICAgICAgUHJvZmlsZUdlbmVyYXRvciogcHJvZmlsZUdlbmVyYXRvciA9IG1fY3VycmVudFBy
b2ZpbGVzW2ldLmdldCgpOwotICAgICAgICBpZiAocHJvZmlsZUdlbmVyYXRvci0+b3JpZ2luKCkg
PT0gb3JpZ2luKSB7Ci0gICAgICAgICAgICBwcm9maWxlR2VuZXJhdG9yLT5zdG9wUHJvZmlsaW5n
KCk7Ci0gICAgICAgICAgICBtX2N1cnJlbnRQcm9maWxlcy5yZW1vdmUoaSk7Ci0gICAgICAgICAg
ICBpZiAoIW1fY3VycmVudFByb2ZpbGVzLnNpemUoKSkKLSAgICAgICAgICAgICAgICBvcmlnaW4t
PnZtKCkuc2V0RW5hYmxlZFByb2ZpbGVyKG51bGxwdHIpOwotICAgICAgICB9Ci0gICAgfQotfQot
Ci1zdGF0aWMgaW5saW5lIHZvaWQgY2FsbEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3Rk
OjpmdW5jdGlvbjx2b2lkKFByb2ZpbGVHZW5lcmF0b3IqKT4gY2FsbGJhY2ssIGNvbnN0IFZlY3Rv
cjxSZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4+JiBwcm9maWxlcywgdW5zaWduZWQgdGFyZ2V0UHJv
ZmlsZUdyb3VwKQotewotICAgIGZvciAoY29uc3QgUmVmUHRyPFByb2ZpbGVHZW5lcmF0b3I+JiBw
cm9maWxlIDogcHJvZmlsZXMpIHsKLSAgICAgICAgaWYgKHByb2ZpbGUtPnByb2ZpbGVHcm91cCgp
ID09IHRhcmdldFByb2ZpbGVHcm91cCB8fCAhcHJvZmlsZS0+b3JpZ2luKCkpCi0gICAgICAgICAg
ICBjYWxsYmFjayhwcm9maWxlLmdldCgpKTsKLSAgICB9Ci19Ci0KLXZvaWQgTGVnYWN5UHJvZmls
ZXI6OnN1c3BlbmRQcm9maWxpbmcoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgaWYgKCFl
eGVjKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhH
cm91cChzdGQ6OmJpbmQoJlByb2ZpbGVHZW5lcmF0b3I6OnNldElzU3VzcGVuZGVkLCBzdGQ6OnBs
YWNlaG9sZGVyczo6XzEsIHRydWUpLCBtX2N1cnJlbnRQcm9maWxlcywgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAoKSk7Ci19Ci0KLXZvaWQgTGVnYWN5UHJvZmlsZXI6
OnVuc3VzcGVuZFByb2ZpbGluZyhKU0M6OkV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBpZiAoIWV4
ZWMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNhbGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdy
b3VwKHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRvcjo6c2V0SXNTdXNwZW5kZWQsIHN0ZDo6cGxh
Y2Vob2xkZXJzOjpfMSwgZmFsc2UpLCBtX2N1cnJlbnRQcm9maWxlcywgZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAoKSk7Ci19Ci0KLXZvaWQgTGVnYWN5UHJvZmlsZXI6
OndpbGxFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBKU1ZhbHVlIGZ1bmN0aW9u
KQotewotICAgIEFTU0VSVCghbV9jdXJyZW50UHJvZmlsZXMuaXNFbXB0eSgpKTsKLQotICAgIENh
bGxJZGVudGlmaWVyIGNhbGxJZGVudGlmaWVyID0gY3JlYXRlQ2FsbElkZW50aWZpZXIoY2FsbGVy
Q2FsbEZyYW1lLCBmdW5jdGlvbiwgU3RyaW5nSW1wbDo6ZW1wdHkoKSwgMCwgMCk7Ci0KLSAgICBj
YWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmJpbmQoJlByb2ZpbGVHZW5lcmF0
b3I6OndpbGxFeGVjdXRlLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEsIGNhbGxlckNhbGxGcmFtZSwg
Y2FsbElkZW50aWZpZXIpLCBtX2N1cnJlbnRQcm9maWxlcywgY2FsbGVyQ2FsbEZyYW1lLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKLX0KLQotdm9pZCBMZWdhY3lQcm9m
aWxlcjo6d2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCB1bnNpZ25lZCBzdGFydGluZ0xpbmVOdW1iZXIsIHVuc2lnbmVkIHN0YXJ0
aW5nQ29sdW1uTnVtYmVyKQotewotICAgIEFTU0VSVCghbV9jdXJyZW50UHJvZmlsZXMuaXNFbXB0
eSgpKTsKLQotICAgIENhbGxJZGVudGlmaWVyIGNhbGxJZGVudGlmaWVyID0gY3JlYXRlQ2FsbElk
ZW50aWZpZXIoY2FsbGVyQ2FsbEZyYW1lLCBKU1ZhbHVlKCksIHNvdXJjZVVSTCwgc3RhcnRpbmdM
aW5lTnVtYmVyLCBzdGFydGluZ0NvbHVtbk51bWJlcik7Ci0KLSAgICBjYWxsRnVuY3Rpb25Gb3JQ
cm9maWxlc1dpdGhHcm91cChzdGQ6OmJpbmQoJlByb2ZpbGVHZW5lcmF0b3I6OndpbGxFeGVjdXRl
LCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEsIGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIp
LCBtX2N1cnJlbnRQcm9maWxlcywgY2FsbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCktPnByb2ZpbGVHcm91cCgpKTsKLX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6ZGlkRXhlY3V0
ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgSlNWYWx1ZSBmdW5jdGlvbikKLXsKLSAgICBB
U1NFUlQoIW1fY3VycmVudFByb2ZpbGVzLmlzRW1wdHkoKSk7Ci0KLSAgICBDYWxsSWRlbnRpZmll
ciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJZGVudGlmaWVyKGNhbGxlckNhbGxGcmFtZSwg
ZnVuY3Rpb24sIFN0cmluZ0ltcGw6OmVtcHR5KCksIDAsIDApOwotCi0gICAgY2FsbEZ1bmN0aW9u
Rm9yUHJvZmlsZXNXaXRoR3JvdXAoc3RkOjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjpkaWRFeGVj
dXRlLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEsIGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZp
ZXIpLCBtX2N1cnJlbnRQcm9maWxlcywgY2FsbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKLX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6ZGlkRXhl
Y3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkws
IHVuc2lnbmVkIHN0YXJ0aW5nTGluZU51bWJlciwgdW5zaWduZWQgc3RhcnRpbmdDb2x1bW5OdW1i
ZXIpCi17Ci0gICAgQVNTRVJUKCFtX2N1cnJlbnRQcm9maWxlcy5pc0VtcHR5KCkpOwotCi0gICAg
Q2FsbElkZW50aWZpZXIgY2FsbElkZW50aWZpZXIgPSBjcmVhdGVDYWxsSWRlbnRpZmllcihjYWxs
ZXJDYWxsRnJhbWUsIEpTVmFsdWUoKSwgc291cmNlVVJMLCBzdGFydGluZ0xpbmVOdW1iZXIsIHN0
YXJ0aW5nQ29sdW1uTnVtYmVyKTsKLQotICAgIGNhbGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdy
b3VwKHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0ZSwgc3RkOjpwbGFjZWhv
bGRlcnM6Ol8xLCBjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyKSwgbV9jdXJyZW50UHJv
ZmlsZXMsIGNhbGxlckNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9maWxlR3Jv
dXAoKSk7Ci19Ci0KLXZvaWQgTGVnYWN5UHJvZmlsZXI6OmV4Y2VwdGlvblVud2luZChFeGVjU3Rh
dGUqIGhhbmRsZXJDYWxsRnJhbWUpCi17Ci0gICAgQVNTRVJUKCFtX2N1cnJlbnRQcm9maWxlcy5p
c0VtcHR5KCkpOwotCi0gICAgQ2FsbElkZW50aWZpZXIgY2FsbElkZW50aWZpZXIgPSBjcmVhdGVD
YWxsSWRlbnRpZmllcihoYW5kbGVyQ2FsbEZyYW1lLCBKU1ZhbHVlKCksIFN0cmluZ0ltcGw6OmVt
cHR5KCksIDAsIDApOwotCi0gICAgY2FsbEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3Rk
OjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjpleGNlcHRpb25VbndpbmQsIHN0ZDo6cGxhY2Vob2xk
ZXJzOjpfMSwgaGFuZGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIpLCBtX2N1cnJlbnRQcm9m
aWxlcywgaGFuZGxlckNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9maWxlR3Jv
dXAoKSk7Ci19Ci0KLUNhbGxJZGVudGlmaWVyIExlZ2FjeVByb2ZpbGVyOjpjcmVhdGVDYWxsSWRl
bnRpZmllcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgZnVuY3Rpb25WYWx1ZSwgY29uc3QgU3Ry
aW5nJiBkZWZhdWx0U291cmNlVVJMLCB1bnNpZ25lZCBkZWZhdWx0TGluZU51bWJlciwgdW5zaWdu
ZWQgZGVmYXVsdENvbHVtbk51bWJlcikKLXsKLSAgICBpZiAoIWZ1bmN0aW9uVmFsdWUpCi0gICAg
ICAgIHJldHVybiBDYWxsSWRlbnRpZmllcihBU0NJSUxpdGVyYWwoR2xvYmFsQ29kZUV4ZWN1dGlv
biksIGRlZmF1bHRTb3VyY2VVUkwsIGRlZmF1bHRMaW5lTnVtYmVyLCBkZWZhdWx0Q29sdW1uTnVt
YmVyKTsKLSAgICBpZiAoIWZ1bmN0aW9uVmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJu
IENhbGxJZGVudGlmaWVyKEFTQ0lJTGl0ZXJhbCgiKHVua25vd24pIiksIGRlZmF1bHRTb3VyY2VV
UkwsIGRlZmF1bHRMaW5lTnVtYmVyLCBkZWZhdWx0Q29sdW1uTnVtYmVyKTsKLSAgICBpZiAoYXNP
YmplY3QoZnVuY3Rpb25WYWx1ZSktPmluaGVyaXRzKEpTRnVuY3Rpb246OmluZm8oKSkgfHwgYXNP
YmplY3QoZnVuY3Rpb25WYWx1ZSktPmluaGVyaXRzKEludGVybmFsRnVuY3Rpb246OmluZm8oKSkp
Ci0gICAgICAgIHJldHVybiBjcmVhdGVDYWxsSWRlbnRpZmllckZyb21GdW5jdGlvbkltcChleGVj
LCBhc09iamVjdChmdW5jdGlvblZhbHVlKSwgZGVmYXVsdFNvdXJjZVVSTCwgZGVmYXVsdExpbmVO
dW1iZXIsIGRlZmF1bHRDb2x1bW5OdW1iZXIpOwotICAgIGlmIChhc09iamVjdChmdW5jdGlvblZh
bHVlKS0+aW5oZXJpdHMoSlNDYWxsZWU6OmluZm8oKSkpCi0gICAgICAgIHJldHVybiBDYWxsSWRl
bnRpZmllcihBU0NJSUxpdGVyYWwoR2xvYmFsQ29kZUV4ZWN1dGlvbiksIGRlZmF1bHRTb3VyY2VV
UkwsIGRlZmF1bHRMaW5lTnVtYmVyLCBkZWZhdWx0Q29sdW1uTnVtYmVyKTsKLSAgICByZXR1cm4g
Q2FsbElkZW50aWZpZXIoYXNPYmplY3QoZnVuY3Rpb25WYWx1ZSktPm1ldGhvZFRhYmxlKCktPmNs
YXNzTmFtZShhc09iamVjdChmdW5jdGlvblZhbHVlKSksIGRlZmF1bHRTb3VyY2VVUkwsIGRlZmF1
bHRMaW5lTnVtYmVyLCBkZWZhdWx0Q29sdW1uTnVtYmVyKTsKLX0KLQotQ2FsbElkZW50aWZpZXIg
Y3JlYXRlQ2FsbElkZW50aWZpZXJGcm9tRnVuY3Rpb25JbXAoRXhlY1N0YXRlKiBleGVjLCBKU09i
amVjdCogZnVuY3Rpb24sIGNvbnN0IFN0cmluZyYgZGVmYXVsdFNvdXJjZVVSTCwgdW5zaWduZWQg
ZGVmYXVsdExpbmVOdW1iZXIsIHVuc2lnbmVkIGRlZmF1bHRDb2x1bW5OdW1iZXIpCi17Ci0gICAg
Y29uc3QgU3RyaW5nJiBuYW1lID0gZ2V0Q2FsY3VsYXRlZERpc3BsYXlOYW1lKGV4ZWMsIGZ1bmN0
aW9uKTsKLSAgICBKU0Z1bmN0aW9uKiBqc0Z1bmN0aW9uID0ganNEeW5hbWljQ2FzdDxKU0Z1bmN0
aW9uKj4oZnVuY3Rpb24pOwotICAgIGlmIChqc0Z1bmN0aW9uICYmICFqc0Z1bmN0aW9uLT5pc0hv
c3RPckJ1aWx0aW5GdW5jdGlvbigpKQotICAgICAgICByZXR1cm4gQ2FsbElkZW50aWZpZXIobmFt
ZS5pc0VtcHR5KCkgPyBBU0NJSUxpdGVyYWwoQW5vbnltb3VzRnVuY3Rpb24pIDogbmFtZSwganNG
dW5jdGlvbi0+anNFeGVjdXRhYmxlKCktPnNvdXJjZVVSTCgpLCBqc0Z1bmN0aW9uLT5qc0V4ZWN1
dGFibGUoKS0+Zmlyc3RMaW5lKCksIGpzRnVuY3Rpb24tPmpzRXhlY3V0YWJsZSgpLT5zdGFydENv
bHVtbigpKTsKLSAgICByZXR1cm4gQ2FsbElkZW50aWZpZXIobmFtZS5pc0VtcHR5KCkgPyBBU0NJ
SUxpdGVyYWwoQW5vbnltb3VzRnVuY3Rpb24pIDogbmFtZSwgZGVmYXVsdFNvdXJjZVVSTCwgZGVm
YXVsdExpbmVOdW1iZXIsIGRlZmF1bHRDb2x1bW5OdW1iZXIpOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9MZWdhY3lQ
cm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVy
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmMGFiNDEuLjAwMDAwMDAKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgKKysrIC9kZXYv
bnVsbApAQCAtMSw3NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyLCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
IDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTGVnYWN5UHJvZmlsZXJfaAotI2RlZmlu
ZSBMZWdhY3lQcm9maWxlcl9oCi0KLSNpbmNsdWRlICJQcm9maWxlLmgiCi0jaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1N0
b3B3YXRjaC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0K
LWNsYXNzIEV4ZWNTdGF0ZTsKLWNsYXNzIEpTR2xvYmFsT2JqZWN0OwotY2xhc3MgSlNPYmplY3Q7
Ci1jbGFzcyBKU1ZhbHVlOwotY2xhc3MgUHJvZmlsZUdlbmVyYXRvcjsKLXN0cnVjdCBDYWxsSWRl
bnRpZmllcjsKLQotY2xhc3MgTGVnYWN5UHJvZmlsZXIgewotICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwotcHVibGljOgotICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBMZWdhY3lQcm9m
aWxlciogcHJvZmlsZXIoKTsKLSAgICBzdGF0aWMgQ2FsbElkZW50aWZpZXIgY3JlYXRlQ2FsbElk
ZW50aWZpZXIoRXhlY1N0YXRlKiwgSlNWYWx1ZSwgY29uc3QgV1RGOjpTdHJpbmcmIHNvdXJjZVVS
TCwgdW5zaWduZWQgZGVmYXVsdExpbmVOdW1iZXIsIHVuc2lnbmVkIGRlZmF1bHRDb2x1bW5OdW1i
ZXIpOwotCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdGFydFByb2ZpbGluZyhFeGVjU3Rh
dGUqLCBjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUsIFBhc3NSZWZQdHI8U3RvcHdhdGNoPik7Ci0g
ICAgSlNfRVhQT1JUX1BSSVZBVEUgUmVmUHRyPFByb2ZpbGU+IHN0b3BQcm9maWxpbmcoRXhlY1N0
YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlKTsKLSAgICB2b2lkIHN0b3BQcm9maWxpbmco
SlNHbG9iYWxPYmplY3QqKTsKLQotICAgIC8vIFVzZWQgdG8gaWdub3JlIHByb2ZpbGUgbm9kZSBz
dWJ0cmVlcyByb290ZWQgYXQgSW5qZWN0ZWRTY3JpcHQgY2FsbHMuCi0gICAgSlNfRVhQT1JUX1BS
SVZBVEUgdm9pZCBzdXNwZW5kUHJvZmlsaW5nKEV4ZWNTdGF0ZSopOwotICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHZvaWQgdW5zdXNwZW5kUHJvZmlsaW5nKEV4ZWNTdGF0ZSopOwotCi0gICAgdm9pZCB3
aWxsRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgSlNWYWx1ZSBmdW5jdGlvbik7
Ci0gICAgdm9pZCB3aWxsRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3Qg
V1RGOjpTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgc3RhcnRpbmdMaW5lTnVtYmVyLCB1bnNp
Z25lZCBzdGFydGluZ0NvbHVtbk51bWJlcik7Ci0gICAgdm9pZCBkaWRFeGVjdXRlKEV4ZWNTdGF0
ZSogY2FsbGVyQ2FsbEZyYW1lLCBKU1ZhbHVlIGZ1bmN0aW9uKTsKLSAgICB2b2lkIGRpZEV4ZWN1
dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBzb3VyY2VV
UkwsIHVuc2lnbmVkIHN0YXJ0aW5nTGluZU51bWJlciwgdW5zaWduZWQgc3RhcnRpbmdDb2x1bW5O
dW1iZXIpOwotCi0gICAgdm9pZCBleGNlcHRpb25VbndpbmQoRXhlY1N0YXRlKiBoYW5kbGVyQ2Fs
bEZyYW1lKTsKLQotICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4+JiBj
dXJyZW50UHJvZmlsZXMoKSB7IHJldHVybiBtX2N1cnJlbnRQcm9maWxlczsgfTsKLQotcHJpdmF0
ZToKLSAgICBWZWN0b3I8UmVmUHRyPFByb2ZpbGVHZW5lcmF0b3I+PiBtX2N1cnJlbnRQcm9maWxl
czsKLSAgICBzdGF0aWMgTGVnYWN5UHJvZmlsZXIqIHNfc2hhcmVkTGVnYWN5UHJvZmlsZXI7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2VuZGlmIC8vIExlZ2FjeVByb2ZpbGVyX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmNwcApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZjNkNDUwYS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5NSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDE0IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlByb2ZpbGUuaCIKLQotI2luY2x1ZGUgIlByb2ZpbGVO
b2RlLmgiCi0jaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLVJl
ZjxQcm9maWxlPiBQcm9maWxlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQg
dWlkLCBkb3VibGUgc3RhcnRUaW1lKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByb2Zp
bGUodGl0bGUsIHVpZCwgc3RhcnRUaW1lKSk7Ci19Ci0KLVByb2ZpbGU6OlByb2ZpbGUoY29uc3Qg
U3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBkb3VibGUgc3RhcnRUaW1lKQotICAgIDogbV90
aXRsZSh0aXRsZSkKLSAgICAsIG1fdWlkKHVpZCkKLXsKLSAgICAvLyBGSVhNRTogV2hlbiBtdWx0
aS10aHJlYWRpbmcgaXMgc3VwcG9ydGVkIHRoaXMgd2lsbCBiZSBhIHZlY3RvciBhbmQgY2FsbHMK
LSAgICAvLyBpbnRvIHRoZSBwcm9maWxlciB3aWxsIG5lZWQgdG8ga25vdyB3aGljaCB0aHJlYWQg
aXQgaXMgZXhlY3V0aW5nIG9uLgotICAgIG1fcm9vdE5vZGUgPSBQcm9maWxlTm9kZTo6Y3JlYXRl
KG51bGxwdHIsIENhbGxJZGVudGlmaWVyKEFTQ0lJTGl0ZXJhbCgiVGhyZWFkXzEiKSwgU3RyaW5n
KCksIDAsIDApLCBudWxscHRyKTsKLSAgICBtX3Jvb3ROb2RlLT5hcHBlbmRDYWxsKFByb2ZpbGVO
b2RlOjpDYWxsKHN0YXJ0VGltZSkpOwotfQotCi1Qcm9maWxlOjp+UHJvZmlsZSgpCi17Ci19Ci0K
LSNpZm5kZWYgTkRFQlVHCi12b2lkIFByb2ZpbGU6OmRlYnVnUHJpbnQoKQotewotICAgIENhbGN1
bGF0ZVByb2ZpbGVTdWJ0cmVlRGF0YUZ1bmN0b3IgZnVuY3RvcjsKLSAgICBtX3Jvb3ROb2RlLT5m
b3JFYWNoTm9kZVBvc3RvcmRlcihmdW5jdG9yKTsKLSAgICBQcm9maWxlTm9kZTo6UHJvZmlsZVN1
YnRyZWVEYXRhIGRhdGEgPSBmdW5jdG9yLnJldHVyblZhbHVlKCk7Ci0KLSAgICBkYXRhTG9nRigi
Q2FsbCBncmFwaDpcbiIpOwotICAgIG1fcm9vdE5vZGUtPmRlYnVnUHJpbnRSZWN1cnNpdmVseSgw
LCBkYXRhKTsKLX0KLQotdHlwZWRlZiBXVEY6OktleVZhbHVlUGFpcjxGdW5jdGlvbkNhbGxIYXNo
Q291bnQ6OlZhbHVlVHlwZSwgdW5zaWduZWQ+IE5hbWVDb3VudFBhaXI7Ci0KLXN0YXRpYyBpbmxp
bmUgYm9vbCBmdW5jdGlvbk5hbWVDb3VudFBhaXJDb21wYXJhdG9yKGNvbnN0IE5hbWVDb3VudFBh
aXImIGEsIGNvbnN0IE5hbWVDb3VudFBhaXImIGIpCi17Ci0gICAgcmV0dXJuIGEudmFsdWUgPiBi
LnZhbHVlOwotfQotCi12b2lkIFByb2ZpbGU6OmRlYnVnUHJpbnRTYW1wbGVTdHlsZSgpCi17Ci0g
ICAgdHlwZWRlZiBWZWN0b3I8TmFtZUNvdW50UGFpcj4gTmFtZUNvdW50UGFpclZlY3RvcjsKLQot
ICAgIENhbGN1bGF0ZVByb2ZpbGVTdWJ0cmVlRGF0YUZ1bmN0b3IgZnVuY3RvcjsKLSAgICBtX3Jv
b3ROb2RlLT5mb3JFYWNoTm9kZVBvc3RvcmRlcihmdW5jdG9yKTsKLSAgICBQcm9maWxlTm9kZTo6
UHJvZmlsZVN1YnRyZWVEYXRhIGRhdGEgPSBmdW5jdG9yLnJldHVyblZhbHVlKCk7Ci0KLSAgICBG
dW5jdGlvbkNhbGxIYXNoQ291bnQgY291bnRlZEZ1bmN0aW9uczsKLSAgICBkYXRhTG9nRigiQ2Fs
bCBncmFwaDpcbiIpOwotICAgIG1fcm9vdE5vZGUtPmRlYnVnUHJpbnRTYW1wbGVTdHlsZVJlY3Vy
c2l2ZWx5KDAsIGNvdW50ZWRGdW5jdGlvbnMsIGRhdGEpOwotCi0gICAgZGF0YUxvZ0YoIlxuVG90
YWwgbnVtYmVyIGluIHN0YWNrOlxuIik7Ci0gICAgTmFtZUNvdW50UGFpclZlY3RvciBzb3J0ZWRG
dW5jdGlvbnMoY291bnRlZEZ1bmN0aW9ucy5zaXplKCkpOwotICAgIGNvcHlUb1ZlY3Rvcihjb3Vu
dGVkRnVuY3Rpb25zLCBzb3J0ZWRGdW5jdGlvbnMpOwotCi0gICAgc3RkOjpzb3J0KHNvcnRlZEZ1
bmN0aW9ucy5iZWdpbigpLCBzb3J0ZWRGdW5jdGlvbnMuZW5kKCksIGZ1bmN0aW9uTmFtZUNvdW50
UGFpckNvbXBhcmF0b3IpOwotICAgIGZvciAoTmFtZUNvdW50UGFpclZlY3Rvcjo6aXRlcmF0b3Ig
aXQgPSBzb3J0ZWRGdW5jdGlvbnMuYmVnaW4oKTsgaXQgIT0gc29ydGVkRnVuY3Rpb25zLmVuZCgp
OyArK2l0KQotICAgICAgICBkYXRhTG9nRigiICAgICAgICAlLTEyZCVzXG4iLCAoKml0KS52YWx1
ZSwgU3RyaW5nKCgqaXQpLmtleSkudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICBkYXRhTG9nRigiXG5T
b3J0IGJ5IHRvcCBvZiBzdGFjaywgc2FtZSBjb2xsYXBzZWQgKHdoZW4gPj0gNSk6XG4iKTsKLX0K
LSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MWNiNjcwLi4wMDAw
MDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDE0
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLSAKLSNpZm5kZWYgUHJvZmlsZV9oCi0jZGVmaW5lIFByb2ZpbGVf
aAotCi0jaW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIFByb2ZpbGUg
OiBwdWJsaWMgUmVmQ291bnRlZDxQcm9maWxlPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxQ
cm9maWxlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBkb3VibGUp
OwotICAgIHZpcnR1YWwgflByb2ZpbGUoKTsKLQotICAgIGNvbnN0IFN0cmluZyYgdGl0bGUoKSBj
b25zdCB7IHJldHVybiBtX3RpdGxlOyB9Ci0gICAgdW5zaWduZWQgdWlkKCkgY29uc3QgeyByZXR1
cm4gbV91aWQ7IH0KLQotICAgIFByb2ZpbGVOb2RlKiByb290Tm9kZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcm9vdE5vZGUuZ2V0KCk7IH0KLSAgICB2b2lkIHNldFJvb3ROb2RlKFBhc3NSZWZQdHI8UHJv
ZmlsZU5vZGU+IHJvb3ROb2RlKSB7IG1fcm9vdE5vZGUgPSByb290Tm9kZTsgfQotCi0jaWZuZGVm
IE5ERUJVRwotICAgIHZvaWQgZGVidWdQcmludCgpOwotICAgIHZvaWQgZGVidWdQcmludFNhbXBs
ZVN0eWxlKCk7Ci0jZW5kaWYKLQotcHJvdGVjdGVkOgotICAgIFByb2ZpbGUoY29uc3QgU3RyaW5n
JiB0aXRsZSwgdW5zaWduZWQgdWlkLCBkb3VibGUgc3RhcnRUaW1lKTsKLQotcHJpdmF0ZToKLSAg
ICB2b2lkIHJlbW92ZVByb2ZpbGVTdGFydCgpOwotICAgIHZvaWQgcmVtb3ZlUHJvZmlsZUVuZCgp
OwotCi0gICAgU3RyaW5nIG1fdGl0bGU7Ci0gICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBtX3Jvb3RO
b2RlOwotICAgIHVuc2lnbmVkIG1fdWlkOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNl
bmRpZiAvLyBQcm9maWxlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlR2VuZXJhdG9yLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjVm
OGE0My4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZUdlbmVyYXRvci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNDEgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOCwgMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJQcm9maWxlR2VuZXJhdG9yLmgiCi0KLSNpbmNsdWRlICJD
YWxsRnJhbWUuaCIKLSNpbmNsdWRlICJDb2RlQmxvY2suaCIKLSNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgotI2luY2x1ZGUgIkpTU3RyaW5nUmVmLmgiCi0jaW5jbHVkZSAiSlNGdW5jdGlvbi5o
IgotI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCi0jaW5jbHVkZSAiSlNDSW5saW5lcy5oIgot
I2luY2x1ZGUgIlByb2ZpbGUuaCIKLSNpbmNsdWRlICJTdGFja1Zpc2l0b3IuaCIKLQotbmFtZXNw
YWNlIEpTQyB7Ci0KLVJlZjxQcm9maWxlR2VuZXJhdG9yPiBQcm9maWxlR2VuZXJhdG9yOjpjcmVh
dGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIFBh
c3NSZWZQdHI8U3RvcHdhdGNoPiBzdG9wd2F0Y2gpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgUHJvZmlsZUdlbmVyYXRvcihleGVjLCB0aXRsZSwgdWlkLCBzdG9wd2F0Y2gpKTsKLX0KLQot
UHJvZmlsZUdlbmVyYXRvcjo6UHJvZmlsZUdlbmVyYXRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+IHN0b3B3
YXRjaCkKLSAgICA6IG1fb3JpZ2luKGV4ZWMgPyBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkg
OiBudWxscHRyKQotICAgICwgbV9wcm9maWxlR3JvdXAoZXhlYyA/IGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkgOiAwKQotICAgICwgbV9zdG9wd2F0Y2goc3RvcHdh
dGNoKQotICAgICwgbV9mb3VuZENvbnNvbGVTdGFydFBhcmVudChmYWxzZSkKLSAgICAsIG1fc3Vz
cGVuZGVkKGZhbHNlKQotewotICAgIGRvdWJsZSBzdGFydFRpbWUgPSBtX3N0b3B3YXRjaC0+ZWxh
cHNlZFRpbWUoKTsKLSAgICBtX3Byb2ZpbGUgPSBQcm9maWxlOjpjcmVhdGUodGl0bGUsIHVpZCwg
c3RhcnRUaW1lKTsKLSAgICBtX2N1cnJlbnROb2RlID0gbV9yb290Tm9kZSA9IG1fcHJvZmlsZS0+
cm9vdE5vZGUoKTsKLSAgICBpZiAoZXhlYykKLSAgICAgICAgYWRkUGFyZW50Rm9yQ29uc29sZVN0
YXJ0KGV4ZWMsIHN0YXJ0VGltZSk7Ci19Ci0KLWNsYXNzIEFkZFBhcmVudEZvckNvbnNvbGVTdGFy
dEZ1bmN0b3IgewotcHVibGljOgotICAgIEFkZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1bmN0b3Io
RXhlY1N0YXRlKiBleGVjLCBSZWZQdHI8UHJvZmlsZU5vZGU+JiByb290Tm9kZSwgUmVmUHRyPFBy
b2ZpbGVOb2RlPiYgY3VycmVudE5vZGUsIGRvdWJsZSBzdGFydFRpbWUpCi0gICAgICAgIDogbV9l
eGVjKGV4ZWMpCi0gICAgICAgICwgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZShmYWxzZSkKLSAgICAg
ICAgLCBtX2ZvdW5kUGFyZW50KGZhbHNlKQotICAgICAgICAsIG1fcm9vdE5vZGUocm9vdE5vZGUp
Ci0gICAgICAgICwgbV9jdXJyZW50Tm9kZShjdXJyZW50Tm9kZSkKLSAgICAgICAgLCBtX3N0YXJ0
VGltZShzdGFydFRpbWUpCi0gICAgewotICAgIH0KLQotICAgIGJvb2wgZm91bmRQYXJlbnQoKSBj
b25zdCB7IHJldHVybiBtX2ZvdW5kUGFyZW50OyB9Ci0KLSAgICBTdGFja1Zpc2l0b3I6OlN0YXR1
cyBvcGVyYXRvcigpKFN0YWNrVmlzaXRvciYgdmlzaXRvcikgY29uc3QKLSAgICB7Ci0gICAgICAg
IGlmICghbV9oYXNTa2lwcGVkRmlyc3RGcmFtZSkgewotICAgICAgICAgICAgbV9oYXNTa2lwcGVk
Rmlyc3RGcmFtZSA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9yOjpDb250
aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHVuc2lnbmVkIGxpbmUgPSAwOwotICAgICAgICB1
bnNpZ25lZCBjb2x1bW4gPSAwOwotICAgICAgICB2aXNpdG9yLT5jb21wdXRlTGluZUFuZENvbHVt
bihsaW5lLCBjb2x1bW4pOwotICAgICAgICBtX2N1cnJlbnROb2RlID0gUHJvZmlsZU5vZGU6OmNy
ZWF0ZShtX2V4ZWMsIExlZ2FjeVByb2ZpbGVyOjpjcmVhdGVDYWxsSWRlbnRpZmllcihtX2V4ZWMs
IHZpc2l0b3ItPmNhbGxlZSgpLCB2aXNpdG9yLT5zb3VyY2VVUkwoKSwgbGluZSwgY29sdW1uKSwg
bV9yb290Tm9kZS5nZXQoKSk7Ci0gICAgICAgIG1fY3VycmVudE5vZGUtPmFwcGVuZENhbGwoUHJv
ZmlsZU5vZGU6OkNhbGwobV9zdGFydFRpbWUpKTsKLSAgICAgICAgbV9yb290Tm9kZS0+c3BsaWNl
Tm9kZShtX2N1cnJlbnROb2RlLmdldCgpKTsKLQotICAgICAgICBtX2ZvdW5kUGFyZW50ID0gdHJ1
ZTsKLSAgICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6RG9uZTsKLSAgICB9Ci0KLXByaXZhdGU6
Ci0gICAgRXhlY1N0YXRlKiBtX2V4ZWM7Ci0gICAgbXV0YWJsZSBib29sIG1faGFzU2tpcHBlZEZp
cnN0RnJhbWU7Ci0gICAgbXV0YWJsZSBib29sIG1fZm91bmRQYXJlbnQ7Ci0gICAgUmVmUHRyPFBy
b2ZpbGVOb2RlPiYgbV9yb290Tm9kZTsKLSAgICBSZWZQdHI8UHJvZmlsZU5vZGU+JiBtX2N1cnJl
bnROb2RlOwotICAgIGRvdWJsZSBtX3N0YXJ0VGltZTsKLX07Ci0KLXZvaWQgUHJvZmlsZUdlbmVy
YXRvcjo6YWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0KEV4ZWNTdGF0ZSogZXhlYywgZG91YmxlIHN0
YXJ0VGltZSkKLXsKLSAgICBBZGRQYXJlbnRGb3JDb25zb2xlU3RhcnRGdW5jdG9yIGZ1bmN0b3Io
ZXhlYywgbV9yb290Tm9kZSwgbV9jdXJyZW50Tm9kZSwgc3RhcnRUaW1lKTsKLSAgICBleGVjLT5p
dGVyYXRlKGZ1bmN0b3IpOwotCi0gICAgbV9mb3VuZENvbnNvbGVTdGFydFBhcmVudCA9IGZ1bmN0
b3IuZm91bmRQYXJlbnQoKTsKLX0KLQotY29uc3QgU3RyaW5nJiBQcm9maWxlR2VuZXJhdG9yOjp0
aXRsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcHJvZmlsZS0+dGl0bGUoKTsKLX0KLQotdm9p
ZCBQcm9maWxlR2VuZXJhdG9yOjpiZWdpbkNhbGxFbnRyeShQcm9maWxlTm9kZSogbm9kZSwgZG91
YmxlIHN0YXJ0VGltZSkKLXsKLSAgICBBU1NFUlRfQVJHKG5vZGUsIG5vZGUpOwotCi0gICAgaWYg
KHN0ZDo6aXNuYW4oc3RhcnRUaW1lKSkKLSAgICAgICAgc3RhcnRUaW1lID0gbV9zdG9wd2F0Y2gt
PmVsYXBzZWRUaW1lKCk7Ci0KLSAgICBub2RlLT5hcHBlbmRDYWxsKFByb2ZpbGVOb2RlOjpDYWxs
KHN0YXJ0VGltZSkpOwotfQotCi12b2lkIFByb2ZpbGVHZW5lcmF0b3I6OmVuZENhbGxFbnRyeShQ
cm9maWxlTm9kZSogbm9kZSkKLXsKLSAgICBBU1NFUlRfQVJHKG5vZGUsIG5vZGUpOwotCi0gICAg
UHJvZmlsZU5vZGU6OkNhbGwmIGxhc3QgPSBub2RlLT5sYXN0Q2FsbCgpOwotCi0gICAgZG91Ymxl
IHByZXZpb3VzRWxhcHNlZFRpbWUgPSBzdGQ6OmlzbmFuKGxhc3QuZWxhcHNlZFRpbWUoKSkgPyAw
LjAgOiBsYXN0LmVsYXBzZWRUaW1lKCk7Ci0gICAgZG91YmxlIG5ld2x5RWxhcHNlZFRpbWUgPSBt
X3N0b3B3YXRjaC0+ZWxhcHNlZFRpbWUoKSAtIGxhc3Quc3RhcnRUaW1lKCk7Ci0gICAgbGFzdC5z
ZXRFbGFwc2VkVGltZShwcmV2aW91c0VsYXBzZWRUaW1lICsgbmV3bHlFbGFwc2VkVGltZSk7Ci19
Ci0KLXZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6d2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJD
YWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllcikKLXsKLSAgICBp
ZiAoIW1fb3JpZ2luKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9zdXNwZW5kZWQpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIFJlZlB0cjxQcm9maWxlTm9kZT4gY2FsbGVlTm9kZSA9IG51
bGxwdHI7Ci0KLSAgICAvLyBGaW5kIG9yIGNyZWF0ZSBhIG5vZGUgZm9yIHRoZSBjYWxsZWUgY2Fs
bCBmcmFtZS4KLSAgICBmb3IgKGNvbnN0IFJlZlB0cjxQcm9maWxlTm9kZT4mIGNoaWxkIDogbV9j
dXJyZW50Tm9kZS0+Y2hpbGRyZW4oKSkgewotICAgICAgICBpZiAoY2hpbGQtPmNhbGxJZGVudGlm
aWVyKCkgPT0gY2FsbElkZW50aWZpZXIpCi0gICAgICAgICAgICBjYWxsZWVOb2RlID0gY2hpbGQ7
Ci0gICAgfQotCi0gICAgaWYgKCFjYWxsZWVOb2RlKSB7Ci0gICAgICAgIGNhbGxlZU5vZGUgPSBQ
cm9maWxlTm9kZTo6Y3JlYXRlKGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIsIG1fY3Vy
cmVudE5vZGUuZ2V0KCkpOwotICAgICAgICBtX2N1cnJlbnROb2RlLT5hZGRDaGlsZChjYWxsZWVO
b2RlKTsKLSAgICB9Ci0KLSAgICBtX2N1cnJlbnROb2RlID0gY2FsbGVlTm9kZTsKLSAgICBiZWdp
bkNhbGxFbnRyeShjYWxsZWVOb2RlLmdldCgpLCBtX3N0b3B3YXRjaC0+ZWxhcHNlZFRpbWUoKSk7
Ci19Ci0KLXZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxl
ckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJZGVudGlmaWVyKQotewotICAg
IGlmICghbV9vcmlnaW4pCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX3N1c3BlbmRlZCkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gTWFrZSBhIG5ldyBub2RlIGlmIHRoZSBjYWxsZXIg
bm9kZSBoYXMgbmV2ZXIgc2VlbiB0aGlzIGNhbGxlZSBjYWxsIGZyYW1lIGJlZm9yZS4KLSAgICAv
LyBUaGlzIGNhbiBoYXBwZW4gaWYgfGNvbnNvbGUucHJvZmlsZSgpfCBpcyBjYWxsZWQgc2V2ZXJh
bCBmcmFtZXMgZGVlcCBpbiB0aGUgY2FsbCBzdGFjay4KLSAgICBBU1NFUlQobV9jdXJyZW50Tm9k
ZSk7Ci0gICAgaWYgKG1fY3VycmVudE5vZGUtPmNhbGxJZGVudGlmaWVyKCkgIT0gY2FsbElkZW50
aWZpZXIpIHsKLSAgICAgICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBjYWxsZWVOb2RlID0gUHJvZmls
ZU5vZGU6OmNyZWF0ZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyLCBtX2N1cnJlbnRO
b2RlLmdldCgpKTsKLSAgICAgICAgYmVnaW5DYWxsRW50cnkoY2FsbGVlTm9kZS5nZXQoKSwgbV9j
dXJyZW50Tm9kZS0+bGFzdENhbGwoKS5zdGFydFRpbWUoKSk7Ci0gICAgICAgIGVuZENhbGxFbnRy
eShjYWxsZWVOb2RlLmdldCgpKTsKLSAgICAgICAgbV9jdXJyZW50Tm9kZS0+c3BsaWNlTm9kZShj
YWxsZWVOb2RlLnJlbGVhc2UoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBlbmRD
YWxsRW50cnkobV9jdXJyZW50Tm9kZS5nZXQoKSk7Ci0gICAgbV9jdXJyZW50Tm9kZSA9IG1fY3Vy
cmVudE5vZGUtPnBhcmVudCgpOwotfQotCi12b2lkIFByb2ZpbGVHZW5lcmF0b3I6OmV4Y2VwdGlv
blVud2luZChFeGVjU3RhdGUqIGhhbmRsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVy
JikKLXsKLSAgICBpZiAobV9zdXNwZW5kZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIElm
IHRoZSBjdXJyZW50IG5vZGUgd2FzIGNhbGxlZCBieSB0aGUgaGFuZGxlciAoPT0pIG9yIGFueQot
ICAgIC8vIG1vcmUgbmVzdGVkIGZ1bmN0aW9uICg+KSB0aGUgd2UgaGF2ZSBleGl0ZWQgZWFybHkg
ZnJvbSBpdC4KLSAgICBBU1NFUlQobV9jdXJyZW50Tm9kZSk7Ci0gICAgd2hpbGUgKG1fY3VycmVu
dE5vZGUtPmNhbGxlckNhbGxGcmFtZSgpID49IGhhbmRsZXJDYWxsRnJhbWUpIHsKLSAgICAgICAg
ZGlkRXhlY3V0ZShtX2N1cnJlbnROb2RlLT5jYWxsZXJDYWxsRnJhbWUoKSwgbV9jdXJyZW50Tm9k
ZS0+Y2FsbElkZW50aWZpZXIoKSk7Ci0gICAgICAgIEFTU0VSVChtX2N1cnJlbnROb2RlKTsKLSAg
ICB9Ci19Ci0KLXZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6c3RvcFByb2ZpbGluZygpCi17Ci0gICAg
Zm9yIChQcm9maWxlTm9kZSogbm9kZSA9IG1fY3VycmVudE5vZGUuZ2V0KCk7IG5vZGUgIT0gbV9w
cm9maWxlLT5yb290Tm9kZSgpOyBub2RlID0gbm9kZS0+cGFyZW50KCkpCi0gICAgICAgIGVuZENh
bGxFbnRyeShub2RlKTsKLQotICAgIGlmIChtX2ZvdW5kQ29uc29sZVN0YXJ0UGFyZW50KSB7Ci0g
ICAgICAgIHJlbW92ZVByb2ZpbGVTdGFydCgpOwotICAgICAgICByZW1vdmVQcm9maWxlRW5kKCk7
Ci0gICAgfQotCi0gICAgQVNTRVJUKG1fY3VycmVudE5vZGUpOwotCi0gICAgLy8gU2V0IHRoZSBj
dXJyZW50IG5vZGUgdG8gdGhlIHBhcmVudCwgYmVjYXVzZSB3ZSBhcmUgaW4gYSBjYWxsIHRoYXQK
LSAgICAvLyB3aWxsIG5vdCBnZXQgZGlkRXhlY3V0ZSBjYWxsLgotICAgIG1fY3VycmVudE5vZGUg
PSBtX2N1cnJlbnROb2RlLT5wYXJlbnQoKTsKLX0KLQotLy8gVGhlIGNvbnNvbGUucHJvZmlsZSB0
aGF0IHN0YXJ0ZWQgdGhpcyBQcm9maWxlR2VuZXJhdG9yIHdpbGwgYmUgdGhlIGZpcnN0IGNoaWxk
Lgotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjpyZW1vdmVQcm9maWxlU3RhcnQoKQotewotICAgIFBy
b2ZpbGVOb2RlKiBjdXJyZW50Tm9kZSA9IG51bGxwdHI7Ci0gICAgZm9yIChQcm9maWxlTm9kZSog
bmV4dCA9IG1fcm9vdE5vZGUuZ2V0KCk7IG5leHQ7IG5leHQgPSBuZXh0LT5maXJzdENoaWxkKCkp
Ci0gICAgICAgIGN1cnJlbnROb2RlID0gbmV4dDsKLQotICAgIGlmIChjdXJyZW50Tm9kZS0+Y2Fs
bElkZW50aWZpZXIoKS5mdW5jdGlvbk5hbWUoKSAhPSAicHJvZmlsZSIpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGN1cnJlbnROb2RlLT5wYXJlbnQoKS0+cmVtb3ZlQ2hpbGQoY3VycmVudE5vZGUp
OwotfQotCi0vLyBUaGUgY29uc29sZS5wcm9maWxlRW5kIHRoYXQgc3RvcHBlZCB0aGlzIFByb2Zp
bGVHZW5lcmF0b3Igd2lsbCBiZSB0aGUgbGFzdCBjaGlsZC4KLXZvaWQgUHJvZmlsZUdlbmVyYXRv
cjo6cmVtb3ZlUHJvZmlsZUVuZCgpCi17Ci0gICAgUHJvZmlsZU5vZGUqIGN1cnJlbnROb2RlID0g
bnVsbHB0cjsKLSAgICBmb3IgKFByb2ZpbGVOb2RlKiBuZXh0ID0gbV9yb290Tm9kZS5nZXQoKTsg
bmV4dDsgbmV4dCA9IG5leHQtPmxhc3RDaGlsZCgpKQotICAgICAgICBjdXJyZW50Tm9kZSA9IG5l
eHQ7Ci0KLSAgICBpZiAoY3VycmVudE5vZGUtPmNhbGxJZGVudGlmaWVyKCkuZnVuY3Rpb25OYW1l
KCkgIT0gInByb2ZpbGVFbmQiKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQoY3VycmVu
dE5vZGUtPmNhbGxJZGVudGlmaWVyKCkgPT0gKGN1cnJlbnROb2RlLT5wYXJlbnQoKS0+Y2hpbGRy
ZW4oKVtjdXJyZW50Tm9kZS0+cGFyZW50KCktPmNoaWxkcmVuKCkuc2l6ZSgpIC0gMV0pLT5jYWxs
SWRlbnRpZmllcigpKTsKLSAgICBjdXJyZW50Tm9kZS0+cGFyZW50KCktPnJlbW92ZUNoaWxkKGN1
cnJlbnROb2RlKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzg3ZWQ1Zi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oCisrKyAvZGV2L251bGwKQEAgLTEsODQgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
UHJvZmlsZUdlbmVyYXRvcl9oCi0jZGVmaW5lIFByb2ZpbGVHZW5lcmF0b3JfaAotCi0jaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvU3RvcHdhdGNoLmg+Ci0jaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotCi0gICAgY2xhc3MgRGVi
dWdnZXJDYWxsRnJhbWU7Ci0gICAgY2xhc3MgRXhlY1N0YXRlOwotICAgIGNsYXNzIEpTR2xvYmFs
T2JqZWN0OwotICAgIGNsYXNzIFByb2ZpbGU7Ci0gICAgY2xhc3MgUHJvZmlsZU5vZGU7Ci0gICAg
c3RydWN0IENhbGxJZGVudGlmaWVyOwotCi0gICAgY2xhc3MgUHJvZmlsZUdlbmVyYXRvciA6IHB1
YmxpYyBSZWZDb3VudGVkPFByb2ZpbGVHZW5lcmF0b3I+ICB7Ci0gICAgcHVibGljOgotICAgICAg
ICBzdGF0aWMgUmVmPFByb2ZpbGVHZW5lcmF0b3I+IGNyZWF0ZShFeGVjU3RhdGUqLCBjb25zdCBX
VEY6OlN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+KTsK
LQotICAgICAgICAvLyBNZW1iZXJzCi0gICAgICAgIGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSgp
IGNvbnN0OwotICAgICAgICBQYXNzUmVmUHRyPFByb2ZpbGU+IHByb2ZpbGUoKSBjb25zdCB7IHJl
dHVybiBtX3Byb2ZpbGU7IH0KLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIG9yaWdpbigpIGNvbnN0
IHsgcmV0dXJuIG1fb3JpZ2luOyB9Ci0gICAgICAgIHVuc2lnbmVkIHByb2ZpbGVHcm91cCgpIGNv
bnN0IHsgcmV0dXJuIG1fcHJvZmlsZUdyb3VwOyB9Ci0KLSAgICAgICAgdm9pZCB3aWxsRXhlY3V0
ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImKTsKLSAg
ICAgICAgdm9pZCBkaWRFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBD
YWxsSWRlbnRpZmllciYpOwotICAgICAgICB2b2lkIGV4Y2VwdGlvblVud2luZChFeGVjU3RhdGUq
IGhhbmRsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJik7Ci0KLSAgICAgICAgdm9p
ZCBzZXRJc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCkgeyBBU1NFUlQobV9zdXNwZW5kZWQgIT0g
c3VzcGVuZGVkKTsgbV9zdXNwZW5kZWQgPSBzdXNwZW5kZWQ7IH0KLQotICAgICAgICB2b2lkIHN0
b3BQcm9maWxpbmcoKTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIFByb2ZpbGVHZW5lcmF0b3Io
RXhlY1N0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIFBhc3NS
ZWZQdHI8U3RvcHdhdGNoPik7Ci0gICAgICAgIHZvaWQgYWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0
KEV4ZWNTdGF0ZSosIGRvdWJsZSk7Ci0KLSAgICAgICAgdm9pZCByZW1vdmVQcm9maWxlU3RhcnQo
KTsKLSAgICAgICAgdm9pZCByZW1vdmVQcm9maWxlRW5kKCk7Ci0KLSAgICAgICAgdm9pZCBiZWdp
bkNhbGxFbnRyeShQcm9maWxlTm9kZSosIGRvdWJsZSBzdGFydFRpbWUpOwotICAgICAgICB2b2lk
IGVuZENhbGxFbnRyeShQcm9maWxlTm9kZSopOwotCi0gICAgICAgIFJlZlB0cjxQcm9maWxlPiBt
X3Byb2ZpbGU7Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBtX29yaWdpbjsKLSAgICAgICAgdW5z
aWduZWQgbV9wcm9maWxlR3JvdXA7Ci0gICAgICAgIFJlZlB0cjxTdG9wd2F0Y2g+IG1fc3RvcHdh
dGNoOwotICAgICAgICBSZWZQdHI8UHJvZmlsZU5vZGU+IG1fcm9vdE5vZGU7Ci0gICAgICAgIFJl
ZlB0cjxQcm9maWxlTm9kZT4gbV9jdXJyZW50Tm9kZTsKLSAgICAgICAgYm9vbCBtX2ZvdW5kQ29u
c29sZVN0YXJ0UGFyZW50OwotICAgICAgICBib29sIG1fc3VzcGVuZGVkOwotICAgIH07Ci0KLX0g
Ly8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gUHJvZmlsZUdlbmVyYXRvcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOWJjZjM3NS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTk5ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUg
b2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlByb2ZpbGVOb2RlLmgiCi0KLSNpbmNs
dWRlICJMZWdhY3lQcm9maWxlci5oIgotI2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5oPgotI2luY2x1
ZGUgPHd0Zi9EYXRhTG9nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgotCi11
c2luZyBuYW1lc3BhY2UgV1RGOwotCi1uYW1lc3BhY2UgSlNDIHsKLQotUHJvZmlsZU5vZGU6OlBy
b2ZpbGVOb2RlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmll
ciYgY2FsbElkZW50aWZpZXIsIFByb2ZpbGVOb2RlKiBwYXJlbnROb2RlKQotICAgIDogbV9jYWxs
ZXJDYWxsRnJhbWUoY2FsbGVyQ2FsbEZyYW1lKQotICAgICwgbV9jYWxsSWRlbnRpZmllcihjYWxs
SWRlbnRpZmllcikKLSAgICAsIG1fcGFyZW50KHBhcmVudE5vZGUpCi0jaWZuZGVmIE5ERUJVRwot
ICAgICwgbV9uZXh0U2libGluZyhudWxscHRyKQotI2VuZGlmCi17Ci19Ci0KLVByb2ZpbGVOb2Rl
OjpQcm9maWxlTm9kZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgUHJvZmlsZU5vZGUqIG5v
ZGVUb0NvcHkpCi0gICAgOiBtX2NhbGxlckNhbGxGcmFtZShjYWxsZXJDYWxsRnJhbWUpCi0gICAg
LCBtX2NhbGxJZGVudGlmaWVyKG5vZGVUb0NvcHktPmNhbGxJZGVudGlmaWVyKCkpCi0gICAgLCBt
X3BhcmVudChub2RlVG9Db3B5LT5wYXJlbnQoKSkKLSAgICAsIG1fY2FsbHMobm9kZVRvQ29weS0+
Y2FsbHMoKSkKLSNpZm5kZWYgTkRFQlVHCi0gICAgLCBtX25leHRTaWJsaW5nKG51bGxwdHIpCi0j
ZW5kaWYKLXsKLX0KLQotdm9pZCBQcm9maWxlTm9kZTo6YWRkQ2hpbGQoUGFzc1JlZlB0cjxQcm9m
aWxlTm9kZT4gcHJwQ2hpbGQpCi17Ci0gICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBjaGlsZCA9IHBy
cENoaWxkOwotICAgIGNoaWxkLT5zZXRQYXJlbnQodGhpcyk7Ci0jaWZuZGVmIE5ERUJVRwotICAg
IGlmIChtX2NoaWxkcmVuLnNpemUoKSkKLSAgICAgICAgbV9jaGlsZHJlbi5sYXN0KCktPnNldE5l
eHRTaWJsaW5nKGNoaWxkLmdldCgpKTsKLSNlbmRpZgotICAgIG1fY2hpbGRyZW4uYXBwZW5kKGNo
aWxkLnJlbGVhc2UoKSk7Ci19Ci0KLXZvaWQgUHJvZmlsZU5vZGU6OnJlbW92ZUNoaWxkKFByb2Zp
bGVOb2RlKiBub2RlKQotewotICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
bV9jaGlsZHJlbi5yZW1vdmVGaXJzdE1hdGNoaW5nKFtub2RlXSAoY29uc3QgUmVmUHRyPFByb2Zp
bGVOb2RlPiYgY3VycmVudCkgewotICAgICAgICByZXR1cm4gKm5vZGUgPT0gY3VycmVudC5nZXQo
KTsKLSAgICB9KTsKLQotI2lmbmRlZiBOREVCVUcKLSAgICBzaXplX3Qgc2l6ZSA9IG1fY2hpbGRy
ZW4uc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAgICAg
ICBtX2NoaWxkcmVuW2ldLT5zZXROZXh0U2libGluZyhpICsgMSA9PSBzaXplID8gbnVsbHB0ciA6
IG1fY2hpbGRyZW5baSArIDFdLmdldCgpKTsKLSNlbmRpZgotfQotCi12b2lkIFByb2ZpbGVOb2Rl
OjpzcGxpY2VOb2RlKFBhc3NSZWZQdHI8UHJvZmlsZU5vZGU+IHBycE5vZGUpCi17Ci0gICAgUmVm
UHRyPFByb2ZpbGVOb2RlPiBub2RlID0gcHJwTm9kZTsKLQotICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX2NoaWxkcmVuLnNpemUoKTsgKytpKQotICAgICAgICBub2RlLT5hZGRDaGlsZCht
X2NoaWxkcmVuW2ldLnJlbGVhc2UoKSk7Ci0KLSAgICBtX2NoaWxkcmVuLmNsZWFyKCk7Ci0gICAg
bV9jaGlsZHJlbi5hcHBlbmQobm9kZS5yZWxlYXNlKCkpOwotfQotCi0jaWZuZGVmIE5ERUJVRwot
UHJvZmlsZU5vZGUqIFByb2ZpbGVOb2RlOjp0cmF2ZXJzZU5leHROb2RlUG9zdE9yZGVyKCkgY29u
c3QKLXsKLSAgICBQcm9maWxlTm9kZSogbmV4dCA9IG1fbmV4dFNpYmxpbmc7Ci0gICAgaWYgKCFu
ZXh0KQotICAgICAgICByZXR1cm4gbV9wYXJlbnQ7Ci0gICAgd2hpbGUgKFByb2ZpbGVOb2RlKiBm
aXJzdENoaWxkID0gbmV4dC0+Zmlyc3RDaGlsZCgpKQotICAgICAgICBuZXh0ID0gZmlyc3RDaGls
ZDsKLSAgICByZXR1cm4gbmV4dDsKLX0KLQotdm9pZCBQcm9maWxlTm9kZTo6ZGVidWdQcmludCgp
Ci17Ci0gICAgQ2FsY3VsYXRlUHJvZmlsZVN1YnRyZWVEYXRhRnVuY3RvciBmdW5jdG9yOwotICAg
IGZvckVhY2hOb2RlUG9zdG9yZGVyKGZ1bmN0b3IpOwotICAgIFByb2ZpbGVOb2RlOjpQcm9maWxl
U3VidHJlZURhdGEgZGF0YSA9IGZ1bmN0b3IucmV0dXJuVmFsdWUoKTsKLQotICAgIGRlYnVnUHJp
bnRSZWN1cnNpdmVseSgwLCBkYXRhKTsKLX0KLQotdm9pZCBQcm9maWxlTm9kZTo6ZGVidWdQcmlu
dFNhbXBsZVN0eWxlKCkKLXsKLSAgICBGdW5jdGlvbkNhbGxIYXNoQ291bnQgY291bnRlZEZ1bmN0
aW9uczsKLQotICAgIENhbGN1bGF0ZVByb2ZpbGVTdWJ0cmVlRGF0YUZ1bmN0b3IgZnVuY3RvcjsK
LSAgICBmb3JFYWNoTm9kZVBvc3RvcmRlcihmdW5jdG9yKTsKLSAgICBQcm9maWxlTm9kZTo6UHJv
ZmlsZVN1YnRyZWVEYXRhIGRhdGEgPSBmdW5jdG9yLnJldHVyblZhbHVlKCk7Ci0KLSAgICBkZWJ1
Z1ByaW50U2FtcGxlU3R5bGVSZWN1cnNpdmVseSgwLCBjb3VudGVkRnVuY3Rpb25zLCBkYXRhKTsK
LX0KLQotdm9pZCBQcm9maWxlTm9kZTo6ZGVidWdQcmludFJlY3Vyc2l2ZWx5KGludCBpbmRlbnRM
ZXZlbCwgY29uc3QgUHJvZmlsZVN1YnRyZWVEYXRhJiBkYXRhKQotewotICAgIC8vIFByaW50IGZ1
bmN0aW9uIG5hbWVzCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRlbnRMZXZlbDsgKytpKQot
ICAgICAgICBkYXRhTG9nRigiICAiKTsKLQotICAgIGF1dG8gaXQgPSBkYXRhLnNlbGZBbmRUb3Rh
bFRpbWVzLmZpbmQodGhpcyk7Ci0gICAgQVNTRVJUKGl0ICE9IGRhdGEuc2VsZkFuZFRvdGFsVGlt
ZXMuZW5kKCkpOwotCi0gICAgZG91YmxlIG5vZGVTZWxmVGltZSA9IGl0LT52YWx1ZS5maXJzdDsK
LSAgICBkb3VibGUgbm9kZVRvdGFsVGltZSA9IGl0LT52YWx1ZS5zZWNvbmQ7Ci0gICAgZG91Ymxl
IHJvb3RUb3RhbFRpbWUgPSBkYXRhLnJvb3RUb3RhbFRpbWU7Ci0KLSAgICBkYXRhTG9nRigiRnVu
Y3Rpb24gTmFtZSAlcyAlenUgU2VsZlRpbWUgJS4zZm1zLyUuM2YlJSBUb3RhbFRpbWUgJS4zZm1z
LyUuM2YlJSBOZXh0IFNpYmxpbmcgJXNcbiIsCi0gICAgICAgIGZ1bmN0aW9uTmFtZSgpLnV0Zjgo
KS5kYXRhKCksCi0gICAgICAgIG1fY2FsbHMuc2l6ZSgpLCBub2RlU2VsZlRpbWUsIG5vZGVTZWxm
VGltZSAvIHJvb3RUb3RhbFRpbWUgKiAxMDAuMCwgbm9kZVRvdGFsVGltZSwgbm9kZVRvdGFsVGlt
ZSAvIHJvb3RUb3RhbFRpbWUgKiAxMDAuMCwKLSAgICAgICAgbV9uZXh0U2libGluZyA/IG1fbmV4
dFNpYmxpbmctPmZ1bmN0aW9uTmFtZSgpLnV0ZjgoKS5kYXRhKCkgOiAiIik7Ci0KLSAgICArK2lu
ZGVudExldmVsOwotCi0gICAgLy8gUHJpbnQgY2hpbGRyZW4ncyBuYW1lcyBhbmQgaW5mb3JtYXRp
b24KLSAgICBmb3IgKFN0YWNrSXRlcmF0b3IgY3VycmVudENoaWxkID0gbV9jaGlsZHJlbi5iZWdp
bigpOyBjdXJyZW50Q2hpbGQgIT0gbV9jaGlsZHJlbi5lbmQoKTsgKytjdXJyZW50Q2hpbGQpCi0g
ICAgICAgICgqY3VycmVudENoaWxkKS0+ZGVidWdQcmludFJlY3Vyc2l2ZWx5KGluZGVudExldmVs
LCBkYXRhKTsKLX0KLQotLy8gcHJpbnQgdGhlIHByb2ZpbGVkIGRhdGEgaW4gYSBmb3JtYXQgdGhh
dCBtYXRjaGVzIHRoZSB0b29sIHNhbXBsZSdzIG91dHB1dC4KLWRvdWJsZSBQcm9maWxlTm9kZTo6
ZGVidWdQcmludFNhbXBsZVN0eWxlUmVjdXJzaXZlbHkoaW50IGluZGVudExldmVsLCBGdW5jdGlv
bkNhbGxIYXNoQ291bnQmIGNvdW50ZWRGdW5jdGlvbnMsIGNvbnN0IFByb2ZpbGVTdWJ0cmVlRGF0
YSYgZGF0YSkKLXsKLSAgICBkYXRhTG9nRigiICAgICIpOwotCi0gICAgYXV0byBpdCA9IGRhdGEu
c2VsZkFuZFRvdGFsVGltZXMuZmluZCh0aGlzKTsKLSAgICBBU1NFUlQoaXQgIT0gZGF0YS5zZWxm
QW5kVG90YWxUaW1lcy5lbmQoKSk7Ci0gICAgZG91YmxlIG5vZGVUb3RhbFRpbWUgPSBpdC0+dmFs
dWUuc2Vjb25kOwotCi0gICAgLy8gUHJpbnQgZnVuY3Rpb24gbmFtZXMKLSAgICBjb25zdCBjaGFy
KiBuYW1lID0gZnVuY3Rpb25OYW1lKCkudXRmOCgpLmRhdGEoKTsKLSAgICBkb3VibGUgc2FtcGxl
Q291bnQgPSBub2RlVG90YWxUaW1lICogMTAwMDsKLSAgICBpZiAoaW5kZW50TGV2ZWwpIHsKLSAg
ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRlbnRMZXZlbDsgKytpKQotICAgICAgICAgICAg
ZGF0YUxvZ0YoIiAgIik7Ci0KLSAgICAgICAgIGNvdW50ZWRGdW5jdGlvbnMuYWRkKGZ1bmN0aW9u
TmFtZSgpLmltcGwoKSk7Ci0KLSAgICAgICAgZGF0YUxvZ0YoIiUuMGYgJXNcbiIsIHNhbXBsZUNv
dW50ID8gc2FtcGxlQ291bnQgOiAxLCBuYW1lKTsKLSAgICB9IGVsc2UKLSAgICAgICAgZGF0YUxv
Z0YoIiVzXG4iLCBuYW1lKTsKLQotICAgICsraW5kZW50TGV2ZWw7Ci0KLSAgICAvLyBQcmludCBj
aGlsZHJlbidzIG5hbWVzIGFuZCBpbmZvcm1hdGlvbgotICAgIGRvdWJsZSBzdW1PZkNoaWxkcmVu
c0NvdW50ID0gMC4wOwotICAgIGZvciAoU3RhY2tJdGVyYXRvciBjdXJyZW50Q2hpbGQgPSBtX2No
aWxkcmVuLmJlZ2luKCk7IGN1cnJlbnRDaGlsZCAhPSBtX2NoaWxkcmVuLmVuZCgpOyArK2N1cnJl
bnRDaGlsZCkKLSAgICAgICAgc3VtT2ZDaGlsZHJlbnNDb3VudCArPSAoKmN1cnJlbnRDaGlsZCkt
PmRlYnVnUHJpbnRTYW1wbGVTdHlsZVJlY3Vyc2l2ZWx5KGluZGVudExldmVsLCBjb3VudGVkRnVu
Y3Rpb25zLCBkYXRhKTsKLQotICAgIHN1bU9mQ2hpbGRyZW5zQ291bnQgKj0gMTAwMDsgICAgLy8K
LSAgICAvLyBQcmludCByZW1haW5kZXIgb2Ygc2FtcGxlcyB0byBtYXRjaCBzYW1wbGUncyBvdXRw
dXQKLSAgICBpZiAoc3VtT2ZDaGlsZHJlbnNDb3VudCA8IHNhbXBsZUNvdW50KSB7Ci0gICAgICAg
IGRhdGFMb2dGKCIgICAgIik7Ci0gICAgICAgIHdoaWxlIChpbmRlbnRMZXZlbC0tKQotICAgICAg
ICAgICAgZGF0YUxvZ0YoIiAgIik7Ci0KLSAgICAgICAgZGF0YUxvZ0YoIiUuMGYgJXNcbiIsIHNh
bXBsZUNvdW50IC0gc3VtT2ZDaGlsZHJlbnNDb3VudCwgZnVuY3Rpb25OYW1lKCkudXRmOCgpLmRh
dGEoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIG5vZGVUb3RhbFRpbWU7Ci19Ci0jZW5kaWYKLQot
fSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJv
ZmlsZXIvUHJvZmlsZU5vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlTm9kZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YWQxNDllLi4wMDAwMDAw
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5oCisrKyAv
ZGV2L251bGwKQEAgLTEsMTk0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1l
cyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQcm9maWxlTm9kZV9oCi0jZGVmaW5lIFBy
b2ZpbGVOb2RlX2gKLQotI2luY2x1ZGUgIkNhbGxJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSA8d3Rm
L0hhc2hDb3VudGVkU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgSlND
IHsKLQotICAgIGNsYXNzIEV4ZWNTdGF0ZTsKLSAgICBjbGFzcyBQcm9maWxlTm9kZTsKLQotICAg
IHR5cGVkZWYgSGFzaENvdW50ZWRTZXQ8U3RyaW5nSW1wbCo+IEZ1bmN0aW9uQ2FsbEhhc2hDb3Vu
dDsKLQotICAgIGNsYXNzIFByb2ZpbGVOb2RlIDogcHVibGljIFJlZkNvdW50ZWQ8UHJvZmlsZU5v
ZGU+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8UHJvZmlsZU5vZGU+IGNyZWF0
ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJ
ZGVudGlmaWVyLCBQcm9maWxlTm9kZSogcGFyZW50Tm9kZSkKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHJvZmlsZU5vZGUoY2FsbGVyQ2FsbEZyYW1lLCBjYWxs
SWRlbnRpZmllciwgcGFyZW50Tm9kZSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIFJl
ZjxQcm9maWxlTm9kZT4gY3JlYXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBQcm9maWxl
Tm9kZSogbm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UHJvZmlsZU5vZGUoY2FsbGVyQ2FsbEZyYW1lLCBub2RlKSk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBzdHJ1Y3QgQ2FsbCB7Ci0gICAgICAgIHB1YmxpYzoKLSAgICAgICAgICAgIENhbGwoZG91Ymxl
IHN0YXJ0VGltZSwgZG91YmxlIGVsYXBzZWRUaW1lID0gTkFOKQotICAgICAgICAgICAgICAgIDog
bV9zdGFydFRpbWUoc3RhcnRUaW1lKQotICAgICAgICAgICAgICAgICwgbV9lbGFwc2VkVGltZShl
bGFwc2VkVGltZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ZG91YmxlIHN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRUaW1lOyB9Ci0gICAgICAg
ICAgICB2b2lkIHNldFN0YXJ0VGltZShkb3VibGUgdGltZSkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBBU1NFUlRfQVJHKHRpbWUsIHRpbWUgPj0gMC4wIHx8IHN0ZDo6aXNuYW4odGlt
ZSkpOwotICAgICAgICAgICAgICAgIG1fc3RhcnRUaW1lID0gdGltZTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9lbGFw
c2VkVGltZTsgfQotICAgICAgICAgICAgdm9pZCBzZXRFbGFwc2VkVGltZShkb3VibGUgdGltZSkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBBU1NFUlRfQVJHKHRpbWUsIHRpbWUgPj0g
MC4wIHx8IHN0ZDo6aXNuYW4odGltZSkpOwotICAgICAgICAgICAgICAgIG1fZWxhcHNlZFRpbWUg
PSB0aW1lOwotICAgICAgICAgICAgfQotCi0gICAgICAgIHByaXZhdGU6Ci0gICAgICAgICAgICBk
b3VibGUgbV9zdGFydFRpbWU7Ci0gICAgICAgICAgICBkb3VibGUgbV9lbGFwc2VkVGltZTsKLSAg
ICAgICAgfTsKLQotICAgICAgICBib29sIG9wZXJhdG9yPT0oUHJvZmlsZU5vZGUqIG5vZGUpIHsg
cmV0dXJuIG1fY2FsbElkZW50aWZpZXIgPT0gbm9kZS0+Y2FsbElkZW50aWZpZXIoKTsgfQotCi0g
ICAgICAgIEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9jYWxs
ZXJDYWxsRnJhbWU7IH0KLSAgICAgICAgY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsSWRlbnRpZmllcjsgfQotICAgICAgICB1bnNpZ25l
ZCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbElkZW50aWZpZXIuaGFzaCgpOyB9Ci0gICAgICAg
IGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsSWRlbnRp
Zmllci5mdW5jdGlvbk5hbWUoKTsgfQotICAgICAgICBjb25zdCBTdHJpbmcmIHVybCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2FsbElkZW50aWZpZXIudXJsKCk7IH0KLSAgICAgICAgdW5zaWduZWQgbGlu
ZU51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbElkZW50aWZpZXIubGluZU51bWJlcigpOyB9
Ci0gICAgICAgIHVuc2lnbmVkIGNvbHVtbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbElk
ZW50aWZpZXIuY29sdW1uTnVtYmVyKCk7IH0KLQotICAgICAgICBQcm9maWxlTm9kZSogcGFyZW50
KCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnQ7IH0KLSAgICAgICAgdm9pZCBzZXRQYXJlbnQoUHJv
ZmlsZU5vZGUqIHBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQotCi0gICAgICAgIGNvbnN0
IFZlY3RvcjxDYWxsPiYgY2FsbHMoKSBjb25zdCB7IHJldHVybiBtX2NhbGxzOyB9Ci0gICAgICAg
IENhbGwmIGxhc3RDYWxsKCkgeyBBU1NFUlQoIW1fY2FsbHMuaXNFbXB0eSgpKTsgcmV0dXJuIG1f
Y2FsbHMubGFzdCgpOyB9Ci0gICAgICAgIHZvaWQgYXBwZW5kQ2FsbChDYWxsIGNhbGwpIHsgbV9j
YWxscy5hcHBlbmQoY2FsbCk7IH0KLQotICAgICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFByb2Zp
bGVOb2RlPj4mIGNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZHJlbjsgfQotICAgICAg
ICBQcm9maWxlTm9kZSogZmlyc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4uc2l6
ZSgpID8gbV9jaGlsZHJlbi5maXJzdCgpLmdldCgpIDogbnVsbHB0cjsgfQotICAgICAgICBQcm9m
aWxlTm9kZSogbGFzdENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZHJlbi5zaXplKCkgPyBt
X2NoaWxkcmVuLmxhc3QoKS5nZXQoKSA6IG51bGxwdHI7IH0KLQotICAgICAgICB2b2lkIHJlbW92
ZUNoaWxkKFByb2ZpbGVOb2RlKik7Ci0gICAgICAgIHZvaWQgYWRkQ2hpbGQoUGFzc1JlZlB0cjxQ
cm9maWxlTm9kZT4pOwotICAgICAgICAvLyBSZXBhcmVudCBvdXIgY2hpbGQgbm9kZXMgdG8gdGhl
IHBhc3NlZCBub2RlLCBhbmQgbWFrZSBpdCBhIGNoaWxkIG5vZGUgb2YgfHRoaXN8LgotICAgICAg
ICB2b2lkIHNwbGljZU5vZGUoUGFzc1JlZlB0cjxQcm9maWxlTm9kZT4pOwotCi0jaWZuZGVmIE5E
RUJVRwotICAgICAgICBzdHJ1Y3QgUHJvZmlsZVN1YnRyZWVEYXRhIHsKLSAgICAgICAgICAgIEhh
c2hNYXA8UHJvZmlsZU5vZGUqLCBzdGQ6OnBhaXI8ZG91YmxlLCBkb3VibGU+PiBzZWxmQW5kVG90
YWxUaW1lczsKLSAgICAgICAgICAgIGRvdWJsZSByb290VG90YWxUaW1lOwotICAgICAgICB9Owot
Ci0gICAgICAgIC8vIFVzZSB0aGVzZSBmdW5jdGlvbnMgdG8gZHVtcCB0aGUgc3VidHJlZSByb290
ZWQgYXQgdGhpcyBub2RlLgotICAgICAgICB2b2lkIGRlYnVnUHJpbnQoKTsKLSAgICAgICAgdm9p
ZCBkZWJ1Z1ByaW50U2FtcGxlU3R5bGUoKTsKLQotICAgICAgICAvLyBUaGVzZSBhcmUgdXNlZCB0
byByZWN1cnNpdmVseSBwcmludCBlbnRpcmUgc3VidHJlZXMgdXNpbmcgcHJlY29tcHV0ZWQgc2Vs
ZiBhbmQgdG90YWwgdGltZXMuCi0gICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiB2
b2lkIGZvckVhY2hOb2RlUG9zdG9yZGVyKEZ1bmN0b3ImKTsKLQotICAgICAgICB2b2lkIGRlYnVn
UHJpbnRSZWN1cnNpdmVseShpbnQgaW5kZW50TGV2ZWwsIGNvbnN0IFByb2ZpbGVTdWJ0cmVlRGF0
YSYpOwotICAgICAgICBkb3VibGUgZGVidWdQcmludFNhbXBsZVN0eWxlUmVjdXJzaXZlbHkoaW50
IGluZGVudExldmVsLCBGdW5jdGlvbkNhbGxIYXNoQ291bnQmLCBjb25zdCBQcm9maWxlU3VidHJl
ZURhdGEmKTsKLSNlbmRpZgotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdHlwZWRlZiBWZWN0b3I8
UmVmUHRyPFByb2ZpbGVOb2RlPj46OmNvbnN0X2l0ZXJhdG9yIFN0YWNrSXRlcmF0b3I7Ci0KLSAg
ICAgICAgUHJvZmlsZU5vZGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJ
ZGVudGlmaWVyJiwgUHJvZmlsZU5vZGUqIHBhcmVudE5vZGUpOwotICAgICAgICBQcm9maWxlTm9k
ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgUHJvZmlsZU5vZGUqIG5vZGVUb0NvcHkpOwot
Ci0jaWZuZGVmIE5ERUJVRwotICAgICAgICBQcm9maWxlTm9kZSogbmV4dFNpYmxpbmcoKSBjb25z
dCB7IHJldHVybiBtX25leHRTaWJsaW5nOyB9Ci0gICAgICAgIHZvaWQgc2V0TmV4dFNpYmxpbmco
UHJvZmlsZU5vZGUqIG5leHRTaWJsaW5nKSB7IG1fbmV4dFNpYmxpbmcgPSBuZXh0U2libGluZzsg
fQotCi0gICAgICAgIFByb2ZpbGVOb2RlKiB0cmF2ZXJzZU5leHROb2RlUG9zdE9yZGVyKCkgY29u
c3Q7Ci0jZW5kaWYKLQotICAgICAgICBFeGVjU3RhdGUqIG1fY2FsbGVyQ2FsbEZyYW1lOwotICAg
ICAgICBDYWxsSWRlbnRpZmllciBtX2NhbGxJZGVudGlmaWVyOwotICAgICAgICBQcm9maWxlTm9k
ZSogbV9wYXJlbnQ7Ci0gICAgICAgIFZlY3RvcjxDYWxsPiBtX2NhbGxzOwotICAgICAgICBWZWN0
b3I8UmVmUHRyPFByb2ZpbGVOb2RlPj4gbV9jaGlsZHJlbjsKLQotI2lmbmRlZiBOREVCVUcKLSAg
ICAgICAgUHJvZmlsZU5vZGUqIG1fbmV4dFNpYmxpbmc7Ci0jZW5kaWYKLSAgICB9OwotCi0jaWZu
ZGVmIE5ERUJVRwotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiBpbmxpbmUgdm9pZCBQ
cm9maWxlTm9kZTo6Zm9yRWFjaE5vZGVQb3N0b3JkZXIoRnVuY3RvciYgZnVuY3RvcikKLSAgICB7
Ci0gICAgICAgIFByb2ZpbGVOb2RlKiBjdXJyZW50Tm9kZSA9IHRoaXM7Ci0gICAgICAgIC8vIEdv
IGRvd24gdG8gdGhlIGZpcnN0IG5vZGUgb2YgdGhlIHRyYXZlcnNhbCwgYW5kIHNsb3dseSB3YWxr
IGJhY2sgdXAuCi0gICAgICAgIGZvciAoUHJvZmlsZU5vZGUqIG5leHROb2RlID0gY3VycmVudE5v
ZGU7IG5leHROb2RlOyBuZXh0Tm9kZSA9IG5leHROb2RlLT5maXJzdENoaWxkKCkpCi0gICAgICAg
ICAgICBjdXJyZW50Tm9kZSA9IG5leHROb2RlOwotCi0gICAgICAgIFByb2ZpbGVOb2RlKiBlbmRO
b2RlID0gdGhpczsKLSAgICAgICAgd2hpbGUgKGN1cnJlbnROb2RlICYmIGN1cnJlbnROb2RlICE9
IGVuZE5vZGUpIHsKLSAgICAgICAgICAgIGZ1bmN0b3IoY3VycmVudE5vZGUpOwotICAgICAgICAg
ICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS0+dHJhdmVyc2VOZXh0Tm9kZVBvc3RPcmRlcigp
OwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3RvcihlbmROb2RlKTsKLSAgICB9Ci0KLSAgICBz
dHJ1Y3QgQ2FsY3VsYXRlUHJvZmlsZVN1YnRyZWVEYXRhRnVuY3RvciB7Ci0gICAgICAgIHZvaWQg
b3BlcmF0b3IoKShQcm9maWxlTm9kZSogbm9kZSkKLSAgICAgICAgewotICAgICAgICAgICAgZG91
YmxlIHNlbGZUaW1lID0gMC4wOwotICAgICAgICAgICAgZm9yIChjb25zdCBQcm9maWxlTm9kZTo6
Q2FsbCYgY2FsbCA6IG5vZGUtPmNhbGxzKCkpCi0gICAgICAgICAgICAgICAgc2VsZlRpbWUgKz0g
Y2FsbC5lbGFwc2VkVGltZSgpOwotCi0gICAgICAgICAgICBkb3VibGUgdG90YWxUaW1lID0gc2Vs
ZlRpbWU7Ci0gICAgICAgICAgICBmb3IgKFJlZlB0cjxQcm9maWxlTm9kZT4gY2hpbGQgOiBub2Rl
LT5jaGlsZHJlbigpKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBpdCA9IG1fZGF0YS5zZWxmQW5k
VG90YWxUaW1lcy5maW5kKGNoaWxkLmdldCgpKTsKLSAgICAgICAgICAgICAgICBpZiAoaXQgIT0g
bV9kYXRhLnNlbGZBbmRUb3RhbFRpbWVzLmVuZCgpKQotICAgICAgICAgICAgICAgICAgICB0b3Rh
bFRpbWUgKz0gaXQtPnZhbHVlLnNlY29uZDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
QVNTRVJUKG5vZGUpOwotICAgICAgICAgICAgbV9kYXRhLnNlbGZBbmRUb3RhbFRpbWVzLnNldChu
b2RlLCBzdGQ6Om1ha2VfcGFpcihzZWxmVGltZSwgdG90YWxUaW1lKSk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBQcm9maWxlTm9kZTo6UHJvZmlsZVN1YnRyZWVEYXRhIHJldHVyblZhbHVlKCkgeyBy
ZXR1cm4gV1RGTW92ZShtX2RhdGEpOyB9Ci0KLSAgICAgICAgUHJvZmlsZU5vZGU6OlByb2ZpbGVT
dWJ0cmVlRGF0YSBtX2RhdGE7Ci0gICAgfTsKLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBKU0MK
LQotI2VuZGlmIC8vIFByb2ZpbGVOb2RlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmNwcAppbmRleCAzMDY4ZmYz
Li4zNzUxZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXJKZXR0aXNvblJlYXNvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24uY3BwCkBAIC00Nyw5ICs0Nyw2IEBAIHZvaWQgcHJp
bnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBKZXR0aXNvblJlYXNvbiByZWFzb24pCiAgICAg
Y2FzZSBKZXR0aXNvbkR1ZVRvRGVidWdnZXJTdGVwcGluZzoKICAgICAgICAgb3V0LnByaW50KCJE
ZWJ1Z2dlclN0ZXBwaW5nIik7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIEpldHRpc29uRHVl
VG9MZWdhY3lQcm9maWxlcjoKLSAgICAgICAgb3V0LnByaW50KCJMZWdhY3lQcm9maWxlciIpOwot
ICAgICAgICByZXR1cm47CiAgICAgY2FzZSBKZXR0aXNvbkR1ZVRvQmFzZWxpbmVMb29wUmVvcHRp
bWl6YXRpb25UcmlnZ2VyOgogICAgICAgICBvdXQucHJpbnQoIkJhc2VsaW5lTG9vcFJlb3B0aW1p
emF0aW9uVHJpZ2dlciIpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24uaAppbmRleCA2YTc5
MzI2Li41MzAwYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJKZXR0aXNvblJlYXNvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmgKQEAgLTMzLDcgKzMzLDYgQEAgZW51bSBKZXR0
aXNvblJlYXNvbiB7CiAgICAgSmV0dGlzb25EdWVUb1dlYWtSZWZlcmVuY2UsCiAgICAgSmV0dGlz
b25EdWVUb0RlYnVnZ2VyQnJlYWtwb2ludCwKICAgICBKZXR0aXNvbkR1ZVRvRGVidWdnZXJTdGVw
cGluZywKLSAgICBKZXR0aXNvbkR1ZVRvTGVnYWN5UHJvZmlsZXIsCiAgICAgSmV0dGlzb25EdWVU
b0Jhc2VsaW5lTG9vcFJlb3B0aW1pemF0aW9uVHJpZ2dlciwKICAgICBKZXR0aXNvbkR1ZVRvQmFz
ZWxpbmVMb29wUmVvcHRpbWl6YXRpb25UcmlnZ2VyT25PU1JFbnRyeUZhaWwsCiAgICAgSmV0dGlz
b25EdWVUb09TUkV4aXQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db2RlQ2FjaGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hl
LmNwcAppbmRleCAyODEyNzNlLi4zYjc3ZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvZGVDYWNoZS5jcHAKQEAgLTgxLDEzICs4MSwxMyBAQCB0ZW1wbGF0ZSA8PiBzdHJ1
Y3QgQ2FjaGVUeXBlczxVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2s+IHsKIH07CiAKIHRl
bXBsYXRlIDxjbGFzcyBVbmxpbmtlZENvZGVCbG9ja1R5cGUsIGNsYXNzIEV4ZWN1dGFibGVUeXBl
PgotVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBDb2RlQ2FjaGU6OmdldEdsb2JhbENvZGVCbG9jayhW
TSYgdm0sIEV4ZWN1dGFibGVUeXBlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3Vy
Y2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBz
dHJpY3RNb2RlLCBUaGlzVERaTW9kZSB0aGlzVERaTW9kZSwgRGVidWdnZXJNb2RlIGRlYnVnZ2Vy
TW9kZSwgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBFdmFs
Q29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiB2
YXJpYWJsZXNVbmRlclREWikKK1VubGlua2VkQ29kZUJsb2NrVHlwZSogQ29kZUNhY2hlOjpnZXRH
bG9iYWxDb2RlQmxvY2soVk0mIHZtLCBFeGVjdXRhYmxlVHlwZSogZXhlY3V0YWJsZSwgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlLCBKU1BhcnNlckJ1aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBKU1Bh
cnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSwgVGhpc1REWk1vZGUgdGhpc1REWk1vZGUsIERlYnVn
Z2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJiBlcnJvciwgRXZhbENvbnRleHRUeXBl
IGV2YWxDb250ZXh0VHlwZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogdmFyaWFibGVzVW5k
ZXJURFopCiB7CiAgICAgU291cmNlQ29kZUtleSBrZXkgPSBTb3VyY2VDb2RlS2V5KHNvdXJjZSwg
U3RyaW5nKCksIENhY2hlVHlwZXM8VW5saW5rZWRDb2RlQmxvY2tUeXBlPjo6Y29kZVR5cGUsIGJ1
aWx0aW5Nb2RlLCBzdHJpY3RNb2RlLCB0aGlzVERaTW9kZSk7CiAgICAgU291cmNlQ29kZVZhbHVl
KiBjYWNoZSA9IG1fc291cmNlQ29kZS5maW5kQ2FjaGVBbmRVcGRhdGVBZ2Uoa2V5KTsKICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGRvIHNvbWV0aGluZyBzbWFydCBmb3IgVERaIGluc3RlYWQgb2Yg
anVzdCBkaXNhYmxpbmcgY2FjaGluZy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU0MDEwCi0gICAgYm9vbCBjYW5DYWNoZSA9IGRlYnVnZ2VyTW9kZSA9
PSBEZWJ1Z2dlck9mZiAmJiBwcm9maWxlck1vZGUgPT0gUHJvZmlsZXJPZmYgJiYgIXZtLnR5cGVQ
cm9maWxlcigpICYmICF2bS5jb250cm9sRmxvd1Byb2ZpbGVyKCkgJiYgIXZhcmlhYmxlc1VuZGVy
VERaLT5zaXplKCk7CisgICAgYm9vbCBjYW5DYWNoZSA9IGRlYnVnZ2VyTW9kZSA9PSBEZWJ1Z2dl
ck9mZiAmJiAhdm0udHlwZVByb2ZpbGVyKCkgJiYgIXZtLmNvbnRyb2xGbG93UHJvZmlsZXIoKSAm
JiAhdmFyaWFibGVzVW5kZXJURFotPnNpemUoKTsKICAgICBpZiAoY2FjaGUgJiYgY2FuQ2FjaGUp
IHsKICAgICAgICAgVW5saW5rZWRDb2RlQmxvY2tUeXBlKiB1bmxpbmtlZENvZGVCbG9jayA9IGpz
Q2FzdDxVbmxpbmtlZENvZGVCbG9ja1R5cGUqPihjYWNoZS0+Y2VsbC5nZXQoKSk7CiAgICAgICAg
IHVuc2lnbmVkIGZpcnN0TGluZSA9IHNvdXJjZS5maXJzdExpbmUoKSArIHVubGlua2VkQ29kZUJs
b2NrLT5maXJzdExpbmUoKTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBVbmxpbmtlZENvZGVCbG9ja1R5
cGUqIENvZGVDYWNoZTo6Z2V0R2xvYmFsQ29kZUJsb2NrKFZNJiB2bSwgRXhlY3V0YWJsZVR5cGUq
IGV4ZQogICAgIHVubGlua2VkQ29kZUJsb2NrLT5zZXRTb3VyY2VVUkxEaXJlY3RpdmUoc291cmNl
LnByb3ZpZGVyKCktPnNvdXJjZVVSTCgpKTsKICAgICB1bmxpbmtlZENvZGVCbG9jay0+c2V0U291
cmNlTWFwcGluZ1VSTERpcmVjdGl2ZShzb3VyY2UucHJvdmlkZXIoKS0+c291cmNlTWFwcGluZ1VS
TCgpKTsKIAotICAgIGVycm9yID0gQnl0ZWNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlKHZtLCByb290
Tm9kZS5nZXQoKSwgdW5saW5rZWRDb2RlQmxvY2ssIGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJNb2Rl
LCB2YXJpYWJsZXNVbmRlclREWik7CisgICAgZXJyb3IgPSBCeXRlY29kZUdlbmVyYXRvcjo6Z2Vu
ZXJhdGUodm0sIHJvb3ROb2RlLmdldCgpLCB1bmxpbmtlZENvZGVCbG9jaywgZGVidWdnZXJNb2Rl
LCB2YXJpYWJsZXNVbmRlclREWik7CiAKICAgICBpZiAoZXJyb3IuaXNWYWxpZCgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKQEAgLTEzMiwyMSArMTMyLDIxIEBAIFVubGlua2VkQ29kZUJsb2Nr
VHlwZSogQ29kZUNhY2hlOjpnZXRHbG9iYWxDb2RlQmxvY2soVk0mIHZtLCBFeGVjdXRhYmxlVHlw
ZSogZXhlCiAgICAgcmV0dXJuIHVubGlua2VkQ29kZUJsb2NrOwogfQogCi1VbmxpbmtlZFByb2dy
YW1Db2RlQmxvY2sqIENvZGVDYWNoZTo6Z2V0UHJvZ3JhbUNvZGVCbG9jayhWTSYgdm0sIFByb2dy
YW1FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFy
c2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2Rl
LCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlLCBQ
YXJzZXJFcnJvciYgZXJyb3IpCitVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqIENvZGVDYWNoZTo6
Z2V0UHJvZ3JhbUNvZGVCbG9jayhWTSYgdm0sIFByb2dyYW1FeGVjdXRhYmxlKiBleGVjdXRhYmxl
LCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1v
ZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJN
b2RlLCBQYXJzZXJFcnJvciYgZXJyb3IpCiB7CiAgICAgVmFyaWFibGVFbnZpcm9ubWVudCBlbXB0
eVBhcmVudFREWlZhcmlhYmxlczsKLSAgICByZXR1cm4gZ2V0R2xvYmFsQ29kZUJsb2NrPFVubGlu
a2VkUHJvZ3JhbUNvZGVCbG9jaz4odm0sIGV4ZWN1dGFibGUsIHNvdXJjZSwgYnVpbHRpbk1vZGUs
IHN0cmljdE1vZGUsIFRoaXNURFpNb2RlOjpDaGVja0lmTmVlZGVkLCBkZWJ1Z2dlck1vZGUsIHBy
b2ZpbGVyTW9kZSwgZXJyb3IsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSwgJmVtcHR5UGFyZW50VERa
VmFyaWFibGVzKTsKKyAgICByZXR1cm4gZ2V0R2xvYmFsQ29kZUJsb2NrPFVubGlua2VkUHJvZ3Jh
bUNvZGVCbG9jaz4odm0sIGV4ZWN1dGFibGUsIHNvdXJjZSwgYnVpbHRpbk1vZGUsIHN0cmljdE1v
ZGUsIFRoaXNURFpNb2RlOjpDaGVja0lmTmVlZGVkLCBkZWJ1Z2dlck1vZGUsIGVycm9yLCBFdmFs
Q29udGV4dFR5cGU6Ok5vbmUsICZlbXB0eVBhcmVudFREWlZhcmlhYmxlcyk7CiB9CiAKLVVubGlu
a2VkRXZhbENvZGVCbG9jayogQ29kZUNhY2hlOjpnZXRFdmFsQ29kZUJsb2NrKFZNJiB2bSwgRXZh
bEV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJz
ZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUs
IFRoaXNURFpNb2RlIHRoaXNURFpNb2RlLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9m
aWxlck1vZGUgcHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IsIEV2YWxDb250ZXh0VHlw
ZSBldmFsQ29udGV4dFR5cGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHZhcmlhYmxlc1Vu
ZGVyVERaKQorVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBDb2RlQ2FjaGU6OmdldEV2YWxDb2RlQmxv
Y2soVk0mIHZtLCBFdmFsRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgY29uc3QgU291cmNlQ29kZSYg
c291cmNlLCBKU1BhcnNlckJ1aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1v
ZGUgc3RyaWN0TW9kZSwgVGhpc1REWk1vZGUgdGhpc1REWk1vZGUsIERlYnVnZ2VyTW9kZSBkZWJ1
Z2dlck1vZGUsIFBhcnNlckVycm9yJiBlcnJvciwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0
VHlwZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogdmFyaWFibGVzVW5kZXJURFopCiB7Ci0g
ICAgcmV0dXJuIGdldEdsb2JhbENvZGVCbG9jazxVbmxpbmtlZEV2YWxDb2RlQmxvY2s+KHZtLCBl
eGVjdXRhYmxlLCBzb3VyY2UsIGJ1aWx0aW5Nb2RlLCBzdHJpY3RNb2RlLCB0aGlzVERaTW9kZSwg
ZGVidWdnZXJNb2RlLCBwcm9maWxlck1vZGUsIGVycm9yLCBldmFsQ29udGV4dFR5cGUsIHZhcmlh
Ymxlc1VuZGVyVERaKTsKKyAgICByZXR1cm4gZ2V0R2xvYmFsQ29kZUJsb2NrPFVubGlua2VkRXZh
bENvZGVCbG9jaz4odm0sIGV4ZWN1dGFibGUsIHNvdXJjZSwgYnVpbHRpbk1vZGUsIHN0cmljdE1v
ZGUsIHRoaXNURFpNb2RlLCBkZWJ1Z2dlck1vZGUsIGVycm9yLCBldmFsQ29udGV4dFR5cGUsIHZh
cmlhYmxlc1VuZGVyVERaKTsKIH0KIAotVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiBD
b2RlQ2FjaGU6OmdldE1vZHVsZVByb2dyYW1Db2RlQmxvY2soVk0mIHZtLCBNb2R1bGVQcm9ncmFt
RXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1BhcnNl
ckJ1aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9m
aWxlck1vZGUgcHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IpCitVbmxpbmtlZE1vZHVs
ZVByb2dyYW1Db2RlQmxvY2sqIENvZGVDYWNoZTo6Z2V0TW9kdWxlUHJvZ3JhbUNvZGVCbG9jayhW
TSYgdm0sIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VD
b2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIERlYnVnZ2VyTW9k
ZSBkZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJiBlcnJvcikKIHsKICAgICBWYXJpYWJsZUVudmly
b25tZW50IGVtcHR5UGFyZW50VERaVmFyaWFibGVzOwotICAgIHJldHVybiBnZXRHbG9iYWxDb2Rl
QmxvY2s8VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrPih2bSwgZXhlY3V0YWJsZSwgc291
cmNlLCBidWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlOjpTdHJpY3QsIFRoaXNURFpNb2Rl
OjpDaGVja0lmTmVlZGVkLCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwgZXJyb3IsIEV2YWxD
b250ZXh0VHlwZTo6Tm9uZSwgJmVtcHR5UGFyZW50VERaVmFyaWFibGVzKTsKKyAgICByZXR1cm4g
Z2V0R2xvYmFsQ29kZUJsb2NrPFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jaz4odm0sIGV4
ZWN1dGFibGUsIHNvdXJjZSwgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZTo6U3RyaWN0
LCBUaGlzVERaTW9kZTo6Q2hlY2tJZk5lZWRlZCwgZGVidWdnZXJNb2RlLCBlcnJvciwgRXZhbENv
bnRleHRUeXBlOjpOb25lLCAmZW1wdHlQYXJlbnRURFpWYXJpYWJsZXMpOwogfQogCiAvLyBGSVhN
RTogVGhlcmUncyBubyBuZWVkIHRvIGFkZCB0aGUgZnVuY3Rpb24ncyBuYW1lIHRvIHRoZSBrZXkg
aGVyZS4gSXQncyBhbHJlYWR5IGluIHRoZSBzb3VyY2UgY29kZS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgKaW5kZXggZTVlMjExYi4uMDA3MGQ5MCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgKQEAgLTE4Nyw5ICsxODcsOSBAQCBw
dWJsaWM6CiAgICAgQ29kZUNhY2hlKCk7CiAgICAgfkNvZGVDYWNoZSgpOwogCi0gICAgVW5saW5r
ZWRQcm9ncmFtQ29kZUJsb2NrKiBnZXRQcm9ncmFtQ29kZUJsb2NrKFZNJiwgUHJvZ3JhbUV4ZWN1
dGFibGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJCdWlsdGluTW9kZSwgSlNQYXJzZXJT
dHJpY3RNb2RlLCBEZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSwgUGFyc2VyRXJyb3ImKTsKLSAg
ICBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIGdldEV2YWxDb2RlQmxvY2soVk0mLCBFdmFsRXhlY3V0
YWJsZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0
cmljdE1vZGUsIFRoaXNURFpNb2RlLCBEZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSwgUGFyc2Vy
RXJyb3ImLCBFdmFsQ29udGV4dFR5cGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKLSAg
ICBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIGdldE1vZHVsZVByb2dyYW1Db2RlQmxv
Y2soVk0mLCBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU1Bh
cnNlckJ1aWx0aW5Nb2RlLCBEZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSwgUGFyc2VyRXJyb3Im
KTsKKyAgICBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqIGdldFByb2dyYW1Db2RlQmxvY2soVk0m
LCBQcm9ncmFtRXhlY3V0YWJsZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlckJ1aWx0aW5N
b2RlLCBKU1BhcnNlclN0cmljdE1vZGUsIERlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImKTsKKyAg
ICBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIGdldEV2YWxDb2RlQmxvY2soVk0mLCBFdmFsRXhlY3V0
YWJsZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0
cmljdE1vZGUsIFRoaXNURFpNb2RlLCBEZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJiwgRXZhbENv
bnRleHRUeXBlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7CisgICAgVW5saW5rZWRNb2R1
bGVQcm9ncmFtQ29kZUJsb2NrKiBnZXRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKFZNJiwgTW9kdWxl
UHJvZ3JhbUV4ZWN1dGFibGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJCdWlsdGluTW9k
ZSwgRGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYpOwogICAgIFVubGlua2VkRnVuY3Rpb25FeGVj
dXRhYmxlKiBnZXRGdW5jdGlvbkV4ZWN1dGFibGVGcm9tR2xvYmFsQ29kZShWTSYsIGNvbnN0IElk
ZW50aWZpZXImLCBjb25zdCBTb3VyY2VDb2RlJiwgUGFyc2VyRXJyb3ImKTsKIAogICAgIHZvaWQg
Y2xlYXIoKQpAQCAtMTk5LDcgKzE5OSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB0ZW1w
bGF0ZSA8Y2xhc3MgVW5saW5rZWRDb2RlQmxvY2tUeXBlLCBjbGFzcyBFeGVjdXRhYmxlVHlwZT4g
Ci0gICAgVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBnZXRHbG9iYWxDb2RlQmxvY2soVk0mLCBFeGVj
dXRhYmxlVHlwZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBKU1Bh
cnNlclN0cmljdE1vZGUsIFRoaXNURFpNb2RlLCBEZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSwg
UGFyc2VyRXJyb3ImLCBFdmFsQ29udGV4dFR5cGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQq
KTsKKyAgICBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIGdldEdsb2JhbENvZGVCbG9jayhWTSYsIEV4
ZWN1dGFibGVUeXBlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpT
UGFyc2VyU3RyaWN0TW9kZSwgVGhpc1REWk1vZGUsIERlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3Im
LCBFdmFsQ29udGV4dFR5cGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKIAogICAgIENv
ZGVDYWNoZU1hcCBtX3NvdXJjZUNvZGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FeGVjdXRhYmxlLmNwcAppbmRleCA5MTk1ZDU1Li45ZmNkZGY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcApAQCAtMzEyLDEwICszMTIsOSBA
QCBDb2RlQmxvY2sqIFNjcmlwdEV4ZWN1dGFibGU6Om5ld0NvZGVCbG9ja0ZvcigKICAgICBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc2NvcGUtPmdsb2JhbE9iamVjdCgpOwogICAgIFBh
cnNlckVycm9yIGVycm9yOwogICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUgPSBnbG9iYWxP
YmplY3QtPmhhc0ludGVyYWN0aXZlRGVidWdnZXIoKSA/IERlYnVnZ2VyT24gOiBEZWJ1Z2dlck9m
ZjsKLSAgICBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlID0gZ2xvYmFsT2JqZWN0LT5oYXNMZWdh
Y3lQcm9maWxlcigpID8gUHJvZmlsZXJPbiA6IFByb2ZpbGVyT2ZmOwogICAgIFVubGlua2VkRnVu
Y3Rpb25Db2RlQmxvY2sqIHVubGlua2VkQ29kZUJsb2NrID0gCiAgICAgICAgIGV4ZWN1dGFibGUt
Pm1fdW5saW5rZWRFeGVjdXRhYmxlLT51bmxpbmtlZENvZGVCbG9ja0ZvcigKLSAgICAgICAgICAg
ICp2bSwgZXhlY3V0YWJsZS0+bV9zb3VyY2UsIGtpbmQsIGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJN
b2RlLCBlcnJvciwgCisgICAgICAgICAgICAqdm0sIGV4ZWN1dGFibGUtPm1fc291cmNlLCBraW5k
LCBkZWJ1Z2dlck1vZGUsIGVycm9yLCAKICAgICAgICAgICAgIGV4ZWN1dGFibGUtPnBhcnNlTW9k
ZSgpKTsKICAgICByZWNvcmRQYXJzZSgKICAgICAgICAgZXhlY3V0YWJsZS0+bV91bmxpbmtlZEV4
ZWN1dGFibGUtPmZlYXR1cmVzKCksIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IGQ3NzA1NDkuLjZjMTQ3MzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTExMiw3
ICsxMTIsNiBAQAogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCiAjaW5jbHVkZSAiTGF6eUNsYXNz
U3RydWN0dXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIkxhenlQcm9wZXJ0eUlubGluZXMuaCIKLSNp
bmNsdWRlICJMZWdhY3lQcm9maWxlci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUg
Ik1hcENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiTWFwSXRlcmF0b3JQcm90b3R5cGUuaCIKQEAg
LTIwOCw3ICsyMDcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTR2xv
YmFsT2JqZWN0OjpzX2luZm8gPSB7ICJHbG9iYWxPYmplY3QiLCAmQmFzZTo6c19pbmZvLCAmZ2xv
YmFsT2JqZWN0VGFibGUsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNHbG9iYWxPYmplY3QpIH07CiAK
LWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9i
amVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNjZXNzRnJvbSwgJnN1cHBvcnRzTGVnYWN5UHJv
ZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwg
JmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsIG51bGxwdHIsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRC
ZWZvcmVUaW1lb3V0LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRy
LCBudWxscHRyIH07Citjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0dsb2JhbE9iamVj
dDo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJmFsbG93c0FjY2Vzc0Zyb20sICZzdXBw
b3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1
bnRpbWVGbGFncywgbnVsbHB0ciwgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQs
IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsK
IAogLyogU291cmNlIGZvciBKU0dsb2JhbE9iamVjdC5sdXQuaAogQGJlZ2luIGdsb2JhbE9iamVj
dFRhYmxlCkBAIC0yOTcsOSArMjk2LDYgQEAgSlNHbG9iYWxPYmplY3Q6On5KU0dsb2JhbE9iamVj
dCgpCiAKICAgICBpZiAobV9kZWJ1Z2dlcikKICAgICAgICAgbV9kZWJ1Z2dlci0+ZGV0YWNoKHRo
aXMsIERlYnVnZ2VyOjpHbG9iYWxPYmplY3RJc0Rlc3RydWN0aW5nKTsKLQotICAgIGlmIChMZWdh
Y3lQcm9maWxlciogcHJvZmlsZXIgPSB2bSgpLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBw
cm9maWxlci0+c3RvcFByb2ZpbGluZyh0aGlzKTsKIH0KIAogdm9pZCBKU0dsb2JhbE9iamVjdDo6
ZGVzdHJveShKU0NlbGwqIGNlbGwpCkBAIC04MzcsMTEgKzgzMyw2IEBAIHB1dERpcmVjdFdpdGhv
dXRUcmFuc2l0aW9uKHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT4ganNOYW1lLCBsb3dlck5hbWUgIyMg
Q29uc3RydWN0CiAgICAgcmVzZXRQcm90b3R5cGUodm0sIGdldFByb3RvdHlwZURpcmVjdCgpKTsK
IH0KIAotYm9vbCBKU0dsb2JhbE9iamVjdDo6aGFzTGVnYWN5UHJvZmlsZXIoKSBjb25zdAotewot
ICAgIHJldHVybiBnbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5zdXBwb3J0c0xlZ2FjeVByb2Zp
bGluZyh0aGlzKTsKLX0KLQogYm9vbCBKU0dsb2JhbE9iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNHbG9iYWxPYmplY3QqIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihjZWxsKTsKQEAgLTEyMzEsMTAgKzEyMjIsOSBA
QCBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVQcm9ncmFt
Q29kZUJsb2NrKENhbGxGcmFtZSogY2FsbAogICAgIFBhcnNlckVycm9yIGVycm9yOwogICAgIEpT
UGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlID0gZXhlY3V0YWJsZS0+aXNTdHJpY3RNb2RlKCkg
PyBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdCA6IEpTUGFyc2VyU3RyaWN0TW9kZTo6Tm90U3Ry
aWN0OwogICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUgPSBoYXNJbnRlcmFjdGl2ZURlYnVn
Z2VyKCkgPyBEZWJ1Z2dlck9uIDogRGVidWdnZXJPZmY7Ci0gICAgUHJvZmlsZXJNb2RlIHByb2Zp
bGVyTW9kZSA9IGhhc0xlZ2FjeVByb2ZpbGVyKCkgPyBQcm9maWxlck9uIDogUHJvZmlsZXJPZmY7
CiAgICAgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IHZtKCku
Y29kZUNhY2hlKCktPmdldFByb2dyYW1Db2RlQmxvY2soCiAgICAgICAgIHZtKCksIGV4ZWN1dGFi
bGUsIGV4ZWN1dGFibGUtPnNvdXJjZSgpLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RCdWlsdGlu
LCBzdHJpY3RNb2RlLCAKLSAgICAgICAgZGVidWdnZXJNb2RlLCBwcm9maWxlck1vZGUsIGVycm9y
KTsKKyAgICAgICAgZGVidWdnZXJNb2RlLCBlcnJvcik7CiAKICAgICBpZiAoaGFzRGVidWdnZXIo
KSkKICAgICAgICAgZGVidWdnZXIoKS0+c291cmNlUGFyc2VkKGNhbGxGcmFtZSwgZXhlY3V0YWJs
ZS0+c291cmNlKCkucHJvdmlkZXIoKSwgZXJyb3IubGluZSgpLCBlcnJvci5tZXNzYWdlKCkpOwpA
QCAtMTI1NCw5ICsxMjQ0LDggQEAgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBKU0dsb2JhbE9iamVj
dDo6Y3JlYXRlRXZhbENvZGVCbG9jayhDYWxsRnJhbWUqIGNhbGxGcmFtZSwKICAgICBEZWJ1Z2dl
ck1vZGUgZGVidWdnZXJNb2RlID0gaGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigpID8gRGVidWdnZXJP
biA6IERlYnVnZ2VyT2ZmOwogICAgIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUgPSBl
eGVjdXRhYmxlLT5leGVjdXRhYmxlSW5mbygpLmV2YWxDb250ZXh0VHlwZSgpOwogICAgIAotICAg
IFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUgPSBoYXNMZWdhY3lQcm9maWxlcigpID8gUHJvZmls
ZXJPbiA6IFByb2ZpbGVyT2ZmOwogICAgIFVubGlua2VkRXZhbENvZGVCbG9jayogdW5saW5rZWRD
b2RlQmxvY2sgPSB2bSgpLmNvZGVDYWNoZSgpLT5nZXRFdmFsQ29kZUJsb2NrKAotICAgICAgICB2
bSgpLCBleGVjdXRhYmxlLCBleGVjdXRhYmxlLT5zb3VyY2UoKSwgSlNQYXJzZXJCdWlsdGluTW9k
ZTo6Tm90QnVpbHRpbiwgc3RyaWN0TW9kZSwgdGhpc1REWk1vZGUsIGRlYnVnZ2VyTW9kZSwgcHJv
ZmlsZXJNb2RlLCBlcnJvciwgZXZhbENvbnRleHRUeXBlLCB2YXJpYWJsZXNVbmRlclREWik7Cisg
ICAgICAgIHZtKCksIGV4ZWN1dGFibGUsIGV4ZWN1dGFibGUtPnNvdXJjZSgpLCBKU1BhcnNlckJ1
aWx0aW5Nb2RlOjpOb3RCdWlsdGluLCBzdHJpY3RNb2RlLCB0aGlzVERaTW9kZSwgZGVidWdnZXJN
b2RlLCBlcnJvciwgZXZhbENvbnRleHRUeXBlLCB2YXJpYWJsZXNVbmRlclREWik7CiAKICAgICBp
ZiAoaGFzRGVidWdnZXIoKSkKICAgICAgICAgZGVidWdnZXIoKS0+c291cmNlUGFyc2VkKGNhbGxG
cmFtZSwgZXhlY3V0YWJsZS0+c291cmNlKCkucHJvdmlkZXIoKSwgZXJyb3IubGluZSgpLCBlcnJv
ci5tZXNzYWdlKCkpOwpAQCAtMTI3Myw5ICsxMjYyLDggQEAgVW5saW5rZWRNb2R1bGVQcm9ncmFt
Q29kZUJsb2NrKiBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayhD
YWwKIHsKICAgICBQYXJzZXJFcnJvciBlcnJvcjsKICAgICBEZWJ1Z2dlck1vZGUgZGVidWdnZXJN
b2RlID0gaGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigpID8gRGVidWdnZXJPbiA6IERlYnVnZ2VyT2Zm
OwotICAgIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUgPSBoYXNMZWdhY3lQcm9maWxlcigpID8g
UHJvZmlsZXJPbiA6IFByb2ZpbGVyT2ZmOwogICAgIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVC
bG9jayogdW5saW5rZWRDb2RlQmxvY2sgPSB2bSgpLmNvZGVDYWNoZSgpLT5nZXRNb2R1bGVQcm9n
cmFtQ29kZUJsb2NrKAotICAgICAgICB2bSgpLCBleGVjdXRhYmxlLCBleGVjdXRhYmxlLT5zb3Vy
Y2UoKSwgSlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRpbiwgZGVidWdnZXJNb2RlLCBwcm9m
aWxlck1vZGUsIGVycm9yKTsKKyAgICAgICAgdm0oKSwgZXhlY3V0YWJsZSwgZXhlY3V0YWJsZS0+
c291cmNlKCksIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIGRlYnVnZ2VyTW9kZSwg
ZXJyb3IpOwogCiAgICAgaWYgKGhhc0RlYnVnZ2VyKCkpCiAgICAgICAgIGRlYnVnZ2VyKCktPnNv
dXJjZVBhcnNlZChjYWxsRnJhbWUsIGV4ZWN1dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVyKCksIGVy
cm9yLmxpbmUoKSwgZXJyb3IubWVzc2FnZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IGY1ODA0NzYuLjk2YWVjZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMTUxLDkg
KzE1MSw2IEBAIHN0cnVjdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSB7CiAgICAgdHlwZWRlZiBi
b29sICgqQWxsb3dzQWNjZXNzRnJvbUZ1bmN0aW9uUHRyKShjb25zdCBKU0dsb2JhbE9iamVjdCos
IEV4ZWNTdGF0ZSopOwogICAgIEFsbG93c0FjY2Vzc0Zyb21GdW5jdGlvblB0ciBhbGxvd3NBY2Nl
c3NGcm9tOwogCi0gICAgdHlwZWRlZiBib29sICgqU3VwcG9ydHNMZWdhY3lQcm9maWxpbmdGdW5j
dGlvblB0cikoY29uc3QgSlNHbG9iYWxPYmplY3QqKTsKLSAgICBTdXBwb3J0c0xlZ2FjeVByb2Zp
bGluZ0Z1bmN0aW9uUHRyIHN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nOwotCiAgICAgdHlwZWRlZiBi
b29sICgqU3VwcG9ydHNSaWNoU291cmNlSW5mb0Z1bmN0aW9uUHRyKShjb25zdCBKU0dsb2JhbE9i
amVjdCopOwogICAgIFN1cHBvcnRzUmljaFNvdXJjZUluZm9GdW5jdGlvblB0ciBzdXBwb3J0c1Jp
Y2hTb3VyY2VJbmZvOwogCkBAIC00MDcsNyArNDA0LDYgQEAgcHVibGljOgogCiAgICAgYm9vbCBo
YXNEZWJ1Z2dlcigpIGNvbnN0OwogICAgIGJvb2wgaGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigpIGNv
bnN0OwotICAgIGJvb2wgaGFzTGVnYWN5UHJvZmlsZXIoKSBjb25zdDsKICAgICBjb25zdCBSdW50
aW1lRmxhZ3MmIHJ1bnRpbWVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fcnVudGltZUZsYWdzOyB9
CiAKIHByb3RlY3RlZDoKQEAgLTcxNyw3ICs3MTMsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgR2xv
YmFsT2JqZWN0TWV0aG9kVGFibGUqIGdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCkgY29uc3QgeyBy
ZXR1cm4gbV9nbG9iYWxPYmplY3RNZXRob2RUYWJsZTsgfQogCiAgICAgc3RhdGljIGJvb2wgYWxs
b3dzQWNjZXNzRnJvbShjb25zdCBKU0dsb2JhbE9iamVjdCosIEV4ZWNTdGF0ZSopIHsgcmV0dXJu
IHRydWU7IH0KLSAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZyhjb25zdCBK
U0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgc3RhdGljIGJvb2wgc3VwcG9y
dHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIHRydWU7IH0K
IAogICAgIEpTX0VYUE9SVF9QUklWQVRFIEV4ZWNTdGF0ZSogZ2xvYmFsRXhlYygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCmluZGV4IDFkMGU1NjQuLjI1ZGUyMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAgLTEzMSw3ICsxMzEsNiBA
QCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9wdGlvblN0cmluZzsKICAgICB2KGJvb2wsIGR1bXBCeXRl
Y29kZUxpdmVuZXNzUmVzdWx0cywgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9v
bCwgdmFsaWRhdGVCeXRlY29kZSwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9v
bCwgZm9yY2VEZWJ1Z2dlckJ5dGVjb2RlR2VuZXJhdGlvbiwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0
cikgXAotICAgIHYoYm9vbCwgZm9yY2VQcm9maWxlckJ5dGVjb2RlR2VuZXJhdGlvbiwgZmFsc2Us
IE5vcm1hbCwgbnVsbHB0cikgXAogICAgIFwKICAgICB2KGJvb2wsIHVzZUZ1bmN0aW9uRG90QXJn
dW1lbnRzLCB0cnVlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIHVzZVRhaWxDYWxs
cywgdHJ1ZSwgTm9ybWFsLCBudWxscHRyKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5j
cHAKaW5kZXggY2I2YmIzOS4uMzhjMWY0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmNwcApAQCAtMTk0LDcgKzE5NCw2IEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlwZSBo
ZWFwVHlwZSkKICNlbmRpZgogICAgICwgbV9pbkRlZmluZU93blByb3BlcnR5KGZhbHNlKQogICAg
ICwgbV9jb2RlQ2FjaGUoc3RkOjptYWtlX3VuaXF1ZTxDb2RlQ2FjaGU+KCkpCi0gICAgLCBtX2Vu
YWJsZWRQcm9maWxlcihudWxscHRyKQogICAgICwgbV9idWlsdGluRXhlY3V0YWJsZXMoc3RkOjpt
YWtlX3VuaXF1ZTxCdWlsdGluRXhlY3V0YWJsZXM+KCp0aGlzKSkKICAgICAsIG1fdHlwZVByb2Zp
bGVyRW5hYmxlZENvdW50KDApCiAgICAgLCBtX2NvbnRyb2xGbG93UHJvZmlsZXJFbmFibGVkQ291
bnQoMCkKQEAgLTc3NiwyNSArNzc1LDYgQEAgdm9pZCBWTTo6YWRkSW1wdXJlUHJvcGVydHkoY29u
c3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCiAgICAgICAgIHdhdGNocG9pbnRTZXQtPmZpcmVBbGwo
IkltcHVyZSBwcm9wZXJ0eSBhZGRlZCIpOwogfQogCi1jbGFzcyBTZXRFbmFibGVkUHJvZmlsZXJG
dW5jdG9yIHsKLXB1YmxpYzoKLSAgICBib29sIG9wZXJhdG9yKCkoQ29kZUJsb2NrKiBjb2RlQmxv
Y2spIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGNv
ZGVCbG9jay0+aml0VHlwZSgpKSkKLSAgICAgICAgICAgIGNvZGVCbG9jay0+amV0dGlzb24oUHJv
ZmlsZXI6OkpldHRpc29uRHVlVG9MZWdhY3lQcm9maWxlcik7Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci19OwotCi12b2lkIFZNOjpzZXRFbmFibGVkUHJvZmlsZXIoTGVnYWN5UHJvZmls
ZXIqIHByb2ZpbGVyKQotewotICAgIG1fZW5hYmxlZFByb2ZpbGVyID0gcHJvZmlsZXI7Ci0gICAg
aWYgKG1fZW5hYmxlZFByb2ZpbGVyKSB7Ci0gICAgICAgIFNldEVuYWJsZWRQcm9maWxlckZ1bmN0
b3IgZnVuY3RvcjsKLSAgICAgICAgaGVhcC5mb3JFYWNoQ29kZUJsb2NrKGZ1bmN0b3IpOwotICAg
IH0KLX0KLQogc3RhdGljIGJvb2wgZW5hYmxlUHJvZmlsZXJXaXRoUmVzcGVjdFRvQ291bnQodW5z
aWduZWQmIGNvdW50ZXIsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBkb0VuYWJsZVdvcmspCiB7CiAg
ICAgYm9vbCBuZWVkc1RvUmVjb21waWxlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9WTS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uaAppbmRleCBiNDNhZmZiLi5iZDVjYjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9WTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmgKQEAgLTkyLDcgKzkyLDYgQEAgY2xhc3MgSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb247CiBjbGFz
cyBKU0dsb2JhbE9iamVjdDsKIGNsYXNzIEpTT2JqZWN0OwogY2xhc3MgTExJbnRPZmZzZXRzRXh0
cmFjdG9yOwotY2xhc3MgTGVnYWN5UHJvZmlsZXI7CiBjbGFzcyBOYXRpdmVFeGVjdXRhYmxlOwog
Y2xhc3MgUmVnRXhwQ2FjaGU7CiBjbGFzcyBSZWdpc3RlckF0T2Zmc2V0TGlzdDsKQEAgLTM1NSwx
MSArMzU0LDYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9pbkRlZmluZU93blByb3BlcnR5
OwogICAgIH0KIAotICAgIExlZ2FjeVByb2ZpbGVyKiBlbmFibGVkUHJvZmlsZXIoKSB7IHJldHVy
biBtX2VuYWJsZWRQcm9maWxlcjsgfQotICAgIHZvaWQgc2V0RW5hYmxlZFByb2ZpbGVyKExlZ2Fj
eVByb2ZpbGVyKik7Ci0KLSAgICB2b2lkKiBlbmFibGVkUHJvZmlsZXJBZGRyZXNzKCkgeyByZXR1
cm4gJm1fZW5hYmxlZFByb2ZpbGVyOyB9Ci0KICNpZiBFTkFCTEUoSklUKQogICAgIGJvb2wgY2Fu
VXNlSklUKCkgeyByZXR1cm4gbV9jYW5Vc2VKSVQ7IH0KICNlbHNlCkBAIC02NTcsNyArNjUxLDYg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fZ2xvYmFsQ29uc3RSZWRlY2xhcmF0aW9uU2hvdWxkVGhy
b3cgeyB0cnVlIH07CiAgICAgYm9vbCBtX3Nob3VsZEJ1aWxkUENUb0NvZGVPcmlnaW5NYXBwaW5n
IHsgZmFsc2UgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29kZUNhY2hlPiBtX2NvZGVDYWNoZTsK
LSAgICBMZWdhY3lQcm9maWxlciogbV9lbmFibGVkUHJvZmlsZXI7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPEJ1aWx0aW5FeGVjdXRhYmxlcz4gbV9idWlsdGluRXhlY3V0YWJsZXM7CiAgICAgSGFzaE1h
cDxTdHJpbmcsIFJlZlB0cjxXYXRjaHBvaW50U2V0Pj4gbV9pbXB1cmVQcm9wZXJ0eVdhdGNocG9p
bnRTZXRzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxUeXBlUHJvZmlsZXI+IG1fdHlwZVByb2ZpbGVy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDJjODZkMmUuLjU4NzcyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MyBAQAorMjAxNi0wNS0xMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgor
CisgICAgICAgIFJlbW92ZSBMZWdhY3lQcm9maWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9wcm9maWxl
ci9MZWdhY3lQcm9maWxlci5oOiBSZW1vdmVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJz
L3Byb2ZpbGVyL1Byb2ZpbGUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVy
cy9wcm9maWxlci9Qcm9maWxlTm9kZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQ
YXRoTlNSZXNvbHZlci5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6c3VwcG9ydHNMZWdhY3lQ
cm9maWxpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpz
dXBwb3J0c1JpY2hTb3VyY2VJbmZvKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNj
b3BlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6
c3VwcG9ydHNMZWdhY3lQcm9maWxpbmcpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
Q2FjaGVkRnJhbWVEYXRhLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNsZWFyV2luZG93
U2hlbGwpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlTm9kZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAg
ICAgICAoQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNw
cDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnN0b3BQcm9maWxpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q29udHJvbGxlcjo6bGVnYWN5UHJvZmlsZXJFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnNldExlZ2FjeVByb2ZpbGVyRW5hYmxlZCk6IERl
bGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFByb2ZpbGluZ0ltcGwpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydEZyb21Db25zb2xlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0b3BGcm9tQ29uc29sZSk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
UGFnZURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGw6IFJlbW92ZWQu
CisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmJ1aWxkQWdncmVnYXRlQ2FsbEluZm9JbnNwZWN0b3JPYmplY3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6YnVpbGRJbnNwZWN0b3JPYmplY3QpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6YnVpbGRQcm9maWxlSW5zcGVjdG9yT2JqZWN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6YXBwZW5kUHJvZmlsZSk6IERlbGV0
ZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlQ29uc29sZUNsaWVudDo6cHJvZmlsZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQ
YWdlQ29uc29sZUNsaWVudDo6Y2xlYXJQcm9maWxlcyk6IERlbGV0ZWQuCisgICAgICAgICogcGFn
ZS9QYWdlQ29uc29sZUNsaWVudC5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNvbnNvbGVQcm9maWxlcyk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldExlZ2FjeUphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5o
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL2pz
L1dlYkNvcmVUZXN0U3VwcG9ydC5jcHA6CisgICAgICAgICogeG1sL1hTTFN0eWxlU2hlZXRMaWJ4
c2x0LmNwcDoKKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorCiAyMDE2
LTA1LTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IGNyb3NzLWZhZGUoKSByZW5kZXJpbmcgZG9lc24ndCBtYXRjaCBleHBlY3RhdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDYwYjg1NTYuLjU4MGJiYmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5jcHAKQEAgLTQyMiw4ICs0MjIsNiBAQAogI2luY2x1ZGUgIkpTUlRDVHJhY2tF
dmVudC5jcHAiCiAjaW5jbHVkZSAiSlNTY3JlZW4uY3BwIgogI2luY2x1ZGUgIkpTU2NyaXB0UHJv
Y2Vzc29yTm9kZS5jcHAiCi0jaW5jbHVkZSAiSlNTY3JpcHRQcm9maWxlLmNwcCIKLSNpbmNsdWRl
ICJKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcCIKICNpZiBFTkFCTEUoQ1NQX05FWFQpCiAjaW5jbHVk
ZSAiSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNwcCIKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzNhMTJlNC4uYmQ3NmE3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCkBAIC01MDUsOCArNTA1LDYgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMg
PSBcCiAgICAgJChXZWJDb3JlKS9odG1sL3RyYWNrL1ZUVEN1ZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5pZGwgXAogICAgICQoV2ViQ29yZSkvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwgXAotICAgICQoV2ViQ29yZSkvaW5zcGVj
dG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9TY3JpcHRQ
cm9maWxlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxp
Y2F0aW9uQ2FjaGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvQWJzdHJhY3RWaWV3LmlkbCBc
CiAgICAgJChXZWJDb3JlKS9wYWdlL0JhclByb3AuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9MZWdhY3lQcm9maWxlci5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzBlOWJmLi4wMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLSNpZm5kZWYgV2ViQ29yZV9GV0RfTGVnYWN5UHJv
ZmlsZXJfaAotI2RlZmluZSBXZWJDb3JlX0ZXRF9MZWdhY3lQcm9maWxlcl9oCi0jaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvTGVnYWN5UHJvZmlsZXIuaD4KLSNlbmRpZgotCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9Qcm9maWxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9Qcm9maWxlLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyNmJhZmQuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvRm9yd2FyZGluZ0hlYWRlcnMvcHJvZmlsZXIvUHJvZmlsZS5oCisrKyAvZGV2L251bGwKQEAg
LTEsNSArMCwwIEBACi0jaWZuZGVmIFdlYkNvcmVfRldEX1Byb2ZpbGVfaAotI2RlZmluZSBXZWJD
b3JlX0ZXRF9Qcm9maWxlX2gKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlLmg+Ci0j
ZW5kaWYKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcHJv
ZmlsZXIvUHJvZmlsZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3By
b2ZpbGVyL1Byb2ZpbGVOb2RlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExOWEw
N2UuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcHJvZmls
ZXIvUHJvZmlsZU5vZGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotI2lmbmRlZiBX
ZWJDb3JlX0ZXRF9Qcm9maWxlTm9kZV9oCi0jZGVmaW5lIFdlYkNvcmVfRldEX1Byb2ZpbGVOb2Rl
X2gKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlTm9kZS5oPgotI2VuZGlmCi0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAyNmE3MjViLi44NjQ1OTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MDU1LDEyICs0MDU1LDYgQEAKIAkJOURBQzdDNTQx
QUYyQ0FBMTAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5REFDN0M1MjFBRjJDQUEx
MDA0MzdDNDQgLyogQ1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVlLmNwcCAqLzsgfTsKIAkJOURB
QzdDNTUxQUYyQ0FBMjAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOURBQzdDNTMxQUYy
Q0FBMTAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5oICovOyB9OwogCQk5
REFDN0M1NzFBRjJDQjY0MDA0MzdDNDQgLyogU3R5bGVDb250ZW50QWxpZ25tZW50RGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOURBQzdDNTYxQUYy
Q0I2NDAwNDM3QzQ0IC8qIFN0eWxlQ29udGVudEFsaWdubWVudERhdGEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5RjcyMzA0RjExMTg0QjQxMDBB
RDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUY3MjMwNEMxMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5RkEz
N0VFNDExNzJGQzgwMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGQTM3RUUzMTE3MkZDODAwMEM0Q0Q1
NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTlGQTM3RUZBMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFBy
b2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUZBMzdFRjYxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5jcHAgKi87IH07Ci0J
CTlGQTM3RUZCMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGQTM3RUY3MTE3MkZEOTMwMEM0
Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCAqLzsgfTsKLQkJOUZBMzdFRkMxMTcyRkRBNjAwQzRD
RDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUZBMzdFRjgxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0
UHJvZmlsZU5vZGUuY3BwICovOyB9OwotCQk5RkEzN0VGRDExNzJGREE2MDBDNENENTUgLyogSlNT
Y3JpcHRQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUu
aCAqLzsgfTsKIAkJQTA3RDMzNTUxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTA3RDMzNTMxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25G
b3JtYXQuY3BwICovOyB9OwogCQlBMDdEMzM1NjE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNo
YWRlclByZWNpc2lvbkZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTA3RDMzNTQxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXQuaCAqLzsgfTsKIAkJQTA3RDMzNTgxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdM
U2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMDdEMzM1NzE1MkI2MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVj
aXNpb25Gb3JtYXQuaCAqLzsgfTsKQEAgLTExNzc3LDE0ICsxMTc3MSw2IEBACiAJCTlEQUM3QzUy
MUFGMkNBQTEwMDQzN0M0NCAvKiBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQ29udGVudERpc3RyaWJ1dGlvblZh
bHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOURBQzdDNTMxQUYyQ0FBMTAw
NDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOURBQzdDNTYxQUYyQ0I2NDAwNDM3QzQ0IC8qIFN0eWxlQ29u
dGVudEFsaWdubWVudERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5
bGVDb250ZW50QWxpZ25tZW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5
RjcyMzA0QzExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTlGQTM3RUUzMTE3MkZDODAwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRQcm9maWxlTm9kZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VFRjExNzJGRDQxMDBDNENENTUgLyog
U2NyaXB0UHJvZmlsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2NyaXB0UHJvZmlsZS5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlGQTM3RUYwMTE3MkZENDEwMEM0Q0Q1
NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2NyaXB0
UHJvZmlsZU5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VGNjEx
NzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2NyaXB0UHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTlGQTM3RUY3MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3JpcHRQcm9maWxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlGQTM3RUY4MTE3MkZEOTMwMEM0Q0Q1NSAvKiBK
U1NjcmlwdFByb2ZpbGVOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5RkEzN0VGOTExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NjcmlwdFByb2ZpbGVOb2RlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEwN0QzMzUzMTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dl
YkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBMDdEMzM1NDE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNoYWRl
clByZWNpc2lvbkZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dl
YkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUEwN0QzMzU3MTUyQjYzMkQwMDFCNjM5MyAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTFNoYWRlclByZWNpc2lvbkZv
cm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyOTgsMTAgKzE2Mjg0LDYg
QEAKIAkJCQlBNTg0RkUzQTE4NjRFMkQ4MDA4NDNCMTAgLyogSlNDb21tYW5kTGluZUFQSUhvc3Qu
aCAqLywKIAkJCQk3QTBFNzcxQzEwQzAwREIxMDBBMDI3NkUgLyogSlNJbnNwZWN0b3JGcm9udGVu
ZEhvc3QuY3BwICovLAogCQkJCTdBMEU3NzFEMTBDMDBEQjEwMEEwMjc2RSAvKiBKU0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5oICovLAotCQkJCTlGQTM3RUY2MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1Nj
cmlwdFByb2ZpbGUuY3BwICovLAotCQkJCTlGQTM3RUY3MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1Nj
cmlwdFByb2ZpbGUuaCAqLywKLQkJCQk5RkEzN0VGODExNzJGRDkzMDBDNENENTUgLyogSlNTY3Jp
cHRQcm9maWxlTm9kZS5jcHAgKi8sCi0JCQkJOUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8qIEpT
U2NyaXB0UHJvZmlsZU5vZGUuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gSW5zcGVjdG9yOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2Mzg2LDggKzE2MzY4LDYgQEAKIAkJCQlGMzgy
MDg4RDE0N0QzNUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRpbWVBZ2VudC5oICovLAogCQkJCUE1RjM2
RDM4MThGNzU4NzIwMDU0QzAyNCAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwICovLAogCQkJ
CUE1RjM2RDM5MThGNzU4NzIwMDU0QzAyNCAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCAqLywK
LQkJCQk5RkEzN0VFRjExNzJGRDQxMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZS5pZGwgKi8sCi0J
CQkJOUZBMzdFRjAxMTcyRkQ0MTAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmlkbCAqLywK
IAkJCQk3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNw
cCAqLywKIAkJCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0
b3J5LmggKi8sCiAJCQkJQTU2QzVCOTgxODlGMzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVBZ2Vu
dC5jcHAgKi8sCkBAIC0yMjM3NCw4ICsyMjM1NCw2IEBACiAJCQkJQTgzRTFDNzIwRTQ5MDQyQjAw
MTQwQjlDIC8qIFNjcmlwdENvbnRyb2xsZXJNYWMubW0gKi8sCiAJCQkJNDFGMDY2RTMwRjY0QkNG
NjAwQTA3RUFDIC8qIFNjcmlwdEdsb2JhbE9iamVjdC5jcHAgKi8sCiAJCQkJNDFGMDY2RTIwRjY0
QkNGNjAwQTA3RUFDIC8qIFNjcmlwdEdsb2JhbE9iamVjdC5oICovLAotCQkJCTlGNzIzMDRDMTEx
ODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlLmggKi8sCi0JCQkJOUZBMzdFRTMxMTcyRkM4
MDAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmggKi8sCiAJCQkJOTM0Q0MxMDkwRURCMjIz
OTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLywKIAkJCQk0MTI3RDUzNjBGOEFBQjFE
MDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwICovLAogCQkJCTQxQzc2MEIwMEVERTAzRDMwMEMx
NjU1RiAvKiBTY3JpcHRTdGF0ZS5oICovLApAQCAtMjY4NTQsOCArMjY4MzIsNiBAQAogCQkJCTVF
MkM0MzZDMUJDRjA3MUUwMDAxRTJCQyAvKiBKU1JUQ1RyYWNrRXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDRUMwMUMzMEMyNzREREQwMDlGNEVDOSAvKiBKU1NjcmVlbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkRBMTVFQ0UxMkIwM0Y2MTAwM0E1ODNBIC8qIEpTU2NyaXB0UHJvY2Vzc29yTm9k
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUZBMzdFRkIxMTcyRkRBNjAwQzRDRDU1IC8qIEpTU2Ny
aXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUZBMzdFRkQxMTcyRkRBNjAwQzRDRDU1
IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRDA2QUQxMUM3
Nzc1NDgwMEZERkFGMSAvKiBKU1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTlCREE2NEQ4MUI5NzVDRjIwMDlDNDM4NyAvKiBKU1NoYWRvd1Jvb3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEOURFMTdCMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1
ZmZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzg0Nyw4ICsyNzgyMyw2IEBACiAJCQkJRTExQzlE
OUIwRUIzNjgxMjAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxRjA2NkU0MEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQ
cm9jZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5RjcyMzA0RjExMTg0QjQxMDBBRDAx
MjYgLyogU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUZBMzdFRTQxMTcyRkM4
MDAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTQx
M0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDFDNzYwQjEwRURFMDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggaW4g
SGVhZGVycyAqLywKQEAgLTMwNjIwLDggKzMwNTk0LDYgQEAKIAkJCQk1RTJDNDM2QjFCQ0YwNzFF
MDAwMUUyQkMgLyogSlNSVENUcmFja0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUMw
MUMyMEMyNzREREQwMDlGNEVDOSAvKiBKU1NjcmVlbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
REExNUVDRDEyQjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTlGQTM3RUZBMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2Zp
bGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOUZBMzdFRkMxMTcyRkRBNjAwQzRDRDU1IC8qIEpT
U2NyaXB0UHJvZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0VEMDZBRDAxQzc3NzU0
ODAwRkRGQUYxIC8qIEpTU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5QkRBNjRENzFCOTc1Q0U1MDA5QzQzODcgLyogSlNTaGFkb3dSb290LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUNEOURFMTdBMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1
ZmZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAppbmRleCBlZTlmOTY4Li5lMDkxNWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNS
ZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0
aE5TUmVzb2x2ZXIuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
LSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2su
aD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IDA0YWU4YTMuLmEwM2IwY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtNjQsNyArNjQs
NyBAQCBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd0FjY2Vzc0Zyb20oY29uc3QgSlNHbG9iYWxPYmpl
Y3QqIHRoaXNPYmplY3QsIEV4ZWNTdGF0ZSogZQogCiBjb25zdCBDbGFzc0luZm8gSlNET01XaW5k
b3dCYXNlOjpzX2luZm8gPSB7ICJXaW5kb3ciLCAmSlNET01HbG9iYWxPYmplY3Q6OnNfaW5mbywg
MCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RPTVdpbmRvd0Jhc2UpIH07CiAKLWNvbnN0IEdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RU
YWJsZSA9IHsgJnNob3VsZEFsbG93QWNjZXNzRnJvbSwgJnN1cHBvcnRzTGVnYWN5UHJvZmlsaW5n
LCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFT
Y3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVycnVw
dFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9hZGVy
RmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwgJmRlZmF1bHRM
YW5ndWFnZSB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNl
OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxkQWxsb3dBY2Nlc3NGcm9tLCAm
c3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3Jp
cHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVycnVwdFNj
cmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9hZGVyRmV0
Y2gsIG51bGxwdHIsIG51bGxwdHIsICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwgJmRlZmF1bHRMYW5n
dWFnZSB9OwogCiBKU0RPTVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93LCBKU0RPTVdpbmRv
d1NoZWxsKiBzaGVsbCkKICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsICZz
aGVsbC0+d29ybGQoKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCkBAIC0xMjUsMjAgKzEy
NSw2IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpIGNvbnN0CiAgICAgcHJpbnRFcnJvck1lc3NhZ2VGb3JGcmFtZSh3cmFwcGVk
KCkuZnJhbWUoKSwgbWVzc2FnZSk7CiB9CiAKLWJvb2wgSlNET01XaW5kb3dCYXNlOjpzdXBwb3J0
c0xlZ2FjeVByb2ZpbGluZyhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQotewotICAgIGNv
bnN0IEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PGNvbnN0IEpTRE9N
V2luZG93QmFzZSo+KG9iamVjdCk7Ci0gICAgRnJhbWUqIGZyYW1lID0gdGhpc09iamVjdC0+d3Jh
cHBlZCgpLmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigp
LmxlZ2FjeVByb2ZpbGVyRW5hYmxlZCgpOwotfQotCiBib29sIEpTRE9NV2luZG93QmFzZTo6c3Vw
cG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQogewogICAg
IGNvbnN0IEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PGNvbnN0IEpT
RE9NV2luZG93QmFzZSo+KG9iamVjdCk7CkBAIC0xNTIsNyArMTM4LDYgQEAgYm9vbCBKU0RPTVdp
bmRvd0Jhc2U6OnN1cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3QgSlNHbG9iYWxPYmplY3QqIG9i
amVjdCkKIAogICAgIGJvb2wgZW5hYmxlZCA9IHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5l
bmFibGVkKCk7CiAgICAgQVNTRVJUKGVuYWJsZWQgfHwgIXRoaXNPYmplY3QtPmRlYnVnZ2VyKCkp
OwotICAgIEFTU0VSVChlbmFibGVkIHx8ICFzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZyh0aGlzT2Jq
ZWN0KSk7CiAgICAgcmV0dXJuIGVuYWJsZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggNTY2OWRlNS4uMTZmYzM5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTYwLDcgKzYwLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6Okdsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlIHNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGU7CiAKLSAgICAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydHNMZWdhY3lQcm9maWxpbmcoY29uc3QgSlNDOjpKU0dsb2JhbE9i
amVjdCopOwogICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJy
dXB0U2NyaXB0KGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGJv
b2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChjb25zdCBKU0M6OkpTR2xvYmFs
T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggM2Q0NzZkZS4uM2IwYjMwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNw
cApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IENsYXNzSW5m
byBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19pbmZvID0geyAiV29ya2VyR2xvYmFsU2NvcGUi
LCAmSlNET01HbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dv
cmtlckdsb2JhbFNjb3BlQmFzZSkgfTsKIAotY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUg
SlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZh
bGxvd3NBY2Nlc3NGcm9tLCAmc3VwcG9ydHNMZWdhY3lQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hT
b3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFn
cywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGlt
ZW91dCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgJmRlZmF1
bHRMYW5ndWFnZSB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nlc3NG
cm9tLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmph
dmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVy
cnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsICZkZWZhdWx0TGFuZ3VhZ2UgfTsKIAogSlNXb3JrZXJHbG9iYWxTY29wZUJh
c2U6OkpTV29ya2VyR2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSog
c3RydWN0dXJlLCBQYXNzUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBpbXBsKQogICAgIDogSlNE
T01HbG9iYWxPYmplY3Qodm0sIHN0cnVjdHVyZSwgJm5vcm1hbFdvcmxkKHZtKSwgJnNfZ2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUpCkBAIC03MywxMSArNzMsNiBAQCBib29sIEpTV29ya2VyR2xvYmFs
U2NvcGVCYXNlOjphbGxvd3NBY2Nlc3NGcm9tKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3Qs
IEV4ZQogICAgIHJldHVybiBKU0dsb2JhbE9iamVjdDo6YWxsb3dzQWNjZXNzRnJvbShvYmplY3Qs
IGV4ZWMpOwogfQogCi1ib29sIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzdXBwb3J0c0xlZ2Fj
eVByb2ZpbGluZyhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQotewotICAgIHJldHVybiBK
U0dsb2JhbE9iamVjdDo6c3VwcG9ydHNMZWdhY3lQcm9maWxpbmcob2JqZWN0KTsKLX0KLQogYm9v
bCBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBK
U0dsb2JhbE9iamVjdCogb2JqZWN0KQogewogICAgIHJldHVybiBKU0dsb2JhbE9iamVjdDo6c3Vw
cG9ydHNSaWNoU291cmNlSW5mbyhvYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmgKaW5kZXggMWJkMmIxMC4uMDA2ZmYw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZS5oCkBAIC01Myw3ICs1Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgc3RhdGljIGNvbnN0IEpTQzo6R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgc19nbG9iYWxPYmpl
Y3RNZXRob2RUYWJsZTsKIAogICAgICAgICBzdGF0aWMgYm9vbCBhbGxvd3NBY2Nlc3NGcm9tKGNv
bnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZyhjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CiAgICAgICAgIHN0YXRpYyBib29sIHN1cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3QgSlND
OjpKU0dsb2JhbE9iamVjdCopOwogICAgICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRT
Y3JpcHQoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgICAgICBzdGF0aWMgYm9vbCBz
aG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0KGNvbnN0IEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hl
ZEZyYW1lRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRG
cmFtZURhdGEuY3BwCmluZGV4IDFjY2NmOGEuLjU2MTZiM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcApAQCAtNDAsNyAr
NDAsNiBAQAogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KLSNpbmNsdWRlIDxwcm9maWxl
ci9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDxydW50
aW1lL1dlYWtHQ01hcElubGluZXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAyZmMwNDEyLi5kMmYyZjAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNTIsNyAr
NTIsNiBAQAogI2luY2x1ZGUgPGRlYnVnZ2VyL0RlYnVnZ2VyLmg+CiAjaW5jbHVkZSA8aGVhcC9T
dHJvbmdJbmxpbmVzLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgot
I2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxp
emVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRpbmcuaD4KQEAgLTIxNSwxMyArMjE0LDYgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVy
OjpjbGVhcldpbmRvd1NoZWxsKERPTVdpbmRvdyogbmV3RE9NV2luZG93LCBib29sIGdvaW5nSW50
b1AKICAgICAgICAgYXR0YWNoRGVidWdnZXIod2luZG93U2hlbGwsIG51bGxwdHIpOwogICAgICAg
ICB3aW5kb3dTaGVsbC0+d2luZG93KCktPnNldENvbnNvbGVDbGllbnQobnVsbHB0cik7CiAKLSAg
ICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjbGVhciBjb25zb2xlIHByb2ZpbGVzIGZvciBlYWNo
IGZyYW1lIGFzIHNvb24gYXMgdGhlIGZyYW1lIGlzIGRlc3Ryb3llZC4KLSAgICAgICAgLy8gSW5z
dGVhZCBvZiBjbGVhcmluZyBhbGwgb2YgdGhlbSB3aGVuIHRoZSBtYWluIGZyYW1lIGlzIGRlc3Ry
b3llZC4KLSAgICAgICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkgewotICAgICAgICAgICAg
aWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBwYWdlLT5j
b25zb2xlKCkuY2xlYXJQcm9maWxlcygpOwotICAgICAgICB9Ci0KICAgICAgICAgd2luZG93U2hl
bGwtPndpbmRvdygpLT53aWxsUmVtb3ZlRnJvbVdpbmRvd1NoZWxsKCk7CiAgICAgICAgIHdpbmRv
d1NoZWxsLT5zZXRXaW5kb3cobmV3RE9NV2luZG93KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0UHJvZmlsZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjQz
ZjgyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2Zp
bGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU2NyaXB0UHJvZmlsZV9oCi0j
ZGVmaW5lIFNjcmlwdFByb2ZpbGVfaAotCi0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXR5cGVkZWYgSlNDOjpQcm9maWxlIFNjcmlwdFByb2Zp
bGU7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNjcmlwdFByb2ZpbGVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZU5v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVOb2RlLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkMTI4M2QuLjAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZU5vZGUuaAorKysgL2Rldi9udWxsCkBA
IC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgU2NyaXB0UHJvZmlsZU5vZGVfaAotI2RlZmluZSBTY3JpcHRQcm9maWxlTm9k
ZV9oCi0KLSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlTm9kZS5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLXR5cGVkZWYgSlNDOjpQcm9maWxlTm9kZSBTY3JpcHRQcm9maWxlTm9kZTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gU2NyaXB0UHJvZmlsZU5vZGVfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQppbmRleCA1ZjY1ZDFlLi5mMjhiM2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMjY0LDEyICsyNjQsNiBAQCBzdWIg
QWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQKIHsKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0
OwogCi0gICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJTY3JpcHRQcm9maWxlTm9kZSIpIHsKLSAg
ICAgICAgJGhlYWRlckluY2x1ZGVzeyI8cHJvZmlsZXIvUHJvZmlsZU5vZGUuaD4ifSA9IDE7Ci0g
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ0eXBlZGVmIEpTQzo6UHJvZmlsZU5vZGUgU2Ny
aXB0UHJvZmlsZU5vZGU7XG5cbiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgIyBT
VkdBbmltYXRlZExlbmd0aC9OdW1iZXIvZXRjLiBhcmUgdHlwZWRlZnMgYW5kIHNob3VsZCBub3Qg
YmUgZm9yd2FyZC1kZWNsYXJlZCBhcyBjbGFzc2VzLgogICAgIHJldHVybiBpZiAkY29kZUdlbmVy
YXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJGludGVyZmFjZU5hbWUpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggOWZhZTM2ZS4u
OTNlZTQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbApAQCAtMTE3LDkgKzExNyw2IEBAIGVudW0gVGVzdENvbmZpZGVuY2UgeyAiaGln
aCIsICJraW5kYS1sb3ciIH07CiAgICAgc3RhdGljIERPTVN0cmluZz8gbnVsbGFibGVTdHJpbmdT
dGF0aWNNZXRob2QoKTsKICAgICBnZXR0ZXIgRE9NU3RyaW5nPyBudWxsYWJsZVN0cmluZ1NwZWNp
YWxNZXRob2QodW5zaWduZWQgbG9uZyBpbmRleCk7CiAKLSAgICB2b2lkIG1ldGhvZFdpdGhTZXF1
ZW5jZUFyZyhzZXF1ZW5jZTxTY3JpcHRQcm9maWxlPiBzZXF1ZW5jZUFyZyk7Ci0gICAgc2VxdWVu
Y2U8U2NyaXB0UHJvZmlsZT4gbWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UobG9uZyBsb25nQXJnKTsK
LQogICAgIHZvaWQgbWV0aG9kV2l0aEVudW1BcmcoVGVzdEVudW1UeXBlIGVudW1BcmcpOwogICAg
IHZvaWQgbWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZyhvcHRpb25hbCBUZXN0RW51bVR5cGUgZW51
bUFyZyk7CiAgICAgdm9pZCBtZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVl
KG9wdGlvbmFsIFRlc3RFbnVtVHlwZSBlbnVtQXJnID0gIkVudW1WYWx1ZTEiKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKaW5kZXggOTQ4ZmIxMi4uMjY0ZmI0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKQEAgLTk3LDcgKzk3LDYgQEAKICNpbmNsdWRlICJXZWJLaXRDU1NGaWx0ZXJWYWx1
ZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1JlZ2lvblJ1bGUuaCIKICNpbmNsdWRlICJXZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZS5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4K
ICNpbmNsdWRlIDxiaXRzZXQ+CiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8d3RmL0hl
eE51bWJlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNWY3NzBhZS4uMjVjYmE5YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xODIsNyArMTgyLDYgQEAKICNpbmNsdWRlICJY
UGF0aE5TUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJYUGF0aFJlc3VsdC5oIgogI2luY2x1ZGUgImh0
bWxlZGl0aW5nLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvZmlsZS5oPgogI2luY2x1
ZGUgPGN0aW1lPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDQ4NDkyMzUu
LmEwMTcwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b25zb2xlSW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaApAQCAtMzMsNyArMzMsNiBAQAogI2RlZmlu
ZSBJbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uX2gKIAogI2luY2x1ZGUgIkluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIgotI2luY2x1ZGUgIlNjcmlwdFByb2ZpbGUuaCIKICNpbmNsdWRl
IDxpbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1Njcmlw
dENhbGxTdGFjay5oPgogCkBAIC04NSw5ICs4NCw5IEBAIGlubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6c3RhcnRQcm9maWxpbmcoUGFnZSYgcGFnZSwgSlNDOjpFeGVjU3RhdGUq
CiAgICAgc3RhcnRQcm9maWxpbmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2Up
LCBleGVjLCB0aXRsZSk7CiB9CiAKLWlubGluZSBSZWZQdHI8SlNDOjpQcm9maWxlPiBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnN0b3BQcm9maWxpbmcoUGFnZSYgcGFnZSwgSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IFN0cmluZyAmdGl0bGUpCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OnN0b3BQcm9maWxpbmcoUGFnZSYgcGFnZSwgSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IFN0cmluZyAmdGl0bGUpCiB7Ci0gICAgcmV0dXJuIHN0b3BQcm9maWxpbmdJbXBs
KGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpLCBleGVjLCB0aXRsZSk7CisgICAgc3Rv
cFByb2ZpbGluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSksIGV4ZWMsIHRp
dGxlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGRiMWNmYWQuLjA0Mzg1ZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKQEAgLTcyLDcgKzcyLDYgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckFnZW50Lmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQu
aD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdl
bnQuaD4KLSNpbmNsdWRlIDxwcm9maWxlci9MZWdhY3lQcm9maWxlci5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1N0b3B3YXRjaC5oPgogCkBAIC0xNzEsMTQg
KzE3MCwxMSBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2Um
IHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogICAgIG1faW5zdHJ1bWVudGluZ0Fn
ZW50cy0+c2V0V2ViQ29uc29sZUFnZW50KGNvbnNvbGVBZ2VudFB0ci5nZXQoKSk7CiAgICAgbV9h
Z2VudHMuYXBwZW5kKFdURk1vdmUoY29uc29sZUFnZW50UHRyKSk7CiAKLSAgICBhdXRvIHRpbWVs
aW5lQWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+KHBh
Z2VDb250ZXh0LCBzY3JpcHRQcm9maWxlckFnZW50LCBoZWFwQWdlbnQsIHBhZ2VBZ2VudCk7Ci0g
ICAgbV90aW1lbGluZUFnZW50ID0gdGltZWxpbmVBZ2VudFB0ci5nZXQoKTsKLSAgICBtX2FnZW50
cy5hcHBlbmQoV1RGTW92ZSh0aW1lbGluZUFnZW50UHRyKSk7Ci0KICAgICBhdXRvIGRlYnVnZ2Vy
QWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VEZWJ1Z2dlckFnZW50PihwYWdlQ29udGV4
dCwgcGFnZUFnZW50LCBtX292ZXJsYXkuZ2V0KCkpOwogICAgIFBhZ2VEZWJ1Z2dlckFnZW50KiBk
ZWJ1Z2dlckFnZW50ID0gZGVidWdnZXJBZ2VudFB0ci5nZXQoKTsKICAgICBtX2FnZW50cy5hcHBl
bmQoV1RGTW92ZShkZWJ1Z2dlckFnZW50UHRyKSk7CiAKKyAgICBtX2FnZW50cy5hcHBlbmQoc3Rk
OjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JUaW1lbGluZUFnZW50PihwYWdlQ29udGV4dCwgc2NyaXB0
UHJvZmlsZXJBZ2VudCwgaGVhcEFnZW50LCBwYWdlQWdlbnQpKTsKICAgICBtX2FnZW50cy5hcHBl
bmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PihwYWdlQ29udGV4
dCwgbV9kb21BZ2VudCwgZGVidWdnZXJBZ2VudCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6
Om1ha2VfdW5pcXVlPEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudD4ocGFnZUNvbnRleHQs
IHBhZ2VBZ2VudCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3Bl
Y3RvckxheWVyVHJlZUFnZW50PihwYWdlQ29udGV4dCkpOwpAQCAtNDE0LDI3ICs0MTAsNiBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldEluZGljYXRpbmcoYm9vbCBpbmRpY2F0aW5nKQog
I2VuZGlmCiB9CiAKLWJvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6bGVnYWN5UHJvZmlsZXJFbmFi
bGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9sZWdhY3lQcm9maWxlckVuYWJsZWQ7Ci19Ci0K
LXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0TGVnYWN5UHJvZmlsZXJFbmFibGVkKGJvb2wg
ZW5hYmxlKQotewotICAgIG1fbGVnYWN5UHJvZmlsZXJFbmFibGVkID0gZW5hYmxlOwotCi0gICAg
RXJyb3JTdHJpbmcgdW51c2VkOwotICAgIGlmIChlbmFibGUpIHsKLSAgICAgICAgbV9pbnN0cnVt
ZW50aW5nQWdlbnRzLT5zZXRQZXJzaXN0ZW50SW5zcGVjdG9yVGltZWxpbmVBZ2VudChtX3RpbWVs
aW5lQWdlbnQpOwotICAgICAgICBtX3NjcmlwdERlYnVnU2VydmVyLnJlY29tcGlsZUFsbEpTRnVu
Y3Rpb25zKCk7Ci0gICAgICAgIG1fdGltZWxpbmVBZ2VudC0+c3RhcnQodW51c2VkKTsKLSAgICB9
IGVsc2UgewotICAgICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFBlcnNpc3RlbnRJbnNw
ZWN0b3JUaW1lbGluZUFnZW50KG51bGxwdHIpOwotICAgICAgICBtX3NjcmlwdERlYnVnU2VydmVy
LnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7Ci0gICAgICAgIG1fdGltZWxpbmVBZ2VudC0+c3Rv
cCh1bnVzZWQpOwotICAgIH0KLX0KLQogYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpkZXZlbG9w
ZXJFeHRyYXNFbmFibGVkKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wYWdlLnNldHRpbmdzKCku
ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggY2JmNWMxOS4uYTU4OTZmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC02Myw3ICs2Myw2
IEBAIGNsYXNzIEluc3BlY3RvckRPTUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQ7CiBjbGFzcyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb247CiBjbGFzcyBJbnNwZWN0b3JQYWdl
QWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OwogY2xhc3MgSW5zdHJ1bWVudGlu
Z0FnZW50czsKIGNsYXNzIE5vZGU7CiBjbGFzcyBQYWdlOwpAQCAtMTExLDkgKzExMCw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldElzVW5kZXJUZXN0KGJvb2wgaXNVbmRlclRlc3QpIHsgbV9pc1Vu
ZGVyVGVzdCA9IGlzVW5kZXJUZXN0OyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBldmFsdWF0
ZUZvclRlc3RJbkZyb250ZW5kKGNvbnN0IFN0cmluZyYgc2NyaXB0KTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgbGVnYWN5UHJvZmlsZXJFbmFibGVkKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRMZWdhY3lQcm9maWxlckVuYWJsZWQoYm9vbCk7Ci0KICAgICBJbnNwZWN0
b3JDbGllbnQqIGluc3BlY3RvckNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yQ2xp
ZW50OyB9CiAgICAgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQqIGluc3BlY3RvckZyb250ZW5kQ2xp
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudDsgfQogICAgIElu
c3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlQWdlbnQ7
IH0KQEAgLTE0OCwxMSArMTQ0LDkgQEAgcHJpdmF0ZToKICAgICBJbnNwZWN0b3I6Okluc3BlY3Rv
ckFnZW50KiBtX2luc3BlY3RvckFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvckRPTUFn
ZW50KiBtX2RvbUFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogbV9w
YWdlQWdlbnQgeyBudWxscHRyIH07Ci0gICAgSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogbV90aW1l
bGluZUFnZW50IHsgbnVsbHB0ciB9OwogCiAgICAgYm9vbCBtX2lzVW5kZXJUZXN0IHsgZmFsc2Ug
fTsKICAgICBib29sIG1faXNBdXRvbWF0aWNJbnNwZWN0aW9uIHsgZmFsc2UgfTsKLSAgICBib29s
IG1fbGVnYWN5UHJvZmlsZXJFbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHAKaW5kZXggOTkwMDdlMC4uYTkzMzg2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAg
LTY3LDcgKzY3LDYgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmg+CiAj
aW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oPgotI2luY2x1ZGUgPHByb2ZpbGVyL1By
b2ZpbGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC04OTQs
MTEgKzg5MywxMCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRQcm9maWxp
bmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbgogICAgICAgICB0aW1lbGluZUFn
ZW50LT5zdGFydEZyb21Db25zb2xlKGV4ZWMsIHRpdGxlKTsKIH0KIAotUmVmUHRyPEpTQzo6UHJv
ZmlsZT4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wUHJvZmlsaW5nSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgU3RyaW5nJiB0aXRsZSkKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9w
UHJvZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKICAgICBpZiAoSW5z
cGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMu
cGVyc2lzdGVudEluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKLSAgICAgICAgcmV0dXJuIHRpbWVs
aW5lQWdlbnQtPnN0b3BGcm9tQ29uc29sZShleGVjLCB0aXRsZSk7Ci0gICAgcmV0dXJuIG51bGxw
dHI7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPnN0b3BGcm9tQ29uc29sZShleGVjLCB0aXRsZSk7
CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRPcGVuRGF0YWJhc2VJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIFJlZlB0cjxEYXRhYmFz
ZT4mJiBkYXRhYmFzZSwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2ZXJzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IGQ5ZDE0NDguLmU0ZmVmNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgKQEAgLTIxOCw3ICsyMTgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkRmlyZUFu
aW1hdGlvbkZyYW1lKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogCiAg
ICAgc3RhdGljIHZvaWQgc3RhcnRQcm9maWxpbmcoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxKU0M6OlByb2ZpbGU+IHN0b3BQ
cm9maWxpbmcoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Cisg
ICAgc3RhdGljIHZvaWQgc3RvcFByb2ZpbGluZyhQYWdlJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBTdHJpbmcmIHRpdGxlKTsKIAogICAgIHN0YXRpYyB2b2lkIGRpZE9wZW5EYXRhYmFzZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPERhdGFiYXNlPiYmLCBjb25zdCBTdHJpbmcmIGRv
bWFpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pOwogCkBAIC0z
ODcsNyArMzg3LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRGaXJlQW5pbWF0aW9u
RnJhbWVJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogCiAgICAg
c3RhdGljIHZvaWQgc3RhcnRQcm9maWxpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHN0YXRpYyBSZWZQdHI8SlND
OjpQcm9maWxlPiBzdG9wUHJvZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyAgICBzdGF0aWMgdm9pZCBzdG9wUHJv
ZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBT
dHJpbmcmIHRpdGxlKTsKIAogICAgIHN0YXRpYyB2b2lkIGRpZE9wZW5EYXRhYmFzZUltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYsIFJlZlB0cjxEYXRhYmFzZT4mJiwgY29uc3QgU3RyaW5nJiBkb21h
aW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmlu
ZGV4IDcwMWJhN2IuLjJjOGUxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRl
IDxpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaD4KICNpbmNsdWRlIDxp
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oPgogI2luY2x1ZGUgPGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oPgotI2luY2x1ZGUgPHByb2Zp
bGVyL0xlZ2FjeVByb2ZpbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1N0b3B3YXRjaC5oPgogCiAjaWYg
UExBVEZPUk0oSU9TKQpAQCAtMjQyLDU4ICsyNDEsMTQgQEAgZG91YmxlIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OnRpbWVzdGFtcCgpCiAgICAgcmV0dXJuIG1fZW52aXJvbm1lbnQuZXhlY3V0aW9u
U3RvcHdhdGNoKCktPmVsYXBzZWRUaW1lKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6c3RhcnRGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5n
ICZ0aXRsZSkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnRGcm9tQ29uc29sZShK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IDxodHRwczov
L3dlYmtpdC5vcmcvYi8xNTM0OTk+IFdlYiBJbnNwZWN0b3I6IGNvbnNvbGUucHJvZmlsZSBzaG91
bGQgdXNlIHRoZSBuZXcgU2FtcGxpbmcgUHJvZmlsZXIKLQotICAgIC8vIE9ubHkgYWxsb3cgcmVj
b3JkaW5nIG9mIGEgcHJvZmlsZSBpZiBpdCBpcyBhbm9ueW1vdXMgKGVtcHR5IHRpdGxlKSBvciBk
b2VzIG5vdCBtYXRjaAotICAgIC8vIHRoZSB0aXRsZSBvZiBhbiBhbHJlYWR5IHJlY29yZGluZyBw
cm9maWxlLgotICAgIGlmICghdGl0bGUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGZvciAoY29uc3Qg
VGltZWxpbmVSZWNvcmRFbnRyeSYgcmVjb3JkIDogbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNv
cmRzKSB7Ci0gICAgICAgICAgICBTdHJpbmcgcmVjb3JkVGl0bGU7Ci0gICAgICAgICAgICByZWNv
cmQuZGF0YS0+Z2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgidGl0bGUiKSwgcmVjb3JkVGl0bGUpOwot
ICAgICAgICAgICAgaWYgKHJlY29yZFRpdGxlID09IHRpdGxlKQotICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICghbV9lbmFibGVkICYmIG1fcGVuZGlu
Z0NvbnNvbGVQcm9maWxlUmVjb3Jkcy5pc0VtcHR5KCkpCi0gICAgICAgIGludGVybmFsU3RhcnQo
KTsKLQotICAgIEpTQzo6TGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCktPnN0YXJ0UHJvZmlsaW5n
KGV4ZWMsIHRpdGxlLCBtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpKTsKLQotICAg
IG1fcGVuZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jkcy5hcHBlbmQoY3JlYXRlUmVjb3JkRW50cnko
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVDb25zb2xlUHJvZmlsZURhdGEodGl0bGUpLCBU
aW1lbGluZVJlY29yZFR5cGU6OkNvbnNvbGVQcm9maWxlLCB0cnVlLCBmcmFtZUZyb21FeGVjU3Rh
dGUoZXhlYykpKTsKIH0KIAotUmVmUHRyPEpTQzo6UHJvZmlsZT4gSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6c3RvcEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcm
IHRpdGxlKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdG9wRnJvbUNvbnNvbGUoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKQogewogICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93
ZWJraXQub3JnL2IvMTUzNDk5PiBXZWIgSW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUgc2hvdWxk
IHVzZSB0aGUgbmV3IFNhbXBsaW5nIFByb2ZpbGVyCi0KLSAgICAvLyBTdG9wIHByb2ZpbGVzIGlu
IHJldmVyc2Ugb3JkZXIuIElmIHRoZSB0aXRsZSBpcyBlbXB0eSwgdGhlbiBzdG9wIHRoZSBsYXN0
IHByb2ZpbGUuCi0gICAgLy8gT3RoZXJ3aXNlLCBtYXRjaCB0aGUgdGl0bGUgb2YgdGhlIHByb2Zp
bGUgdG8gc3RvcC4KLSAgICBmb3IgKHB0cmRpZmZfdCBpID0gbV9wZW5kaW5nQ29uc29sZVByb2Zp
bGVSZWNvcmRzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgIGNvbnN0IFRpbWVs
aW5lUmVjb3JkRW50cnkmIHJlY29yZCA9IG1fcGVuZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jkc1tp
XTsKLQotICAgICAgICBTdHJpbmcgcmVjb3JkVGl0bGU7Ci0gICAgICAgIHJlY29yZC5kYXRhLT5n
ZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJ0aXRsZSIpLCByZWNvcmRUaXRsZSk7Ci0KLSAgICAgICAg
aWYgKHRpdGxlLmlzRW1wdHkoKSB8fCByZWNvcmRUaXRsZSA9PSB0aXRsZSkgewotICAgICAgICAg
ICAgUmVmUHRyPEpTQzo6UHJvZmlsZT4gcHJvZmlsZSA9IEpTQzo6TGVnYWN5UHJvZmlsZXI6OnBy
b2ZpbGVyKCktPnN0b3BQcm9maWxpbmcoZXhlYywgdGl0bGUpOwotICAgICAgICAgICAgaWYgKHBy
b2ZpbGUpCi0gICAgICAgICAgICAgICAgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjphcHBlbmRQcm9m
aWxlKHJlY29yZC5kYXRhLmdldCgpLCBwcm9maWxlLmNvcHlSZWYoKSk7Ci0KLSAgICAgICAgICAg
IGRpZENvbXBsZXRlUmVjb3JkRW50cnkocmVjb3JkKTsKLQotICAgICAgICAgICAgbV9wZW5kaW5n
Q29uc29sZVByb2ZpbGVSZWNvcmRzLnJlbW92ZShpKTsKLQotICAgICAgICAgICAgaWYgKCFtX2Vu
YWJsZWRGcm9tRnJvbnRlbmQgJiYgbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzLmlzRW1w
dHkoKSkKLSAgICAgICAgICAgICAgICBpbnRlcm5hbFN0b3AoKTsKLQotICAgICAgICAgICAgcmV0
dXJuIHByb2ZpbGU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0
cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIEZyYW1lKiBmcmFtZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IDg4
Mzg4ZmMuLjhiNzhhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaApAQCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKIAogICAgIC8v
IE1ldGhvZHMgY2FsbGVkIGZyb20gV2ViQ29yZS4KICAgICB2b2lkIHN0YXJ0RnJvbUNvbnNvbGUo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcgJnRpdGxlKTsKLSAgICBSZWZQdHI8SlNDOjpQ
cm9maWxlPiBzdG9wRnJvbUNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRp
dGxlKTsKKyAgICB2b2lkIHN0b3BGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0
cmluZyYgdGl0bGUpOwogCiAgICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIGNhbGxiYWNr
cy4KICAgICB2b2lkIGRpZEluc3RhbGxUaW1lcihpbnQgdGltZXJJZCwgc3RkOjpjaHJvbm86Om1p
bGxpc2Vjb25kcyB0aW1lb3V0LCBib29sIHNpbmdsZVNob3QsIEZyYW1lKik7CkBAIC0yMDcsOCAr
MjA3LDYgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9pZCB7IDEgfTsKICAgICBpbnQgbV9tYXhDYWxs
U3RhY2tEZXB0aCB7IDUgfTsKIAotICAgIFZlY3RvcjxUaW1lbGluZVJlY29yZEVudHJ5PiBtX3Bl
bmRpbmdDb25zb2xlUHJvZmlsZVJlY29yZHM7Ci0KICAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX2VuYWJsZWRGcm9tRnJvbnRlbmQgeyBmYWxzZSB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAxOTdkMmUx
Li5hODZlZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVn
Z2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJB
Z2VudC5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgog
I2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+Ci0jaW5jbHVkZSA8
cHJvZmlsZXIvUHJvZmlsZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiB1
c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VSdW50aW1lQWdlbnQuY3BwCmluZGV4IGE1ZmFlNGMuLjRmNGZhMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAK
ICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdC5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaD4K
LSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlLmg+CiAKIHVzaW5nIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OlJ1bnRpbWU6OkV4ZWN1dGlvbkNvbnRleHREZXNjcmlwdGlvbjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxMTg0YTVhLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3Jp
cHRQcm9maWxlLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVsKLSAgICBOb0ludGVyZmFjZU9iamVj
dCwKLSAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKLSAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VY
UE9SVCwKLV0gaW50ZXJmYWNlIFNjcmlwdFByb2ZpbGUgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgdGl0bGU7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
dWlkOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTY3JpcHRQcm9maWxlTm9kZSByb290Tm9kZTsK
LX07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxl
Tm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRs
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMGU1M2RiLi4wMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwKKysrIC9kZXYvbnVs
bApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgSW1wbGVtZW50YXRpb25MYWNr
c1ZUYWJsZSwKLSAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKLV0gaW50ZXJmYWNlIFNj
cmlwdFByb2ZpbGVOb2RlIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBp
ZDsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZnVuY3Rpb25OYW1lOwotCi0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1cmw7Ci0gICAgcmVhZG9ubHkgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgbGluZU51bWJlcjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgbG9uZyBjb2x1bW5OdW1iZXI7Ci0KLSAgICBzZXF1ZW5jZTxTY3JpcHRQcm9maWxlTm9k
ZT4gY2hpbGRyZW4oKTsKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1l
bGluZVJlY29yZEZhY3RvcnkuY3BwCmluZGV4IGY0YzY3YzMuLjY4Zjc1OTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCkBAIC0z
OSw3ICszOSw2IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdEJyZWFrcG9pbnQuaD4KICNp
bmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9y
L1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KLSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKQEAgLTE1Miw2MyArMTUxLDQgQEAgdm9p
ZCBUaW1lbGluZVJlY29yZEZhY3Rvcnk6OmFwcGVuZExheW91dFJvb3QoSW5zcGVjdG9yT2JqZWN0
KiBkYXRhLCBjb25zdCBGbG9hdFEKICAgICBkYXRhLT5zZXRBcnJheShBU0NJSUxpdGVyYWwoInJv
b3QiKSwgY3JlYXRlUXVhZChxdWFkKSk7CiB9CiAKLXN0YXRpYyBSZWY8UHJvdG9jb2w6OlRpbWVs
aW5lOjpDUFVQcm9maWxlTm9kZUFnZ3JlZ2F0ZUNhbGxJbmZvPiBidWlsZEFnZ3JlZ2F0ZUNhbGxJ
bmZvSW5zcGVjdG9yT2JqZWN0KGNvbnN0IEpTQzo6UHJvZmlsZU5vZGUqIG5vZGUpCi17Ci0gICAg
ZG91YmxlIHN0YXJ0VGltZSA9IG5vZGUtPmNhbGxzKClbMF0uc3RhcnRUaW1lKCk7Ci0gICAgZG91
YmxlIGVuZFRpbWUgPSBub2RlLT5jYWxscygpLmxhc3QoKS5zdGFydFRpbWUoKSArIG5vZGUtPmNh
bGxzKCkubGFzdCgpLmVsYXBzZWRUaW1lKCk7Ci0KLSAgICBkb3VibGUgdG90YWxUaW1lID0gMDsK
LSAgICBmb3IgKGNvbnN0IEpTQzo6UHJvZmlsZU5vZGU6OkNhbGwmIGNhbGwgOiBub2RlLT5jYWxs
cygpKQotICAgICAgICB0b3RhbFRpbWUgKz0gY2FsbC5lbGFwc2VkVGltZSgpOwotCi0gICAgcmV0
dXJuIFByb3RvY29sOjpUaW1lbGluZTo6Q1BVUHJvZmlsZU5vZGVBZ2dyZWdhdGVDYWxsSW5mbzo6
Y3JlYXRlKCkKLSAgICAgICAgLnNldENhbGxDb3VudChub2RlLT5jYWxscygpLnNpemUoKSkKLSAg
ICAgICAgLnNldFN0YXJ0VGltZShzdGFydFRpbWUpCi0gICAgICAgIC5zZXRFbmRUaW1lKGVuZFRp
bWUpCi0gICAgICAgIC5zZXRUb3RhbFRpbWUodG90YWxUaW1lKQotICAgICAgICAucmVsZWFzZSgp
OwotfQotCi1zdGF0aWMgUmVmPFByb3RvY29sOjpUaW1lbGluZTo6Q1BVUHJvZmlsZU5vZGU+IGJ1
aWxkSW5zcGVjdG9yT2JqZWN0KGNvbnN0IEpTQzo6UHJvZmlsZU5vZGUqIG5vZGUpCi17Ci0gICAg
YXV0byByZXN1bHQgPSBQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlOjpjcmVhdGUo
KQotICAgICAgICAuc2V0SWQobm9kZS0+aWQoKSkKLSAgICAgICAgLnNldENhbGxJbmZvKGJ1aWxk
QWdncmVnYXRlQ2FsbEluZm9JbnNwZWN0b3JPYmplY3Qobm9kZSkpCi0gICAgICAgIC5yZWxlYXNl
KCk7Ci0KLSAgICBpZiAoIW5vZGUtPmZ1bmN0aW9uTmFtZSgpLmlzRW1wdHkoKSkKLSAgICAgICAg
cmVzdWx0LT5zZXRGdW5jdGlvbk5hbWUobm9kZS0+ZnVuY3Rpb25OYW1lKCkpOwotCi0gICAgaWYg
KCFub2RlLT51cmwoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgcmVzdWx0LT5zZXRVcmwobm9kZS0+
dXJsKCkpOwotICAgICAgICByZXN1bHQtPnNldExpbmVOdW1iZXIobm9kZS0+bGluZU51bWJlcigp
KTsKLSAgICAgICAgcmVzdWx0LT5zZXRDb2x1bW5OdW1iZXIobm9kZS0+Y29sdW1uTnVtYmVyKCkp
OwotICAgIH0KLQotICAgIGlmICghbm9kZS0+Y2hpbGRyZW4oKS5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgYXV0byBjaGlsZHJlbiA9IFByb3RvY29sOjpBcnJheTxQcm90b2NvbDo6VGltZWxpbmU6OkNQ
VVByb2ZpbGVOb2RlPjo6Y3JlYXRlKCk7Ci0gICAgICAgIGZvciAoUmVmUHRyPEpTQzo6UHJvZmls
ZU5vZGU+IHByb2ZpbGVOb2RlIDogbm9kZS0+Y2hpbGRyZW4oKSkKLSAgICAgICAgICAgIGNoaWxk
cmVuLT5hZGRJdGVtKGJ1aWxkSW5zcGVjdG9yT2JqZWN0KHByb2ZpbGVOb2RlLmdldCgpKSk7Ci0g
ICAgICAgIHJlc3VsdC0+c2V0Q2hpbGRyZW4oV1RGTW92ZShjaGlsZHJlbikpOwotICAgIH0KLQot
ICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBSZWY8UHJvdG9jb2w6OlRpbWVsaW5lOjpD
UFVQcm9maWxlPiBidWlsZFByb2ZpbGVJbnNwZWN0b3JPYmplY3QoY29uc3QgSlNDOjpQcm9maWxl
KiBwcm9maWxlKQotewotICAgIGF1dG8gcm9vdE5vZGVzID0gUHJvdG9jb2w6OkFycmF5PFByb3Rv
Y29sOjpUaW1lbGluZTo6Q1BVUHJvZmlsZU5vZGU+OjpjcmVhdGUoKTsKLSAgICBmb3IgKFJlZlB0
cjxKU0M6OlByb2ZpbGVOb2RlPiBwcm9maWxlTm9kZSA6IHByb2ZpbGUtPnJvb3ROb2RlKCktPmNo
aWxkcmVuKCkpCi0gICAgICAgIHJvb3ROb2Rlcy0+YWRkSXRlbShidWlsZEluc3BlY3Rvck9iamVj
dChwcm9maWxlTm9kZS5nZXQoKSkpOwotCi0gICAgcmV0dXJuIFByb3RvY29sOjpUaW1lbGluZTo6
Q1BVUHJvZmlsZTo6Y3JlYXRlKCkKLSAgICAgICAgLnNldFJvb3ROb2RlcyhXVEZNb3ZlKHJvb3RO
b2RlcykpCi0gICAgICAgIC5yZWxlYXNlKCk7Ci19Ci0KLXZvaWQgVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjphcHBlbmRQcm9maWxlKEluc3BlY3Rvck9iamVjdCogZGF0YSwgUmVmUHRyPEpTQzo6UHJv
ZmlsZT4mJiBwcm9maWxlKQotewotICAgIGRhdGEtPnNldFZhbHVlKEFTQ0lJTGl0ZXJhbCgicHJv
ZmlsZSIpLCBidWlsZFByb2ZpbGVJbnNwZWN0b3JPYmplY3QocHJvZmlsZS5nZXQoKSkpOwotfQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXgg
MmI1OWEzMy4uZTI4ZTFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTAwLDcg
KzEwMCw2IEBACiAjaW5jbHVkZSAiV2ViS2l0UG9pbnQuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0
dXJlcy5oIgogI2luY2x1ZGUgIldpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5oIgotI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5j
bHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9T
Y3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAzMjBmODI4Li40
NjNmYmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTk2LDcgKzk2LDYgQEAKICNpbmNsdWRlICJW
aXNpdGVkTGlua1N0b3JlLmgiCiAjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAi
V2lkZ2V0LmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvZmlsZS5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29u
c29sZUNsaWVudC5jcHAKaW5kZXggNWNmYTk3Yi4uOWQwZTBhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKQEAgLTE5MSw4ICsxOTEsNyBAQCB2b2lkIFBhZ2VD
b25zb2xlQ2xpZW50Ojpwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcm
IHRpdGxlKQogdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6cHJvZmlsZUVuZChKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKICAgICAvLyBGSVhNRTogPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzE1MzQ5OT4gV2ViIEluc3BlY3RvcjogY29uc29sZS5wcm9maWxlIHNob3Vs
ZCB1c2UgdGhlIG5ldyBTYW1wbGluZyBQcm9maWxlcgotICAgIGlmIChSZWZQdHI8SlNDOjpQcm9m
aWxlPiBwcm9maWxlID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wUHJvZmlsaW5nKG1f
cGFnZSwgZXhlYywgdGl0bGUpKQotICAgICAgICBtX3Byb2ZpbGVzLmFwcGVuZChXVEZNb3ZlKHBy
b2ZpbGUpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BQcm9maWxpbmcobV9w
YWdlLCBleGVjLCB0aXRsZSk7CiB9CiAKIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OnRha2VIZWFw
U25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKQpAQCAtMjE2LDkg
KzIxNSw0IEBAIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OnRpbWVTdGFtcChKU0M6OkV4ZWNTdGF0
ZSosIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYgYXJnCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpjb25zb2xlVGltZVN0YW1wKG1fcGFnZS5tYWluRnJhbWUoKSwgV1RGTW92ZShhcmd1
bWVudHMpKTsKIH0KIAotdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6Y2xlYXJQcm9maWxlcygpCi17
Ci0gICAgbV9wcm9maWxlcy5jbGVhcigpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKaW5kZXggY2U1YzUxOC4uZWFlZjMx
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaApAQCAtMzAsNyArMzAs
NiBAQAogI2RlZmluZSBQYWdlQ29uc29sZUNsaWVudF9oCiAKICNpbmNsdWRlIDxpbnNwZWN0b3Iv
U2NyaXB0Q2FsbFN0YWNrLmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvQ29uc29sZUNsaWVudC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAK
QEAgLTQzLDggKzQyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRG9jdW1lbnQ7CiBj
bGFzcyBQYWdlOwogCi10eXBlZGVmIFZlY3RvcjxSZWZQdHI8SlNDOjpQcm9maWxlPj4gUHJvZmls
ZXNBcnJheTsKLQogY2xhc3MgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbnNvbGVDbGllbnQgZmluYWwg
OiBwdWJsaWMgSlNDOjpDb25zb2xlQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKQEAgLTYxLDkgKzU4LDYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkTWVzc2Fn
ZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUmVm
UHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKICAgICB2b2lkIGFkZE1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2ln
bmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSBudWxscHRyKTsKIAot
ICAgIGNvbnN0IFByb2ZpbGVzQXJyYXkmIHByb2ZpbGVzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9m
aWxlczsgfQotICAgIHZvaWQgY2xlYXJQcm9maWxlcygpOwotCiBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBtZXNzYWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6
OkV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNj
cmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CkBAIC03Niw3ICs3MCw2IEBAIHByb3RlY3RlZDoK
IAogcHJpdmF0ZToKICAgICBQYWdlJiBtX3BhZ2U7Ci0gICAgUHJvZmlsZXNBcnJheSBtX3Byb2Zp
bGVzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCmluZGV4IDMyNDM4M2UuLjM3OTJjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKQEAgLTEyNCw3ICsxMjQsNiBAQAogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVu
dERhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVx
dWVzdC5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxi
eXRlY29kZS9Db2RlQmxvY2suaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRC
YXNlLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oPgpA
QCAtMzg4LDcgKzM4Nyw2IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRl
KFBhZ2UmIHBhZ2UpCiAgICAgV2ViQ29yZTo6b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2Vz
KFZlY3RvcjxTdHJpbmc+KCkpOwogICAgIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRVc2VzT3Zlcmxh
eVNjcm9sbGJhcnMoZmFsc2UpOwogICAgIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRVc2VzTW9ja1Nj
cm9sbEFuaW1hdG9yKGZhbHNlKTsKLSAgICBwYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5zZXRM
ZWdhY3lQcm9maWxlckVuYWJsZWQoZmFsc2UpOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAg
ICBwYWdlLmdyb3VwKCkuY2FwdGlvblByZWZlcmVuY2VzKCkuc2V0Q2FwdGlvbnNTdHlsZVNoZWV0
T3ZlcnJpZGUoZW1wdHlTdHJpbmcoKSk7CiAgICAgcGFnZS5ncm91cCgpLmNhcHRpb25QcmVmZXJl
bmNlcygpLnNldFRlc3RpbmdNb2RlKGZhbHNlKTsKQEAgLTE3MzMsMTEgKzE3MzEsNiBAQCB1bnNp
Z25lZCBJbnRlcm5hbHM6OmNvdW50TWF0Y2hlc0ZvclRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCB1
bnNpZ25lZCBmaW5kT3B0aW9ucwogICAgIHJldHVybiBkb2N1bWVudC0+ZnJhbWUoKS0+ZWRpdG9y
KCkuY291bnRNYXRjaGVzRm9yVGV4dCh0ZXh0LCBudWxscHRyLCBmaW5kT3B0aW9ucywgMTAwMCwg
bWFyaywgbnVsbHB0cik7CiB9CiAKLWNvbnN0IFByb2ZpbGVzQXJyYXkmIEludGVybmFsczo6Y29u
c29sZVByb2ZpbGVzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gY29udGV4dERvY3VtZW50KCktPnBh
Z2UoKS0+Y29uc29sZSgpLnByb2ZpbGVzKCk7Ci19Ci0KIHVuc2lnbmVkIEludGVybmFsczo6bnVt
YmVyT2ZMaXZlTm9kZXMoKSBjb25zdAogewogICAgIHVuc2lnbmVkIG5vZGVDb3VudCA9IDA7CkBA
IC0xNzY2LDE3ICsxNzU5LDYgQEAgdm9pZCBJbnRlcm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JG
cm9udGVuZCgpCiAgICAgbV9pbnNwZWN0b3JGcm9udGVuZCA9IG51bGxwdHI7CiB9CiAKLXZvaWQg
SW50ZXJuYWxzOjpzZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJs
ZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFBhZ2UqIHBhZ2UgPSBjb250ZXh0RG9jdW1l
bnQoKS0+ZnJhbWUoKS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkgewotICAgICAgICBlYyA9IElO
VkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHBhZ2UtPmlu
c3BlY3RvckNvbnRyb2xsZXIoKS5zZXRMZWdhY3lQcm9maWxlckVuYWJsZWQoZW5hYmxlZCk7Ci19
Ci0KIHZvaWQgSW50ZXJuYWxzOjpzZXRJbnNwZWN0b3JJc1VuZGVyVGVzdChib29sIGlzVW5kZXJU
ZXN0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBQYWdlKiBwYWdlID0gY29udGV4dERvY3Vt
ZW50KCktPmZyYW1lKCktPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4
IDVmMmFiYjMuLjdmYzA2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjY3
LDE0ICsyNjcsMTEgQEAgcHVibGljOgogICAgIHZvaWQgaW5zZXJ0QXV0aG9yQ1NTKGNvbnN0IFN0
cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICB2b2lkIGluc2VydFVzZXJDU1MoY29u
c3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogCi0gICAgY29uc3QgUHJvZmlsZXNB
cnJheSYgY29uc29sZVByb2ZpbGVzKCkgY29uc3Q7Ci0KICAgICB1bnNpZ25lZCBudW1iZXJPZkxp
dmVOb2RlcygpIGNvbnN0OwogICAgIHVuc2lnbmVkIG51bWJlck9mTGl2ZURvY3VtZW50cygpIGNv
bnN0OwogCiAgICAgUmVmUHRyPERPTVdpbmRvdz4gb3BlbkR1bW15SW5zcGVjdG9yRnJvbnRlbmQo
Y29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgY2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5k
KCk7Ci0gICAgdm9pZCBzZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVu
YWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEluc3BlY3RvcklzVW5kZXJUZXN0
KGJvb2wgaXNVbmRlclRlc3QsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFN0cmluZyBjb3VudGVy
VmFsdWUoRWxlbWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDRk
YzQwMzEuLjMyZGEyY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTI2
MCwxNiArMjYwLDEwIEBAIGVudW0gQXV0b0ZpbGxCdXR0b25UeXBlIHsKICAgICBbUmFpc2VzRXhj
ZXB0aW9uXSB2b2lkIHNldERldmljZVByb3hpbWl0eShET01TdHJpbmcgZXZlbnRUeXBlLCB1bnJl
c3RyaWN0ZWQgZG91YmxlIHZhbHVlLCB1bnJlc3RyaWN0ZWQgZG91YmxlIG1pbiwgdW5yZXN0cmlj
dGVkIGRvdWJsZSBtYXgpOwogI2VuZGlmCiAKLSAgICAvLyBBcyBwZXIgc3BlYzogaHR0cDovL3d3
dy53My5vcmcvVFIvV2ViSURMLyNpZGwtc2VxdWVuY2UKLSAgICAvLyAiU2VxdWVuY2VzIG11c3Qg
bm90IGJlIHVzZWQgYXMgdGhlIHR5cGUgb2YgYW4gYXR0cmlidXRlLCBjb25zdGFudCBvciBleGNl
cHRpb24gZmllbGQuIgotICAgIC8vIEZJWE1FOiB0aGlzIHdpbGwgbGVhZCB0byBCVUcgaW50ZXJu
YWxzLmNvbnNvbGVQcm9maWxlcyAhPT0gaW50ZXJuYWxzLmNvbnNvbGVQcm9maWxlcyBhcyBwcm9m
aWxlIHdpbGwgYWx3YXlzIHJldHVybnMgbmV3IGFycmF5LgotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBTY3JpcHRQcm9maWxlW10gY29uc29sZVByb2ZpbGVzOwotCiAgICAgdW5zaWduZWQgbG9uZyBu
dW1iZXJPZkxpdmVOb2RlcygpOwogICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlRG9jdW1l
bnRzKCk7CiAgICAgRE9NV2luZG93IG9wZW5EdW1teUluc3BlY3RvckZyb250ZW5kKERPTVN0cmlu
ZyB1cmwpOwogICAgIHZvaWQgY2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5kKCk7Ci0gICAgW1Jh
aXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChi
b29sZWFuIGVuYWJsZWQpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0SW5zcGVjdG9y
SXNVbmRlclRlc3QoYm9vbGVhbiBpc1VuZGVyVGVzdCk7CiAKICAgICBET01TdHJpbmcgY291bnRl
clZhbHVlKEVsZW1lbnQgZWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pz
L1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKaW5kZXggNDgyMTAxNC4uYmUxNTZlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcApAQCAtMzYs
NyArMzYsNiBAQAogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0VHJpZ2dlci5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1Zh
bHVlUmVmLmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvZmlsZS5oPgogI2luY2x1ZGUg
PGludGVycHJldGVyL0NhbGxGcmFtZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllcklu
bGluZXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRM
aWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAK
aW5kZXggOTY3NzBhNi4uNGIyNDZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hT
TFN0eWxlU2hlZXRMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVT
aGVldExpYnhzbHQuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiWE1MRG9jdW1lbnRQ
YXJzZXJTY29wZS5oIgogI2luY2x1ZGUgIlhTTEltcG9ydFJ1bGUuaCIKICNpbmNsdWRlICJYU0xU
UHJvY2Vzc29yLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvZmlsZS5oPgogI2luY2x1
ZGUgPGxpYnhtbC91cmkuaD4KICNpbmNsdWRlIDxsaWJ4c2x0L3hzbHR1dGlscy5oPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGIvU291
cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAppbmRleCA4YTE4NGMzLi5l
NGEzM2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhz
bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAK
QEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlICJYU0xURXh0ZW5zaW9ucy5oIgogI2luY2x1ZGUg
IlhTTFRVbmljb2RlU29ydC5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgotI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxsaWJ4c2x0L2ltcG9ydHMuaD4KICNpbmNs
dWRlIDxsaWJ4c2x0L3NlY3VyaXR5Lmg+CiAjaW5jbHVkZSA8bGlieHNsdC92YXJpYWJsZXMuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwppbmRleCA5YzQzYjA0Li5jMzViNGI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTYtMDUtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTGVnYWN5UHJvZmlsZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzU2NQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViSW5zcGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvcjo6aXNKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3I6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJJbnNwZWN0b3IuaDoKKwogMjAxNi0wNS0xMiAgS29u
c3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+CiAKICAgICAgICAgVXNlIHJlZmVy
ZW5jZSBpbnN0ZWFkIG9mIHBvaW50ZXIgaW4gRnJhbWVMb2FkZXJDbGllbnQ6OnNhdmVWaWV3U3Rh
dGVUb0l0ZW0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuY3Bw
IGIvU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmNwcAppbmRleCA5MWE3OGIzLi5mNjIx
OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkluc3BlY3Rvci5jcHAKQEAgLTIwMiwzOCArMjAyLDYgQEAg
SFJFU1VMVCBXZWJJbnNwZWN0b3I6OnRvZ2dsZVByb2ZpbGluZ0phdmFTY3JpcHQoKQogICAgIHJl
dHVybiBTX09LOwogfQogCi1IUkVTVUxUIFdlYkluc3BlY3Rvcjo6aXNKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZChfT3V0XyBCT09MKiBpc1Byb2ZpbGluZ0VuYWJsZWQpCi17Ci0gICAgaWYgKCFp
c1Byb2ZpbGluZ0VuYWJsZWQpCi0gICAgICAgIHJldHVybiBFX1BPSU5URVI7Ci0KLSAgICAqaXNQ
cm9maWxpbmdFbmFibGVkID0gRkFMU0U7Ci0KLSAgICBpZiAoIW1faW5zcGVjdGVkV2ViVmlldykK
LSAgICAgICAgcmV0dXJuIFNfT0s7Ci0KLSAgICBQYWdlKiBpbnNwZWN0ZWRQYWdlID0gbV9pbnNw
ZWN0ZWRXZWJWaWV3LT5wYWdlKCk7Ci0gICAgaWYgKCFpbnNwZWN0ZWRQYWdlKQotICAgICAgICBy
ZXR1cm4gU19PSzsKLQotICAgICppc1Byb2ZpbGluZ0VuYWJsZWQgPSBpbnNwZWN0ZWRQYWdlLT5p
bnNwZWN0b3JDb250cm9sbGVyKCkubGVnYWN5UHJvZmlsZXJFbmFibGVkKCk7Ci0gICAgcmV0dXJu
IFNfT0s7Ci19Ci0KLUhSRVNVTFQgV2ViSW5zcGVjdG9yOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZChCT09MIGVuYWJsZWQpCi17Ci0gICAgaWYgKCFtX2luc3BlY3RlZFdlYlZpZXcpCi0g
ICAgICAgIHJldHVybiBTX09LOwotCi0gICAgUGFnZSogaW5zcGVjdGVkUGFnZSA9IG1faW5zcGVj
dGVkV2ViVmlldy0+cGFnZSgpOwotICAgIGlmICghaW5zcGVjdGVkUGFnZSkKLSAgICAgICAgcmV0
dXJuIFNfT0s7Ci0KLSAgICBpbnNwZWN0ZWRQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuc2V0
TGVnYWN5UHJvZmlsZXJFbmFibGVkKGVuYWJsZWQpOwotCi0gICAgcmV0dXJuIFNfT0s7Ci19Ci0K
IEhSRVNVTFQgV2ViSW5zcGVjdG9yOjpldmFsdWF0ZUluRnJvbnRlbmQoX0luXyBCU1RSIGJTY3Jp
cHQpCiB7CiAgICAgaWYgKCFtX2luc3BlY3RlZFdlYlZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkluc3BlY3Rv
ci5oCmluZGV4IGRmNzA3Y2YuLjI3OTRmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkluc3BlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkluc3BlY3Rvci5oCkBA
IC02MCw5ICs2MCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgaXNQcm9maWxpbmdKYXZhU2NyaXB0KF9PdXRfIEJPT0wqKTsKICAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdG9nZ2xlUHJvZmlsaW5nSmF2YVNjcmlwdCgpOwogCi0g
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGlzSmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQoX091dF8gQk9PTCopOwotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChCT09MKTsKLQogICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBldmFsdWF0ZUluRnJvbnRlbmQoX0luXyBCU1RSIHNj
cmlwdCk7CiAKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaXNUaW1lbGlu
ZVByb2ZpbGluZ0VuYWJsZWQoX091dF8gQk9PTCopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278913</attachid>
            <date>2016-05-13 20:01:06 -0700</date>
            <delta_ts>2016-05-13 20:44:39 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>rm-LegacyProfiler-3.patch</filename>
            <type>text/plain</type>
            <size>343695</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMmQyMDZlLi4yYWY1ZTMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAzIEBACisyMDE2LTA1
LTEzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVt
b3ZlIExlZ2FjeVByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTM1NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhhbmRsZXItZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50
LWhhbmRsZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91
cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxl
ZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVu
Y3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
ZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2Fs
bHMtZXZhbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3Vz
LWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFt
ZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2FwcGx5LWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2FwcGx5Lmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9u
eW1vdXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYnVp
bHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
ZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rp
b24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYnVpbHQt
aW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9wcm9maWxlci9jYWxsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUt
cHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUt
cHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9kZWFkLXRpbWUtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRl
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9ldmVudC1oYW5kbGVyLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRs
ZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250
ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9wcm9maWxlci9leGVjdXRpb24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2lubGluZS1ldmVudC1oYW5k
bGVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2lubGlu
ZS1ldmVudC1oYW5kbGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9t
YW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2Nv
cGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1v
dXMtZnVuY3Rpb24tY2FsbHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVy
L211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJl
bnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1l
LWZ1bmN0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVy
L211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rp
b24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1l
cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9tdWx0aXBs
ZS1mcmFtZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL25hbWVkLWZ1
bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGZhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5j
dG9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL25lc3Rl
ZC1hbm9ueW1vdXMtZnVuY3Rvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmls
ZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL25lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNvbnRl
eHQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbm8tZXhl
Y3V0aW9uLWNvbnRleHQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL29u
ZS1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4taW5jbHVkZWQtZmlsZS1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWlu
Y2x1ZGVkLWZpbGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2Zp
bGUtd2l0aC1uby10aXRsZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXBy
b2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1z
dG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1h
LW5lc3RlZC1sb2NhdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
cmVzb3VyY2VzL290aGVyLWZyYW1lLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9m
aWxlci9yZXNvdXJjZXMvb3RoZXItd2luZG93Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9wcm9maWxlci9yZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanM6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNo
YW5nZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zaW1w
bGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxl
ci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1t
dWx0aXBsZS10aW1lcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3Rh
cnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGlu
Zy1pbi10aGUtc2FtZS1mdW5jdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmcu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFm
dGVyLXNldFRpbWVvdXQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNhbGwtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNh
bGwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlv
bi1mcm9tLWV2YWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmls
ZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2FibGVkOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRz
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVu
Y3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBmYXN0L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1p
bi1mdW5jdGlvbnMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3dpbmRv
dy1kb3QtZXZhbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxl
ci93aW5kb3ctZG90LWV2YWwuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnM6CisK
IDIwMTYtMDUtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgY3Jvc3MtZmFkZSgpIHJlbmRlcmluZyBkb2Vzbid0IG1hdGNoIGV4cGVjdGF0aW9uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5k
bGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2
ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
NDhiZjM4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3Vz
LWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA
QAotVGhpcyBwYWdlIGhhcyBhbiBhbm9ueW1vdXMgZXZlbnQgaGFuZGxlci4gCi0KLVRvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBX
ZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEl0IHNob3VsZCBzaG93IHRoZSBh
bm9ueW1vdXMgZnVuY3Rpb24gYXQgdGhlIHNhbWUgbGV2ZWwgYXMgdGhlIG9ubG9hZCBoYW5kbGVy
LiAKLQotUHJvZmlsZSB0aXRsZTogQW5vbnltb3VzIGV2ZW50IGhhbmRsZXIKLVRocmVhZF8xIChu
byBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgYW5vbnltb3VzLWV2ZW50LWhhbmRsZXIu
aHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICBjbGljayAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgb25jbGljayBh
bm9ueW1vdXMtZXZlbnQtaGFuZGxlci5odG1sIChsaW5lIDE1OjUxKQotICAgICAgICAgICAgaW5z
ZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAg
ICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgZ2V0RWxl
bWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDJiY2ZmYTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFuZGxlci5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2Zp
bGUoIkFub255bW91cyBldmVudCBoYW5kbGVyIik7Ci0KLSAgICB2YXIgYnV0dG9uV2l0aEFub255
bW91c0hhbmRsZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnV0dG9uV2l0aEFuQW5vbnlt
b3VzRXZlbnRIYW5kbGVyIikKLSAgICBidXR0b25XaXRoQW5vbnltb3VzSGFuZGxlci5vbmNsaWNr
ID0gZnVuY3Rpb24gKCkgewotICAgICAgICBpbnNlcnROZXdUZXh0KCk7Ci0gICAgfQotCi0gICAg
YnV0dG9uV2l0aEFub255bW91c0hhbmRsZXIuY2xpY2soKTsKLQotICAgIGVuZFRlc3QoKTsKLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMg
cGFnZSBoYXMgYW4gYW5vbnltb3VzIGV2ZW50IGhhbmRsZXIuCi08YnI+Ci08YnI+Ci1UbyBydW4g
dGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUg
V2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEl0IHNob3VsZCBzaG93IHRo
ZSBhbm9ueW1vdXMgZnVuY3Rpb24gYXQgdGhlIHNhbWUgbGV2ZWwgYXMgdGhlIG9ubG9hZAotaGFu
ZGxlci4KLTxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJidXR0b25XaXRoQW5Bbm9ueW1vdXNFdmVu
dEhhbmRsZXIiIHZhbHVlPSJCdXR0b24gd2l0aCBhbiBhbm9ueW1vdXMgZXZlbnQgaGFuZGxlciI+
Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20t
ZGlmZmVyZW50LWNvbnRleHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjYmJmMDQuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVk
LWZyb20tZGlmZmVyZW50LWNvbnRleHRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDI0ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIGZ1
bmN0aW9uIGZyb20gZGlmZmVyZW50IGNvbnRleHRzLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gQmVuZWF0aCBvbmxvYWQgYW5kIHN0YXJ0VGVzdCBpdCBz
aG91bGQgc2hvdyB0aHJlZSBjaGlsZHJlbiwgYW4gYW5vbnltb3VzIGZ1bmN0aW9uLCBzY3JpcHQg
Y29udGV4dCwgYW5kIHRoZSBlbmRUZXN0IGNhbGwuCi0KLVByb2ZpbGUgdGl0bGU6IFNhbWUgYW5v
bnltb3VzIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGRpZmZlcmVudCBjb250ZXh0cwotVGhyZWFkXzEg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBhbm9ueW1vdXMtZnVuY3Rpb24tY2Fs
bGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9u
eW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkK
LSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVs
ZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBldmFsIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAocHJvZ3JhbSkgKG5vIGZpbGUpIChsaW5lIDE6MSkKLSAgICAgICAg
ICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDI5OjM0KQotICAgICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fu
b255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRp
ZmZlcmVudC1jb250ZXh0cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYWI4
MzE3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1
bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5k
b3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnBy
b2ZpbGUoIlNhbWUgYW5vbnltb3VzIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGRpZmZlcmVudCBjb250
ZXh0cyIpOwotCi0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBldmFsKCJhbm9ueW1vdXNG
dW5jdGlvbigpIik7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxz
IGFuIGFub255bW91cyBmdW5jdGlvbiBmcm9tIGRpZmZlcmVudCBjb250ZXh0cy4KLTxicj4KLTxi
cj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgQmVuZWF0
aCBvbmxvYWQgYW5kIHN0YXJ0VGVzdCBpdCBzaG91bGQgc2hvdyB0aHJlZSBjaGlsZHJlbiwgYW4K
LWFub255bW91cyBmdW5jdGlvbiwgc2NyaXB0IGNvbnRleHQsIGFuZCB0aGUgZW5kVGVzdCBjYWxs
LgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0
LWluLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fu
b255bW91cy1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTIwNjAwLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1
bmN0aW9ucy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UaGlz
IHBhZ2UgaGFzIGFuIGFub255bW91cyBKYXZhU2NyaXB0IGZ1bmN0aW9uIHRoYXQgY2FsbHMgYnVp
bHQtaW4gZnVuY3Rpb25zLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBp
biB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUg
cHJvZmlsZS4gQmVuZWF0aCBvbmxvYWQgYW5kIHN0YXJ0VGVzdCBpdCBzaG91bGQgc2hvdyB0aHJl
ZSBjaGlsZHJlbiwgYW4gYW5vbnltb3VzIGZ1bmN0aW9uLCBzY3JpcHQgY29udGV4dCwgYW5kIHRo
ZSBlbmRUZXN0IGNhbGwuCi0KLVByb2ZpbGUgdGl0bGU6IEFub255bW91cyBmdW5jdGlvbiBjYWxs
cyBidWlsdC1pbiBmdW5jdGlvbnMKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBz
dGFydFRlc3QgYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1s
IChsaW5lIDEwOjE5KQotICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxl
bWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQot
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0
aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViYzczYjUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVu
Y3Rpb25zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFy
dFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGZ1bmN0aW9uIGNhbGxz
IGJ1aWx0LWluIGZ1bmN0aW9ucyIpOwotICAgIGFub255bW91c0Z1bmN0aW9uKCk7Ci0gICAgZW5k
VGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0
KCkiPgotVGhpcyBwYWdlIGhhcyBhbiBhbm9ueW1vdXMgSmF2YVNjcmlwdCBmdW5jdGlvbiB0aGF0
IGNhbGxzIGJ1aWx0LWluIGZ1bmN0aW9ucy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3Qg
bWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0
b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgQmVuZWF0aCBvbmxvYWQgYW5kIHN0YXJ0VGVz
dCBpdCBzaG91bGQgc2hvdyB0aHJlZSBjaGlsZHJlbiwgYW4KLWFub255bW91cyBmdW5jdGlvbiwg
c2NyaXB0IGNvbnRleHQsIGFuZCB0aGUgZW5kVGVzdCBjYWxsLgotPGRpdiBpZD0ib3V0cHV0Ij48
L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhMGZkNGIuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZh
bC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGlzIHBhZ2Un
cyBKYXZhU2NyaXB0IGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlvbiB3aGljaCBjYWxscyBldmFs
KCkuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2Vy
IHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBCZW5l
YXRoIG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNob3VsZCBzaG93IGFuIChhbm9ueW1vdXMgZnVu
Y3Rpb24pIHdoaWNoIGhhcyBhIChwcm9ncmFtKSBjaGlsZC4KLQotUHJvZmlsZSB0aXRsZTogQW5v
bnltb3VzIGZ1bmN0aW9uIGNhbGxlcyBldmFsCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgc3RhcnRUZXN0IGFub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwgKGxpbmUg
MTA6MTkpCi0gICAgICB2YXJpYWJsZVRoYXRQb2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24gYW5v
bnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwuaHRtbCAobGluZSAxNDo1OSkKLSAgICAgICAgIGV2
YWwgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIChwcm9ncmFtKSAobm8gZmlsZSkg
KGxpbmUgMToxKQotICAgICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1l
bnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2Rl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDE5Zjc2NjYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5k
b3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnBy
b2ZpbGUoIkFub255bW91cyBmdW5jdGlvbiBjYWxsZXMgZXZhbCIpOwotCi0gICAgdmFyIHZhcmlh
YmxlVGhhdFBvaW50c1RvQW5Bbm9ueW1vdXNGdW5jdGlvbiA9IGZ1bmN0aW9uKCkgewotICAgICAg
ICBldmFsKCJpbnNlcnROZXdUZXh0KCkiKTsKLSAgICB9Ci0KLSAgICB2YXJpYWJsZVRoYXRQb2lu
dHNUb0FuQW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZh
U2NyaXB0IGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlvbiB3aGljaCBjYWxscyBldmFsKCkuCi08
YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93
c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4g
IEJlbmVhdGggb25sb2FkIGFuZCBzdGFydFRlc3QgaXQgc2hvdWxkIHNob3cgYW4gKGFub255bW91
cyBmdW5jdGlvbikKLXdoaWNoIGhhcyBhIChwcm9ncmFtKSBjaGlsZC4KLTxkaXYgaWQ9Im91dHB1
dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRo
LWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3YjhkODA3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnlt
b3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBhbm9ueW1v
dXMgZnVuY3Rpb25zIHdpdGggZGlzcGxheSBuYW1lcy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIFlvdSBzaG91bGQgc2VlIGZ1bmN0aW9ucyBuYW1lZCAi
W3hdIGl0ZXJhdGlvbnMgZnVuY3Rpb24iLCBhbmQgbm8gYW5vbnltb3VzIGZ1bmN0aW9ucy4KLQot
UHJvZmlsZSB0aXRsZTogQW5vbnltb3VzIGZ1bmN0aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMKLVRo
cmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgYW5vbnltb3VzLWZ1bmN0
aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAyMjoxOSkKLSAgICAgIGFub255bW91
c0Z1bmN0aW9uR2VuZXJhdG9yIGFub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVz
Lmh0bWwgKGxpbmUgMTA6MzYpCi0gICAgICAwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnltb3Vz
LWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMjo1OSkKLSAgICAgIDEg
aXRlcmF0aW9ucyBmdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1l
cy5odG1sIChsaW5lIDEyOjU5KQotICAgICAgMiBpdGVyYXRpb25zIGZ1bmN0aW9uIGFub255bW91
cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMTI6NTkpCi0gICAgICAy
MCBpdGVyYXRpb25zIGZ1bmN0aW9uIGFub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5h
bWVzLmh0bWwgKGxpbmUgMTI6NTkpCi0gICAgICAxMDAwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5v
bnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMjo1OSkKLSAg
ICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlv
bnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fu
b255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDdiOWZjMzQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gYW5vbnltb3VzRnVuY3Rpb25HZW5l
cmF0b3IoaXRlcmF0aW9ucykKLXsKLSAgICB2YXIgdmFyaWFibGVUaGF0UG9pbnRzVG9BbkFub255
bW91c0Z1bmN0aW9uID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBpdGVyYXRpb25zOyArK2kpIDsKLSAgICB9Ci0gICAgCi0gICAgdmFyaWFibGVUaGF0UG9p
bnRzVG9BbkFub255bW91c0Z1bmN0aW9uLmRpc3BsYXlOYW1lID0gaXRlcmF0aW9ucyArICIgaXRl
cmF0aW9ucyBmdW5jdGlvbiI7Ci0gICAgCi0gICAgcmV0dXJuIHZhcmlhYmxlVGhhdFBvaW50c1Rv
QW5Bbm9ueW1vdXNGdW5jdGlvbjsKLX0KLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBj
b25zb2xlLnByb2ZpbGUoIkFub255bW91cyBmdW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzIik7
Ci0KLSAgICBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcigwKSgpOwotICAgIGFub255bW91c0Z1
bmN0aW9uR2VuZXJhdG9yKDEpKCk7Ci0gICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IoMiko
KTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcigyMCkoKTsKLSAgICBhbm9ueW1vdXNG
dW5jdGlvbkdlbmVyYXRvcigxMDAwKSgpOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscyBhbm9ueW1vdXMgZnVuY3Rpb25zIHdpdGggZGlzcGxheSBuYW1lcy4KLTxi
cj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dz
ZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAg
WW91IHNob3VsZCBzZWUgZnVuY3Rpb25zIG5hbWVkICJbeF0gaXRlcmF0aW9ucyBmdW5jdGlvbiIs
IGFuZCBubyBhbm9ueW1vdXMgZnVuY3Rpb25zLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBw
bHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwOGJkMDYuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBhIGNhbGwg
dG8gYXBwbHkoKSBpbiBpdC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQg
aW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhl
IHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZmFrZUlu
dGVyaW9yRnVuY3Rpb24oKSBhbmQgYSBjYWxsIHRvIGFwcGx5KCkuCi0KLVByb2ZpbGUgdGl0bGU6
IFVzaW5nIHRoZSBhcHBseSgpIG1ldGhvZAotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgIHN0YXJ0VGVzdCBhcHBseS5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZmFrZU9iamVjdCBh
cHBseS5odG1sIChsaW5lIDE3OjIxKQotICAgICAgICAgZmFrZUludGVyaW9yRnVuY3Rpb24gYXBw
bHkuaHRtbCAobGluZSAyMzozMCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2FwcGx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2FwcGx5Lmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4ZDQxYWIuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJu
YWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIlVz
aW5nIHRoZSBhcHBseSgpIG1ldGhvZCIpOwotICAgIHZhciBteU9iamVjdCA9IG5ldyBmYWtlT2Jq
ZWN0KDEsIDIpOwotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gZmFrZU9iamVjdCAoeCwg
eSkKLXsKLSAgICB0aGlzLnggPSB4OwotICAgIGZha2VJbnRlcmlvckZ1bmN0aW9uLmFwcGx5KHRo
aXMsIGFyZ3VtZW50cyk7Ci19Ci0KLWZ1bmN0aW9uIGZha2VJbnRlcmlvckZ1bmN0aW9uKHgsIHkp
Ci17Ci0gICAgdGhpcy55ID0geTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgYSBjYWxsIHRv
IGFwcGx5KCkgaW4gaXQuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBs
b2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29r
IGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwg
dG8gZmFrZUludGVyaW9yRnVuY3Rpb24oKSBhbmQKLWEgY2FsbCB0byBhcHBseSgpLgotPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2Fs
bHMtYW5vbnltb3VzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MmE2YmFmMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWlu
LWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwyMyArMCwwIEBACi1UaGlzIHBhZ2UgdXNlcyBhIGJ1aWx0LWluIGZ1bmN0aW9uIHRvIGNhbGwg
YW4gYW5vbnltb3VzIGZ1bmN0aW9uLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9h
ZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBh
dCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgbWFwKCkgc2hvdWxkIGJlIHRoZSBzaWJsaW5n
IG9mIGFuIChhbm9ueW1vdXMgZnVuY3Rpb24pIHdoaWNoIGhhcyBhcnJheU9wZXJhdG9yRnVuY3Rp
b24oKSBhcyBhIGNoaWxkLgotCi1Qcm9maWxlIHRpdGxlOiBCdWlsdC1pbiBmdW5jdGlvbiBjYWxs
cyBhbiBhbm9ueW1vdXMgZnVuY3Rpb24KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICBzdGFydFRlc3QgYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWwgKGxpbmUg
MTA6MTkpCi0gICAgICBBcnJheSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgbWFwIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICBPYmplY3QgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgIHRvTGVuZ3RoIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICB0b0ludGVn
ZXIgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIE51bWJlciAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgIGlzQXJyYXkgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBz
cGVjaWVzR2V0dGVyIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBBcnJheSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgbXlGdW5jdGlvbiBidWlsdC1pbi1mdW5jdGlvbi1jYWxs
cy1hbm9ueW1vdXMuaHRtbCAobGluZSAxNDozMCkKLSAgICAgICAgICAgIGFycmF5T3BlcmF0b3JG
dW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyNTozMSkKLSAgICAg
IGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNh
bGxzLWFub255bW91cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1m
dW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDVhZWQ0OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0
LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJu
YWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkJ1
aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlvbiIpOwotCi0gICAgdmFy
IG15RnVuY3Rpb24gPSBmdW5jdGlvbihhcnJheUVsZW1lbnQpIHsKLSAgICAgICAgcmV0dXJuIGFy
cmF5T3BlcmF0b3JGdW5jdGlvbihhcnJheUVsZW1lbnQpOwotICAgIH0KLQotICAgIHZhciBteUFy
cmF5ID0gbmV3IEFycmF5ICgwLCAxLCAyKTsKLSAgICBteUFycmF5Lm1hcChteUZ1bmN0aW9uKTsK
LQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9
InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSB1c2VzIGEgYnVpbHQtaW4gZnVuY3Rpb24gdG8gY2Fs
bCBhbiBhbm9ueW1vdXMgZnVuY3Rpb24uCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1h
bnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9y
IGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIG1hcCgpIHNob3VsZCBi
ZSB0aGUgc2libGluZyBvZiBhbiAoYW5vbnltb3VzIGZ1bmN0aW9uKQotd2hpY2ggaGFzIGFycmF5
T3BlcmF0b3JGdW5jdGlvbigpIGFzIGEgY2hpbGQuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9i
dWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2Vy
LWRlZmluZWQtZnVuY3Rpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1NzE1NWU3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVp
bHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgcGFnZSB1c2VzIGEgYnVpbHQtaW4g
ZnVuY3Rpb24gdG8gY2FsbCBhIHVzZXIgZGVmaW5lZCBmdW5jdGlvbi4gCi0KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIG1hcCgpIHNo
b3VsZCBoYXZlIGFycmF5T3BlcmF0b3JGdW5jdGlvbigpIGFzIGEgY2hpbGQuCi0KLVByb2ZpbGUg
dGl0bGU6IEJ1aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGEgdXNlciBkZWZpbmVkIGZ1bmN0aW9uCi1U
aHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGJ1aWx0LWluLWZ1bmN0
aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sIChsaW5lIDEwOjE5KQotICAgICAg
QXJyYXkgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIG1hcCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgT2JqZWN0IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICB0b0xlbmd0
aCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgdG9JbnRlZ2VyIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICBOdW1iZXIgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICBpc0FycmF5IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAoYW5vbnltb3Vz
IGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgc3BlY2llc0dldHRlciAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgQXJyYXkgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgIGFycmF5T3BlcmF0b3JGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAyNTozMSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRl
ZmluZWQtZnVuY3Rpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY2M2I2
OS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0
aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MzAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUo
IkJ1aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGEgdXNlciBkZWZpbmVkIGZ1bmN0aW9uIik7Ci0KLSAg
ICB2YXIgbXlBcnJheSA9IG5ldyBBcnJheSAoMCwgMSwgMik7Ci0gICAgbXlBcnJheS5tYXAoYXJy
YXlPcGVyYXRvckZ1bmN0aW9uKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSB1c2VzIGEgYnVp
bHQtaW4gZnVuY3Rpb24gdG8gY2FsbCBhIHVzZXIgZGVmaW5lZCBmdW5jdGlvbi4KLTxicj4KLTxi
cj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhl
IHByb2ZpbGUgbWFwKCkgc2hvdWxkIGhhdmUgYXJyYXlPcGVyYXRvckZ1bmN0aW9uKCkgYXMgYSBj
aGlsZC4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZmM4NmZkOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2NhbGwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGhp
cyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgYSBjYWxsIHRvIGNhbGwoKSBpbiBpdC4gCi0KLVRvIHJ1
biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRo
ZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRo
ZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZmFrZU9iamVjdCgpIHdpdGggY2FsbCgpIGFzIGl0cyBj
aGlsZCBhbmQgYSBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFzIGNhbGwoKSdzIGNoaWxkLgotCi1Q
cm9maWxlIHRpdGxlOiBVc2luZyB0aGUgY2FsbCgpIG1ldGhvZAotVGhyZWFkXzEgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBjYWxsLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBm
YWtlT2JqZWN0IGNhbGwuaHRtbCAobGluZSAxOToyMSkKLSAgICAgICAgIGZha2VJbnRlcmlvckZ1
bmN0aW9uIGNhbGwuaHRtbCAobGluZSAyNTozMCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzNjQ3YmYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWstZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhpcyBwYWdlIHRlc3RzIHRoYXQgdGhlIGdlbmVyYXRp
b24gb2YgYnl0ZWNvZGUgYWxsb2NhdGVzIHJlZ2lzdGVycyBjb3JyZWN0bHkgd2hlbiBwcm9maWxp
bmcgaXMgZW5hYmxlZC4gVG8gcnVuIHRoZSB0ZXN0IG1hbnVhbGx5LCBlbmFibGUgcHJvZmlsaW5n
IGluIHRoZSB3ZWIgaW5zcGVjdG9yIGFuZCByZWxvYWQgdGhpcyBwYWdlLgotCi1QQVNTOiBsb2Nh
bENhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQotUEFTUzogZ2xvYmFsQ2FsbFRl
c3QoMSwgMikgc2hvdWxkIGJlIDIgYW5kIGlzLgotCi1QQVNTOiBzY29wZWRDYWxsVGVzdCgxLCAy
KSBzaG91bGQgYmUgMiBhbmQgaXMuCi0KLVBBU1M6IHJlc29sdmVDYWxsVGVzdCgxLCAyKSBzaG91
bGQgYmUgMiBhbmQgaXMuCi0KLVBBU1M6IGJyYWNrZXRDYWxsVGVzdCgxLCAyKSBzaG91bGQgYmUg
MiBhbmQgaXMuCi0KLVBBU1M6IGRvdENhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4K
LQotUEFTUzogbmV3VGVzdCgxLCAyKSBzaG91bGQgYmUgMiBhbmQgaXMuCi0KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2NmI0NDEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDEwNSArMCwwIEBACi08Ym9keT4KLTxoZWFkPgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxz
KQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVl
KTsKLQotZnVuY3Rpb24gbG9nKHMpCi17Ci0gICAgaWYgKHRoaXMuZG9jdW1lbnQpCi0gICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUocyArICJcbiIpKTsKLSAgICBlbHNlCi0gICAgICAgIHByaW50KHMgKyAi
XG4iKTsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmUoYSwgYURlc2NyaXB0aW9uLCBiKQotewotICAg
IGlmIChhID09PSBiKQotICAgICAgICBsb2coIlBBU1M6ICIgKyBhRGVzY3JpcHRpb24gKyAiIHNo
b3VsZCBiZSAiICsgYiArICIgYW5kIGlzLlxuIik7Ci0gICAgZWxzZQotICAgICAgICBsb2coIkZB
SUw6ICIgKyBhRGVzY3JpcHRpb24gKyAiIHNob3VsZCBiZSAiICsgYiArICIgYnV0IGluc3RlYWQg
aXMgIiArIGEgKyAiLlxuIik7Ci19Ci0KLWZ1bmN0aW9uIGxvY2FsQ2FsbFRlc3QoYSwgYikKLXsK
LSAgICBmdW5jdGlvbiBsb2NhbENhbGwobykKLSAgICB7Ci0gICAgICAgIHJldHVybiBvLnRvU3Ry
aW5nKCk7Ci0gICAgfQotICAgIHJldHVybiBbbG9jYWxDYWxsKGEpLCBiXVsxXTsKLX0KLQotZnVu
Y3Rpb24gZ2xvYmFsQ2FsbChvKQotewotICAgIHJldHVybiBvLnRvU3RyaW5nKCk7Ci19Ci0KLWZ1
bmN0aW9uIGdsb2JhbENhbGxUZXN0KGEsIGIpCi17Ci0gICAgcmV0dXJuIFtnbG9iYWxDYWxsKGEp
LCBiXVsxXTsKLX0KLQotZnVuY3Rpb24gc2NvcGVkQ2FsbFRlc3QoYSwgYikKLXsKLSAgICBmdW5j
dGlvbiBzY29wZWRDYWxsKG8pCi0gICAgewotICAgICAgICByZXR1cm4gby50b1N0cmluZygpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIGYoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFtzY29wZWRD
YWxsKGEpLCBiXVsxXTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZigpOwotfQotCi1mdW5jdGlvbiBy
ZXNvbHZlQ2FsbFRlc3QoYSwgYikKLXsKLSAgICBvID0geyByZXNvbHZlZENhbGw6IGZ1bmN0aW9u
KG8pIHsgcmV0dXJuIG8udG9TdHJpbmcoKTsgfX07Ci0gICAgd2l0aCAobykgewotICAgICAgICBy
ZXR1cm4gW3Jlc29sdmVkQ2FsbChvKSwgYl1bMV07Ci0gICAgfQotfQotCi1mdW5jdGlvbiBicmFj
a2V0Q2FsbFRlc3QoYSwgYikKLXsKLSAgICByZXR1cm4gW2FbInRvU3RyaW5nIl0oKSwgYl1bMV07
Ci19Ci0KLWZ1bmN0aW9uIGRvdENhbGxUZXN0KGEsIGIpCi17Ci0gICAgcmV0dXJuIFthLnRvU3Ry
aW5nKCksIGJdWzFdOwotfQotCi1mdW5jdGlvbiB0ZXN0Q29uc3RydWN0b3IobykKLXsKLSAgICBy
ZXR1cm4gby50b1N0cmluZygpOwotfQotCi1mdW5jdGlvbiBuZXdUZXN0KGEsIGIpCi17Ci0gICAg
cmV0dXJuIFtuZXcgdGVzdENvbnN0cnVjdG9yKGEpLCBiXVsxXTsKLX0KLQotZnVuY3Rpb24gc3Rh
cnRUZXN0KCkKLXsKLSAgICBzaG91bGRCZShsb2NhbENhbGxUZXN0KDEsIDIpLCAibG9jYWxDYWxs
VGVzdCgxLCAyKSIsIDIpOwotICAgIHNob3VsZEJlKGdsb2JhbENhbGxUZXN0KDEsIDIpLCAiZ2xv
YmFsQ2FsbFRlc3QoMSwgMikiLCAyKTsKLSAgICBzaG91bGRCZShzY29wZWRDYWxsVGVzdCgxLCAy
KSwgInNjb3BlZENhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxkQmUocmVzb2x2ZUNhbGxU
ZXN0KDEsIDIpLCAicmVzb2x2ZUNhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxkQmUoYnJh
Y2tldENhbGxUZXN0KDEsIDIpLCAiYnJhY2tldENhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hv
dWxkQmUoZG90Q2FsbFRlc3QoMSwgMiksICJkb3RDYWxsVGVzdCgxLCAyKSIsIDIpOwotICAgIHNo
b3VsZEJlKG5ld1Rlc3QoMSwgMiksICJuZXdUZXN0KDEsIDIpIiwgMik7Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotPHA+Ci1UaGlzIHBhZ2UgdGVz
dHMgdGhhdCB0aGUgZ2VuZXJhdGlvbiBvZiBieXRlY29kZSBhbGxvY2F0ZXMgcmVnaXN0ZXJzIGNv
cnJlY3RseSB3aGVuIHByb2ZpbGluZyBpcyBlbmFibGVkLiBUbyBydW4gdGhlIHRlc3QgbWFudWFs
bHksIGVuYWJsZSBwcm9maWxpbmcgaW4gdGhlIHdlYiBpbnNwZWN0b3IgYW5kIHJlbG9hZCB0aGlz
IHBhZ2UuCi08L3A+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDIxMDVjN2EuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxs
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2Fj
eUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3Qo
KQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVXNpbmcgdGhlIGNhbGwoKSBtZXRob2QiKTsKLQot
ICAgIHZhciBteU9iamVjdCA9IG5ldyBmYWtlT2JqZWN0KDEsIDIpOwotCi0gICAgZW5kVGVzdCgp
OwotfQotCi1mdW5jdGlvbiBmYWtlT2JqZWN0ICh4LCB5KQotewotICAgIHRoaXMueCA9IHg7Ci0g
ICAgZmFrZUludGVyaW9yRnVuY3Rpb24uY2FsbCh0aGlzLCB5KTsKLX0KLQotZnVuY3Rpb24gZmFr
ZUludGVyaW9yRnVuY3Rpb24oeSkKLXsKLSAgICB0aGlzLnkgPSB5OwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNj
cmlwdCBoYXMgYSBjYWxsIHRvIGNhbGwoKSBpbiBpdC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUg
c2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0KCkgd2l0aCBjYWxsKCkgYXMKLWl0cyBjaGls
ZCBhbmQgYSBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFzIGNhbGwoKSdzIGNoaWxkLgotPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1w
cm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9jYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVy
LWZyb20tYW5vdGhlci1zY29wZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDZjMmJiMTguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9j
YWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhl
ci1zY29wZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UaGlz
IHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJvbSB3aXRoaW4gYSBmdW5jdGlv
biB3aGljaCBpcyB0aGVuIGNhbGxlZCBsYXRlciBmcm9tIGFub3RoZXIgY29udGV4dC4gCi0KLVRv
IHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2Fk
IHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxl
ciB5b3Ugc2hvdWxkIHNlZSBhIGNhbGwgdG8gaW5kaXJlY3Rpb24oKSBhbmQgZnVuY3Rpb25XaWNo
U3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpCi0KLVByb2ZpbGUgdGl0bGU6IENhbGxpbmcgdGhl
IHNhbWUgZnVuY3Rpb24gd2hlcmUgdGhlIHByb2ZpbGUgc3RhcnRlZCBmcm9tIGFub3RoZXIgZnVu
Y3Rpb24KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBpbmRpcmVjdGlvbiBjYWxs
aW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1z
Y29wZS5odG1sIChsaW5lIDE3OjIxKQotICAgICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNU
aGVQcm9maWxlciBjYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVy
LWZyb20tYW5vdGhlci1zY29wZS5odG1sIChsaW5lIDIzOjQ3KQotICAgZnVuY3Rpb25XaWNoU3Rh
cnRzQW5kU3RvcHNUaGVQcm9maWxlciBjYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQt
dGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS5odG1sIChsaW5lIDIzOjQ3KQotICAgZW5k
VGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhh
dC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1w
cm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNTc1NjdmMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Nh
bGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVy
LXNjb3BlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFy
dFRlc3QoKQotewotICAgIGluZGlyZWN0aW9uKCk7Ci0gICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5k
U3RvcHNUaGVQcm9maWxlcigpOwotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gaW5kaXJl
Y3Rpb24oKQotewotICAgIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKTsK
LX0KLQotdmFyIGZpcnN0VGltZSA9IHRydWU7Ci1mdW5jdGlvbiBmdW5jdGlvbldpY2hTdGFydHNB
bmRTdG9wc1RoZVByb2ZpbGVyKCkKLXsKLSAgICBpZiAoZmlyc3RUaW1lKSB7Ci0gICAgICAgIGNv
bnNvbGUucHJvZmlsZSgiQ2FsbGluZyB0aGUgc2FtZSBmdW5jdGlvbiB3aGVyZSB0aGUgcHJvZmls
ZSBzdGFydGVkIGZyb20gYW5vdGhlciBmdW5jdGlvbiIpOwotICAgICAgICBmaXJzdFRpbWUgPSBm
YWxzZTsKLSAgICB9Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDAwOyBpKyspCi0g
ICAgICAgIHZhciBiID0gaSArIDI7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgc3RhcnRzIHByb2Zp
bGluZyBmcm9tIHdpdGhpbiBhIGZ1bmN0aW9uIHdoaWNoIGlzIHRoZW4gY2FsbGVkCi1sYXRlciBm
cm9tIGFub3RoZXIgY29udGV4dC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGVyIHlvdSBzaG91bGQgc2VlIGEg
Y2FsbCB0byBpbmRpcmVjdGlvbigpIGFuZAotZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQ
cm9maWxlcigpCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2Zp
bGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29tcGFyZS1tdWx0
aXBsZS1wcm9maWxlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGMzYmJlMjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJl
LW11bHRpcGxlLXByb2ZpbGVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICsw
LDAgQEAKLVRoaXMgcGFnZSBoYXMgbXVsdGlwbGUgcHJvZmlsZXMgd2l0aCB0aGUgc2FtZSBuYW1l
LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0
aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSXQgc2hv
dWxkIG5vdCBjcmFzaCBvciBoYW5nIGFuZCB0aGVyZSBzaG91bGQgYmUgbXVsdGlwbGUgcnVucyBv
ZiB0aGUgc2FtZSBuYW1lZCBwcm9maWxlLgotCi1Qcm9maWxlIHRpdGxlOiBUZXN0Ci1UaHJlYWRf
MSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGNvbXBhcmUtbXVsdGlwbGUtcHJv
ZmlsZXMuaHRtbCAobGluZSAyMjoxOSkKLSAgICAgIHRlc3QgY29tcGFyZS1tdWx0aXBsZS1wcm9m
aWxlcy5odG1sIChsaW5lIDExOjE0KQotICAgICAgICAgdGVzdDIgY29tcGFyZS1tdWx0aXBsZS1w
cm9maWxlcy5odG1sIChsaW5lIDE3OjE1KQotCi1Qcm9maWxlIHRpdGxlOiBUZXN0Ci1UaHJlYWRf
MSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGNvbXBhcmUtbXVsdGlwbGUtcHJv
ZmlsZXMuaHRtbCAobGluZSAyMjoxOSkKLSAgICAgIHRlc3QgY29tcGFyZS1tdWx0aXBsZS1wcm9m
aWxlcy5odG1sIChsaW5lIDExOjE0KQotICAgICAgICAgdGVzdDIgY29tcGFyZS1tdWx0aXBsZS1w
cm9maWxlcy5odG1sIChsaW5lIDE3OjE1KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvY29tcGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGE2MDJiNDQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotCi12YXIgaiA9IDA7Ci1mdW5jdGlvbiB0ZXN0KGxlbikgewotICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpCi0gICAgICAgICsrajsKLSAgICB0ZXN0MigyMDAw
IC0gbGVuKTsKLX0KLQotZnVuY3Rpb24gdGVzdDIobGVuKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBsZW47ICsraSkKLSAgICAgICAgLS1qOwotfQotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQot
ewotICAgIGNvbnNvbGUucHJvZmlsZSgiVGVzdCIpOwotICAgIHRlc3QoMTAwKTsKLSAgICBjb25z
b2xlLnByb2ZpbGVFbmQoIlRlc3QiKTsKLQotICAgIGNvbnNvbGUucHJvZmlsZSgiVGVzdCIpOwot
ICAgIHRlc3QoMTAwMCk7Ci0gICAgY29uc29sZS5wcm9maWxlRW5kKCJUZXN0Iik7Ci0KLSAgICBw
cmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIG11bHRpcGxlIHByb2Zp
bGVzIHdpdGggdGhlIHNhbWUgbmFtZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSXQgc2hvdWxkIG5vdCBjcmFzaCBvciBoYW5nIGFu
ZCB0aGVyZSBzaG91bGQgYmUgbXVsdGlwbGUgcnVucyBvZiB0aGUKLXNhbWUgbmFtZWQgcHJvZmls
ZS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5M2Q4OTYzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMTIgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgYSBjYWxsIHRvIG5ldygp
IGluIGl0LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJv
d3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4g
SW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0KCkgYW5k
IEFycmF5KCkgaW4gaXQuCi0KLVByb2ZpbGUgdGl0bGU6IFVzaW5nIGEgY29uc3RydWN0b3IuCi1U
aHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGNvbnN0cnVjdG9yLmh0
bWwgKGxpbmUgMTA6MTkpCi0gICAgICBmYWtlT2JqZWN0IGNvbnN0cnVjdG9yLmh0bWwgKGxpbmUg
MTk6MjEpCi0gICAgICAgICBBcnJheSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVz
dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYmM2MzkwOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2NvbnN0cnVjdG9yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJu
YWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlv
biBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVXNpbmcgYSBjb25zdHJ1Y3Rv
ci4iKTsKLQotICAgIHZhciBteU9iamVjdCA9IG5ldyBmYWtlT2JqZWN0KDEsIDIpOwotCi0gICAg
ZW5kVGVzdCgpOwotfQotCi1mdW5jdGlvbiBmYWtlT2JqZWN0ICh4LCB5KQotewotICAgIHZhciBt
eUFycmF5ID0gbmV3IEFycmF5KCkKLSAgICBteUFycmF5WzBdID0gNTsKLX0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFT
Y3JpcHQgaGFzIGEgY2FsbCB0byBuZXcoKSBpbiBpdC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUg
c2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0KCkgYW5kIEFycmF5KCkKLWluIGl0LgotPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMWRlNjRmNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2RlYWQtdGltZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBA
Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IEhhcyBzb21lIGRlYWQgdGltZSBpbiB0aGUgcHJvZmls
ZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRo
ZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGxhcmdlIGFtb3VudCBvZiB0aGUgJSBzcGVudCBp
biAobm9uLUphdmFTY3JpcHQpLgotCi1Qcm9maWxlIHRpdGxlOiBEZWFkIHRpbWUgaW4gcHJvZmls
ZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBvbmxvYWQgZGVhZC10aW1lLmh0
bWwgKGxpbmUgMjE6NDQpCi0gICAgICBzdGFydFRlc3QgZGVhZC10aW1lLmh0bWwgKGxpbmUgMTI6
MTkpCi0gICAgICAgICBzZXRUaW1lb3V0IChubyBmaWxlKSAobGluZSAwOjApCi0gICAocHJvZ3Jh
bSkgZGVhZC10aW1lLmh0bWwgKGxpbmUgMToxKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2RlYWQtdGltZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjY0Y2UwLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci19Ci1pZiAod2luZG93LmludGVy
bmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJE
ZWFkIHRpbWUgaW4gcHJvZmlsZS4iKTsKLSAgICBzZXRUaW1lb3V0KCJlbmRUZXN0KCkiLCAxMjM0
KTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCki
PgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBIYXMgc29tZSBkZWFkIHRpbWUgaW4gdGhlIHByb2Zp
bGUuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRo
ZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJv
ZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGxhcmdlIGFtb3VudCBvZiB0
aGUgJSBzcGVudCBpbiAKLShub24tSmF2YVNjcmlwdCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2RvY3VtZW50LWRvdC13cml0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDg0OWYxYmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9kb2N1bWVudC1kb3Qtd3JpdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
OCArMCwwIEBACi0KLVByb2ZpbGUgdGl0bGU6IENhbGwgRG9jdW1lbnQud3JpdGUoKQotVGhyZWFk
XzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBkb2N1bWVudC1kb3Qtd3JpdGUu
aHRtbCAobGluZSAxMDoxOSkKLSAgICAgIHdyaXRlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmNTRmNDAuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDI4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1p
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAo
d2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29s
ZS5wcm9maWxlKCJDYWxsIERvY3VtZW50LndyaXRlKCkiKTsKLQotICAgIGRvY3VtZW50LndyaXRl
KCI8ZGl2IGlkPVwib3V0cHV0XCI+PC9kaXY+Iik7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2Ug
Y2FsbHMgZG9jdW1lbnQud3JpdGUoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSWYgdGhlcmUgaXMgYSBwcm9maWxlIGl0IHNob3Vs
ZCBzaG93IHdyaXRlKCkuCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9ldmVudC1oYW5kbGVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMTVjNDhjZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2V2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTgg
KzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhbiBldmVudCBoYW5kbGVyLiAKLQotVG8gcnVuIHRoaXMg
dGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYklu
c3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgaW5zZXJ0bmV3
VGV4dCgpIHNob3VsZCBiZSBhIHNpYmxpbmcgdG8gb25sb2FkKCkuIAotCi1Qcm9maWxlIHRpdGxl
OiBFdmVudCBoYW5kbGVyCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRU
ZXN0IGV2ZW50LWhhbmRsZXIuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGdldEVsZW1lbnRCeUlk
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBhZGRFdmVudExpc3RlbmVyIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICBjbGljayAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgaW5z
ZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAg
ICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
IGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRD
aGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2V2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQt
aGFuZGxlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNmE0NjFkLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsgICAg
Ci0gICAgY29uc29sZS5wcm9maWxlKCJFdmVudCBoYW5kbGVyIik7Ci0KLSAgICB2YXIgbXlCdXR0
b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnV0dG9uV2l0aEFuRXZlbnRMaXN0ZW5lciIp
OwotICAgIG15QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgaW5zZXJ0TmV3VGV4dCwg
ZmFsc2UpOwotICAgIG15QnV0dG9uLmNsaWNrKCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2Ug
aGFzIGFuIGV2ZW50IGhhbmRsZXIuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVh
bGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFu
ZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIGluc2VydG5ld1RleHQoKSBz
aG91bGQgYmUgYSBzaWJsaW5nIHRvIG9ubG9hZCgpLgotPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9
ImJ1dHRvbldpdGhBbkV2ZW50TGlzdGVuZXIiIHZhbHVlPSJCdXR0b24gd2l0aCBhbiBldmVudCBs
aXN0ZW5lciI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9leGVjdXRpb24tY29udGV4dC1hbmQt
ZXZhbC1vbi1zYW1lLWxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9leGVjdXRpb24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTVjMjYxLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1s
aW5lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRoaXMgcGFn
ZSBoYXMgYSBjYWxsIHRvIGV2YWwgYW5kIGEgc2NyaXB0IHRhZyBvbiB0aGUgc2FtZSBsaW5lLiAK
LQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHBy
b2ZpbGUgdGhlcmUgc2hvdWxkIGJlIG11bHRpcGxlIChwcm9ncmFtKSBlbGVtZW50cyBhbmQgb25l
IHRoYXQgcmVwcmVzZW50cyB0aGUgZXZhbCgpLgotCi1Qcm9maWxlIHRpdGxlOiBUd28gRXhlY3V0
aW9uIENvbnRleHRzIG9uIHRoZSBzYW1lIGxpbmUKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAw
OjApCi0gICBzdGFydFRlc3QgZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5l
Lmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBldmFsRnVuY3Rpb24gKG5vIGZpbGUpIChsaW5lIDE6
MjIpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
IChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBn
ZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1s
aW5lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFu
ZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
NzViMjlhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9u
LWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwz
MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgi
VHdvIEV4ZWN1dGlvbiBDb250ZXh0cyBvbiB0aGUgc2FtZSBsaW5lIik7Ci0KLSAgICBldmFsRnVu
Y3Rpb24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLWV2YWwo
ImZ1bmN0aW9uIGV2YWxGdW5jdGlvbigpIHsgaW5zZXJ0TmV3VGV4dCgpOyB9Iik7Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFz
IGEgY2FsbCB0byBldmFsIGFuZCBhIHNjcmlwdCB0YWcgb24gdGhlIHNhbWUgbGluZS4KLTxicj4K
LTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4g
dGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIG11bHRpcGxlIChwcm9ncmFtKSBlbGVtZW50cyBh
bmQKLW9uZSB0aGF0IHJlcHJlc2VudHMgdGhlIGV2YWwoKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9k
aXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2lubGluZS1ldmVudC1oYW5kbGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhMDIzZTVmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMjAgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhbiBpbmxpbmUgZXZlbnQgaGFuZGxlci4g
Ci0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBw
cm9maWxlIG9uY2xpY2soKSBzaG91bGQgYmUgYSBzaWJsaW5nIHRvIG9ubG9hZCgpIGFuZCBvbmNs
aWNrKCkgc2hvdWxkIGhhdmUgZXZlbnRMaXN0ZW5lcigpIGFzIGEgY2hpbGQuIAotCi1Qcm9maWxl
IHRpdGxlOiBJbmxpbmUgZXZlbnQgaGFuZGxlcgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgIHN0YXJ0VGVzdCBpbmxpbmUtZXZlbnQtaGFuZGxlci5odG1sIChsaW5lIDEwOjE5KQot
ICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGNsaWNrIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBvbmNsaWNrIGlubGluZS1ldmVudC1oYW5kbGVy
Lmh0bWwgKGxpbmUgMzE6MTI3KQotICAgICAgICAgICAgZXZlbnRMaXN0ZW5lciBpbmxpbmUtZXZl
bnQtaGFuZGxlci5odG1sIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgICAgYW5vbnltb3VzRnVu
Y3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAg
ICAgICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChs
aW5lIDE3OjIzKQotICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTAwMTQ2My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2lubGlu
ZS1ldmVudC1oYW5kbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50
ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5j
dGlvbiBzdGFydFRlc3QoKQoteyAgICAKLSAgICBjb25zb2xlLnByb2ZpbGUoIklubGluZSBldmVu
dCBoYW5kbGVyIik7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXZlbnRMaXN0ZW5l
clNldElubGluZSIpLmNsaWNrKCk7Ci19Ci0KLWZ1bmN0aW9uIGV2ZW50TGlzdGVuZXIoKSB7ICAg
IAotICAgIGFub255bW91c0Z1bmN0aW9uKCk7Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIGhhcyBh
biBpbmxpbmUgZXZlbnQgaGFuZGxlci4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgb25jbGljaygpIHNob3Vs
ZCBiZSBhIHNpYmxpbmcgdG8gb25sb2FkKCkgYW5kIG9uY2xpY2soKQotc2hvdWxkIGhhdmUgZXZl
bnRMaXN0ZW5lcigpIGFzIGEgY2hpbGQuCi08aW5wdXQgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJl
dmVudExpc3RlbmVyKCkiIGlkPSJldmVudExpc3RlbmVyU2V0SW5saW5lIiB2YWx1ZT0iRXZlbnQg
TGlzdGVuZXIgU2V0IElubGluZSI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNhbGxz
LWluLXRoZS1zYW1lLXNjb3BlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDBjZDQ1ZDEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9tYW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgaGFzIG1h
bnkgZnVuY3Rpb24gY2FsbHMgaW4gdGhlIHNhbWUgc2NvcGUuIAotCi1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSBtYW55IGZ1bmN0aW9u
cyBzaG91bGQgYmUgdGhlIGNoaWxkcmVuIG9mIHN0YXJ0VGVzdC4gVXNlIHRoZSBzb3J0aW5nIGNh
cGFiaWxpdGVzIHRvIG1ha2Ugc3VyZSB0aGUgc2ltaWxhcmx5IG5hbWVkIGZ1bmN0aW9ucyBhcmUg
c29ydGVkIGNvcnJlY3RseS4KLQotUHJvZmlsZSB0aXRsZTogTWFueSBDYWxscyBJbiBUaGUgU2Ft
ZSBTY29wZQotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBtYW55
LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBpbnNlcnRO
ZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAg
ICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgY3JlYXRlVGV4
dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgaW5zZXJ0R2l2ZW5UZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChs
aW5lIDk6MjUpCi0gICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgYXBw
ZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGdldEVsZW1lbnRCeUlkIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICBhcnJheU9wZXJhdG9yRnVuY3Rpb24gcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjU6MzEpCi0gICAgICBpbnRlcm1lZGlhcnlGdW5j
dGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAzMjozMCkKLSAgICAgICAg
IGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5
OjM0KQotICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
IGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5
OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
Z2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZCBtYW55LWNhbGxz
LWluLXRoZS1zYW1lLXNjb3BlLmh0bWwgKGxpbmUgMjY6MTMpCi0gICAgICBlbmRUIG1hbnktY2Fs
bHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbCAobGluZSAzMToxNCkKLSAgICAgIGVuZFRlc3QgcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29w
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzE5YmNlLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29w
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdh
Y3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0
KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIk1hbnkgQ2FsbHMgSW4gVGhlIFNhbWUgU2NvcGUi
KTsKLQotICAgIGluc2VydE5ld1RleHQoKTsKLSAgICBpbnNlcnRHaXZlblRleHQoIlRoaXMgd2Fz
IGEgdHJpdW1waC4iKTsKLSAgICBhcnJheU9wZXJhdG9yRnVuY3Rpb24oNyk7Ci0gICAgaW50ZXJt
ZWRpYXJ5RnVuY3Rpb24oKTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGVuZCgpCi0g
ICAgZW5kVCgpOwotICAgIGVuZFQoKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24g
ZW5kKCkKLXsKLSAgICB2YXIgeCA9IDA7Ci19Ci0KLWZ1bmN0aW9uIGVuZFQoKQotewotICAgIHZh
ciB5ID0gMTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRU
ZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgbWFueSBmdW5jdGlvbiBjYWxscyBp
biB0aGUgc2FtZSBzY29wZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgbWFueSBmdW5jdGlvbnMgc2hvdWxk
IGJlIHRoZSBjaGlsZHJlbiBvZiBzdGFydFRlc3QuCi1Vc2UgdGhlIHNvcnRpbmcgY2FwYWJpbGl0
ZXMgdG8gbWFrZSBzdXJlIHRoZSBzaW1pbGFybHkgbmFtZWQgZnVuY3Rpb25zIGFyZSBzb3J0ZWQK
LWNvcnJlY3RseS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJl
bnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91
cy1mdW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDA1MWVjODEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0
aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNj
cmlwdCBjYWxscyB0aGUgc2FtZSBhbm9ueW1vdXMgZnVuY3Rpb24gZnJvbSBtdWx0aXBsZSBhbmQg
ZGlmZmVyZW50bHkgc2NvcGVkIGxvY2F0aW9ucy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNh
bGwgdG8gZmFrZU9iamVjdCB3aXRoIGZha2VJbnRlcmlvckZ1bmN0aW9uIGFzIGl0cyBjaGlsZCwg
YnV0IGNhbGwoKSBzaG91bGQgbm90IGJlIHNob3duLgotCi1Qcm9maWxlIHRpdGxlOiBNdWx0aXBs
ZSBhbmQgZGlmZmVyZW50IHNjb3BlZCBjYWxscyB0byB0aGUgc2FtZSBhbm9ueW1vdXMgZnVuY3Rp
b24KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbXVsdGlwbGUt
YW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLmh0bWwgKGxpbmUg
MTA6MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBp
bnRlcm1lZGlhcnlGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAz
MjozMCkKLSAgICAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgIGNyZWF0ZUVs
ZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2Rl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRp
cGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1h
bm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzJkMDA1YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRp
cGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAg
ICBjb25zb2xlLnByb2ZpbGUoIk11bHRpcGxlIGFuZCBkaWZmZXJlbnQgc2NvcGVkIGNhbGxzIHRv
IHRoZSBzYW1lIGFub255bW91cyBmdW5jdGlvbiIpOwotCi0gICAgYW5vbnltb3VzRnVuY3Rpb24o
KTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotCi0gICAgaW50ZXJtZWRpYXJ5RnVuY3Rpb24o
KTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgdGhlIHNhbWUg
YW5vbnltb3VzIGZ1bmN0aW9uIGZyb20gbXVsdGlwbGUgYW5kIGRpZmZlcmVudGx5IHNjb3BlZCBs
b2NhdGlvbnMuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0
IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10
aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZmFr
ZU9iamVjdCB3aXRoCi1mYWtlSW50ZXJpb3JGdW5jdGlvbiBhcyBpdHMgY2hpbGQsIGJ1dCBjYWxs
KCkgc2hvdWxkIG5vdCBiZSBzaG93bi4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxl
LWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rp
b24tY2FsbHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOWZk
Y2VkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5k
LWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyB0aGUgc2Ft
ZSBmdW5jdGlvbiBmcm9tIG11bHRpcGxlIGFuZCBkaWZmZXJlbnRseSBzY29wZWQgbG9jYXRpb25z
LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0
aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhl
IHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIHR3byBjYWxscyB0byBpbnNlcnROZXdUZXh0IHVuZGVy
IHN0YXJ0VGVzdCgpIGFuZCBvbmUgdW5kZXIgYW4gKGFub255bW91cyBmdW5jdGlvbikgdW5kZXIg
aW50ZXJtZWRpYXJ5RnVuY3Rpb24oKS4KLQotUHJvZmlsZSB0aXRsZTogTXVsdGlwbGUgYW5kIGRp
ZmZlcmVudCBzY29wZWQgY2FsbHMgdG8gdGhlIHNhbWUgZnVuY3Rpb24KLVRocmVhZF8xIChubyBm
aWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29w
ZWQtZnVuY3Rpb24tY2FsbHMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGluc2VydE5ld1RleHQg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICBjcmVh
dGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBjcmVhdGVUZXh0Tm9kZSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICBpbnRlcm1lZGlhcnlGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSAzMjozMCkKLSAgICAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgIGNyZWF0
ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHRO
b2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211
bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9u
LWNhbGxzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjMmUyMjEuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50
LXNjb3BlZC1mdW5jdGlvbi1jYWxscy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
LQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIk11bHRpcGxl
IGFuZCBkaWZmZXJlbnQgc2NvcGVkIGNhbGxzIHRvIHRoZSBzYW1lIGZ1bmN0aW9uIik7Ci0KLSAg
ICBpbnNlcnROZXdUZXh0KCk7Ci0gICAgaW5zZXJ0TmV3VGV4dCgpOwotCi0gICAgaW50ZXJtZWRp
YXJ5RnVuY3Rpb24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2Fs
bHMgdGhlIHNhbWUgZnVuY3Rpb24gZnJvbSBtdWx0aXBsZSBhbmQgZGlmZmVyZW50bHkgc2NvcGVk
IGxvY2F0aW9ucy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQg
aXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQK
LXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIHR3byBjYWxscyB0
byBpbnNlcnROZXdUZXh0IHVuZGVyCi1zdGFydFRlc3QoKSBhbmQgb25lIHVuZGVyIGFuIChhbm9u
eW1vdXMgZnVuY3Rpb24pIHVuZGVyIGludGVybWVkaWFyeUZ1bmN0aW9uKCkuCi08ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRo
ZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlv
bi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0MDE0MDQuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMt
ZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMg
dGhlIGRpZmZlcmVudCBhbm9ueW1vdXMgZnVuY3Rpb25zIHRoZSBzYW1lIHNjb3BlLiAKLQotVG8g
cnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQg
dGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUg
dGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0d28gZW50cmllcyBuYW1lZCB0byAoYW5vbnltb3VzIGZ1
bmN0aW9uKSwgYXMgb3Bwb3NlZCB0byBvbmUgZW50cnkgY2FsbGVkIHR3aWNlLgotCi1Qcm9maWxl
IHRpdGxlOiBNdWx0aXBsZSBjYWxscyB0byBkaWZmZXJlbnQgYW5vbnltb3VzIGZ1bmN0aW9ucwot
VGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBtdWx0aXBsZS1hbm9u
eW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwgKGxpbmUg
MTA6MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBh
bm90aGVyQW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMzA6NDEpCi0gICAgICAgICBpbnNlcnRHaXZlblRleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMgKGxpbmUgOToyNSkKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3Qg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMt
Y2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1m
dW5jdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjFjZjJkLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1
bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5k
b3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnBy
b2ZpbGUoIk11bHRpcGxlIGNhbGxzIHRvIGRpZmZlcmVudCBhbm9ueW1vdXMgZnVuY3Rpb25zIik7
Ci0KLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGFub3RoZXJBbm9ueW1vdXNGdW5jdGlv
bigpOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyB0aGUgZGlm
ZmVyZW50IGFub255bW91cyBmdW5jdGlvbnMgdGhlIHNhbWUgc2NvcGUuCi08YnI+Ci08YnI+Ci1U
byBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9h
ZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9m
aWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdHdvIGVudHJpZXMgbmFtZWQgdG8gKGFub255bW91
cyBmdW5jdGlvbiksCi1hcyBvcHBvc2VkIHRvIG9uZSBlbnRyeSBjYWxsZWQgdHdpY2UuCi08ZGl2
IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTIzZjRjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDE4ICswLDAgQEAKLVRoaXMgdGVzdCBoYXMgSlMgZXhlY3V0aW5nIGluIGFub3RoZXIg
d2luZG93LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJv
d3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4g
SW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmdW5jdGlvbkluT3RoZXJG
cmFtZSgpLgotCi1Qcm9maWxlIHRpdGxlOiBPdGhlciB3aW5kb3cgZXhlY3V0aW5nIEphdmFTY3Jp
cHQKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbXVsdGlwbGUt
ZnJhbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgZnVuY3Rpb25Jbk90aGVyRnJhbWUgb3RoZXItZnJhbWUuaHRtbCAo
bGluZSA0OjMwKQotICAgICAgICAgZnVuY3Rpb25JblBhcmVudEZyYW1lIG11bHRpcGxlLWZyYW1l
cy5odG1sIChsaW5lIDIxOjMxKQotICAgICAgaW5zZXJ0R2l2ZW5UZXh0IHByb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIChsaW5lIDk6MjUpCi0gICAgICAgICBjcmVhdGVFbGVtZW50IChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
IGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtZnJhbWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGQxYjRmZjYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9tdWx0aXBsZS1mcmFtZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBp
bnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1
bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJPdGhlciB3aW5kb3cg
ZXhlY3V0aW5nIEphdmFTY3JpcHQiKTsKLQotICAgIHZhciBteUZyYW1lID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoIm15U3ViRnJhbWUiKTsKLSAgICB2YXIgc2VjcmV0ID0gbXlGcmFtZS5jb250
ZW50V2luZG93LmZ1bmN0aW9uSW5PdGhlckZyYW1lKCk7Ci0gICAgaW5zZXJ0R2l2ZW5UZXh0KHNl
Y3JldCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGZ1bmN0aW9uSW5QYXJlbnRG
cmFtZSgpIHsKLSAgICByZXR1cm4gIlBpIjsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgdGVzdCBoYXMgSlMgZXhlY3V0aW5nIGluIGFu
b3RoZXIgd2luZG93LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9h
ZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBh
dAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRv
IGZ1bmN0aW9uSW5PdGhlckZyYW1lKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPGlmcmFt
ZSBzcmM9InJlc291cmNlcy9vdGhlci1mcmFtZS5odG1sIiBpZD0ibXlTdWJGcmFtZSI+PC9pZnJh
bWU+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTkwYTY0Yy4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRo
LWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBA
QAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBuYW1lZCBmdW5jdGlvbnMgYW5kIGNoYW5n
ZXMgdGhlaXIgZGlzcGxheSBuYW1lcy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxv
YWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sg
YXQgdGhlIHByb2ZpbGUuIFlvdSBzaG91bGQgc2VlIGZ1bmN0aW9ucyBuYW1lZCAiW3hdIGl0ZXJh
dGlvbltzXSBmdW5jdGlvbiIsIGFuZCBub3QgImZ1bmN0aW9uW3hdIgotCi1Qcm9maWxlIHRpdGxl
OiBOYW1lZCBmdW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzCi1UaHJlYWRfMSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFt
ZXMuaHRtbCAobGluZSA1MzoxOSkKLSAgICAgIDAgaXRlcmF0aW9ucyBmdW5jdGlvbiBuYW1lZC1m
dW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICAxIGl0
ZXJhdGlvbiBmdW5jdGlvbiBuYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwg
KGxpbmUgMTc6MTkpCi0gICAgICAyIGl0ZXJhdGlvbnMgZnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25z
LXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDI0OjE5KQotICAgICAgMjAgaXRlcmF0aW9u
cyBmdW5jdGlvbiBuYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUg
MzE6MjApCi0gICAgICAxMDAwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25zLXdp
dGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDM4OjIyKQotICAgICAgYm9ndXNEaXNwbGF5TmFt
ZUZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSA0
NjozNCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
MToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1
bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3YWYyZWMwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNzcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlm
ICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gZnVuY3Rpb24wKCkKLXsKLSAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDA7ICsraSkgOwotfQotCi1mdW5jdGlvbjAuZGlzcGxheU5hbWUgPSAi
MCBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKLQotZnVuY3Rpb24gZnVuY3Rpb24xKCkKLXsKLSAgICBm
b3IgKHZhciBpID0gMDsgaSA8IDE7ICsraSkgOwotfQotCi1mdW5jdGlvbjEuZGlzcGxheU5hbWUg
PSAiMSBpdGVyYXRpb24gZnVuY3Rpb24iOwotCi1mdW5jdGlvbiBmdW5jdGlvbjIoKQotewotICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMjsgKytpKSA7Ci19Ci0KLWZ1bmN0aW9uMi5kaXNwbGF5TmFt
ZSA9ICIyIGl0ZXJhdGlvbnMgZnVuY3Rpb24iOwotCi1mdW5jdGlvbiBmdW5jdGlvbjIwKCkKLXsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwOyArK2kpIDsKLX0KLQotZnVuY3Rpb24yMC5kaXNw
bGF5TmFtZSA9ICIyMCBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKLQotZnVuY3Rpb24gZnVuY3Rpb24x
MDAwKCkKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgOwotfQotCi1mdW5j
dGlvbjEwMDAuZGlzcGxheU5hbWUgPSAiMTAwMCBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKLQotCi1m
dW5jdGlvbiBib2d1c0Rpc3BsYXlOYW1lRnVuY3Rpb24oKQotewotICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMDsgKytpKSA7Ci19Ci0KLWJvZ3VzRGlzcGxheU5hbWVGdW5jdGlvbi5kaXNwbGF5TmFt
ZSA9IGJvZ3VzRGlzcGxheU5hbWVGdW5jdGlvbjsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsK
LSAgICBjb25zb2xlLnByb2ZpbGUoIk5hbWVkIGZ1bmN0aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMi
KTsKLQotICAgIGZ1bmN0aW9uMCgpOwotICAgIGZ1bmN0aW9uMSgpOwotICAgIGZ1bmN0aW9uMigp
OwotICAgIGZ1bmN0aW9uMjAoKTsKLSAgICBmdW5jdGlvbjEwMDAoKTsKLSAgICBib2d1c0Rpc3Bs
YXlOYW1lRnVuY3Rpb24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQg
Y2FsbHMgbmFtZWQgZnVuY3Rpb25zIGFuZCBjaGFuZ2VzIHRoZWlyIGRpc3BsYXkgbmFtZXMuCi08
YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93
c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4g
IFlvdSBzaG91bGQgc2VlIGZ1bmN0aW9ucyBuYW1lZCAiW3hdIGl0ZXJhdGlvbltzXSBmdW5jdGlv
biIsIGFuZCBub3QgImZ1bmN0aW9uW3hdIgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVk
LWFub255bW91cy1mdW5jdG9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDIyOWE0Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxNyArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGFuIGFub255
bW91cyB3aGljaCBjYWxscyBhIG5lc3RlZCBhbm9ueW1vdXMgZnVuY3Rpb24uIAotCi1UbyBydW4g
dGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUg
V2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVy
ZSBzaG91bGQgYmUgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2l0aCBhIGNoaWxkIChhbm9ueW1v
dXMgZnVuY3Rpb24pLgotCi1Qcm9maWxlIHRpdGxlOiBOZXN0ZWQgYW5vbnltb3VzIGZ1bmN0aW9u
cyBjYWxsZWQKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVz
dGVkLWFub255bW91cy1mdW5jdG9uLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBBbm9ueW1vdXNG
dW5jdGlvbldpY2hDYWxsc0FuQW5vbnltb3VzRnVuY3Rpb24gbmVzdGVkLWFub255bW91cy1mdW5j
dG9uLmh0bWwgKGxpbmUgMTQ6NjUpCi0gICAgICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgICAgIGluc2VydE5l
d1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAg
ICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgYXBw
ZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGdldEVsZW1lbnRC
eUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGY2YjkyNWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDM0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93Lmlu
dGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxl
KCJOZXN0ZWQgYW5vbnltb3VzIGZ1bmN0aW9ucyBjYWxsZWQiKTsKLQotICAgIHZhciBBbm9ueW1v
dXNGdW5jdGlvbldpY2hDYWxsc0FuQW5vbnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbigpIHsKLSAg
ICAgICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICB9Ci0KLSAgICBBbm9ueW1vdXNGdW5jdGlv
bldpY2hDYWxsc0FuQW5vbnltb3VzRnVuY3Rpb24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFn
ZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIHdoaWNoIGNhbGxzIGEgbmVzdGVkIGFu
b255bW91cyBmdW5jdGlvbi4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGFuIChh
bm9ueW1vdXMgZnVuY3Rpb24pIHdpdGggYSBjaGlsZAotKGFub255bW91cyBmdW5jdGlvbikuCi08
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0
b3AtcHJvZmlsZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
NWEzMDlkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0
YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE4
NiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGNvbnNvbGUucHJvZmlsZSgp
IHRocmVlIHRpbWVzIHRoZW4gY29uc29sZS5wcm9maWxlRW5kKCkgdGhyZWUgdGltZXMuIAotCi1U
byBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9h
ZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmls
ZXIgdGhlcmUgc2hvdWxkIGJlIHRocmVlIHByb2ZpbGVzLgotCi1Qcm9maWxlIHRpdGxlOiBTdGFy
dCB0aGUgcHJvZmlsZXIgdGhlIHRoaXJkIHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgc3RhcnRUZXN0IG5lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci5odG1sIChs
aW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAo
bGluZSAxOjE3KQotCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgdGhp
cmQgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVz
dGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRU
ZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLVByb2ZpbGUg
dGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25kIHRpbWUuCi1UaHJlYWRfMSAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG5lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9m
aWxlci5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSAxOjE3KQotICAgICAgICAgcHJvZmlsZUVuZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA2MjozOCkKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1l
bnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHByb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAgcmVwbGFjZSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgaGFzT2JzZXJ2YWJsZVNpZGVF
ZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgICAgIGFub255bW91cyAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGFw
cGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjaGlsZHJlbiAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhv
dXRUaW1lIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAg
ICAgICAgICAgICAgcmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFub255bW91cyAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAgICAgICAg
cmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgaGFz
T2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGFub255bW91cyAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgIG5vdGlmeURvbmUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLQotCi1Qcm9maWxlIHRp
dGxlOiBTdGFydCB0aGUgcHJvZmlsZXIgdGhlIHRoaXJkIHRpbWUuCi1UaHJlYWRfMSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG5lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxl
ci5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxOjE3KQotCi1Qcm9maWxlIHRpdGxlOiBTdGFydCB0aGUgcHJvZmlsZXIg
dGhlIHNlY29uZCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0
VGVzdCBuZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbCAobGluZSAxMDoxOSkKLSAg
ICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLSAg
ICAgICAgIHByb2ZpbGVFbmQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIHByaW50UHJv
ZmlsZXNEYXRhV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
NjI6MzgpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIHByaW50UHJv
ZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3
NzozNykKLSAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rp
b24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZm
ZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIHByaW50
UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0
cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVs
ZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBub3RpZnlEb25lIChubyBm
aWxlKSAobGluZSAwOjApCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUg
Zmlyc3QgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qg
bmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBl
bmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0gICAgICAg
ICBwcm9maWxlRW5kIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBwcmludFByb2ZpbGVz
RGF0YVdpdGhvdXRUaW1lIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDYyOjM4
KQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFw
cGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBwcmludFByb2ZpbGVO
b2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6Mzcp
Ci0gICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNG
b3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNo
aWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBwcmludFByb2Zp
bGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6
MzcpCi0gICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdS
ZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAo
YW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBw
cmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVm
ZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRp
bWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBs
YWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRp
bWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJp
bmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxk
cmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
YXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1
bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludFByb2Zp
bGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6
MzcpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNP
YnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1
bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxk
cmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludFByb2ZpbGVO
b2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6Mzcp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVU
ZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgbm90aWZ5RG9uZSAobm8gZmlsZSkgKGxpbmUgMDowKQotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1zdGFydC1hbmQtc3RvcC1w
cm9maWxlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTc4NzIzLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9w
LXByb2ZpbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxz
LnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQgdGhlIHByb2ZpbGVyIHRo
ZSBmaXJzdCB0aW1lLiIpOwotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQgdGhlIHByb2ZpbGVy
IHRoZSBzZWNvbmQgdGltZS4iKTsKLSAgICBjb25zb2xlLnByb2ZpbGUoIlN0YXJ0IHRoZSBwcm9m
aWxlciB0aGUgdGhpcmQgdGltZS4iKTsKLSAgICBlbmRUZXN0KCk7Ci0gICAgZW5kVGVzdCgpOwot
ICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0
YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxl
KCkgdGhyZWUgdGltZXMgdGhlbiBjb25zb2xlLnByb2ZpbGVFbmQoKQotdGhyZWUgdGltZXMuCi08
YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93
c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4g
IEluIHRoZSBwcm9maWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJvZmlsZXMuCi08ZGl2IGlk
PSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzU1ZGNjYi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhIG5vIHByb2ZpbGlu
ZyBpbmZvcm1hdGlvbi4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4g
dGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHBy
b2ZpbGUuIFlvdSBzaG91bGQgbm90IHNlZSBhbnkgcHJvZmlsZSBkYXRlIGluIHRoZSBXZWJJbnNw
ZWN0b3IuCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uby1leGVj
dXRpb24tY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uby1leGVjdXRp
b24tY29udGV4dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWM4NTM5Li4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNvbnRl
eHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVn
YWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCkiPgotVGhpcyBw
YWdlIGhhcyBhIG5vIHByb2ZpbGluZyBpbmZvcm1hdGlvbi4KLTxicj4KLTxicj4KLVRvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBX
ZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgWW91IHNob3VsZCBub3Qgc2Vl
IGFueSBwcm9maWxlIGRhdGUgaW4gdGhlIFdlYkluc3BlY3Rvci4KLTxkaXYgaWQ9Im91dHB1dCI+
PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4ZGQ2NzAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhIHNpbmdsZSBzY3JpcHQgdGFn
IHdpdGggc29tZSBzaW1wbGUgSmF2YVNjcmlwdC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQgdGhlIHByb2ZpbGUuCi0KLVByb2ZpbGUgdGl0bGU6IE9uZSBFeGVjdXRpb24gQ29u
dGV4dAotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBvbmUtZXhl
Y3V0aW9uLWNvbnRleHQuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZDU1Zjg3My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MjcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUo
Ik9uZSBFeGVjdXRpb24gQ29udGV4dCIpOwotICAgIGVuZFRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIGhhcyBh
IHNpbmdsZSBzY3JpcHQgdGFnIHdpdGggc29tZSBzaW1wbGUgSmF2YVNjcmlwdC4KLTxicj4KLTxi
cj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLgotPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRl
ZC1maWxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQyZDE3
MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtY2FsbHMt
aW4taW5jbHVkZWQtZmlsZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCww
IEBACi1UaGlzIHBhZ2UgY2FsbHMgdGhlIHByb2ZpbGVyIGZyb20gdGhlIGluY2x1ZGVkIGZpbGUu
IAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRo
ZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJZiB0aGVy
ZSBpcyBhIHByb2ZpbGUgdGhhdCBpcyBzdWZmaWNpZW50IGZvciB0aGlzIHRlc3QuCi0KLVByb2Zp
bGUgdGl0bGU6IFByb2ZpbGUgY2FsbCBpbiBpbmNsdWRlZCBmaWxlCi1UaHJlYWRfMSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgc3RhcnRQcm9maWxlIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIChsaW5lIDQyOjIyKQotICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
cHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4taW5jbHVkZWQtZmlsZS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZjBmOGYyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwyOCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxp
bmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIHN0YXJ0UHJv
ZmlsZSgiUHJvZmlsZSBjYWxsIGluIGluY2x1ZGVkIGZpbGUiKTsKLSAgICBlbmRUZXN0KCk7Ci19
Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlz
IHBhZ2UgY2FsbHMgdGhlIHByb2ZpbGVyIGZyb20gdGhlIGluY2x1ZGVkIGZpbGUuCi08YnI+Ci08
YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRo
ZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIElmIHRo
ZXJlIGlzIGEgcHJvZmlsZSB0aGF0IGlzIHN1ZmZpY2llbnQgZm9yIHRoaXMgdGVzdC4KLTxkaXYg
aWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10
aXRsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0
aC1uby10aXRsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4
ZGFjZGIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdp
dGgtbm8tdGl0bGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAot
VGhpcyBwYWdlIGNyZWF0ZXMgYSBwcm9maWxlIHdpdGhvdXQgYSB0aXRsZS4gCi0KLVRvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBX
ZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIElmIHRoZXJlIGlzIGEgcHJvZmls
ZSB0aGF0IGlzIHN1ZmZpY2llbnQgZm9yIHRoaXMgdGVzdC4KLQotUHJvZmlsZSB0aXRsZTogCi1U
aHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHByb2ZpbGUtd2l0aC1u
by10aXRsZS5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlYTUyNWJjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgpOwotICAg
IGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0
VGVzdCgpIj4KLVRoaXMgcGFnZSBjcmVhdGVzIGEgcHJvZmlsZSB3aXRob3V0IGEgdGl0bGUuCi08
YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93
c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4g
IElmIHRoZXJlIGlzIGEgcHJvZmlsZSB0aGF0IGlzIHN1ZmZpY2llbnQgZm9yIHRoaXMgdGVzdC4K
LTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1m
cm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0
aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZy
b20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3Rp
bmctZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTZhMmIzLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1u
ZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmctZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2
YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVzdGVkIGxvY2F0aW9uIGJ1
dCBzdG9wcyB0aGUgcHJvZmlsZXIgZnJvbSBhIGRpZmZlcmVudCBsZXZlbCBvZiBuZXN0aW5nLiAK
LQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHBy
b2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9w
c1RoZVByb2ZpbGVyKCkuCi0KLVByb2ZpbGUgdGl0bGU6IFByb2ZpbGluZyBGcm9tIEEgTmVzdGVk
IExvY2F0aW9uIEJ1dCBTdG9wIFByb2ZpbGluZyBPdXRzaWRlIFRoZSBOZXN0aW5nCi1UaHJlYWRf
MSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgZnVuY3Rpb25XaWNoU3RhcnRzVGhlUHJvZmlsZXIg
cHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNp
ZGUtdGhlLW5lc3RpbmcuaHRtbCAobGluZSAxNjozOSkKLSAgIGVuZFRlc3QgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9w
LXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXByb2ZpbGlu
Zy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQ4YjVmNzcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxp
bmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUt
bmVzdGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5z
ZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3Rh
cnRUZXN0KCkKLXsKLSAgICBmdW5jdGlvbldpY2hTdGFydHNUaGVQcm9maWxlcigpOwotICAgIGVu
ZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gZnVuY3Rpb25XaWNoU3RhcnRzVGhlUHJvZmlsZXIoKQot
ewotICAgIGNvbnNvbGUucHJvZmlsZSgiUHJvZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24g
QnV0IFN0b3AgUHJvZmlsaW5nIE91dHNpZGUgVGhlIE5lc3RpbmciKTsKLQotICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwMDA7IGkrKykKLSAgICAgICAgdmFyIGIgPSBpICsgMjsKLX0KLQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBw
YWdlJ3MgSmF2YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVzdGVkIGxv
Y2F0aW9uIGJ1dCBzdG9wcyB0aGUgcHJvZmlsZXIKLWZyb20gYSBkaWZmZXJlbnQgbGV2ZWwgb2Yg
bmVzdGluZy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQg
aW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRo
ZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmdW5j
dGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwv
ZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDg0MjgzYi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVk
LWxvY2F0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRo
aXMgcGFnZSdzIEphdmFTY3JpcHQgc3RhcnRzIHByb2ZpbGluZyBmcm9tIHdpdGhpbiBhIG5lc3Rl
ZCBsb2NhdGlvbi4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhl
IGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2Zp
bGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25XaWNo
U3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpLgotCi1Qcm9maWxlIHRpdGxlOiBQcm9maWxpbmcg
RnJvbSBBIE5lc3RlZCBMb2NhdGlvbgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
IGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIgcHJvZmlsaW5nLWZyb20tYS1u
ZXN0ZWQtbG9jYXRpb24uaHRtbCAobGluZSAxNTo0NykKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0
aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4MWZkMDMuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1s
b2NhdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5z
ZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3Rh
cnRUZXN0KCkKLXsKLSAgICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCk7
Ci19Ci0KLWZ1bmN0aW9uIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKQot
ewotICAgIGNvbnNvbGUucHJvZmlsZSgiUHJvZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24i
KTsKLQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDA7IGkrKykKLSAgICAgICAgdmFy
IGIgPSBpICsgMjsKLQotICAgIGVuZFRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0K
LTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBzdGFy
dHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVzdGVkIGxvY2F0aW9uLgotPGJyPgotPGJyPgot
VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxv
YWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJv
ZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3Bz
VGhlUHJvZmlsZXIoKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci1m
cmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9yZXNvdXJjZXMvb3RoZXItZnJh
bWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTgzNmZiZi4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci1mcmFtZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+
Ci1mdW5jdGlvbiBmdW5jdGlvbkluT3RoZXJGcmFtZSgpIHsKLSAgICAgICAgcmV0dXJuIHBhcmVu
dC5mdW5jdGlvbkluUGFyZW50RnJhbWUoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eT4KLVRoaXMgZmlsZSBjb250YWlucyBzb21lIEphdmFTY3JpcHQuCi08L2JvZHk+Ci08L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9yZXNvdXJjZXMvb3RoZXItd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci13aW5kb3cuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMzQ4NDFhOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3Jlc291cmNlcy9vdGhlci13aW5kb3cuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIyICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBpbnRlcmVzdGluZ0tub3dsZWRnZTsK
LWZ1bmN0aW9uIG90aGVyVGVzdFN0YXJ0KCkKLXsKLSAgICBpbnRlcmVzdGluZ0tub3dsZWRnZSA9
IGlzRXF1YWxUb0ZpdmUoMyk7Ci0gICAgb3BlbmVyLndpbmRvd0ZpbmlzaGVkTG9hZGluZygpOwot
fQotCi1mdW5jdGlvbiBmdW5jdGlvbkluT3RoZXJXaW5kb3coKSB7Ci0gICAgICAgIHJldHVybiBp
bnRlcmVzdGluZ0tub3dsZWRnZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9Im90aGVyVGVzdFN0YXJ0KCkiPgotVGhpcyBmaWxlIGV4ZWN1dGVzIHNvbWUgSmF2YVNjcmlw
dC4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9yZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYzNTQyZi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcworKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAKLWZ1bmN0aW9uIGVuZFRlc3QoKSB7
Ci0gICAgY29uc29sZS5wcm9maWxlRW5kKCk7Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0
VGltZSgpOwotCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKLX0KLQotZnVuY3Rpb24gaW5zZXJ0R2l2ZW5UZXh0KHRleHQpIHsKLSAg
ICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwotICAgIHBhcmFn
cmFwaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7Ci0gICAgcGFy
YWdyYXBoLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7IC8vIEhpZGRlbiBzaW5jZSB0aGlzIGlzbid0
IGltcG9ydGFudCBpbiB0aGUgdGVzdCByZXN1bHRzLgotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm91dHB1dCIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7Ci19Ci0KLWZ1bmN0aW9uIGlu
c2VydE5ld1RleHQoKSB7Ci0gICAgdmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInAiKTsKLSAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoIlRoaXMgaXMgaW5zZXJ0ZWQgVGV4dCIpKTsKLSAgICBwYXJhZ3JhcGguc3R5bGUuZGlzcGxh
eSA9ICJub25lIjsgLy8gSGlkZGVuIHNpbmNlIHRoaXMgaXNuJ3QgaW1wb3J0YW50IGluIHRoZSB0
ZXN0IHJlc3VsdHMuCi0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBw
ZW5kQ2hpbGQocGFyYWdyYXBoKTsKLX0KLQotZnVuY3Rpb24gYXJyYXlPcGVyYXRvckZ1bmN0aW9u
KGFycmF5RWxlbWVudCkgewotICAgIHJldHVybiBhcnJheUVsZW1lbnQgKyA1OwotfQotCi12YXIg
YW5vbnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbiAoKSB7IGluc2VydE5ld1RleHQoKTsgfTsKLXZh
ciBhbm90aGVyQW5vbnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbiAoKSB7IGluc2VydEdpdmVuVGV4
dCgiQW5vdGhlciBhbm9ueW1vdXMgZnVuY3Rpb24gd2FzIGNhbGxlZC4iKSB9OwotCi1mdW5jdGlv
biBpbnRlcm1lZGlhcnlGdW5jdGlvbigpCi17Ci0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLX0K
LQotZnVuY3Rpb24gaXNFcXVhbFRvRml2ZShpbnB1dCkKLXsKLSAgICByZXR1cm4gaW5wdXQgPT09
IDU7Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0UHJvZmlsZSh0aXRsZSkKLXsKLSAgICBjb25zb2xlLnBy
b2ZpbGUodGl0bGUpOwotfQotCi1mdW5jdGlvbiBwcmludEhlYXZ5UHJvZmlsZXNEYXRhV2l0aG91
dFRpbWUoKQotewotICAgIHZhciBwcmVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
cHJlIik7Ci0gICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgiXG4iKSk7Ci0KLSAgICB2YXIgcHJvZmlsZXMgPSBpbnRlcm5hbHMuY29uc29sZVByb2ZpbGVz
OwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZmlsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUHJvZmls
ZSB0aXRsZTogIiArIHByb2ZpbGVzW2ldLnRpdGxlICsgIlxuIikpOwotICAgICAgICBwcmludFBy
b2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgcHJvZmlsZXNbaV0uaGVhdnlQcm9maWxl
LnJvb3ROb2RlLCAwKTsKLSAgICAgICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgiXG4iKSk7Ci0gICAgfQotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm91dHB1dCIpLmFwcGVuZENoaWxkKHByZUVsZW1lbnQpOwotfQotCi1mdW5jdGlvbiBwcmlu
dFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCkKLXsKLSAgICB2YXIgcHJlRWxlbWVudCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInByZSIpOwotICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoIlxuIikpOwotCi0gICAgdmFyIHByb2ZpbGVzID0gaW50ZXJu
YWxzLmNvbnNvbGVQcm9maWxlczsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2ZpbGVzLmxl
bmd0aDsgKytpKSB7Ci0gICAgICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoIlByb2ZpbGUgdGl0bGU6ICIgKyBwcm9maWxlc1tpXS50aXRsZSArICJcbiIp
KTsKLSAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lKHByZUVsZW1lbnQsIHByb2Zp
bGVzW2ldLnJvb3ROb2RlLCAwKTsKLSAgICAgICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgiXG4iKSk7Ci0gICAgfQotCi0gICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm91dHB1dCIpLmFwcGVuZENoaWxkKHByZUVsZW1lbnQpOwotfQotCi1mdW5jdGlv
biBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgbm9kZSwgaW5kZW50TGV2
ZWwpCi17Ci0gICAgdmFyIHNwYWNlID0gIiI7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmRl
bnRMZXZlbDsgKytpKQotICAgICAgICBzcGFjZSArPSAiICAgIgotCi0gICAgKytpbmRlbnRMZXZl
bDsKLQotICAgIHZhciBzdHJpcHBlZFVSTCA9IG5vZGUudXJsLnJlcGxhY2UoLy4qXC8vLCAiIik7
Ci0gICAgaWYgKCFzdHJpcHBlZFVSTCkKLSAgICAgICAgc3RyaXBwZWRVUkwgPSAiKG5vIGZpbGUp
IjsKLQotICAgIHZhciBsaW5lID0gc3BhY2UgKyBub2RlLmZ1bmN0aW9uTmFtZSArICIgIiArIHN0
cmlwcGVkVVJMICsgIiAobGluZSAiICsgbm9kZS5saW5lTnVtYmVyICsgIjoiICsgbm9kZS5jb2x1
bW5OdW1iZXIgKyAiKVxuIjsKLSAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKGxpbmUpKTsKLQotICAgIHZhciBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4o
KTsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQotICAgICAg
ICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgY2hpbGRyZW5baV0sIGlu
ZGVudExldmVsKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2lt
cGxlLWV2ZW50LWNhbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9z
aW1wbGUtZXZlbnQtY2FsbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGM0Y2VlM2QuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1w
bGUtZXZlbnQtY2FsbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBA
Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBhbiBvbmxvYWQgZXZlbnQuIAotCi1UbyBydW4g
dGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUg
V2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBUaGVyZSBzaG91bGQgYmUgb25s
eSBvbmUgb25sb2FkIG5vZGUuCi0KLVByb2ZpbGUgdGl0bGU6IEEgc2ltcGxlIHByb2ZpbGUgdGVz
dCB3aGVyZSBhbiBldmVudCBoYXBwZW5zLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgIHN0YXJ0VGVzdCBzaW1wbGUtZXZlbnQtY2FsbC5odG1sIChsaW5lIDEwOjE5KQotICAgICAg
ZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDRiZGI1MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwyNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJv
ZmlsZSgiQSBzaW1wbGUgcHJvZmlsZSB0ZXN0IHdoZXJlIGFuIGV2ZW50IGhhcHBlbnMuIik7Ci0g
ICAgLy8gRklYTUU6IHRoaXMgaXMgbm90IHRlc3Rpbmcgd2hhdCBpdCBzYXlzIGl0IGlzLgotICAg
IGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0
VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgaGFzIGFuIG9ubG9hZCBldmVudC4KLTxi
cj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dz
ZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAg
VGhlcmUgc2hvdWxkIGJlIG9ubHkgb25lIG9ubG9hZCBub2RlLgotPGRpdiBpZD0ib3V0cHV0Ij48
L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YmMzOGE1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBh
bmQgc3RvcHMgcHJvZmlsaW5nIGZyb20gdGhlIHNhbWUgc2NvcGUuIAotCi1UbyBydW4gdGhpcyB0
ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5z
cGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBUaGVyZSBzaG91bGQgYmUgbm8gZnVuY3Rp
b24gY2FsbHMgYmV0d2VlbiBjb25zb2xlLnByb2ZpbGUoKSBhbmQgY29uc29sZS5wcm9maWxlRW5k
KCkuCi0KLVByb2ZpbGUgdGl0bGU6IEEgc2ltcGxlIHByb2ZpbGUgdGVzdCB3aGVyZSBubyBzY29w
ZSBjaGFnbmVzCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgZnVuY3Rpb25XaWNo
U3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlciBzaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwgKGxp
bmUgMTU6NDcpCi0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNo
YW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hh
bmdlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzNjJjODMuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQot
ewotICAgIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKTsKLX0KLQotZnVu
Y3Rpb24gZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpCi17Ci0gICAgY29u
c29sZS5wcm9maWxlKCJBIHNpbXBsZSBwcm9maWxlIHRlc3Qgd2hlcmUgbm8gc2NvcGUgY2hhZ25l
cyIpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgaSsrKQotICAgICAgICB2
YXIgYiA9IGkgKyAyOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOwot
Ci0gICAgY29uc29sZS5wcm9maWxlRW5kKCk7Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0
VGltZSgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0
KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBzdGFydHMgYW5kIHN0b3BzIHByb2ZpbGluZyBm
cm9tIHRoZSBzYW1lIHNjb3BlLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdAotdGhlIHByb2ZpbGUuICBUaGVyZSBzaG91bGQgYmUgbm8gZnVuY3Rpb24gY2FsbHMg
YmV0d2VlbiBjb25zb2xlLnByb2ZpbGUoKSBhbmQKLWNvbnNvbGUucHJvZmlsZUVuZCgpLgotPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGlt
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3Rv
cC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDI4MWU0YmYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNh
bGxzIGNvbnNvbGUucHJvZmlsZSgpIGFuZCBjb25zb2xlLnByb2ZpbGVFbmQoKSB0aHJlZSB0aW1l
cy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRo
ZSBwcm9maWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJvZmlsZXMuCi0KLVByb2ZpbGUgdGl0
bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgZmlyc3QgdGltZS4KLVRocmVhZF8xIChubyBmaWxl
KSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlw
bGUtdGltZXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3
VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAg
ICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0
ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMToxNykKLQotCi1Qcm9maWxlIHRpdGxlOiBTdGFydCB0aGUgcHJvZmlsZXIgdGhlIGZp
cnN0IHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHN0
YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0g
ICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHBy
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLVByb2ZpbGUgdGl0bGU6
IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25kIHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxl
LXRpbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1Rl
eHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAg
ICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVU
ZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChs
aW5lIDE6MTcpCi0KLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBmaXJz
dCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBzdGFy
dC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1sIChsaW5lIDEwOjE5KQotICAg
ICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
Mjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi1Qcm9maWxlIHRpdGxlOiBT
dGFydCB0aGUgcHJvZmlsZXIgdGhlIHNlY29uZCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBzdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10
aW1lcy5odG1sIChsaW5lIDEwOjE5KQotICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAg
Y3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4
dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSAxOjE3KQotCi1Qcm9maWxlIHRpdGxlOiBTdGFydCB0aGUgcHJvZmlsZXIgdGhlIHRoaXJkIHRp
bWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0LWFu
ZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBh
bm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOToz
NCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdl
dEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1l
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxl
ci1tdWx0aXBsZS10aW1lcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjlh
NzYzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0
b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICsw
LDAgQEAKLSA8aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU3Rh
cnQgdGhlIHByb2ZpbGVyIHRoZSBmaXJzdCB0aW1lLiIpOwotICAgIGFub255bW91c0Z1bmN0aW9u
KCk7Ci0gICAgZW5kVGVzdCgpOwotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQgdGhlIHByb2Zp
bGVyIHRoZSBzZWNvbmQgdGltZS4iKTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGVu
ZFRlc3QoKTsKLSAgICBjb25zb2xlLnByb2ZpbGUoIlN0YXJ0IHRoZSBwcm9maWxlciB0aGUgdGhp
cmQgdGltZS4iKTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGVuZFRlc3QoKTsKLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMg
cGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxlKCkgYW5kIGNvbnNvbGUucHJv
ZmlsZUVuZCgpIHRocmVlIHRpbWVzLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZXIgdGhlcmUgc2hvdWxkIGJl
IHRocmVlIHByb2ZpbGVzLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3At
cHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0
aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E4ZjVhNi4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXBy
b2ZpbGluZy1pbi10aGUtc2FtZS1mdW5jdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcg
ZnJvbSB3aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24uIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVh
bGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFu
ZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBj
YWxsIHRvIGZ1bmN0aW9uV2ljaFN0b3BzVGhlUHJvZmlsZXIoKS4KLQotUHJvZmlsZSB0aXRsZTog
UHJvZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24KLVRocmVhZF8xIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1l
LWZ1bmN0aW9uLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBmdW5jdGlvbldpY2hTdG9wc1RoZVBy
b2ZpbGVyIHN0YXJ0LWFuZC1zdG9wLXByb2ZpbGluZy1pbi10aGUtc2FtZS1mdW5jdGlvbi5odG1s
IChsaW5lIDE3OjM4KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
c3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGluZy1pbi10aGUtc2Ft
ZS1mdW5jdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZWMwNzMxLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJv
ZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiUHJv
ZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24iKTsKLQotICAgIGZ1bmN0aW9uV2ljaFN0b3Bz
VGhlUHJvZmlsZXIoKTsKLX0KLQotZnVuY3Rpb24gZnVuY3Rpb25XaWNoU3RvcHNUaGVQcm9maWxl
cigpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgaSsrKQotICAgICAgICB2
YXIgYiA9IGkgKyAyOwotCi0gICAgY29uc29sZS5wcm9maWxlRW5kKCJQcm9maWxpbmcgRnJvbSBB
IE5lc3RlZCBMb2NhdGlvbiIpOwotICAgIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUoKTsK
LX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgot
VGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVz
dGVkIGxvY2F0aW9uLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9h
ZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBh
dAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRv
IGZ1bmN0aW9uV2ljaFN0b3BzVGhlUHJvZmlsZXIoKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmctZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZGJjMTJkLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmctZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZh
U2NyaXB0IGNhbGxzIGNvbnNvbGUucHJvZmlsZSgpIGJ1dCBub3QgY29uc29sZS5wcm9maWxlRW5k
KCkuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2Vy
IHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBZb3Ug
c2hvdWxkIHNlZSB0aGUgcHJvZmlsZSBydW5uaW5nICh3aGVuIHRoYXQgZmVhdHVyZSBpcyBpbXBs
ZW1lbnRlZCA2MDYwNTU2KS4gVGhlbiBuYXZpZ2F0ZSB0byBhbm90aGVyIHBhZ2UgYW5kIGNoZWNr
IHRoZSBXZWJJbnNwZWN0b3IgYWdhaW4uIFNhZmFyaSBzaG91bGQgbm90IGhhdmUgY3Jhc2hlZCBh
bmQgdGhlIEluc3BlY3RvciBzaG91bGQgbm90IHNob3cgYSBwcm9maWxlICh1bmxlc3Mgd2UgYWxs
b3cgY3Jvc3MtbG9hZCBwcm9maWxpbmcgaW4gdGhlIGZ1dHVyZSA1OTUxNDc4ICYgNTk1NDkxMiku
Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9u
dC1zdG9wLXByb2ZpbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1i
dXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3MTM2ZDczLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQt
YnV0LWRvbnQtc3RvcC1wcm9maWxpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAg
QEAKLSA8aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQg
dGhlIHByb2ZpbGVyIGJ1dCBkb24ndCBzdG9wIGl0LiIpOwotICAgIGFub255bW91c0Z1bmN0aW9u
KCk7Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNj
cmlwdCBjYWxscyBjb25zb2xlLnByb2ZpbGUoKSBidXQgbm90IGNvbnNvbGUucHJvZmlsZUVuZCgp
LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUg
YnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2Zp
bGUuICBZb3Ugc2hvdWxkIHNlZSB0aGUgcHJvZmlsZSBydW5uaW5nICh3aGVuIHRoYXQgZmVhdHVy
ZSBpcyBpbXBsZW1lbnRlZCA2MDYwNTU2KS4KLVRoZW4gbmF2aWdhdGUgdG8gYW5vdGhlciBwYWdl
IGFuZCBjaGVjayB0aGUgV2ViSW5zcGVjdG9yIGFnYWluLiBTYWZhcmkgc2hvdWxkIG5vdAotaGF2
ZSBjcmFzaGVkIGFuZCB0aGUgSW5zcGVjdG9yIHNob3VsZCBub3Qgc2hvdyBhIHByb2ZpbGUgKHVu
bGVzcyB3ZSBhbGxvdyBjcm9zcy1sb2FkCi1wcm9maWxpbmcgaW4gdGhlIGZ1dHVyZSA1OTUxNDc4
ICZhbXA7IDU5NTQ5MTIpLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmct
YWZ0ZXItc2V0VGltZW91dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiMzI1ZGE0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0
b3BzIHByb2ZpbGluZyBmcm9tIGEgdGltZW91dC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIGVuZFByb2ZpbGUoKSBzaG91bGQg
bm90IGJlIGEgY2hpbGQgb2YgKHByb2dyYW0pLgotCi1Qcm9maWxlIHRpdGxlOiBTdG9wIHByb2Zp
bGluZyBmcm9tIGEgdGltZW91dAotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIG9u
bG9hZCBzdG9wLXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0bWwgKGxpbmUgMjE6NDQpCi0g
ICAgICBzdGFydFRlc3Qgc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sIChsaW5l
IDEyOjE5KQotICAgICAgICAgc2V0VGltZW91dCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgKHBy
b2dyYW0pIHN0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbCAobGluZSAxOjEpCi0g
ICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1h
ZnRlci1zZXRUaW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJv
ZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTlmZDU4ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3At
cHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKLX0KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5z
ZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3Rh
cnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIlN0b3AgcHJvZmlsaW5nIGZyb20gYSB0
aW1lb3V0Iik7ICAgIAotICAgIHNldFRpbWVvdXQoImVuZFRlc3QoKSIsIDIwKTsKLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdl
J3MgSmF2YVNjcmlwdCBzdG9wcyBwcm9maWxpbmcgZnJvbSBhIHRpbWVvdXQuCi08YnI+Ci08YnI+
Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4g
bG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBw
cm9maWxlIGVuZFByb2ZpbGUoKSBzaG91bGQgbm90IGJlIGEgY2hpbGQgb2YgKHByb2dyYW0pLgot
PGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNhbGwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMDUwNDUuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2Fs
bC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2Ug
aGFzIGFuIGFub255bW91cyBKYXZhU2NyaXB0IGZ1bmN0aW9uIHRoYXQgY2FsbHMgYnVpbHQtaW4g
ZnVuY3Rpb25zLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUg
YnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmls
ZS4gVGhlcmUgc2hvdWxkIGJlIHR3byBub2RlcyBpbiB0aGUgcHJvZmlsZSwgYSAiKHByb2dyYW0p
IiBub2RlIHdpdGggb25lIGNoaWxkIHRoYXQgaXMgInRlc3QiLgotCi1Qcm9maWxlIHRpdGxlOiBU
ZXN0Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgKHByb2dyYW0pIChubyBmaWxl
KSAobGluZSAxOjE2KQotICAgICAgdGVzdCBzdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sIChs
aW5lIDExOjE0KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3Rv
cC10aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3Rv
cC10aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTE2YTE5YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtdGhl
bi1mdW5jdGlvbi1jYWxsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50
ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi12YXIg
aiA9IDA7Ci1mdW5jdGlvbiB0ZXN0KGxlbikgewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVu
OyArK2kpCi0gICAgICAgICsrajsKLX0KLQotZnVuY3Rpb24gdGVzdDIobGVuKSB7Ci0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkKLSAgICAgICAgLS1qOwotfQotCi1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIHZhciBzY3JpcHQgPSAiY29uc29sZS5wcm9maWxlKCdUZXN0Jyk7
XG4iOwotICAgIHNjcmlwdCArPSAidGVzdCgxMDAwKTtcbiI7Ci0gICAgc2NyaXB0ICs9ICJjb25z
b2xlLnByb2ZpbGVFbmQoJ1Rlc3QnKTtcbiI7Ci0gICAgc2NyaXB0ICs9ICJ0ZXN0MigxMDAwKTtc
biI7Ci0KLSAgICBldmFsKHNjcmlwdCk7Ci0KLSAgICBwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRU
aW1lKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3Qo
KSI+Ci1UaGlzIHBhZ2UgaGFzIGFuIGFub255bW91cyBKYXZhU2NyaXB0IGZ1bmN0aW9uIHRoYXQg
Y2FsbHMgYnVpbHQtaW4gZnVuY3Rpb25zLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBt
YW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3Rv
ciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuIFRoZXJlIHNob3VsZCBiZSB0d28gbm9kZXMgaW4g
dGhlIHByb2ZpbGUsIGEgIihwcm9ncmFtKSIgbm9kZSB3aXRoIG9uZSBjaGlsZCB0aGF0IGlzICJ0
ZXN0Ii4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24t
ZnJvbS1ldmFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA3
YzllYS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2Vw
dGlvbi1mcm9tLWV2YWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBA
QAotQ09OU09MRSBNRVNTQUdFOiBUZXN0IGV4Y2VwdGlvbi4KLVRoaXMgcGFnZSB0aHJvd3MgYW4g
ZXhjZXB0aW9uIGZyb20gd2l0aGluIGV2YWwoKS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQgdGhlIHByb2ZpbGUuIFRoZSBwcm9maWxlciBzaG91bGQgbm90IGNyYXNoIGFuZCBz
dGlsbCBzaG93IHRoZSBzdGFjayB1bmRlciBpbnNlcnRuZXdUZXh0KCkuCi0KLVByb2ZpbGUgdGl0
bGU6IFRocm93IHdpdGhpbiBhbiBldmFsLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDApCi0g
ICAocHJvZ3JhbSkgdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sIChsaW5lIDE5KQotICAg
ICAgKHByb2dyYW0pIHRocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbCAobGluZSAxMCkKLSAg
ICAgICAgIChwcm9ncmFtKSB0aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwgKGxpbmUgNCkK
LSAgICAgICAgIChwcm9ncmFtKSB0aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwgKGxpbmUg
MTkpCi0gICAgICAgICAgICBldmFsIChubyBmaWxlKSAobGluZSAwKQotICAgICAgICAgICAgICAg
KHByb2dyYW0pIChubyBmaWxlKSAobGluZSAxKQotICAgb25sb2FkIHRocm93LWV4Y2VwdGlvbi1m
cm9tLWV2YWwuaHRtbCAobGluZSAyNCkKLSAgICAgIHN0YXJ0VGVzdCB0aHJvdy1leGNlcHRpb24t
ZnJvbS1ldmFsLmh0bWwgKGxpbmUgMTMpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3KQotICAgICAgICAgICAgY3JlYXRlRWxlbWVu
dCAobm8gZmlsZSkgKGxpbmUgMCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxl
KSAobGluZSAwKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDApCi0g
ICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMCkKLSAgICAgICAgIGVu
ZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMSkKLQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwu
aHRtbC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9u
LWZyb20tZXZhbC5odG1sLWRpc2FibGVkCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
N2VhYzlhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhj
ZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2FibGVkCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxz
KQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKLQotY29uc29sZS5wcm9maWxlKCJUaHJvdyB3aXRoaW4gYW4gZXZhbC4iKTsK
LQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBpbnNlcnROZXdUZXh0KCk7Ci0KLSAgICBl
bmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci1ldmFsKCJ0aHJvdygnVGVzdCBleGNl
cHRpb24uJyk7Iik7Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRl
c3QoKSI+Ci1UaGlzIHBhZ2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiBmcm9tIHdpdGhpbiBldmFsKCku
Ci08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBi
cm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmls
ZS4gIFRoZSBwcm9maWxlciBzaG91bGQgbm90IGNyYXNoIGFuZCBzdGlsbCBzaG93IHRoZSBzdGFj
ayB1bmRlcgotaW5zZXJ0bmV3VGV4dCgpLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4
ZWN1dGlvbi1jb250ZXh0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3R3by1leGVjdXRpb24tY29udGV4dHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMWU5ZGQxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxMSArMCwwIEBACi1UaGlzIHBhZ2UgaGFzIHR3byBzY3JpcHQgdGFncyB3aXRoIHNvbWUgc2lt
cGxlIEphdmFTY3JpcHQuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGlu
IHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBw
cm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgdHdvIChwcm9ncmFtKSBlbGVt
ZW50cy4KLQotUHJvZmlsZSB0aXRsZTogVHdvIEV4ZWN1dGlvbiBDb250ZXh0cwotVGhyZWFkXzEg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCB0d28tZXhlY3V0aW9uLWNvbnRleHRz
Lmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbiB0d28tZXhlY3V0
aW9uLWNvbnRleHRzLmh0bWwgKGxpbmUgMTc6MzApCi0gICAgICAgICB0ZXN0RW5kIHR3by1leGVj
dXRpb24tY29udGV4dHMuaHRtbCAobGluZSAzMzoxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3R3by1leGVjdXRpb24tY29udGV4dHMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2ODUxNjU1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2Zp
bGUoIlR3byBFeGVjdXRpb24gQ29udGV4dHMiKTsKLQotICAgIGludGVybWVkaWFyeUZ1bmN0aW9u
KCk7Ci19Ci0KLWZ1bmN0aW9uIGludGVybWVkaWFyeUZ1bmN0aW9uKCkKLXsKLSAgICB0ZXN0RW5k
KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+
Ci1UaGlzIHBhZ2UgaGFzIHR3byBzY3JpcHQgdGFncyB3aXRoIHNvbWUgc2ltcGxlIEphdmFTY3Jp
cHQuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRo
ZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJv
ZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSB0d28gKHByb2dyYW0pIGVsZW1l
bnRzLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTxzY3JpcHQ+Ci1mdW5jdGlv
biB0ZXN0RW5kKCkgewotICAgIGNvbnNvbGUucHJvZmlsZUVuZCgpOwotICAgIHByaW50UHJvZmls
ZXNEYXRhV2l0aG91dFRpbWUoKTsKLX0KLTwvc2NyaXB0PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVp
bHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
dXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2Y2U1NTEuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVp
bHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAg
QEAKLVRoaXMgcGFnZSBoYXMgSmF2YVNjcmlwdCB0aGF0IGNhbGxzIGJ1aWx0LWluIGZ1bmN0aW9u
cy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRo
ZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBjYWxscyB0byBjcmVhdGVFbGVtZW50KCkgY3JlYXRl
VGV4dE5vZGUoKSBhcHBlbmRDaGlsZCgpIGFuZCB0ZXN0RW5kKCksIGFtb25nIG90aGVycy4KLVRo
aXMgaXMgaW5zZXJ0ZWQgVGV4dAotCi0KLVByb2ZpbGUgdGl0bGU6IFVzZXIgZGVmaW5lZCBmdW5j
dGlvbiBjYWxsZXMgYnVpbHQtaW4gZnVuY3Rpb25zCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgc3RhcnRUZXN0IHVzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1m
dW5jdGlvbnMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZ2V0RWxlbWVudEJ5
SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNh
bGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBjNzUyN2I3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1k
ZWZpbmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsMzQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3
aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xl
LnByb2ZpbGUoIlVzZXIgZGVmaW5lZCBmdW5jdGlvbiBjYWxsZXMgYnVpbHQtaW4gZnVuY3Rpb25z
Iik7Ci0KLSAgICB2YXIgbmV3UCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKLSAgICB2
YXIgdGV4dE5vZGUgPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUaGlzIGlzIGluc2VydGVkIFRl
eHQiKTsKLSAgICBuZXdQLmFwcGVuZENoaWxkKHRleHROb2RlKTsKLSAgICB2YXIgb3V0cHV0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOwotICAgIG91dHB1dC5hcHBlbmRDaGls
ZChuZXdQKTsKLSAgICAKLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIEphdmFTY3JpcHQgdGhh
dCBjYWxscyBidWlsdC1pbiBmdW5jdGlvbnMuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3Vs
ZCBiZSBjYWxscyB0byBjcmVhdGVFbGVtZW50KCkgY3JlYXRlVGV4dE5vZGUoKQotYXBwZW5kQ2hp
bGQoKSBhbmQgdGVzdEVuZCgpLCBhbW9uZyBvdGhlcnMuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci93aW5kb3ctZG90LWV2YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci93aW5kb3ctZG90LWV2YWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkY2U4OGRjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2lu
ZG93LWRvdC1ldmFsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAK
LVRoaXMgcGFnZSBoYXMgYSBjYWxsIHRvIHdpbmRvdy5ldmFsKCkuIAotCi1UbyBydW4gdGhpcyB0
ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5z
cGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91
bGQgYmUgYSBjYWxsIHRvIGV2YWwoKS4KLQotUHJvZmlsZSB0aXRsZTogQ2FsbCB3aW5kb3cuZXZh
bCgpCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHdpbmRvdy1k
b3QtZXZhbC5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZXZhbEZ1bmN0aW9uIChubyBmaWxlKSAo
bGluZSAxOjIyKQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3Qg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci93aW5kb3ctZG90LWV2YWwuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggODdhMmIzYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
LQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkNhbGwgd2lu
ZG93LmV2YWwoKSIpOwotCi0gICAgZXZhbEZ1bmN0aW9uKCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19
Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci13aW5kb3cuZXZhbCgiZnVuY3Rpb24gZXZhbEZ1bmN0aW9u
KCkgeyBpbnNlcnROZXdUZXh0KCk7IH0iKTsKLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgYSBjYWxsIHRvIHdpbmRvdy5ldmFs
KCkuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRo
ZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJv
ZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZXZhbCgpLgot
PGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDNmM2M5Ni4uNGVkMmFhZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEwMjEsOSArMTAyMSw2
IEBAIHdlYmtpdC5vcmcvYi8xNDIxNTYgY3NzMy9zaGFwZXMvc3BlYy1leGFtcGxlcy9zaGFwZS1v
dXRzaWRlLTAxMS5odG1sIFsgRmFpbHVyZSBQCiB3ZWJraXQub3JnL2IvMTQyMTU2IGNzczMvc2hh
cGVzL3NwZWMtZXhhbXBsZXMvc2hhcGUtb3V0c2lkZS0wMTIuaHRtbCBbIEZhaWx1cmUgUGFzcyBd
CiB3ZWJraXQub3JnL2IvMTQyMTU2IGNzczMvc2hhcGVzL3NwZWMtZXhhbXBsZXMvc2hhcGUtb3V0
c2lkZS0wMTkuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKLXdlYmtpdC5vcmcvYi8xNDIxNTcgZmFz
dC9wcm9maWxlci9kZWFkLXRpbWUuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCi13ZWJraXQub3JnL2Iv
MTQyMTU3IGZhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1s
IFsgRmFpbHVyZSBQYXNzIF0KLQogd2Via2l0Lm9yZy9iLzk1NTUxIGZhc3QvZm9ybXMvZGF0YWxp
c3QvdXBkYXRlLXJhbmdlLXdpdGgtZGF0YWxpc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFz
cyBdCiAKIHdlYmtpdC5vcmcvYi8xMjk4MjAgc3ZnL2NsaXAtcGF0aC9tYXNrLW5lc3RlZC1jbGlw
LXBhdGgtMDA2LnN2ZyBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdiZmFlYzAuLmVlNzA1ODkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjAxLDkgKzEyMDEsNiBA
QCB3ZWJraXQub3JnL2IvMTM2MDY2IGFuaW1hdGlvbnMvbWlzc2luZy1rZXlmcmFtZS1wcm9wZXJ0
aWVzLmh0bWwgWyBDcmFzaCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMzYwNjYgYW5pbWF0aW9ucy9t
aXNzaW5nLXZhbHVlcy1maXJzdC1rZXlmcmFtZS5odG1sIFsgQ3Jhc2ggUGFzcyBdCiB3ZWJraXQu
b3JnL2IvMTM2MDY2IGFuaW1hdGlvbnMvc3RhdGUtYXQtZW5kLWV2ZW50Lmh0bWwgWyBDcmFzaCBQ
YXNzIF0KIAotd2Via2l0Lm9yZy9iLzEzNjA2NyBmYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1s
IFsgRmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzYwNjcgZmFzdC9wcm9maWxlci9zdG9w
LXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotCiB3ZWJr
aXQub3JnL2IvMTM2MDcwIGZhc3QvZm9ybXMvbGFiZWwvbGFiZWwtYmVjb21lcy12aXNpYmxlLXdo
aWxlLWNsaWNraW5nLW9uLWxhYmVsLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3Jn
L2IvMTM2NTgwIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgWyBUaW1lb3V0IFBhc3Mg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGM4MDFlYTguLmMzYjc1ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4OTIsNyArMTg5Miw2
IEBAIGZhc3QvcGFyc2VyL25lc3RlZC1mcmFnbWVudC1wYXJzZXItY3Jhc2guaHRtbCBbIEZhaWx1
cmUgXQogZmFzdC9wcmVsb2FkZXIvZG9jdW1lbnQtd3JpdGUtMi5odG1sIFsgRmFpbHVyZSBdCiBm
YXN0L3ByZWxvYWRlci9kb2N1bWVudC13cml0ZS5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L3ByZWxv
YWRlci9pbWFnZS1zcmNzZXQuaHRtbCBbIEZhaWx1cmUgXQotZmFzdC9wcm9maWxlci9wcm9maWxp
bmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUt
bmVzdGluZy5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L3JlZ2lvbnMvYWJzb2x1dGUtaW4tcmVsYXRp
dmUtb3ZlcmZsb3cuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC9yZWdpb25zL2Fic29s
dXRlLXBvcy1lbGVtLWluLXJlZ2lvbi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L3Jl
Z2lvbnMvYW5pbWF0aW9uLWVsZW1lbnQtaW4tcmVnaW9uLWZsb3dlZC10by1vdGhlci10aHJlYWQu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTUHJvZmlsZXJQcml2YXRlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWMx
MTJhZS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTUHJvZmlsZXJQ
cml2YXRlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkpTUHJvZmlsZXJQcml2YXRlLmgiCi0KLSNpbmNsdWRlICJBUElDYXN0LmgiCi0jaW5j
bHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKLSNpbmNsdWRlICJPcGFxdWVKU1N0cmluZy5oIgotCi11
c2luZyBuYW1lc3BhY2UgSlNDOwotCi12b2lkIEpTU3RhcnRQcm9maWxpbmcoSlNDb250ZXh0UmVm
IGN0eCwgSlNTdHJpbmdSZWYgdGl0bGUpCi17Ci0gICAgLy8gVXNlIGFuIGluZGVwZW5kZW50IHN0
b3B3YXRjaCBmb3IgQVBJLWluaXRpYXRlZCBwcm9maWxpbmcsIHNpbmNlIHRoZSB1c2VyIHdpbGwg
ZXhwZWN0IGl0Ci0gICAgLy8gdG8gYmUgcmVsYXRpdmUgdG8gd2hlbiB0aGVpciBjb21tYW5kIHdh
cyBpc3N1ZWQuCi0gICAgUmVmUHRyPFN0b3B3YXRjaD4gc3RvcHdhdGNoID0gU3RvcHdhdGNoOjpj
cmVhdGUoKTsKLSAgICBzdG9wd2F0Y2gtPnN0YXJ0KCk7Ci0gICAgTGVnYWN5UHJvZmlsZXI6OnBy
b2ZpbGVyKCktPnN0YXJ0UHJvZmlsaW5nKHRvSlMoY3R4KSwgdGl0bGUtPnN0cmluZygpLCBzdG9w
d2F0Y2gucmVsZWFzZSgpKTsKLX0KLQotdm9pZCBKU0VuZFByb2ZpbGluZyhKU0NvbnRleHRSZWYg
Y3R4LCBKU1N0cmluZ1JlZiB0aXRsZSkKLXsKLSAgICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGN0
eCk7Ci0gICAgTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gTGVnYWN5UHJvZmlsZXI6OnByb2Zp
bGVyKCk7Ci0gICAgcHJvZmlsZXItPnN0b3BQcm9maWxpbmcoZXhlYywgdGl0bGUtPnN0cmluZygp
KTsKLX0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Byb2ZpbGVy
UHJpdmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNGYyNmEyLi4wMDAwMDAwCi0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNQcm9maWxlclByaXZhdGUuaAorKysgL2Rldi9udWxs
CkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNpZm5kZWYgSlNQcm9maWxlcl9oCi0jZGVmaW5lIEpTUHJvZmlsZXJfaAotCi0j
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+Ci0KLSNpZm5kZWYgX19jcGx1c3BsdXMK
LSNpbmNsdWRlIDxzdGRib29sLmg+Ci0jZW5kaWYKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRl
cm4gIkMiIHsKLSNlbmRpZgotCi0vKiEKLUBmdW5jdGlvbiBKU1N0YXJ0UHJvZmlsaW5nCi1AYWJz
dHJhY3QgRW5hYmxlcyB0aGUgcHJvZmxlci4KLUBwYXJhbSBjdHggVGhlIGV4ZWN1dGlvbiBjb250
ZXh0IHRvIHVzZS4KLUBwYXJhbSB0aXRsZSBUaGUgdGl0bGUgb2YgdGhlIHByb2ZpbGUuCi1AcmVz
dWx0IFRoZSBwcm9maWxlciBpcyB0dXJuZWQgb24uCi0qLwotSlNfRVhQT1JUIHZvaWQgSlNTdGFy
dFByb2ZpbGluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiB0aXRsZSk7Ci0KLS8qIQot
QGZ1bmN0aW9uIEpTRW5kUHJvZmlsaW5nCi1AYWJzdHJhY3QgRGlzYWJsZXMgdGhlIHByb2ZsZXIu
Ci1AcGFyYW0gY3R4IFRoZSBleGVjdXRpb24gY29udGV4dCB0byB1c2UuCi1AcGFyYW0gdGl0bGUg
VGhlIHRpdGxlIG9mIHRoZSBwcm9maWxlLgotQHJlc3VsdCBUaGUgcHJvZmlsZXIgaXMgdHVybmVk
IG9mZi4gSWYgdGhlcmUgaXMgbm8gbmFtZSwgdGhlIG1vc3QgcmVjZW50bHkgc3RhcnRlZAotICAg
ICAgICBwcm9maWxlIGlzIHN0b3BwZWQuIElmIHRoZSBuYW1lIGRvZXMgbm90IG1hdGNoIGFueSBw
cm9maWxlIHRoZW4gbm8gcHJvZmlsZQotICAgICAgICBpcyBzdG9wcGVkLgotKi8KLUpTX0VYUE9S
VCB2b2lkIEpTRW5kUHJvZmlsaW5nKEpTQ29udGV4dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHRpdGxl
KTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIEpTUHJvZmls
ZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGJmNTIxODEuLjYx
NjIxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTU0LDcgKzU0LDYg
QEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBBUEkvSlNDbGFzc1JlZi5jcHAKICAg
ICBBUEkvSlNDb250ZXh0UmVmLmNwcAogICAgIEFQSS9KU09iamVjdFJlZi5jcHAKLSAgICBBUEkv
SlNQcm9maWxlclByaXZhdGUuY3BwCiAgICAgQVBJL0pTVHlwZWRBcnJheS5jcHAKICAgICBBUEkv
SlNTY3JpcHRSZWYuY3BwCiAgICAgQVBJL0pTU3RyaW5nUmVmLmNwcApAQCAtNTg2LDEwICs1ODUs
NiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHBhcnNlci9Tb3VyY2VQcm92aWRl
ckNhY2hlLmNwcAogICAgIHBhcnNlci9WYXJpYWJsZUVudmlyb25tZW50LmNwcAogCi0gICAgcHJv
ZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwCi0gICAgcHJvZmlsZXIvUHJvZmlsZS5jcHAKLSAgICBw
cm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAotICAgIHByb2ZpbGVyL1Byb2ZpbGVOb2RlLmNw
cAogICAgIHByb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3BwCiAgICAgcHJvZmlsZXIvUHJvZmls
ZXJCeXRlY29kZVNlcXVlbmNlLmNwcAogICAgIHByb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVzLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggODFkODViOC4uNTVlYWMwMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTI5IEBACiAyMDE2LTA1LTEzICBKb3NlcGggUGVj
b3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgUmVtb3ZlIExlZ2FjeVByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM1
NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKYXZh
U2NyaXB0Q29yZSBub3cgcHJvdmlkZXMgYSBzYW1wbGluZyBwcm9maWxlciBhbmQgaXQgaXMgZW5h
YmxlZAorICAgICAgICBieSBhbGwgcG9ydHMuIFdlYiBJbnNwZWN0b3Igc3dpdGNoZWQgbW9udGhz
IGFnbyB0byB1c2luZyB0aGUKKyAgICAgICAgc2FtcGxpbmcgcHJvZmlsZXIgYW5kIGRpc3BsYXlp
bmcgaXRzIGRhdGEuIFJlbW92ZSB0aGUgbGVnYWN5CisgICAgICAgIHByb2ZpbGVyLCBhcyBpdCBp
cyBubyBsb25nZXIgYmVpbmcgdXNlZCBieSBhbnl0aGluZyBvdGhlciB0aGVuCisgICAgICAgIGNv
bnNvbGUucHJvZmlsZSBhbmQgdGVzdHMuIFdlIHdpbGwgdXBkYXRlIGNvbnNvbGUucHJvZmlsZSdz
CisgICAgICAgIGJlaGF2aW9yIHNvb24gdG8gaGF2ZSBuZXcgYmVoYXZpb3IgYW5kIHVzZSB0aGUg
c2FtcGxpbmcgZGF0YS4KKworICAgICAgICAqIEFQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5jcHA6IFJl
bW92ZWQuCisgICAgICAgICogQVBJL0pTUHJvZmlsZXJQcml2YXRlLmg6IFJlbW92ZWQuCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbjoK
KyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5oOgorICAgICAgICAoSlNDOjpjb21w
dXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Y29tcHV0
ZURlZnNGb3JCeXRlY29kZU9mZnNldCk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcDoK
KyAgICAgICAgKEpTQzo6Z2VuZXJhdGVVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKToKKyAgICAg
ICAgKEpTQzo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OnVubGlua2VkQ29kZUJsb2NrRm9y
KToKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oOgorICAg
ICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6
OkJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJh
dG9yOjplbWl0Q2FsbFZhcmFyZ3MpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRpb24pOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdl
bmVyYXRvcjo6ZW1pdENvbnN0cnVjdFZhcmFyZ3MpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdl
bmVyYXRvcjo6ZW1pdENvbnN0cnVjdCk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkNhbGxBcmd1bWVudHM6OnByb2ZpbGVIb29rUmVn
aXN0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6c2hvdWxk
RW1pdFByb2ZpbGVIb29rcyk6IERlbGV0ZWQuCisgICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkNhbGxGdW5jdGlvbkNhbGxEb3ROb2RlOjplbWl0
Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpBcHBseUZ1bmN0aW9uQ2FsbERvdE5vZGU6OmVtaXRC
eXRlY29kZSk6CisgICAgICAgIChKU0M6OkNhbGxBcmd1bWVudHM6OkNhbGxBcmd1bWVudHMpOiBE
ZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgor
ICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+
OjpleGVjdXRlRWZmZWN0cyk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6
IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHQ2xv
YmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOiBEZWxldGVkLgorICAg
ICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6IERl
bGV0ZWQuCisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR05v
ZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6
OnNhZmVUb0V4ZWN1dGUpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6
IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6
SW5qZWN0ZWRTY3JpcHRCYXNlOjpjYWxsRnVuY3Rpb25XaXRoRXZhbEVuYWJsZWQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9wcm90b2NvbC9UaW1lbGluZS5qc29uOgorICAgICAgICAqIGludGVycHJl
dGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6VW53aW5kRnVuY3Rvcjo6b3BlcmF0
b3IoKSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QpOiBEZWxldGVkLgor
ICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxl
TWFpblBhc3MpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQv
SklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wcm9maWxlX3dpbGxf
Y2FsbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wcm9maWxlX2RpZF9j
YWxsKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX3Byb2ZpbGVfd2lsbF9jYWxsKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0X29wX3Byb2ZpbGVfZGlkX2NhbGwpOiBEZWxldGVkLgorICAgICAg
ICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5o
OgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3Bw
OgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOiBEZWxldGVkLgor
ICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmg6CisgICAgICAgICogbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcGFyc2VyL1BhcnNlck1vZGVzLmg6CisgICAg
ICAgICogcHJvZmlsZXIvQ2FsbElkZW50aWZpZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwcm9m
aWxlci9MZWdhY3lQcm9maWxlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcHJvZmlsZXIvTGVn
YWN5UHJvZmlsZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlLmg6IFJlbW92ZWQuCisgICAgICAg
ICogcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcHJv
ZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oOiBSZW1vdmVkLgorICAgICAgICAqIHByb2ZpbGVyL1By
b2ZpbGVOb2RlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlTm9kZS5o
OiBSZW1vdmVkLgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24uY3Bw
OgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBwcm9m
aWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmg6CisgICAgICAgICogcnVudGltZS9Db2RlQ2Fj
aGUuY3BwOgorICAgICAgICAoSlNDOjpDb2RlQ2FjaGU6OmdldEdsb2JhbENvZGVCbG9jayk6Cisg
ICAgICAgIChKU0M6OkNvZGVDYWNoZTo6Z2V0UHJvZ3JhbUNvZGVCbG9jayk6CisgICAgICAgIChK
U0M6OkNvZGVDYWNoZTo6Z2V0RXZhbENvZGVCbG9jayk6CisgICAgICAgIChKU0M6OkNvZGVDYWNo
ZTo6Z2V0TW9kdWxlUHJvZ3JhbUNvZGVCbG9jayk6CisgICAgICAgICogcnVudGltZS9Db2RlQ2Fj
aGUuaDoKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuY3BwOgorICAgICAgICAoSlNDOjpT
Y3JpcHRFeGVjdXRhYmxlOjpuZXdDb2RlQmxvY2tGb3IpOgorICAgICAgICAqIHJ1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6Y3JlYXRlUHJv
Z3JhbUNvZGVCbG9jayk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpjcmVhdGVFdmFs
Q29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZU1vZHVsZVBy
b2dyYW1Db2RlQmxvY2spOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6fkpTR2xvYmFs
T2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6Omhhc0xlZ2Fj
eVByb2ZpbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6
CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZyk6
IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6CisgICAgICAgICogcnVudGlt
ZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpWTSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OlNldEVuYWJsZWRQcm9maWxlckZ1bmN0b3I6Om9wZXJhdG9yKCkpOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpWTTo6c2V0RW5hYmxlZFByb2ZpbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50
aW1lL1ZNLmg6CisgICAgICAgIChKU0M6OlZNOjplbmFibGVkUHJvZmlsZXIpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpWTTo6ZW5hYmxlZFByb2ZpbGVyQWRkcmVzcyk6IERlbGV0ZWQuCisKKzIw
MTYtMDUtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBJbmZvcm0gYXVnbWVudGluZyBjbGllbnQgd2hlbiBpbnNwZWN0b3Ig
Y29udHJvbGxlciBpcyBkZXN0cm95ZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1NzY4OAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjU4MzI3MjQ+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYxMmJmZDUuLjBmOWRlZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDE1LDE0ICsxNDE1LDYgQEAKIAkJOTMzMDQw
MDQwRTZBNzQ5NDAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDNGRUEwRTZBNzJDMDAwNzg2RTZBIC8qIFNt
YWxsU3RyaW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzMzA0MDJDMEU2QTc2NDAwMDc4NkU2QSAvKiBTbWFsbFN0cmluZ3MuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDNGRTgwRTZBNzJC
NTAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5jcHAgKi87IH07CiAJCTkzMzVGMjREMTJFNjc2NUIw
MDJCNTU1MyAvKiBTdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMzQ1QTg3MTJEODM4QzQwMDMwMkJFMyAvKiBT
dHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcCAqLzsgfTsKLQkJOTUzNEFBRkIwRTVCN0E5NjAwQjhB
NDVCIC8qIEpTUHJvZmlsZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NTJDNjNBQzBFNDc3N0Q2MDBDMTM5MzYgLyogSlNQcm9maWxlclBy
aXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk5NTc0MkY2NTBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTc0MkY2MzBERDExRjVBMDAwOTE3RkIg
LyogUHJvZmlsZS5jcHAgKi87IH07Ci0JCTk1QUI4MzQyMERBNDMyMjUwMEJDODNGMyAvKiBMZWdh
Y3lQcm9maWxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NUFCODMyRTBEQTQyQ0FEMDBCQzgzRjMgLyogTGVnYWN5UHJvZmlsZXIuY3BwICovOyB9
OwotCQk5NUFCODM1NjBEQTQzQzMwMDBCQzgzRjMgLyogUHJvZmlsZU5vZGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBQjgzNTQwREE0M0I0NDAw
QkM4M0YzIC8qIFByb2ZpbGVOb2RlLmNwcCAqLzsgfTsKLQkJOTVDRDQ1NzYwRTFDNEZERDAwODUz
NThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTVDRDQ1NzQwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5l
cmF0b3IuY3BwICovOyB9OwotCQk5NUNENDU3NzBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdl
bmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTVDRDQ1NzUwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwotCQk5NUUzQkMwNTBFMUFFNjgyMDBCMkQxQzEg
LyogQ2FsbElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk1RTNCQzA0MEUxQUU2ODIwMEIyRDFDMSAvKiBDYWxsSWRlbnRpZmllci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTk1RjZFNjk1
MEU1QjVGOTcwMDkxRTg2MCAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTk4OEJBOTBFNDc3QkVDMDBEMjhENEQg
LyogSlNQcm9maWxlclByaXZhdGUuY3BwICovOyB9OwogCQk5NjAwOTdBNjBFQkFCQjU4MDA3QTcy
OTcgLyogTGFiZWxTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTYwMDk3QTUwRUJBQkI1ODAwN0E3Mjk3IC8qIExhYmVsU2NvcGUuaCAqLzsgfTsK
IAkJOTY4OENCMTUwRUQxMkI0RTAwMUQ2NDlGIC8qIEFzc2VtYmxlckJ1ZmZlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY4OENCMTMwRUQxMkI0RTAw
MUQ2NDlGIC8qIEFzc2VtYmxlckJ1ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTk2ODhDQjE2MEVEMTJCNEUwMDFENjQ5RiAvKiBYODZBc3Nl
bWJsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2
ODhDQjE0MEVEMTJCNEUwMDFENjQ5RiAvKiBYODZBc3NlbWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTg5MSw5ICsxODgzLDYgQEAKIAkJ
QkMxOEM0NDYwRTE2RjVDRDAwQjM0NDYwIC8qIE9iamVjdFByb3RvdHlwZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNjgwQzkwRTE2RDRFOTAwQTA2
RTkyIC8qIE9iamVjdFByb3RvdHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUJDMThDNDQ4MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPcGVyYXRpb25z
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg3
ODAyNTU1OTdEMDFGRjYwRjcgLyogT3BlcmF0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDRCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQ
YXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RjBCM0FBMDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzE4QzQ1MDBFMTZGNUNEMDBCMzQ0NjAgLyog
UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTU3NDJGNjQwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2ZpbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzE4QzQ1MTBFMTZGNUNEMDBCMzQ0NjAg
LyogUHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk1QUI4MzU1MERBNDNCNDQwMEJDODNGMyAvKiBQcm9maWxlTm9kZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDMThDNDUyMEUxNkY1
Q0QwMEIzNDQ2MCAvKiBMZWdhY3lQcm9maWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBQjgzMkYwREE0MkNBRDAwQkM4M0YzIC8qIExlZ2FjeVBy
b2ZpbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQkMxOEM0NTQwRTE2RjVDRDAwQjM0NDYwIC8qIFByb3BlcnR5TmFtZUFycmF5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQwMEMxMDBBNjlCQUYy
MDA1MDk4ODcgLyogUHJvcGVydHlOYW1lQXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ1NTBFMTZGNUNEMDBCMzQ0NjAgLyogUHJv
cGVydHlTbG90LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2NTYyMUU2QzA4OUU4NTk3MDA3NjBGMzUgLyogUHJvcGVydHlTbG90LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0NTYwRTE2RjVDRDAw
QjM0NDYwIC8qIFByb3RlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDY1QzAyRkJCMDYzNzQ2MkEwMDNFN0VFNiAvKiBQcm90ZWN0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM2MzMsMTggKzM2MjIs
NyBAQAogCQk5M0YwQjNBOTA5QkI0REMwMDA2OEZDRTMgLyogUGFyc2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRjBCM0FBMDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzRjE5ODFBMDgyNDVBQUUwMDFFOUFCQyAvKiBLZXl3b3Jkcy50YWJsZSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEtleXdvcmRzLnRhYmxlOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07Ci0JCTk1MkM2M0FDMEU0Nzc3RDYw
MEMxMzkzNiAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1Byb2ZpbGVyUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5NTc0MkY2MzBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlLmNwcDsgcGF0aCA9IHByb2ZpbGVyL1Byb2Zp
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NTc0MkY2NDBERDExRjVBMDAw
OTE3RkIgLyogUHJvZmlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9m
aWxlLmg7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTk1OTg4QkE5MEU0NzdCRUMwMEQyOEQ0RCAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Byb2ZpbGVyUHJpdmF0ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk1QUI4MzJFMERBNDJDQUQwMEJDODNG
MyAvKiBMZWdhY3lQcm9maWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBMZWdhY3lQcm9maWxlci5jcHA7IHBhdGggPSBwcm9maWxlci9MZWdhY3lQcm9maWxlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk1QUI4MzJGMERBNDJDQUQwMEJDODNG
MyAvKiBMZWdhY3lQcm9maWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBM
ZWdhY3lQcm9maWxlci5oOyBwYXRoID0gcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTVBQjgzNTQwREE0M0I0NDAwQkM4M0YzIC8qIFByb2Zp
bGVOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVO
b2RlLmNwcDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJOTVBQjgzNTUwREE0M0I0NDAwQkM4M0YzIC8qIFByb2ZpbGVOb2RlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2ZpbGVOb2RlLmg7IHBhdGggPSBw
cm9maWxlci9Qcm9maWxlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUMx
OEQzRTBDOTBFN0VGMDBFNzJGNzMgLyogSlNSZXRhaW5QdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNSZXRhaW5QdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTVDRDQ1NzQwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUHJvZmlsZUdlbmVyYXRvci5jcHA7IHBh
dGggPSBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTVDRDQ1NzUwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvZmlsZUdlbmVyYXRvci5oOyBwYXRo
ID0gcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk5NUUzQkMwNDBFMUFFNjgyMDBCMkQxQzEgLyogQ2FsbElkZW50aWZpZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2FsbElkZW50aWZpZXIuaDsgcGF0aCA9IHByb2Zp
bGVyL0NhbGxJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk2MDA5
N0E1MEVCQUJCNTgwMDdBNzI5NyAvKiBMYWJlbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExhYmVsU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTY4OENCMTMwRUQxMkI0RTAwMUQ2NDlGIC8qIEFzc2VtYmxlckJ1ZmZlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBc3NlbWJsZXJCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTY4OENCMTQwRUQxMkI0RTAwMUQ2NDlGIC8qIFg4NkFzc2VtYmxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYODZBc3NlbWJsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUyNjYsOCArNTI0NCw2IEBACiAJCQkJMTQ4MkI3RTIw
QTQzMDc2MDAwNTE3Q0ZDIC8qIEpTT2JqZWN0UmVmLmNwcCAqLywKIAkJCQkxNDgyQjdFMTBBNDMw
NzYwMDA1MTdDRkMgLyogSlNPYmplY3RSZWYuaCAqLywKIAkJCQlBNzlFREIwODExNTMxQ0Q2MDAx
OUU5MTIgLyogSlNPYmplY3RSZWZQcml2YXRlLmggKi8sCi0JCQkJOTU5ODhCQTkwRTQ3N0JFQzAw
RDI4RDREIC8qIEpTUHJvZmlsZXJQcml2YXRlLmNwcCAqLywKLQkJCQk5NTJDNjNBQzBFNDc3N0Q2
MDBDMTM5MzYgLyogSlNQcm9maWxlclByaXZhdGUuaCAqLywKIAkJCQlBNTUyQzM3RDFBRERCOEZF
MDAxMzk3MjYgLyogSlNSZW1vdGVJbnNwZWN0b3IuY3BwICovLAogCQkJCUE1NTJDMzdFMUFEREI4
RkUwMDEzOTcyNiAvKiBKU1JlbW90ZUluc3BlY3Rvci5oICovLAogCQkJCTk1QzE4RDNFMEM5MEU3
RUYwMEU3MkY3MyAvKiBKU1JldGFpblB0ci5oICovLApAQCAtNjQzMCwxNSArNjQwNiw2IEBACiAJ
CTk1QUI4MzFBMERBNDJDNjkwMEJDODNGMyAvKiBwcm9maWxlciAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTVFM0JDMDQwRTFBRTY4MjAwQjJEMUMxIC8q
IENhbGxJZGVudGlmaWVyLmggKi8sCi0JCQkJOTVBQjgzMkUwREE0MkNBRDAwQkM4M0YzIC8qIExl
Z2FjeVByb2ZpbGVyLmNwcCAqLywKLQkJCQk5NUFCODMyRjBEQTQyQ0FEMDBCQzgzRjMgLyogTGVn
YWN5UHJvZmlsZXIuaCAqLywKLQkJCQk5NTc0MkY2MzBERDExRjVBMDAwOTE3RkIgLyogUHJvZmls
ZS5jcHAgKi8sCi0JCQkJOTU3NDJGNjQwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2ZpbGUuaCAqLywK
LQkJCQk5NUNENDU3NDBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRvci5jcHAgKi8s
Ci0JCQkJOTVDRDQ1NzUwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuaCAqLywK
LQkJCQk5NUFCODM1NDBEQTQzQjQ0MDBCQzgzRjMgLyogUHJvZmlsZU5vZGUuY3BwICovLAotCQkJ
CTk1QUI4MzU1MERBNDNCNDQwMEJDODNGMyAvKiBQcm9maWxlTm9kZS5oICovLAogCQkJCTBGRjcy
OTkyMTY2QUQzNDcwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2RlLmNwcCAqLywKIAkJCQkwRkY3
Mjk5MzE2NkFEMzQ3MDAwRjVCQTMgLyogUHJvZmlsZXJCeXRlY29kZS5oICovLAogCQkJCTBGRjcy
OTk0MTY2QUQzNDcwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2Rlcy5jcHAgKi8sCkBAIC03MTE1
LDcgKzcwODIsNiBAQAogCQkJCTE0MjlEOERFMEVEMjIwNUIwMEI4OTYxOSAvKiBDYWxsRnJhbWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTYyRUM5QkI3MUI3RUIwN0MwMDMwM0FEMSAvKiBDYWxsRnJh
bWVTaHVmZmxlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjJENzU1RDcxQjg0RkI0QTAwMTgw
MUZBIC8qIENhbGxGcmFtZVNodWZmbGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5NUUzQkMwNTBF
MUFFNjgyMDBCMkQxQzEgLyogQ2FsbElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MEI4M0IxMTRCQ0Y3MTgwMDg4NUI0RiAvKiBDYWxsTGlua0luZm8uaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGOTMzMjlFMTRDQTdEQzUwMDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNjI3NjczMjQxQjY4MEMxRTAwRkQ5RjJFIC8qIENhbGxNb2RlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTc3MzMsNyArNzY5OSw2IEBACiAJCQkJQTcyODBBMjgxMTU1N0UzMDAwRDU2
OTU3IC8qIEpTT2JqZWN0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdGOTkzNUYw
RkQ3MzI1MTAwQTBCMkQwIC8qIEpTT05PYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODdD
REI5MTA3MTJBRDQwMDA2MTRDRiAvKiBKU09OT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJOTUzNEFBRkIwRTVCN0E5NjAwQjhBNDVCIC8qIEpTUHJvZmlsZXJQcml2YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QzE4NEUxQjE3QkVEQkQzMDA3Q0I2M0EgLyogSlNQcm9taXNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QzE4NEUyMzE3QkVFMjQwMDA3Q0I2M0EgLyogSlNQcm9taXNlQ29u
c3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkI3MzFFMUJEQTA4RUYwMDMzMUI4NCAv
KiBKU1Byb21pc2VDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLApAQCAtNzc5OSw3ICs3
NzY0LDYgQEAKIAkJCQk5NjAwOTdBNjBFQkFCQjU4MDA3QTcyOTcgLyogTGFiZWxTY29wZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZCNTQ2NzcxNEY1OUI1QzAwMkMyOTg5IC8qIExhenlPcGVyYW5k
VmFsdWVQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OURBMDBCMDFCRDU5OTRFMDBGNDU3
NUMgLyogbGF6eXdyaXRlci5weSBpbiBIZWFkZXJzICovLAotCQkJCUJDMThDNDUyMEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBMZWdhY3lQcm9maWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MzEw
RTE2RjVDRDAwQjM0NDYwIC8qIExleGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzUyRTBF
MTZGQ0UxMDBCMzQ0NjAgLyogTGV4ZXIubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlEQ0YzRDU2
QjFDRDI5NDcyMDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlSW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCkBAIC03OTA0LDkgKzc4NjgsNiBAQAogCQkJCTBGRTgzNDE4MUE2RUY5N0IwMEQwNDg0
NyAvKiBQb2x5bW9ycGhpY0NhbGxTdHViUm91dGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5
ODIwNjExNkJGRTM4MzAwMjQwRDAyIC8qIFByZWNpc2VKdW1wVGFyZ2V0cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODY4OTE2QjAxNTVGMjg2MzAwQ0IyQjlBIC8qIFByaXZhdGVOYW1lLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlCQzE4QzQ1MDBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvZmlsZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJOTVDRDQ1NzcwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0
b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMThDNDUxMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9m
aWxlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNzI5QTUxNjZBRDM1MTAwMEY1QkEzIC8q
IFByb2ZpbGVyQnl0ZWNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjcyOUI5MTY2QUQzNjAw
MDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2Rlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxMzkx
MkExNjc3MUMzNjAwOUNDQjA3IC8qIFByb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5oIGluIEhlYWRl
cnMgKi8sCkBAIC05MTUxLDcgKzkxMTIsNiBAQAogCQkJCTE0N0YzOUQ0MTA3RUMzNzYwMDQyN0E0
OCAvKiBKU09iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDgyQjdFNDBBNDMwNzYwMDA1
MTdDRkMgLyogSlNPYmplY3RSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdGOTkzNjAwRkQ3
MzI1MTAwQTBCMkQwIC8qIEpTT05PYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTVGNkU2
OTUwRTVCNUY5NzAwOTFFODYwIC8qIEpTUHJvZmlsZXJQcml2YXRlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdDMTg0RTFBMTdCRURCRDMwMDdDQjYzQSAvKiBKU1Byb21pc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJN0MxODRFMjIxN0JFRTI0MDAwN0NCNjNBIC8qIEpTUHJvbWlzZUNvbnN0cnVj
dG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDMDA4Q0RBMTg3MTI0QkIwMDk1NUMyNCAvKiBK
U1Byb21pc2VEZWZlcnJlZC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTkxOTQsNyArOTE1NCw2IEBA
CiAJCQkJMTQyODA4NzAxMDdFQzEzNDAwMTNFN0IyIC8qIEpTV3JhcHBlck9iamVjdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQ0ZEOEM5MjBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGQjU0Njc5MTRGNUM0NkIwMDJDMjk4OSAvKiBMYXp5T3Bl
cmFuZFZhbHVlUHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5NUFCODM0MjBEQTQzMjI1
MDBCQzgzRjMgLyogTGVnYWN5UHJvZmlsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ4RjIx
QjAxMDdFQzU0MTAwNDJFQzJDIC8qIExleGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQy
NzU3MTU5MTRBMjAwMDRDQjlGRiAvKiBMaW5rQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3RTJFQTZDMEZCNDYwQ0YwMDYwMUYwNiAvKiBMaXRlcmFsUGFyc2VyLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtOTI2Miw5ICs5MjIxLDYgQEAKIAkJCQkwRkU4MzQxNzFBNkVGOTdCMDBEMDQ4NDcg
LyogUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYz
MzhFMTQxQkYwMjc2QzAwMTNDODhGIC8qIEIzVmFsdWVLZXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEY5ODIwNjAxNkJGRTM4MTAwMjQwRDAyIC8qIFByZWNpc2VKdW1wVGFyZ2V0cy5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk5NTc0MkY2NTBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQk5NUNENDU3NjBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdl
bmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5NUFCODM1NjBEQTQzQzMwMDBCQzgzRjMg
LyogUHJvZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNzI5QUQxNjZBRDM1QzAw
MEY1QkEzIC8qIFByb2ZpbGVyQnl0ZWNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNzI5
QUUxNjZBRDM1QzAwMEY1QkEzIC8qIFByb2ZpbGVyQnl0ZWNvZGVzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGMTM5MTI5MTY3NzFDMzMwMDlDQ0IwNyAvKiBQcm9maWxlckJ5dGVjb2RlU2VxdWVu
Y2UuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVMaXN0Lmpzb24KaW5kZXggN2I0OWM2NC4uOTFhOTZjNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpAQCAtMTIzLDgg
KzEyMyw2IEBACiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF90aHJvdyIsICJsZW5ndGgiIDog
MiB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfdGhyb3dfc3RhdGljX2Vycm9yIiwgImxl
bmd0aCIgOiAzIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9kZWJ1ZyIsICJsZW5ndGgi
IDogMyB9LAotICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHJvZmlsZV93aWxsX2NhbGwiLCAi
bGVuZ3RoIiA6IDIgfSwKLSAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3Byb2ZpbGVfZGlkX2Nh
bGwiLCAibGVuZ3RoIiA6IDIgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2VuZCIsICJs
ZW5ndGgiIDogMiB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHJvZmlsZV90eXBlIiwg
Imxlbmd0aCIgOiA2IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wcm9maWxlX2NvbnRy
b2xfZmxvdyIsICJsZW5ndGgiIDogMiB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCA0YTE2NzJlLi43Y2YwZDU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaApAQCAtNjIsOCAr
NjIsNiBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQoCiAgICAgY2FzZSBvcF9n
ZXRfc2NvcGU6CiAgICAgY2FzZSBvcF90b190aGlzOgogICAgIGNhc2Ugb3BfY2hlY2tfdGR6Ogot
ICAgIGNhc2Ugb3BfcHJvZmlsZV93aWxsX2NhbGw6Ci0gICAgY2FzZSBvcF9wcm9maWxlX2RpZF9j
YWxsOgogICAgIGNhc2Ugb3BfcHJvZmlsZV90eXBlOgogICAgIGNhc2Ugb3BfdGhyb3c6CiAgICAg
Y2FzZSBvcF9lbmQ6CkBAIC0zMTIsOCArMzEwLDYgQEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVj
b2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBCeXRlY29kZUJhc2ljQmxvY2sqIGJsb2MK
ICAgICBjYXNlIG9wX2NvcHlfcmVzdDoKICAgICBjYXNlIG9wX3B1dF90b19zY29wZToKICAgICBj
YXNlIG9wX2VuZDoKLSAgICBjYXNlIG9wX3Byb2ZpbGVfd2lsbF9jYWxsOgotICAgIGNhc2Ugb3Bf
cHJvZmlsZV9kaWRfY2FsbDoKICAgICBjYXNlIG9wX3Rocm93OgogICAgIGNhc2Ugb3BfdGhyb3df
c3RhdGljX2Vycm9yOgogICAgIGNhc2Ugb3Bfc2F2ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggM2E4MDhjYi4uNDFlOGNmOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTE2NTQsMTYgKzE2
NTQsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgICAgICAgICAgb3V0LnBy
aW50ZigiJXMsICVkIiwgcmVnaXN0ZXJOYW1lKGNvbmRpdGlvbikuZGF0YSgpLCBsaW5lKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2Ugb3BfcHJvZmlsZV93aWxs
X2NhbGw6IHsKLSAgICAgICAgICAgIGludCBmdW5jdGlvbiA9ICgrK2l0KS0+dS5vcGVyYW5kOwot
ICAgICAgICAgICAgcHJpbnRMb2NhdGlvbk9wQW5kUmVnaXN0ZXJPcGVyYW5kKG91dCwgZXhlYywg
bG9jYXRpb24sIGl0LCAicHJvZmlsZV93aWxsX2NhbGwiLCBmdW5jdGlvbik7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjYXNlIG9wX3Byb2ZpbGVfZGlkX2NhbGw6IHsK
LSAgICAgICAgICAgIGludCBmdW5jdGlvbiA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAg
ICAgcHJpbnRMb2NhdGlvbk9wQW5kUmVnaXN0ZXJPcGVyYW5kKG91dCwgZXhlYywgbG9jYXRpb24s
IGl0LCAicHJvZmlsZV9kaWRfY2FsbCIsIGZ1bmN0aW9uKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZW5kOiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAo
KytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIHByaW50TG9jYXRpb25PcEFuZFJlZ2lzdGVy
T3BlcmFuZChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImVuZCIsIHIwKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGUuY3BwCmluZGV4IDY2Mjc4ODQuLjM0NjE5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRh
YmxlLmNwcApAQCAtNDksNyArNDksNyBAQCBjb25zdCBDbGFzc0luZm8gVW5saW5rZWRGdW5jdGlv
bkV4ZWN1dGFibGU6OnNfaW5mbyA9IHsgIlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYgogCiBzdGF0
aWMgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogZ2VuZXJhdGVVbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrKAogICAgIFZNJiB2bSwgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwKLSAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5k
IGtpbmQsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxlck1v
ZGUsCisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBEZWJ1Z2dlck1vZGUgZGVidWdn
ZXJNb2RlLAogICAgIFVubGlua2VkRnVuY3Rpb25LaW5kIGZ1bmN0aW9uS2luZCwgUGFyc2VyRXJy
b3ImIGVycm9yLCBTb3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlKQogewogICAgIEpTUGFyc2VyQnVp
bHRpbk1vZGUgYnVpbHRpbk1vZGUgPSBleGVjdXRhYmxlLT5pc0J1aWx0aW5GdW5jdGlvbigpID8g
SlNQYXJzZXJCdWlsdGluTW9kZTo6QnVpbHRpbiA6IEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1
aWx0aW47CkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2Nr
KiBnZW5lcmF0ZVVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2soCiAKICAgICBVbmxpbmtlZEZ1bmN0
aW9uQ29kZUJsb2NrKiByZXN1bHQgPSBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOjpjcmVhdGUo
JnZtLCBGdW5jdGlvbkNvZGUsIEV4ZWN1dGFibGVJbmZvKGZ1bmN0aW9uLT51c2VzRXZhbCgpLCBm
dW5jdGlvbi0+aXNTdHJpY3RNb2RlKCksIGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCwgZnVuY3Rp
b25LaW5kID09IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9uLCBleGVjdXRhYmxlLT5jb25zdHJ1Y3Rv
cktpbmQoKSwgZXhlY3V0YWJsZS0+c3VwZXJCaW5kaW5nKCksIHBhcnNlTW9kZSwgZXhlY3V0YWJs
ZS0+ZGVyaXZlZENvbnRleHRUeXBlKCksIGZhbHNlLCBpc0NsYXNzQ29udGV4dCwgRXZhbENvbnRl
eHRUeXBlOjpGdW5jdGlvbkV2YWxDb250ZXh0KSk7CiAKLSAgICBlcnJvciA9IEJ5dGVjb2RlR2Vu
ZXJhdG9yOjpnZW5lcmF0ZSh2bSwgZnVuY3Rpb24uZ2V0KCksIHJlc3VsdCwgZGVidWdnZXJNb2Rl
LCBwcm9maWxlck1vZGUsIGV4ZWN1dGFibGUtPnBhcmVudFNjb3BlVERaVmFyaWFibGVzKCkpOwor
ICAgIGVycm9yID0gQnl0ZWNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlKHZtLCBmdW5jdGlvbi5nZXQo
KSwgcmVzdWx0LCBkZWJ1Z2dlck1vZGUsIGV4ZWN1dGFibGUtPnBhcmVudFNjb3BlVERaVmFyaWFi
bGVzKCkpOwogCiAgICAgaWYgKGVycm9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CkBAIC0xOTEsNyArMTkxLDcgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIFVubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpmcm9tR2xvYmFsQ29kZSgKIAogVW5saW5rZWRGdW5jdGlv
bkNvZGVCbG9jayogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OnVubGlua2VkQ29kZUJsb2Nr
Rm9yKAogICAgIFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBDb2RlU3BlY2lhbGl6
YXRpb25LaW5kIHNwZWNpYWxpemF0aW9uS2luZCwgCi0gICAgRGVidWdnZXJNb2RlIGRlYnVnZ2Vy
TW9kZSwgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBTb3Vy
Y2VQYXJzZU1vZGUgcGFyc2VNb2RlKQorICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFBh
cnNlckVycm9yJiBlcnJvciwgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSkKIHsKICAgICBzd2l0
Y2ggKHNwZWNpYWxpemF0aW9uS2luZCkgewogICAgIGNhc2UgQ29kZUZvckNhbGw6CkBAIC0yMDUs
NyArMjA1LDcgQEAgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGU6OnVubGlua2VkQ29kZUJsb2NrRm9yKAogICAgIH0KIAogICAgIFVubGlua2VkRnVu
Y3Rpb25Db2RlQmxvY2sqIHJlc3VsdCA9IGdlbmVyYXRlVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9j
aygKLSAgICAgICAgdm0sIHRoaXMsIHNvdXJjZSwgc3BlY2lhbGl6YXRpb25LaW5kLCBkZWJ1Z2dl
ck1vZGUsIHByb2ZpbGVyTW9kZSwgCisgICAgICAgIHZtLCB0aGlzLCBzb3VyY2UsIHNwZWNpYWxp
emF0aW9uS2luZCwgZGVidWdnZXJNb2RlLCAKICAgICAgICAgaXNCdWlsdGluRnVuY3Rpb24oKSA/
IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9uIDogVW5saW5rZWROb3JtYWxGdW5jdGlvbiwgCiAgICAg
ICAgIGVycm9yLCBwYXJzZU1vZGUpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAppbmRleCBi
MzU5MTk0Li42NDZiMGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAtMTAxLDcgKzEwMSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEludmFsaWRUeXBlUHJvZmlsaW5nT2Zmc2V0cygpOwog
CiAgICAgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogdW5saW5rZWRDb2RlQmxvY2tGb3IoCi0g
ICAgICAgIFZNJiwgY29uc3QgU291cmNlQ29kZSYsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIERl
YnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCAKKyAgICAgICAgVk0mLCBjb25zdCBTb3VyY2VDb2Rl
JiwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCwgRGVidWdnZXJNb2RlLAogICAgICAgICBQYXJzZXJF
cnJvciYsIFNvdXJjZVBhcnNlTW9kZSk7CiAKICAgICBzdGF0aWMgVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGUqIGZyb21HbG9iYWxDb2RlKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRleCBlYzExMGY5Li45
NGYyMjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMTQ3LDkgKzE0Nyw4IEBAIFBhcnNlckVycm9y
IEJ5dGVjb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZSgpCiAgICAgcmV0dXJuIFBhcnNlckVycm9yKFBh
cnNlckVycm9yOjpFcnJvck5vbmUpOwogfQogCi1CeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVH
ZW5lcmF0b3IoVk0mIHZtLCBQcm9ncmFtTm9kZSogcHJvZ3JhbU5vZGUsIFVubGlua2VkUHJvZ3Jh
bUNvZGVCbG9jayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxl
ck1vZGUgcHJvZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiBwYXJlbnRTY29w
ZVREWlZhcmlhYmxlcykKK0J5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYg
dm0sIFByb2dyYW1Ob2RlKiBwcm9ncmFtTm9kZSwgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiBj
b2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJv
bm1lbnQqIHBhcmVudFNjb3BlVERaVmFyaWFibGVzKQogICAgIDogbV9zaG91bGRFbWl0RGVidWdI
b29rcyhPcHRpb25zOjpmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgZGVidWdn
ZXJNb2RlID09IERlYnVnZ2VyT24pCi0gICAgLCBtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MoT3B0
aW9uczo6Zm9yY2VQcm9maWxlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IHByb2ZpbGVyTW9kZSA9
PSBQcm9maWxlck9uKQogICAgICwgbV9zY29wZU5vZGUocHJvZ3JhbU5vZGUpCiAgICAgLCBtX2Nv
ZGVCbG9jayh2bSwgY29kZUJsb2NrKQogICAgICwgbV90aGlzUmVnaXN0ZXIoQ2FsbEZyYW1lOjp0
aGlzQXJndW1lbnRPZmZzZXQoKSkKQEAgLTE5Myw5ICsxOTIsOCBAQCBCeXRlY29kZUdlbmVyYXRv
cjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBQcm9ncmFtTm9kZSogcHJvZ3JhbU5vZGUsIFVu
bGlua2VkUAogICAgIH0KIH0KIAotQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9y
KFZNJiB2bSwgRnVuY3Rpb25Ob2RlKiBmdW5jdGlvbk5vZGUsIFVubGlua2VkRnVuY3Rpb25Db2Rl
QmxvY2sqIGNvZGVCbG9jaywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2Rl
IHByb2ZpbGVyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogcGFyZW50U2NvcGVURFpW
YXJpYWJsZXMpCitCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBG
dW5jdGlvbk5vZGUqIGZ1bmN0aW9uTm9kZSwgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogY29k
ZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25t
ZW50KiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcykKICAgICA6IG1fc2hvdWxkRW1pdERlYnVnSG9v
a3MoT3B0aW9uczo6Zm9yY2VEZWJ1Z2dlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IGRlYnVnZ2Vy
TW9kZSA9PSBEZWJ1Z2dlck9uKQotICAgICwgbV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKE9wdGlv
bnM6OmZvcmNlUHJvZmlsZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBwcm9maWxlck1vZGUgPT0g
UHJvZmlsZXJPbikKICAgICAsIG1fc2NvcGVOb2RlKGZ1bmN0aW9uTm9kZSkKICAgICAsIG1fY29k
ZUJsb2NrKHZtLCBjb2RlQmxvY2spCiAgICAgLCBtX2NvZGVUeXBlKEZ1bmN0aW9uQ29kZSkKQEAg
LTIwNyw3ICsyMDUsNyBAQCBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0m
IHZtLCBGdW5jdGlvbk5vZGUqIGZ1bmN0aW9uTm9kZSwgVW5saW5rZQogICAgIC8vIG9wX3dpbGxf
Y2FsbCAvIG9wX2RpZF9jYWxsIHBhaXJzIGJlZm9yZSBhbmQgYWZ0ZXIgYSBjYWxsLCB3aGljaCBh
cmUgbm90CiAgICAgLy8gY29tcGF0aWJsZSB3aXRoIHRhaWwgY2FsbHMgKHdlIGhhdmUgbm8gd2F5
IG9mIGVtaXR0aW5nIG9wX2RpZF9jYWxsKS4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4ODE5Ci0gICAgLCBtX2luVGFpbFBvc2l0aW9uKE9wdGlvbnM6
OnVzZVRhaWxDYWxscygpICYmICFpc0NvbnN0cnVjdG9yKCkgJiYgY29uc3RydWN0b3JLaW5kKCkg
PT0gQ29uc3RydWN0b3JLaW5kOjpOb25lICYmIGlzU3RyaWN0TW9kZSgpICYmICFtX3Nob3VsZEVt
aXRQcm9maWxlSG9va3MpCisgICAgLCBtX2luVGFpbFBvc2l0aW9uKE9wdGlvbnM6OnVzZVRhaWxD
YWxscygpICYmICFpc0NvbnN0cnVjdG9yKCkgJiYgY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3Ry
dWN0b3JLaW5kOjpOb25lICYmIGlzU3RyaWN0TW9kZSgpKQogICAgICwgbV9uZWVkc1RvVXBkYXRl
QXJyb3dGdW5jdGlvbkNvbnRleHQoZnVuY3Rpb25Ob2RlLT51c2VzQXJyb3dGdW5jdGlvbigpIHx8
IGZ1bmN0aW9uTm9kZS0+dXNlc0V2YWwoKSkKICAgICAsIG1fZGVyaXZlZENvbnRleHRUeXBlKGNv
ZGVCbG9jay0+ZGVyaXZlZENvbnRleHRUeXBlKCkpCiB7CkBAIC01OTQsOSArNTkyLDggQEAgQnl0
ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRnVuY3Rpb25Ob2RlKiBm
dW5jdGlvbk5vZGUsIFVubGlua2UKICAgICBwdXNoTGV4aWNhbFNjb3BlKG1fc2NvcGVOb2RlLCBU
RFpDaGVja09wdGltaXphdGlvbjo6T3B0aW1pemUsIE5lc3RlZFNjb3BlVHlwZTo6SXNOb3ROZXN0
ZWQsIG51bGxwdHIsIHNob3VsZEluaXRpYWxpemVCbG9ja1Njb3BlZEZ1bmN0aW9ucyk7CiB9CiAK
LUJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIEV2YWxOb2RlKiBl
dmFsTm9kZSwgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBjb2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBk
ZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52
aXJvbm1lbnQqIHBhcmVudFNjb3BlVERaVmFyaWFibGVzKQorQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5
dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRXZhbE5vZGUqIGV2YWxOb2RlLCBVbmxpbmtlZEV2YWxD
b2RlQmxvY2sqIGNvZGVCbG9jaywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgY29uc3QgVmFy
aWFibGVFbnZpcm9ubWVudCogcGFyZW50U2NvcGVURFpWYXJpYWJsZXMpCiAgICAgOiBtX3Nob3Vs
ZEVtaXREZWJ1Z0hvb2tzKE9wdGlvbnM6OmZvcmNlRGVidWdnZXJCeXRlY29kZUdlbmVyYXRpb24o
KSB8fCBkZWJ1Z2dlck1vZGUgPT0gRGVidWdnZXJPbikKLSAgICAsIG1fc2hvdWxkRW1pdFByb2Zp
bGVIb29rcyhPcHRpb25zOjpmb3JjZVByb2ZpbGVyQnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgcHJv
ZmlsZXJNb2RlID09IFByb2ZpbGVyT24pCiAgICAgLCBtX3Njb3BlTm9kZShldmFsTm9kZSkKICAg
ICAsIG1fY29kZUJsb2NrKHZtLCBjb2RlQmxvY2spCiAgICAgLCBtX3RoaXNSZWdpc3RlcihDYWxs
RnJhbWU6OnRoaXNBcmd1bWVudE9mZnNldCgpKQpAQCAtNjUyLDkgKzY0OSw4IEBAIEJ5dGVjb2Rl
R2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIEV2YWxOb2RlKiBldmFsTm9kZSwg
VW5saW5rZWRFdmFsQ29kCiAgICAgcHVzaExleGljYWxTY29wZShtX3Njb3BlTm9kZSwgVERaQ2hl
Y2tPcHRpbWl6YXRpb246Ok9wdGltaXplLCBOZXN0ZWRTY29wZVR5cGU6OklzTm90TmVzdGVkLCBu
dWxscHRyLCBzaG91bGRJbml0aWFsaXplQmxvY2tTY29wZWRGdW5jdGlvbnMpOwogfQogCi1CeXRl
Y29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBNb2R1bGVQcm9ncmFtTm9k
ZSogbW9kdWxlUHJvZ3JhbU5vZGUsIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayogY29k
ZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUgcHJvZmlsZXJN
b2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcykK
K0J5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIE1vZHVsZVByb2dy
YW1Ob2RlKiBtb2R1bGVQcm9ncmFtTm9kZSwgVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52
aXJvbm1lbnQqIHBhcmVudFNjb3BlVERaVmFyaWFibGVzKQogICAgIDogbV9zaG91bGRFbWl0RGVi
dWdIb29rcyhPcHRpb25zOjpmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgZGVi
dWdnZXJNb2RlID09IERlYnVnZ2VyT24pCi0gICAgLCBtX3Nob3VsZEVtaXRQcm9maWxlSG9va3Mo
T3B0aW9uczo6Zm9yY2VQcm9maWxlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IHByb2ZpbGVyTW9k
ZSA9PSBQcm9maWxlck9uKQogICAgICwgbV9zY29wZU5vZGUobW9kdWxlUHJvZ3JhbU5vZGUpCiAg
ICAgLCBtX2NvZGVCbG9jayh2bSwgY29kZUJsb2NrKQogICAgICwgbV90aGlzUmVnaXN0ZXIoQ2Fs
bEZyYW1lOjp0aGlzQXJndW1lbnRPZmZzZXQoKSkKQEAgLTMwNTMsOSArMzA0OSw2IEBAIFJlZ2lz
dGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgUmVn
aXN0ZXJJRCogZHN0LCBSZWdpCiAgICAgQVNTRVJUKG9wY29kZUlEID09IG9wX2NhbGwgfHwgb3Bj
b2RlSUQgPT0gb3BfY2FsbF9ldmFsIHx8IG9wY29kZUlEID09IG9wX3RhaWxfY2FsbCk7CiAgICAg
QVNTRVJUKGZ1bmMtPnJlZkNvdW50KCkpOwogICAgIAotICAgIGlmIChtX3Nob3VsZEVtaXRQcm9m
aWxlSG9va3MpCi0gICAgICAgIGVtaXRNb3ZlKGNhbGxBcmd1bWVudHMucHJvZmlsZUhvb2tSZWdp
c3RlcigpLCBmdW5jKTsKLQogICAgIC8vIEdlbmVyYXRlIGNvZGUgZm9yIGFyZ3VtZW50cy4KICAg
ICB1bnNpZ25lZCBhcmd1bWVudCA9IDA7CiAgICAgaWYgKGNhbGxBcmd1bWVudHMuYXJndW1lbnRz
Tm9kZSgpKSB7CkBAIC0zMDY2LDcgKzMwNTksNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdENhbGwoT3Bjb2RlSUQgb3Bjb2RlSUQsIFJlZ2lzdGVySUQqIGRzdCwgUmVnaQog
ICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGFyZ3VtZW50UmVnaXN0ZXI7CiAgICAgICAg
ICAgICBhcmd1bWVudFJlZ2lzdGVyID0gZXhwcmVzc2lvbi0+ZW1pdEJ5dGVjb2RlKCp0aGlzLCBj
YWxsQXJndW1lbnRzLmFyZ3VtZW50UmVnaXN0ZXIoMCkpOwogICAgICAgICAgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IHRoaXNSZWdpc3RlciA9IGVtaXRNb3ZlKG5ld1RlbXBvcmFyeSgpLCBjYWxsQXJn
dW1lbnRzLnRoaXNSZWdpc3RlcigpKTsKLSAgICAgICAgICAgIHJldHVybiBlbWl0Q2FsbFZhcmFy
Z3Mob3Bjb2RlSUQgPT0gb3BfdGFpbF9jYWxsID8gb3BfdGFpbF9jYWxsX3ZhcmFyZ3MgOiBvcF9j
YWxsX3ZhcmFyZ3MsIGRzdCwgZnVuYywgY2FsbEFyZ3VtZW50cy50aGlzUmVnaXN0ZXIoKSwgYXJn
dW1lbnRSZWdpc3Rlci5nZXQoKSwgbmV3VGVtcG9yYXJ5KCksIDAsIGNhbGxBcmd1bWVudHMucHJv
ZmlsZUhvb2tSZWdpc3RlcigpLCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOworICAgICAg
ICAgICAgcmV0dXJuIGVtaXRDYWxsVmFyYXJncyhvcGNvZGVJRCA9PSBvcF90YWlsX2NhbGwgPyBv
cF90YWlsX2NhbGxfdmFyYXJncyA6IG9wX2NhbGxfdmFyYXJncywgZHN0LCBmdW5jLCBjYWxsQXJn
dW1lbnRzLnRoaXNSZWdpc3RlcigpLCBhcmd1bWVudFJlZ2lzdGVyLmdldCgpLCBuZXdUZW1wb3Jh
cnkoKSwgMCwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKICAgICAgICAgfQogICAgICAg
ICBmb3IgKDsgbjsgbiA9IG4tPm1fbmV4dCkKICAgICAgICAgICAgIGVtaXROb2RlKGNhbGxBcmd1
bWVudHMuYXJndW1lbnRSZWdpc3Rlcihhcmd1bWVudCsrKSwgbik7CkBAIC0zMDc3LDExICszMDcw
LDYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsKE9wY29kZUlEIG9w
Y29kZUlELCBSZWdpc3RlcklEKiBkc3QsIFJlZ2kKICAgICBmb3IgKGludCBpID0gMDsgaSA8IEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7ICsraSkKICAgICAgICAgY2FsbEZyYW1lLmFwcGVu
ZChuZXdUZW1wb3JhcnkoKSk7CiAKLSAgICBpZiAobV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7
Ci0gICAgICAgIGVtaXRPcGNvZGUob3BfcHJvZmlsZV93aWxsX2NhbGwpOwotICAgICAgICBpbnN0
cnVjdGlvbnMoKS5hcHBlbmQoY2FsbEFyZ3VtZW50cy5wcm9maWxlSG9va1JlZ2lzdGVyKCktPmlu
ZGV4KCkpOwotICAgIH0KLQogICAgIGVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCwgZGl2b3RTdGFy
dCwgZGl2b3RFbmQpOwogCiAgICAgUmVmUHRyPExhYmVsPiBkb25lID0gbmV3TGFiZWwoKTsKQEAg
LTMxMDcsMzcgKzMwOTUsMjYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRD
YWxsKE9wY29kZUlEIG9wY29kZUlELCBSZWdpc3RlcklEKiBkc3QsIFJlZ2kKICAgICBpZiAoZXhw
ZWN0ZWRGdW5jdGlvbiAhPSBOb0V4cGVjdGVkRnVuY3Rpb24pCiAgICAgICAgIGVtaXRMYWJlbChk
b25lLmdldCgpKTsKIAotICAgIGlmIChtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MpIHsKLSAgICAg
ICAgZW1pdE9wY29kZShvcF9wcm9maWxlX2RpZF9jYWxsKTsKLSAgICAgICAgaW5zdHJ1Y3Rpb25z
KCkuYXBwZW5kKGNhbGxBcmd1bWVudHMucHJvZmlsZUhvb2tSZWdpc3RlcigpLT5pbmRleCgpKTsK
LSAgICB9Ci0KICAgICByZXR1cm4gZHN0OwogfQogCi1SZWdpc3RlcklEKiBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdENhbGxWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywg
UmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVy
SUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3Rl
cklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQpCitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzKFJl
Z2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVy
LCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBp
bnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQpCiB7Ci0gICAgcmV0dXJuIGVtaXRDYWxsVmFyYXJncyhvcF9jYWxsX3ZhcmFyZ3MsIGRz
dCwgZnVuYywgdGhpc1JlZ2lzdGVyLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyLCBmaXJz
dFZhckFyZ09mZnNldCwgcHJvZmlsZUhvb2tSZWdpc3RlciwgZGl2b3QsIGRpdm90U3RhcnQsIGRp
dm90RW5kKTsKKyAgICByZXR1cm4gZW1pdENhbGxWYXJhcmdzKG9wX2NhbGxfdmFyYXJncywgZHN0
LCBmdW5jLCB0aGlzUmVnaXN0ZXIsIGFyZ3VtZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIsIGZpcnN0
VmFyQXJnT2Zmc2V0LCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOwogfQogCi1SZWdpc3Rl
cklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRpb24oUmVn
aXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIs
IFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGlu
dDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIFJlZ2lzdGVySUQqIHByb2ZpbGVIb29rUmVnaXN0ZXIs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKK1JlZ2lzdGVySUQqIEJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlvbihSZWdpc3RlcklEKiBk
c3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJ
RCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJz
dFZhckFyZ09mZnNldCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQogewot
ICAgIHJldHVybiBlbWl0Q2FsbFZhcmFyZ3MobV9pblRhaWxQb3NpdGlvbiA/IG9wX3RhaWxfY2Fs
bF92YXJhcmdzIDogb3BfY2FsbF92YXJhcmdzLCBkc3QsIGZ1bmMsIHRoaXNSZWdpc3RlciwgYXJn
dW1lbnRzLCBmaXJzdEZyZWVSZWdpc3RlciwgZmlyc3RWYXJBcmdPZmZzZXQsIHByb2ZpbGVIb29r
UmVnaXN0ZXIsIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7CisgICAgcmV0dXJuIGVtaXRD
YWxsVmFyYXJncyhtX2luVGFpbFBvc2l0aW9uID8gb3BfdGFpbF9jYWxsX3ZhcmFyZ3MgOiBvcF9j
YWxsX3ZhcmFyZ3MsIGRzdCwgZnVuYywgdGhpc1JlZ2lzdGVyLCBhcmd1bWVudHMsIGZpcnN0RnJl
ZVJlZ2lzdGVyLCBmaXJzdFZhckFyZ09mZnNldCwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5k
KTsKIH0KIAotUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3RWYXJh
cmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1Jl
Z2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lz
dGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1Jl
Z2lzdGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCitSZWdpc3RlcklE
KiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVjdFZhcmFyZ3MoUmVnaXN0ZXJJRCogZHN0
LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQq
IGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RW
YXJBcmdPZmZzZXQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKIHsKLSAg
ICByZXR1cm4gZW1pdENhbGxWYXJhcmdzKG9wX2NvbnN0cnVjdF92YXJhcmdzLCBkc3QsIGZ1bmMs
IHRoaXNSZWdpc3RlciwgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdpc3RlciwgZmlyc3RWYXJBcmdP
ZmZzZXQsIHByb2ZpbGVIb29rUmVnaXN0ZXIsIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7
CisgICAgcmV0dXJuIGVtaXRDYWxsVmFyYXJncyhvcF9jb25zdHJ1Y3RfdmFyYXJncywgZHN0LCBm
dW5jLCB0aGlzUmVnaXN0ZXIsIGFyZ3VtZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIsIGZpcnN0VmFy
QXJnT2Zmc2V0LCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOwogfQogICAgIAotUmVnaXN0
ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsVmFyYXJncyhPcGNvZGVJRCBvcGNvZGUs
IFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lz
dGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVy
LCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lz
dGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBk
aXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCitSZWdpc3RlcklEKiBC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzKE9wY29kZUlEIG9wY29kZSwgUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJl
Z2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMy
X3QgZmlyc3RWYXJBcmdPZmZzZXQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVu
ZCkKIHsKLSAgICBpZiAobV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7Ci0gICAgICAgIGVtaXRN
b3ZlKHByb2ZpbGVIb29rUmVnaXN0ZXIsIGZ1bmMpOwotICAgICAgICBlbWl0T3Bjb2RlKG9wX3By
b2ZpbGVfd2lsbF9jYWxsKTsKLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHByb2ZpbGVI
b29rUmVnaXN0ZXItPmluZGV4KCkpOwotICAgIH0KLSAgICAKICAgICBlbWl0RXhwcmVzc2lvbklu
Zm8oZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKIAogICAgIGlmIChvcGNvZGUgPT0gb3Bf
dGFpbF9jYWxsX3ZhcmFyZ3MpCkBAIC0zMTU1LDEwICszMTMyLDYgQEAgUmVnaXN0ZXJJRCogQnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsVmFyYXJncyhPcGNvZGVJRCBvcGNvZGUsIFJlZ2lzdGVy
SUQqIGRzdCwKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZmlyc3RWYXJBcmdPZmZzZXQpOwog
ICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhcnJheVByb2ZpbGUpOwogICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZChwcm9maWxlKTsKLSAgICBpZiAobV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7
Ci0gICAgICAgIGVtaXRPcGNvZGUob3BfcHJvZmlsZV9kaWRfY2FsbCk7Ci0gICAgICAgIGluc3Ry
dWN0aW9ucygpLmFwcGVuZChwcm9maWxlSG9va1JlZ2lzdGVyLT5pbmRleCgpKTsKLSAgICB9CiAg
ICAgcmV0dXJuIGRzdDsKIH0KIApAQCAtMzI0OSw5ICszMjIyLDYgQEAgUmVnaXN0ZXJJRCogQnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3QoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBmdW5jLAogewogICAgIEFTU0VSVChmdW5jLT5yZWZDb3VudCgpKTsKIAotICAgIGlmIChtX3No
b3VsZEVtaXRQcm9maWxlSG9va3MpCi0gICAgICAgIGVtaXRNb3ZlKGNhbGxBcmd1bWVudHMucHJv
ZmlsZUhvb2tSZWdpc3RlcigpLCBmdW5jKTsKLQogICAgIC8vIEdlbmVyYXRlIGNvZGUgZm9yIGFy
Z3VtZW50cy4KICAgICB1bnNpZ25lZCBhcmd1bWVudCA9IDA7CiAgICAgaWYgKEFyZ3VtZW50c05v
ZGUqIGFyZ3VtZW50c05vZGUgPSBjYWxsQXJndW1lbnRzLmFyZ3VtZW50c05vZGUoKSkgewpAQCAt
MzI2MiwxOCArMzIzMiwxMyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENv
bnN0cnVjdChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsCiAgICAgICAgICAgICBh
dXRvIGV4cHJlc3Npb24gPSBzdGF0aWNfY2FzdDxTcHJlYWRFeHByZXNzaW9uTm9kZSo+KG4tPm1f
ZXhwciktPmV4cHJlc3Npb24oKTsKICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBhcmd1
bWVudFJlZ2lzdGVyOwogICAgICAgICAgICAgYXJndW1lbnRSZWdpc3RlciA9IGV4cHJlc3Npb24t
PmVtaXRCeXRlY29kZSgqdGhpcywgY2FsbEFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVyKDApKTsK
LSAgICAgICAgICAgIHJldHVybiBlbWl0Q29uc3RydWN0VmFyYXJncyhkc3QsIGZ1bmMsIGNhbGxB
cmd1bWVudHMudGhpc1JlZ2lzdGVyKCksIGFyZ3VtZW50UmVnaXN0ZXIuZ2V0KCksIG5ld1RlbXBv
cmFyeSgpLCAwLCBjYWxsQXJndW1lbnRzLnByb2ZpbGVIb29rUmVnaXN0ZXIoKSwgZGl2b3QsIGRp
dm90U3RhcnQsIGRpdm90RW5kKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0Q29uc3RydWN0VmFy
YXJncyhkc3QsIGZ1bmMsIGNhbGxBcmd1bWVudHMudGhpc1JlZ2lzdGVyKCksIGFyZ3VtZW50UmVn
aXN0ZXIuZ2V0KCksIG5ld1RlbXBvcmFyeSgpLCAwLCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RF
bmQpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBmb3IgKEFyZ3VtZW50TGlzdE5vZGUq
IG4gPSBhcmd1bWVudHNOb2RlLT5tX2xpc3ROb2RlOyBuOyBuID0gbi0+bV9uZXh0KQogICAgICAg
ICAgICAgZW1pdE5vZGUoY2FsbEFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVyKGFyZ3VtZW50Kysp
LCBuKTsKICAgICB9CiAKLSAgICBpZiAobV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7Ci0gICAg
ICAgIGVtaXRPcGNvZGUob3BfcHJvZmlsZV93aWxsX2NhbGwpOwotICAgICAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoY2FsbEFyZ3VtZW50cy5wcm9maWxlSG9va1JlZ2lzdGVyKCktPmluZGV4KCkp
OwotICAgIH0KLQogICAgIC8vIFJlc2VydmUgc3BhY2UgZm9yIGNhbGwgZnJhbWUuCiAgICAgVmVj
dG9yPFJlZlB0cjxSZWdpc3RlcklEPiwgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSwgVW5z
YWZlVmVjdG9yT3ZlcmZsb3c+IGNhbGxGcmFtZTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IEpT
U3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7ICsraSkKQEAgLTMyOTgsMTEgKzMyNjMsNiBAQCBS
ZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVjdChSZWdpc3RlcklEKiBk
c3QsIFJlZ2lzdGVySUQqIGZ1bmMsCiAgICAgaWYgKGV4cGVjdGVkRnVuY3Rpb24gIT0gTm9FeHBl
Y3RlZEZ1bmN0aW9uKQogICAgICAgICBlbWl0TGFiZWwoZG9uZS5nZXQoKSk7CiAKLSAgICBpZiAo
bV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7Ci0gICAgICAgIGVtaXRPcGNvZGUob3BfcHJvZmls
ZV9kaWRfY2FsbCk7Ci0gICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChjYWxsQXJndW1lbnRz
LnByb2ZpbGVIb29rUmVnaXN0ZXIoKS0+aW5kZXgoKSk7Ci0gICAgfQotCiAgICAgcmV0dXJuIGRz
dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDk5YmM3OTcuLjIyY2U0YTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgK
QEAgLTc1LDExICs3NSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlcklEKiBh
cmd1bWVudFJlZ2lzdGVyKHVuc2lnbmVkIGkpIHsgcmV0dXJuIG1fYXJndltpICsgMV0uZ2V0KCk7
IH0KICAgICAgICAgdW5zaWduZWQgc3RhY2tPZmZzZXQoKSB7IHJldHVybiAtbV9hcmd2WzBdLT5p
bmRleCgpICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsgfQogICAgICAgICB1bnNpZ25l
ZCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygpIHsgcmV0dXJuIG1fYXJndi5zaXplKCkgLSBt
X3BhZGRpbmc7IH0KLSAgICAgICAgUmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tSZWdpc3RlcigpIHsg
cmV0dXJuIG1fcHJvZmlsZUhvb2tSZWdpc3Rlci5nZXQoKTsgfQogICAgICAgICBBcmd1bWVudHNO
b2RlKiBhcmd1bWVudHNOb2RlKCkgeyByZXR1cm4gbV9hcmd1bWVudHNOb2RlOyB9CiAKICAgICBw
cml2YXRlOgotICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gbV9wcm9maWxlSG9va1JlZ2lzdGVy
OwogICAgICAgICBBcmd1bWVudHNOb2RlKiBtX2FyZ3VtZW50c05vZGU7CiAgICAgICAgIFZlY3Rv
cjxSZWZQdHI8UmVnaXN0ZXJJRD4sIDgsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiBtX2FyZ3Y7CiAg
ICAgICAgIHVuc2lnbmVkIG1fcGFkZGluZzsKQEAgLTI2OSwxMCArMjY3LDEwIEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBEZWNsYXJhdGlvblN0YWNrczo6
RnVuY3Rpb25TdGFjayBGdW5jdGlvblN0YWNrOwogCi0gICAgICAgIEJ5dGVjb2RlR2VuZXJhdG9y
KFZNJiwgUHJvZ3JhbU5vZGUqLCBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqLCBEZWJ1Z2dlck1v
ZGUsIFByb2ZpbGVyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOwotICAgICAgICBC
eXRlY29kZUdlbmVyYXRvcihWTSYsIEZ1bmN0aW9uTm9kZSosIFVubGlua2VkRnVuY3Rpb25Db2Rl
QmxvY2sqLCBEZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9u
bWVudCopOwotICAgICAgICBCeXRlY29kZUdlbmVyYXRvcihWTSYsIEV2YWxOb2RlKiwgVW5saW5r
ZWRFdmFsQ29kZUJsb2NrKiwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUsIGNvbnN0IFZhcmlh
YmxlRW52aXJvbm1lbnQqKTsKLSAgICAgICAgQnl0ZWNvZGVHZW5lcmF0b3IoVk0mLCBNb2R1bGVQ
cm9ncmFtTm9kZSosIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayosIERlYnVnZ2VyTW9k
ZSwgUHJvZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7CisgICAgICAgIEJ5
dGVjb2RlR2VuZXJhdG9yKFZNJiwgUHJvZ3JhbU5vZGUqLCBVbmxpbmtlZFByb2dyYW1Db2RlQmxv
Y2sqLCBEZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKKyAgICAgICAg
Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mLCBGdW5jdGlvbk5vZGUqLCBVbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrKiwgRGVidWdnZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7CisgICAg
ICAgIEJ5dGVjb2RlR2VuZXJhdG9yKFZNJiwgRXZhbE5vZGUqLCBVbmxpbmtlZEV2YWxDb2RlQmxv
Y2sqLCBEZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKKyAgICAgICAg
Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mLCBNb2R1bGVQcm9ncmFtTm9kZSosIFVubGlua2VkTW9kdWxl
UHJvZ3JhbUNvZGVCbG9jayosIERlYnVnZ2VyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVu
dCopOwogCiAgICAgICAgIH5CeXRlY29kZUdlbmVyYXRvcigpOwogICAgICAgICAKQEAgLTU3Nyw4
ICs1NzUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENhbGwo
UmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBFeHBlY3RlZEZ1bmN0aW9uLCBDYWxs
QXJndW1lbnRzJiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKICAgICAg
ICAgUmVnaXN0ZXJJRCogZW1pdENhbGxJblRhaWxQb3NpdGlvbihSZWdpc3RlcklEKiBkc3QsIFJl
Z2lzdGVySUQqIGZ1bmMsIEV4cGVjdGVkRnVuY3Rpb24sIENhbGxBcmd1bWVudHMmLCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
Q2FsbEV2YWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBDYWxsQXJndW1lbnRz
JiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKLSAgICAgICAgUmVnaXN0
ZXJJRCogZW1pdENhbGxWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywg
UmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVy
SUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3Rl
cklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQpOwotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlv
bihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdp
c3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3Rl
ciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgUmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tSZWdp
c3RlciwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKKyAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdENhbGxWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVu
YywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lz
dGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlvbihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQq
IGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBS
ZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RT
dGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgICAgICBlbnVtIFBy
b3BlcnR5RGVzY3JpcHRvck9wdGlvbiB7CiAgICAgICAgICAgICBQcm9wZXJ0eUNvbmZpZ3VyYWJs
ZSA9IDEsCkBAIC03MDQsNyArNzAyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgQ29k
ZVR5cGUgY29kZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGVUeXBlOyB9CiAKLSAgICAgICAg
Ym9vbCBzaG91bGRFbWl0UHJvZmlsZUhvb2tzKCkgeyByZXR1cm4gbV9zaG91bGRFbWl0UHJvZmls
ZUhvb2tzOyB9CiAgICAgICAgIGJvb2wgc2hvdWxkRW1pdERlYnVnSG9va3MoKSB7IHJldHVybiBt
X3Nob3VsZEVtaXREZWJ1Z0hvb2tzOyB9CiAgICAgICAgIAogICAgICAgICBib29sIGlzU3RyaWN0
TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZUJsb2NrLT5pc1N0cmljdE1vZGUoKTsgfQpAQCAt
ODQ5LDggKzg0Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZvaWQgZ2V0VmFyaWFi
bGVzVW5kZXJURFooVmFyaWFibGVFbnZpcm9ubWVudCYpOwogCi0gICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRDb25zdHJ1Y3RWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywg
UmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVy
SUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3Rl
cklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3RFbmQpOwotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2FsbFZhcmFyZ3MoT3Bjb2RlSUQsIFJl
Z2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVy
LCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBp
bnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVy
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0Q29uc3RydWN0VmFyYXJncyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1
bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdp
c3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFy
dCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKKyAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdENhbGxWYXJhcmdzKE9wY29kZUlELCBSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1
bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdp
c3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFy
dCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKICAgICAgICAgCiAgICAgICAgIHZv
aWQgZW1pdExvZ1NoYWRvd0NoaWNrZW5Qcm9sb2d1ZUlmTmVjZXNzYXJ5KCk7CiAgICAgICAgIHZv
aWQgZW1pdExvZ1NoYWRvd0NoaWNrZW5UYWlsSWZOZWNlc3NhcnkoKTsKQEAgLTg3Miw3ICs4Njks
NiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgVmVjdG9yPFVubGlua2VkSW5zdHJ1Y3Rpb24s
IDAsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiBtX2luc3RydWN0aW9uczsKIAogICAgICAgICBib29s
IG1fc2hvdWxkRW1pdERlYnVnSG9va3M7Ci0gICAgICAgIGJvb2wgbV9zaG91bGRFbWl0UHJvZmls
ZUhvb2tzOwogCiAgICAgICAgIHN0cnVjdCBTeW1ib2xUYWJsZVN0YWNrRW50cnkgewogICAgICAg
ICAgICAgU3ltYm9sVGFibGUqIG1fc3ltYm9sVGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggZjI1MzBlZS4uM2Ji
ZDJmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9k
ZXNDb2RlZ2VuLmNwcApAQCAtNzA3LDkgKzcwNyw2IEBAIENhbGxBcmd1bWVudHM6OkNhbGxBcmd1
bWVudHMoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgQXJndW1lbnRzTm9kZSogYXJndW1l
CiAgICAgOiBtX2FyZ3VtZW50c05vZGUoYXJndW1lbnRzTm9kZSkKICAgICAsIG1fcGFkZGluZygw
KQogewotICAgIGlmIChnZW5lcmF0b3Iuc2hvdWxkRW1pdFByb2ZpbGVIb29rcygpKQotICAgICAg
ICBtX3Byb2ZpbGVIb29rUmVnaXN0ZXIgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7Ci0KICAg
ICBzaXplX3QgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPSAxICsgYWRkaXRpb25hbEFyZ3Vt
ZW50czsgLy8gJ3RoaXMnIHJlZ2lzdGVyLgogICAgIGlmIChhcmd1bWVudHNOb2RlKSB7CiAgICAg
ICAgIGZvciAoQXJndW1lbnRMaXN0Tm9kZSogbm9kZSA9IGFyZ3VtZW50c05vZGUtPm1fbGlzdE5v
ZGU7IG5vZGU7IG5vZGUgPSBub2RlLT5tX25leHQpCkBAIC0xMDIxLDE2ICsxMDE4LDEzIEBAIFJl
Z2lzdGVySUQqIENhbGxGdW5jdGlvbkNhbGxEb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmV0dXJuVmFsdWUg
PSBnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpOwogICAgIHsKICAgICAgICAgaWYgKG1f
YXJncy0+bV9saXN0Tm9kZSAmJiBtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fZXhwciAmJiBtX2FyZ3Mt
Pm1fbGlzdE5vZGUtPm1fZXhwci0+aXNTcHJlYWRFeHByZXNzaW9uKCkpIHsKLSAgICAgICAgICAg
IFJlZlB0cjxSZWdpc3RlcklEPiBwcm9maWxlSG9va1JlZ2lzdGVyOwotICAgICAgICAgICAgaWYg
KGdlbmVyYXRvci5zaG91bGRFbWl0UHJvZmlsZUhvb2tzKCkpCi0gICAgICAgICAgICAgICAgcHJv
ZmlsZUhvb2tSZWdpc3RlciA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKICAgICAgICAgICAg
IFNwcmVhZEV4cHJlc3Npb25Ob2RlKiBzcHJlYWQgPSBzdGF0aWNfY2FzdDxTcHJlYWRFeHByZXNz
aW9uTm9kZSo+KG1fYXJncy0+bV9saXN0Tm9kZS0+bV9leHByKTsKICAgICAgICAgICAgIEV4cHJl
c3Npb25Ob2RlKiBzdWJqZWN0ID0gc3ByZWFkLT5leHByZXNzaW9uKCk7CiAgICAgICAgICAgICBS
ZWZQdHI8UmVnaXN0ZXJJRD4gYXJndW1lbnRzUmVnaXN0ZXI7CiAgICAgICAgICAgICBhcmd1bWVu
dHNSZWdpc3RlciA9IGdlbmVyYXRvci5lbWl0Tm9kZShzdWJqZWN0KTsKICAgICAgICAgICAgIGdl
bmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oc3ByZWFkLT5kaXZvdCgpLCBzcHJlYWQtPmRpdm90
U3RhcnQoKSwgc3ByZWFkLT5kaXZvdEVuZCgpKTsKICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiB0aGlzUmVnaXN0ZXIgPSBnZW5lcmF0b3IuZW1pdEdldEJ5VmFsKGdlbmVyYXRvci5uZXdU
ZW1wb3JhcnkoKSwgYXJndW1lbnRzUmVnaXN0ZXIuZ2V0KCksIGdlbmVyYXRvci5lbWl0TG9hZCgw
LCBqc051bWJlcigwKSkpOwotICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRDYWxsVmFyYXJnc0lu
VGFpbFBvc2l0aW9uKHJldHVyblZhbHVlLmdldCgpLCBiYXNlLmdldCgpLCB0aGlzUmVnaXN0ZXIu
Z2V0KCksIGFyZ3VtZW50c1JlZ2lzdGVyLmdldCgpLCBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCks
IDEsIHByb2ZpbGVIb29rUmVnaXN0ZXIuZ2V0KCksIGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2
b3RFbmQoKSk7CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9z
aXRpb24ocmV0dXJuVmFsdWUuZ2V0KCksIGJhc2UuZ2V0KCksIHRoaXNSZWdpc3Rlci5nZXQoKSwg
YXJndW1lbnRzUmVnaXN0ZXIuZ2V0KCksIGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgMSwgZGl2
b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKICAgICAgICAgfSBlbHNlIGlmIChtX2Fy
Z3MtPm1fbGlzdE5vZGUgJiYgbV9hcmdzLT5tX2xpc3ROb2RlLT5tX2V4cHIpIHsKICAgICAgICAg
ICAgIEFyZ3VtZW50TGlzdE5vZGUqIG9sZExpc3QgPSBtX2FyZ3MtPm1fbGlzdE5vZGU7CiAgICAg
ICAgICAgICBtX2FyZ3MtPm1fbGlzdE5vZGUgPSBtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fbmV4dDsK
QEAgLTEwOTQsOSArMTA4OCw2IEBAIFJlZ2lzdGVySUQqIEFwcGx5RnVuY3Rpb25DYWxsRG90Tm9k
ZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsCiAgICAgICAgICAg
ICBBcmd1bWVudExpc3ROb2RlKiBvbGRMaXN0ID0gbV9hcmdzLT5tX2xpc3ROb2RlOwogICAgICAg
ICAgICAgaWYgKG1fYXJncy0+bV9saXN0Tm9kZS0+bV9leHByLT5pc1NwcmVhZEV4cHJlc3Npb24o
KSkgewogICAgICAgICAgICAgICAgIFNwcmVhZEV4cHJlc3Npb25Ob2RlKiBzcHJlYWQgPSBzdGF0
aWNfY2FzdDxTcHJlYWRFeHByZXNzaW9uTm9kZSo+KG1fYXJncy0+bV9saXN0Tm9kZS0+bV9leHBy
KTsKLSAgICAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvZmlsZUhvb2tSZWdpc3Rl
cjsKLSAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhdG9yLnNob3VsZEVtaXRQcm9maWxlSG9va3Mo
KSkKLSAgICAgICAgICAgICAgICAgICAgcHJvZmlsZUhvb2tSZWdpc3RlciA9IGdlbmVyYXRvci5u
ZXdUZW1wb3JhcnkoKTsKICAgICAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVhbEZ1
bmN0aW9uID0gZ2VuZXJhdG9yLmVtaXRNb3ZlKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgYmFz
ZS5nZXQoKSk7CiAgICAgICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGluZGV4ID0gZ2Vu
ZXJhdG9yLmVtaXRMb2FkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwganNOdW1iZXIoMCkpOwog
ICAgICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0aGlzUmVnaXN0ZXIgPSBnZW5lcmF0
b3IuZW1pdExvYWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBqc1VuZGVmaW5lZCgpKTsKQEAg
LTExMjAsNyArMTExMSw3IEBAIFJlZ2lzdGVySUQqIEFwcGx5RnVuY3Rpb25DYWxsRG90Tm9kZTo6
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsCiAgICAgICAgICAgICAg
ICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoZW5kLmdldCgpKTsKICAgICAgICAgICAgICAgICB9
OwogICAgICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0RW51bWVyYXRpb24odGhpcywgc3ByZWFk
LT5leHByZXNzaW9uKCksIGV4dHJhY3Rvcik7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVt
aXRDYWxsVmFyYXJnc0luVGFpbFBvc2l0aW9uKHJldHVyblZhbHVlLmdldCgpLCByZWFsRnVuY3Rp
b24uZ2V0KCksIHRoaXNSZWdpc3Rlci5nZXQoKSwgYXJndW1lbnRzUmVnaXN0ZXIuZ2V0KCksIGdl
bmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgMCwgcHJvZmlsZUhvb2tSZWdpc3Rlci5nZXQoKSwgZGl2
b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICAgICAgICAgICAgICBnZW5lcmF0
b3IuZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRpb24ocmV0dXJuVmFsdWUuZ2V0KCksIHJlYWxG
dW5jdGlvbi5nZXQoKSwgdGhpc1JlZ2lzdGVyLmdldCgpLCBhcmd1bWVudHNSZWdpc3Rlci5nZXQo
KSwgZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAwLCBkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRp
dm90RW5kKCkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtX2FyZ3MtPm1fbGlzdE5vZGUtPm1f
bmV4dCkgewogICAgICAgICAgICAgICAgIEFTU0VSVChtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fbmV4
dC0+bV9leHByLT5pc1NpbXBsZUFycmF5KCkpOwogICAgICAgICAgICAgICAgIEFTU0VSVCghbV9h
cmdzLT5tX2xpc3ROb2RlLT5tX25leHQtPm1fbmV4dCk7CkBAIC0xMTQ1LDkgKzExMzYsNiBAQCBS
ZWdpc3RlcklEKiBBcHBseUZ1bmN0aW9uQ2FsbERvdE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYgZ2VuZXJhdG9yLAogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAg
QVNTRVJUKG1fYXJncy0+bV9saXN0Tm9kZSAmJiBtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fbmV4dCk7
Ci0gICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9maWxlSG9va1JlZ2lzdGVyOwotICAgICAg
ICBpZiAoZ2VuZXJhdG9yLnNob3VsZEVtaXRQcm9maWxlSG9va3MoKSkKLSAgICAgICAgICAgIHBy
b2ZpbGVIb29rUmVnaXN0ZXIgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CiAgICAgICAgIFJl
ZlB0cjxSZWdpc3RlcklEPiByZWFsRnVuY3Rpb24gPSBnZW5lcmF0b3IuZW1pdE1vdmUoZ2VuZXJh
dG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpKTsKICAgICAgICAgUmVmUHRyPFJl
Z2lzdGVySUQ+IHRoaXNSZWdpc3RlciA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2FyZ3MtPm1fbGlz
dE5vZGUtPm1fZXhwcik7CiAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBhcmdzUmVnaXN0ZXI7
CkBAIC0xMTU5LDcgKzExNDcsNyBAQCBSZWdpc3RlcklEKiBBcHBseUZ1bmN0aW9uQ2FsbERvdE5v
ZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLAogICAgICAgICB3
aGlsZSAoKGFyZ3MgPSBhcmdzLT5tX25leHQpKQogICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRO
b2RlKGFyZ3MtPm1fZXhwcik7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRDYWxsVmFyYXJnc0lu
VGFpbFBvc2l0aW9uKHJldHVyblZhbHVlLmdldCgpLCByZWFsRnVuY3Rpb24uZ2V0KCksIHRoaXNS
ZWdpc3Rlci5nZXQoKSwgYXJnc1JlZ2lzdGVyLmdldCgpLCBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5
KCksIDAsIHByb2ZpbGVIb29rUmVnaXN0ZXIuZ2V0KCksIGRpdm90KCksIGRpdm90U3RhcnQoKSwg
ZGl2b3RFbmQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3Np
dGlvbihyZXR1cm5WYWx1ZS5nZXQoKSwgcmVhbEZ1bmN0aW9uLmdldCgpLCB0aGlzUmVnaXN0ZXIu
Z2V0KCksIGFyZ3NSZWdpc3Rlci5nZXQoKSwgZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAwLCBk
aXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwogICAgIH0KICAgICBpZiAoZW1pdENh
bGxDaGVjaykgewogICAgICAgICBnZW5lcmF0b3IuZW1pdEp1bXAoZW5kLmdldCgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRl
cklubGluZXMuaAppbmRleCAwOTA5MWVjLi5kMDgzMmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBA
IC0yODQ0LDggKzI4NDQsNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0
ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgTG9n
U2hhZG93Q2hpY2tlblRhaWw6CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBQcm9maWxlV2ls
bENhbGw6Ci0gICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICBjYXNlIFByb2ZpbGVUeXBlOgog
ICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgogICAgIGNhc2UgUGhhbnRvbToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggNmQwNzlm
Ni4uODVkOGQyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTM3OTksMTYgKzM3OTksNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpw
YXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZGVi
dWcpOwogICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBvcF9wcm9maWxlX3dpbGxfY2FsbDogewot
ICAgICAgICAgICAgYWRkVG9HcmFwaChQcm9maWxlV2lsbENhbGwpOwotICAgICAgICAgICAgTkVY
VF9PUENPREUob3BfcHJvZmlsZV93aWxsX2NhbGwpOwotICAgICAgICB9Ci0KLSAgICAgICAgY2Fz
ZSBvcF9wcm9maWxlX2RpZF9jYWxsOiB7Ci0gICAgICAgICAgICBhZGRUb0dyYXBoKFByb2ZpbGVE
aWRDYWxsKTsKLSAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3Byb2ZpbGVfZGlkX2NhbGwpOwot
ICAgICAgICB9Ci0KICAgICAgICAgY2FzZSBvcF9tb3Y6IHsKICAgICAgICAgICAgIE5vZGUqIG9w
ID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7
CiAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51
Lm9wZXJhbmQpLCBvcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxp
dGllcy5jcHAKaW5kZXggY2MyZDQ3NC4uMDY2NjlkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTI0LDggKzEyNCw2IEBAIENhcGFiaWxp
dHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29k
ZUJsb2NrLCBJbnN0cnVjCiAgICAgY2FzZSBvcF9tb2Q6CiAgICAgY2FzZSBvcF9kaXY6CiAgICAg
Y2FzZSBvcF9kZWJ1ZzoKLSAgICBjYXNlIG9wX3Byb2ZpbGVfd2lsbF9jYWxsOgotICAgIGNhc2Ug
b3BfcHJvZmlsZV9kaWRfY2FsbDoKICAgICBjYXNlIG9wX3Byb2ZpbGVfdHlwZToKICAgICBjYXNl
IG9wX3Byb2ZpbGVfY29udHJvbF9mbG93OgogICAgIGNhc2Ugb3BfbW92OgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCBmNjM3NTQ5Li5mYzM1Y2IwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMzYxLDggKzM2MSw2
IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRG
dW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgY2FzZSBDaGVja1RpZXJVcEF0UmV0dXJu
OgogICAgIGNhc2UgQ2hlY2tUaWVyVXBBbmRPU1JFbnRlcjoKICAgICBjYXNlIExvb3BIaW50Ogot
ICAgIGNhc2UgUHJvZmlsZVdpbGxDYWxsOgotICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAg
Y2FzZSBQcm9maWxlVHlwZToKICAgICBjYXNlIFByb2ZpbGVDb250cm9sRmxvdzoKICAgICBjYXNl
IFN0b3JlQmFycmllcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRl
eCA2Y2YwZDBiLi41ZmYyZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0Mu
Y3BwCkBAIC0xNTAsOCArMTUwLDYgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlKQogICAgIGNhc2UgQ29uc3RydWN0Rm9yd2FyZFZhcmFyZ3M6CiAgICAgY2FzZSBUYWlsQ2Fs
bEZvcndhcmRWYXJhcmdzOgogICAgIGNhc2UgVGFpbENhbGxGb3J3YXJkVmFyYXJnc0lubGluZWRD
YWxsZXI6Ci0gICAgY2FzZSBQcm9maWxlV2lsbENhbGw6Ci0gICAgY2FzZSBQcm9maWxlRGlkQ2Fs
bDoKICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93Ogog
ICAgIGNhc2UgT3ZlcnJpZGVzSGFzSW5zdGFuY2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCAwMzk1YTNmLi4xMzU5ZTUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTE1MzUsOCArMTUzNSw2IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgTmV3T2JqZWN0OgogICAgICAgICBjYXNlIE5ld0FycmF5
QnVmZmVyOgogICAgICAgICBjYXNlIE5ld1JlZ2V4cDoKLSAgICAgICAgY2FzZSBQcm9maWxlV2ls
bENhbGw6Ci0gICAgICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgICAgIGNhc2UgRGVsZXRl
QnlJZDoKICAgICAgICAgY2FzZSBEZWxldGVCeVZhbDoKICAgICAgICAgY2FzZSBJc0FycmF5T2Jq
ZWN0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDE4MWM3OTAu
LjE5Nzg3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5
cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTMw
Myw4ICszMDMsNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8o
TWF0ZXJpYWxpemVDcmVhdGVBY3RpdmF0aW9uLCBOb2RlUmVzdWx0SlMgfCBOb2RlSGFzVmFyQXJn
cykgXAogICAgIFwKICAgICAvKiBOb2RlcyBmb3IgbWlzYyBvcGVyYXRpb25zLiAqL1wKLSAgICBt
YWNybyhQcm9maWxlV2lsbENhbGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhQcm9m
aWxlRGlkQ2FsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKE92ZXJyaWRlc0hhc0lu
c3RhbmNlLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNy
byhJbnN0YW5jZU9mLCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKEluc3RhbmNlT2ZD
dXN0b20sIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0Qm9vbGVhbikgXApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFz
ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlv
blBoYXNlLmNwcAppbmRleCAxNjYxZTk0Li41MDY4NGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cApAQCAtMTAzNSw4ICsxMDM1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBERkc6Okp1bXA6
CiAgICAgICAgIGNhc2UgQnJhbmNoOgogICAgICAgICBjYXNlIFN3aXRjaDoKLSAgICAgICAgY2Fz
ZSBQcm9maWxlV2lsbENhbGw6Ci0gICAgICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgICAg
IGNhc2UgUHJvZmlsZVR5cGU6CiAgICAgICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgogICAg
ICAgICBjYXNlIFRocm93UmVmZXJlbmNlRXJyb3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IGY5YmRlYjkuLjYyOWUwNTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC0yNTAsOCArMjUwLDYg
QEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdy
YXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgTmV3QXJyYXlXaXRoU2l6ZToKICAgICBjYXNlIE5l
d0FycmF5QnVmZmVyOgogICAgIGNhc2UgTmV3UmVnZXhwOgotICAgIGNhc2UgUHJvZmlsZVdpbGxD
YWxsOgotICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgY2FzZSBQcm9maWxlVHlwZToKICAg
ICBjYXNlIFByb2ZpbGVDb250cm9sRmxvdzoKICAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwCmluZGV4IGQ3NDBkNzcuLjMzOGFiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNTE5Nyw4ICs1MTk3
LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBu
b1Jlc3VsdChub2RlKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFByb2ZpbGVXaWxsQ2Fs
bDoKLSAgICBjYXNlIFByb2ZpbGVEaWRDYWxsOgogICAgIGNhc2UgUGhhbnRvbUxvY2FsOgogICAg
IGNhc2UgTG9vcEhpbnQ6CiAgICAgICAgIC8vIFRoaXMgaXMgYSBuby1vcC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IGQzYThi
YTguLjYwZGUzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcApAQCAtNDgxMiw4ICs0ODEyLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBub1Jlc3VsdChub2RlKTsKICAgICAgICAg
YnJlYWs7CiAgICAgICAgIAotICAgIGNhc2UgUHJvZmlsZVdpbGxDYWxsOgotICAgIGNhc2UgUHJv
ZmlsZURpZENhbGw6CiAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAgICAgY2FzZSBMb29wSGludDoK
ICAgICAgICAgLy8gVGhpcyBpcyBhIG5vLW9wLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCmluZGV4IDE4NjRlODQuLjlj
YWE0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0QmFzZS5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJJbnNwZWN0
b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxP
YmplY3QuaCIKLSNpbmNsdWRlICJMZWdhY3lQcm9maWxlci5oIgogI2luY2x1ZGUgIlNjcmlwdEZ1
bmN0aW9uQ2FsbC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC03Miwx
NyArNzEsOCBAQCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRPYmplY3QmIEluamVjdGVkU2NyaXB0
QmFzZTo6aW5qZWN0ZWRTY3JpcHRPYmplY3QoKSBjb25zdAogSlNDOjpKU1ZhbHVlIEluamVjdGVk
U2NyaXB0QmFzZTo6Y2FsbEZ1bmN0aW9uV2l0aEV2YWxFbmFibGVkKERlcHJlY2F0ZWQ6OlNjcmlw
dEZ1bmN0aW9uQ2FsbCYgZnVuY3Rpb24sIGJvb2wmIGhhZEV4Y2VwdGlvbikgY29uc3QKIHsKICAg
ICBKU0M6OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUgPSBtX2luamVjdGVkU2NyaXB0T2JqZWN0LnNj
cmlwdFN0YXRlKCk7Ci0gICAgSlNDOjpMZWdhY3lQcm9maWxlcjo6cHJvZmlsZXIoKS0+c3VzcGVu
ZFByb2ZpbGluZyhzY3JpcHRTdGF0ZSk7Ci0KLSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0VmFsdWU7
Ci0gICAgewotICAgICAgICBKU0M6OkRlYnVnZ2VyRXZhbEVuYWJsZXIgZXZhbEVuYWJsZXIoc2Ny
aXB0U3RhdGUpOwotICAgICAgICByZXN1bHRWYWx1ZSA9IGZ1bmN0aW9uLmNhbGwoaGFkRXhjZXB0
aW9uKTsKLSAgICB9Ci0KLSAgICBKU0M6OkxlZ2FjeVByb2ZpbGVyOjpwcm9maWxlcigpLT51bnN1
c3BlbmRQcm9maWxpbmcoc2NyaXB0U3RhdGUpOwotCi0gICAgcmV0dXJuIHJlc3VsdFZhbHVlOwor
ICAgIEpTQzo6RGVidWdnZXJFdmFsRW5hYmxlciBldmFsRW5hYmxlcihzY3JpcHRTdGF0ZSk7Cisg
ICAgcmV0dXJuIGZ1bmN0aW9uLmNhbGwoaGFkRXhjZXB0aW9uKTsKIH0KIAogdm9pZCBJbmplY3Rl
ZFNjcmlwdEJhc2U6Om1ha2VDYWxsKERlcHJlY2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCYgZnVu
Y3Rpb24sIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbgppbmRleCA4
MjJmZjg2Li42OTE2OWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3Byb3RvY29sL1RpbWVsaW5lLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9UaW1lbGluZS5qc29uCkBAIC01MSw0MCArNTEsNiBAQAogICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0eXBlIjogIm9iamVjdCIsICJkZXNjcmlwdGlv
biI6ICJFdmVudCBkYXRhLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNoaWxkcmVu
IiwgInR5cGUiOiAiYXJyYXkiLCAib3B0aW9uYWwiOiB0cnVlLCAiaXRlbXMiOiB7ICIkcmVmIjog
IlRpbWVsaW5lRXZlbnQiIH0sICJkZXNjcmlwdGlvbiI6ICJOZXN0ZWQgcmVjb3Jkcy4iIH0KICAg
ICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjogIkNQ
VVByb2ZpbGVOb2RlQWdncmVnYXRlQ2FsbEluZm8iLAotICAgICAgICAgICAgInR5cGUiOiAib2Jq
ZWN0IiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBZ2dyZWdhdGUgQ1BVIFByb2ZpbGUg
Y2FsbCBpbmZvLiBIb2xkcyB0aW1lIGluZm9ybWF0aW9uIGZvciBhbGwgdGhlIGNhbGxzIHRoYXQg
aGFwcGVuZWQgb24gYSBub2RlLiIsCi0gICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImNhbGxDb3VudCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNj
cmlwdGlvbiI6ICJUb3RhbCBudW1iZXIgb2YgY2FsbHMuIiB9LAotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAic3RhcnRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0
YXJ0IHRpbWUgZm9yIHRoZSBmaXJzdCBjYWxsLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImVuZFRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRW5kIHRpbWUg
Zm9yIHRoZSBsYXN0IGNhbGwuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidG90YWxU
aW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRvdGFsIGV4ZWN1dGlvbiB0
aW1lIGZvciBhbGwgY2FsbHMgY29tYmluZWQuIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0s
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJDUFVQcm9maWxlTm9kZSIsCi0gICAgICAg
ICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNQVSBQ
cm9maWxlIG5vZGUuIEhvbGRzIGNhbGxzaXRlIGluZm9ybWF0aW9uLCBleGVjdXRpb24gc3RhdGlz
dGljcyBhbmQgY2hpbGQgbm9kZXMuIiwKLSAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0
aW9uIjogIlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGNhbGwgc2l0ZS4iIH0sCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJjYWxsSW5mbyIsICIkcmVmIjogIkNQVVByb2ZpbGVOb2RlQWdn
cmVnYXRlQ2FsbEluZm8iLCAiZGVzY3JpcHRpb24iOiAiQWdncmVnYXRlIGluZm8gYWJvdXQgYWxs
IHRoZSBjYWxscyB0aGF0IG1ha2luZyB1cCB0aGlzIG5vZGUuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiZnVuY3Rpb25OYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9uIG5hbWUuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIlVSTC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsaW5lTnVt
YmVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6
ICJMaW5lIG51bWJlci4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb2x1bW5OdW1i
ZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IkNvbHVtbiBudW1iZXIuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2hpbGRyZW4i
LCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiQ1BVUHJvZmlsZU5vZGUiIH0s
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDaGlsZCBub2Rlcy4iIH0KLSAgICAg
ICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjogIkNQVVBy
b2ZpbGUiLAotICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJQcm9maWxlLiIsCi0gICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInJvb3ROb2RlcyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1z
IjogeyAiJHJlZiI6ICJDUFVQcm9maWxlTm9kZSIgfSwgImRlc2NyaXB0aW9uIjogIlRvcCBsZXZl
bCBub2RlcyBpbiB0aGUgc3RhY2suIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWRs
ZVRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0KLSAgICAgICAgICAg
IF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImNvbW1hbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5kZXggODkzMGFjMy4u
YmY2MmVkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0lu
dGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50
ZXJwcmV0ZXIuY3BwCkBAIC01Myw3ICs1Myw2IEBACiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIK
ICNpbmNsdWRlICJMTEludENMb29wLmgiCiAjaW5jbHVkZSAiTExJbnRUaHVua3MuaCIKLSNpbmNs
dWRlICJMZWdhY3lQcm9maWxlci5oIgogI2luY2x1ZGUgIkxpdGVyYWxQYXJzZXIuaCIKICNpbmNs
dWRlICJPYmplY3RQcm90b3R5cGUuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKQEAgLTY3NSw3ICs2
NzQsNiBAQCBwdWJsaWM6CiAgICAgU3RhY2tWaXNpdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFj
a1Zpc2l0b3ImIHZpc2l0b3IpIGNvbnN0CiAgICAgewogICAgICAgICB2aXNpdG9yLnVud2luZFRv
TWFjaGluZUNvZGVCbG9ja0ZyYW1lKCk7Ci0gICAgICAgIFZNJiB2bSA9IG1fY2FsbEZyYW1lLT52
bSgpOwogICAgICAgICBtX2NhbGxGcmFtZSA9IHZpc2l0b3ItPmNhbGxGcmFtZSgpOwogICAgICAg
ICBtX2NvZGVCbG9jayA9IHZpc2l0b3ItPmNvZGVCbG9jaygpOwogCkBAIC02OTIsOSArNjkwLDYg
QEAgcHVibGljOgogCiAgICAgICAgIGJvb2wgc2hvdWxkU3RvcFVud2luZGluZyA9IHZpc2l0b3It
PmNhbGxlcklzVk1FbnRyeUZyYW1lKCk7CiAgICAgICAgIGlmIChzaG91bGRTdG9wVW53aW5kaW5n
KSB7Ci0gICAgICAgICAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxl
ZFByb2ZpbGVyKCkpCi0gICAgICAgICAgICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2luZCht
X2NhbGxGcmFtZSk7Ci0KICAgICAgICAgICAgIGNvcHlDYWxsZWVTYXZlc1RvVk1FbnRyeUZyYW1l
Q2FsbGVlU2F2ZXNCdWZmZXIodmlzaXRvcik7CiAKICAgICAgICAgICAgIHJldHVybiBTdGFja1Zp
c2l0b3I6OkRvbmU7CkBAIC05NTQsMTUgKzk0OSw5IEBAIGZhaWxlZEpTT05QOgogICAgIFByb3Rv
Q2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQoY29kZUJs
b2NrLCBKU0NhbGxlZTo6Y3JlYXRlKHZtLCBzY29wZS0+Z2xvYmFsT2JqZWN0KCksIHNjb3BlKSwg
dGhpc09iaiwgMSk7CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5h
YmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUs
IHByb2dyYW0tPnNvdXJjZVVSTCgpLCBwcm9ncmFtLT5maXJzdExpbmUoKSwgcHJvZ3JhbS0+c3Rh
cnRDb2x1bW4oKSk7Ci0KICAgICAvLyBFeGVjdXRlIHRoZSBjb2RlOgogICAgIEpTVmFsdWUgcmVz
dWx0ID0gcHJvZ3JhbS0+Z2VuZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2Fs
bEZyYW1lKTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVk
UHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBwcm9n
cmFtLT5zb3VyY2VVUkwoKSwgcHJvZ3JhbS0+Zmlyc3RMaW5lKCksIHByb2dyYW0tPnN0YXJ0Q29s
dW1uKCkpOwotCiAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsKIH0KIApAQCAtMTAx
MSw5ICsxMDAwLDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBmdW5jdGlvbiwgQ2FsbFQKICAgICBQcm90b0NhbGxGcmFt
ZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KG5ld0NvZGVCbG9jaywg
ZnVuY3Rpb24sIHRoaXNWYWx1ZSwgYXJnc0NvdW50LCBhcmdzLmRhdGEoKSk7CiAKLSAgICBpZiAo
TGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAg
IHByb2ZpbGVyLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIGZ1bmN0aW9uKTsKLQogICAgIEpTVmFs
dWUgcmVzdWx0OwogICAgIHsKICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZToKQEAgLTEwMjYs
OSArMTAxMiw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmFtZSog
Y2FsbEZyYW1lLCBKU09iamVjdCogZnVuY3Rpb24sIENhbGxUCiAgICAgICAgIH0KICAgICB9CiAK
LSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkp
Ci0gICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgZnVuY3Rpb24pOwotCiAg
ICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsKIH0KIApAQCAtMTA3OSw5ICsxMDYyLDYg
QEAgSlNPYmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBKU09iamVjdCogY29uc3RydWMKICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxG
cmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KG5ld0NvZGVCbG9jaywgY29uc3RydWN0b3Is
IG5ld1RhcmdldCwgYXJnc0NvdW50LCBhcmdzLmRhdGEoKSk7CiAKLSAgICBpZiAoTGVnYWN5UHJv
ZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVy
LT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIGNvbnN0cnVjdG9yKTsKLQogICAgIEpTVmFsdWUgcmVz
dWx0OwogICAgIHsKICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZS4KQEAgLTEwOTUsOSArMTA3
NSw2IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdChDYWxsRnJhbWUq
IGNhbGxGcmFtZSwgSlNPYmplY3QqIGNvbnN0cnVjCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBp
ZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAg
ICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgY29uc3RydWN0b3IpOwotCiAgICAg
aWYgKGNhbGxGcmFtZS0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIEFT
U0VSVChyZXN1bHQuaXNPYmplY3QoKSk7CkBAIC0xMTQwLDE4ICsxMTE3LDEyIEBAIEpTVmFsdWUg
SW50ZXJwcmV0ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2xvc3VyZSYgY2xvc3VyZSkKIAogICAgIFN0
YWNrU3RhdHM6OkNoZWNrUG9pbnQgc3RhY2tDaGVja1BvaW50OwogCi0gICAgaWYgKExlZ2FjeVBy
b2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxl
ci0+d2lsbEV4ZWN1dGUoY2xvc3VyZS5vbGRDYWxsRnJhbWUsIGNsb3N1cmUuZnVuY3Rpb24pOwot
CiAgICAgaWYgKFVOTElLRUxZKHZtLnNob3VsZFRyaWdnZXJUZXJtaW5hdGlvbihjbG9zdXJlLm9s
ZENhbGxGcmFtZSkpKQogICAgICAgICByZXR1cm4gdGhyb3dUZXJtaW5hdGVkRXhlY3V0aW9uRXhj
ZXB0aW9uKGNsb3N1cmUub2xkQ2FsbEZyYW1lKTsKIAogICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGU6
CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJh
dGVkSklUQ29kZUZvckNhbGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUucHJvdG9DYWxsRnJhbWUp
OwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxl
cigpKQotICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShjbG9zdXJlLm9sZENhbGxGcmFtZSwg
Y2xvc3VyZS5mdW5jdGlvbik7Ci0KICAgICByZXR1cm4gY2hlY2tlZFJldHVybihyZXN1bHQpOwog
fQogCkBAIC0xMjQ5LDE1ICsxMjIwLDkgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShF
dmFsRXhlY3V0YWJsZSogZXZhbCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUKICAgICBQ
cm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KGNv
ZGVCbG9jaywgSlNDYWxsZWU6OmNyZWF0ZSh2bSwgc2NvcGUtPmdsb2JhbE9iamVjdCgpLCBzY29w
ZSksIHRoaXNWYWx1ZSwgMSk7CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0g
dm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShjYWxs
RnJhbWUsIGV2YWwtPnNvdXJjZVVSTCgpLCBldmFsLT5maXJzdExpbmUoKSwgZXZhbC0+c3RhcnRD
b2x1bW4oKSk7Ci0KICAgICAvLyBFeGVjdXRlIHRoZSBjb2RlOgogICAgIEpTVmFsdWUgcmVzdWx0
ID0gZXZhbC0+Z2VuZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1l
KTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmls
ZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBldmFsLT5zb3Vy
Y2VVUkwoKSwgZXZhbC0+Zmlyc3RMaW5lKCksIGV2YWwtPnN0YXJ0Q29sdW1uKCkpOwotCiAgICAg
cmV0dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsKIH0KIApAQCAtMTI5MiwxNSArMTI1Nyw5IEBA
IEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqIGV4
ZWN1dGFibGUsIENhbGxGcmFtZSogY2FsCiAgICAgUHJvdG9DYWxsRnJhbWUgcHJvdG9DYWxsRnJh
bWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChjb2RlQmxvY2ssIEpTQ2FsbGVlOjpjcmVhdGUo
dm0sIHNjb3BlLT5nbG9iYWxPYmplY3QoKSwgc2NvcGUpLCBqc1VuZGVmaW5lZCgpLCAxKTsKIAot
ICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkK
LSAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGNhbGxGcmFtZSwgZXhlY3V0YWJsZS0+c291
cmNlVVJMKCksIGV4ZWN1dGFibGUtPmZpcnN0TGluZSgpLCBleGVjdXRhYmxlLT5zdGFydENvbHVt
bigpKTsKLQogICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGU6CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBl
eGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJh
bWUpOwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9m
aWxlcigpKQotICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIGV4ZWN1dGFi
bGUtPnNvdXJjZVVSTCgpLCBleGVjdXRhYmxlLT5maXJzdExpbmUoKSwgZXhlY3V0YWJsZS0+c3Rh
cnRDb2x1bW4oKSk7Ci0KICAgICByZXR1cm4gY2hlY2tlZFJldHVybihyZXN1bHQpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXggMWQ1MGFiYS4uYWRhYTg2MCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmNwcApAQCAtMjkwLDggKzI5MCw2IEBAIHZvaWQgSklUOjpwcml2YXRl
Q29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgREVGSU5FX09QKG9wX25zdHJpY3RlcSkKICAgICAg
ICAgREVGSU5FX09QKG9wX2RlYykKICAgICAgICAgREVGSU5FX09QKG9wX2luYykKLSAgICAgICAg
REVGSU5FX09QKG9wX3Byb2ZpbGVfZGlkX2NhbGwpCi0gICAgICAgIERFRklORV9PUChvcF9wcm9m
aWxlX3dpbGxfY2FsbCkKICAgICAgICAgREVGSU5FX09QKG9wX3Byb2ZpbGVfdHlwZSkKICAgICAg
ICAgREVGSU5FX09QKG9wX3Byb2ZpbGVfY29udHJvbF9mbG93KQogICAgICAgICBERUZJTkVfT1Ao
b3BfcHVzaF93aXRoX3Njb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggNTExNDAwNi4u
NDNmYmViZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC01NjAsOCArNTYwLDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9uc3RyaWN0ZXEoSW5zdHJ1Y3Rpb24q
KTsKICAgICAgICAgdm9pZCBlbWl0X29wX2RlYyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lk
IGVtaXRfb3BfaW5jKEluc3RydWN0aW9uKik7Ci0gICAgICAgIHZvaWQgZW1pdF9vcF9wcm9maWxl
X2RpZF9jYWxsKEluc3RydWN0aW9uKik7Ci0gICAgICAgIHZvaWQgZW1pdF9vcF9wcm9maWxlX3dp
bGxfY2FsbChJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfcHJvZmlsZV90eXBl
KEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9wcm9maWxlX2NvbnRyb2xfZmxv
dyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfcHVzaF93aXRoX3Njb3BlKElu
c3RydWN0aW9uKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRl
eCBmMGE3NTE5Li42ZDQ1YmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAKQEAgLTc3NCwyMiArNzc0LDYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2NoZWNrX3Rk
eihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2UKICAgICBz
bG93UGF0aENhbGwuY2FsbCgpOwogfQogCi12b2lkIEpJVDo6ZW1pdF9vcF9wcm9maWxlX3dpbGxf
Y2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQotewotICAgIEp1bXAgcHJvZmls
ZXJEb25lID0gYnJhbmNoVGVzdFB0cihaZXJvLCBBYnNvbHV0ZUFkZHJlc3MobV92bS0+ZW5hYmxl
ZFByb2ZpbGVyQWRkcmVzcygpKSk7Ci0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMCk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25Qcm9maWxlV2lsbENhbGwsIHJlZ1QwKTsKLSAgICBwcm9maWxlckRvbmUubGluayh0aGlz
KTsKLX0KLQotdm9pZCBKSVQ6OmVtaXRfb3BfcHJvZmlsZV9kaWRfY2FsbChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQotewotICAgIEp1bXAgcHJvZmlsZXJEb25lID0gYnJhbmNoVGVz
dFB0cihaZXJvLCBBYnNvbHV0ZUFkZHJlc3MobV92bS0+ZW5hYmxlZFByb2ZpbGVyQWRkcmVzcygp
KSk7Ci0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kLCByZWdUMCk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Qcm9maWxlRGlkQ2Fs
bCwgcmVnVDApOwotICAgIHByb2ZpbGVyRG9uZS5saW5rKHRoaXMpOwotfQotCiAKIC8vIFNsb3cg
Y2FzZXMKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVz
MzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3Bw
CmluZGV4IGNmMDRjYTkuLjY0YWIwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTEwNjAsMjQgKzEwNjAsNiBAQCB2b2lkIEpJVDo6ZW1p
dFNsb3dfb3BfY2hlY2tfdGR6KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3Rv
cjxTbG93Q2FzZQogICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CiB9CiAKLXZvaWQgSklUOjplbWl0
X29wX3Byb2ZpbGVfd2lsbF9jYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCi17
Ci0gICAgbG9hZDMyKG1fdm0tPmVuYWJsZWRQcm9maWxlckFkZHJlc3MoKSwgcmVnVDApOwotICAg
IEp1bXAgcHJvZmlsZXJEb25lID0gYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMCk7Ci0gICAgZW1p
dExvYWQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVnVDEsIHJlZ1QwKTsKLSAg
ICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblByb2ZpbGVXaWxsQ2FsbCwgcmVnVDEsIHJlZ1QwKTsK
LSAgICBwcm9maWxlckRvbmUubGluayh0aGlzKTsKLX0KLQotdm9pZCBKSVQ6OmVtaXRfb3BfcHJv
ZmlsZV9kaWRfY2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQotewotICAgIGxv
YWQzMihtX3ZtLT5lbmFibGVkUHJvZmlsZXJBZGRyZXNzKCksIHJlZ1QwKTsKLSAgICBKdW1wIHBy
b2ZpbGVyRG9uZSA9IGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDApOwotICAgIGVtaXRMb2FkKGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QxLCByZWdUMCk7Ci0gICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25Qcm9maWxlRGlkQ2FsbCwgcmVnVDEsIHJlZ1QwKTsKLSAgICBwcm9m
aWxlckRvbmUubGluayh0aGlzKTsKLX0KLQogdm9pZCBKSVQ6OmVtaXRfb3BfaGFzX3N0cnVjdHVy
ZV9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIGludCBk
c3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggYmM4MWM1Yy4uMzkzMDRiZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC01Myw3ICs1Myw2
IEBACiAjaW5jbHVkZSAiSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNT
dGFja0lubGluZXMuaCIKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgotI2luY2x1ZGUgIkxlZ2Fj
eVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJQ
b2x5bW9ycGhpY0FjY2Vzcy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZS5oIgpAQCAtMTI0Miwx
MiArMTI0MSw2IEBAIFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9w
dGltaXplKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBieXRlCiAgICAgICAgIHJldHVybiBlbmNv
ZGVSZXN1bHQoMCwgMCk7CiAgICAgfQogICAgIAotICAgIGlmICh2bS5lbmFibGVkUHJvZmlsZXIo
KSkgewotICAgICAgICBDT0RFQkxPQ0tfTE9HX0VWRU5UKGNvZGVCbG9jaywgImRlbGF5T3B0aW1p
emVUb0RGRyIsICgicHJvZmlsZXIgaXMgZW5hYmxlZCIpKTsKLSAgICAgICAgdXBkYXRlQWxsUHJl
ZGljdGlvbnNBbmRPcHRpbWl6ZUFmdGVyV2FybVVwKGNvZGVCbG9jayk7Ci0gICAgICAgIHJldHVy
biBlbmNvZGVSZXN1bHQoMCwgMCk7Ci0gICAgfQotCiAgICAgRGVidWdnZXIqIGRlYnVnZ2VyID0g
Y29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+ZGVidWdnZXIoKTsKICAgICBpZiAoZGVidWdnZXIg
JiYgKGRlYnVnZ2VyLT5pc1N0ZXBwaW5nKCkgfHwgY29kZUJsb2NrLT5iYXNlbGluZUFsdGVybmF0
aXZlKCktPmhhc0RlYnVnZ2VyUmVxdWVzdHMoKSkpIHsKICAgICAgICAgQ09ERUJMT0NLX0xPR19F
VkVOVChjb2RlQmxvY2ssICJkZWxheU9wdGltaXplVG9ERkciLCAoImRlYnVnZ2VyIGlzIHN0ZXBw
aW5nIG9yIGhhcyByZXF1ZXN0cyIpKTsKQEAgLTE1NTksMjQgKzE1NTIsNiBAQCB2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBpbnQzMl90IHNjb3Bl
UmVnKQogICAgIGV4ZWMtPnVuY2hlY2tlZFIoc2NvcGVSZWcpID0gc2NvcGUtPm5leHQoKTsKIH0K
IAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVEaWRDYWxsKEV4ZWNTdGF0ZSog
ZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQotewotICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwotCi0g
ICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQot
ICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShleGVjLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFZhbHVlKSk7Ci19Ci0KLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlV2lsbENh
bGwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCi17Ci0gICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2
bSwgZXhlYyk7Ci0KLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxl
ZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShleGVjLCBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7Ci19Ci0KIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVy
YXRpb25JbnN0YW5jZU9mQ3VzdG9tKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlLCBKU09iamVjdCogY29uc3RydWN0b3IsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRI
YXNJbnN0YW5jZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpAQCAtMjM1OCw5ICsyMzMz
LDYgQEAgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNoZWNrSWZFeGNlcHRpb25Jc1Vu
Y2F0Y2hhYmxlQW5kTm90aWZ5UHJvZmlsZXIoRXgKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIg
dHJhY2VyKCZ2bSwgZXhlYyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoISF2bS5leGNlcHRpb24oKSk7
CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVy
KCkpCi0gICAgICAgIHByb2ZpbGVyLT5leGNlcHRpb25VbndpbmQoZXhlYyk7Ci0KICAgICBpZiAo
aXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKHZtLmV4Y2VwdGlvbigpKSkgewogICAgICAg
ICBnZW5lcmljVW53aW5kKCZ2bSwgZXhlYyk7CiAgICAgICAgIHJldHVybiAxOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCAyMTI5NzAzLi41N2Y3OGI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMzcwLDggKzM3
MCw2IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0
YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltCiAjZW5kaWYKIHZvaWQgSklUX09QRVJBVElP
TiBvcGVyYXRpb25QdXNoRnVuY3Rpb25OYW1lU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJfdCwgU3lt
Ym9sVGFibGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblBvcFNjb3BlKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsK
LXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlRGlkQ2FsbChFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blByb2ZpbGVXaWxsQ2FsbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFM
OwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXpl
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwg
QnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lO
VEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCAzYzA3OTgxLi5lN2VkZTcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvanNjLmNwcApAQCAtODY0LDcgKzg2NCw3IEBAIHByb3RlY3RlZDoKIH07CiAKIGNvbnN0
IENsYXNzSW5mbyBHbG9iYWxPYmplY3Q6OnNfaW5mbyA9IHsgImdsb2JhbCIsICZKU0dsb2JhbE9i
amVjdDo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEdsb2JhbE9iamVjdCkg
fTsKLWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEdsb2JhbE9iamVjdDo6c19nbG9iYWxP
YmplY3RNZXRob2RUYWJsZSA9IHsgJmFsbG93c0FjY2Vzc0Zyb20sICZzdXBwb3J0c0xlZ2FjeVBy
b2ZpbGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQs
ICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAwLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3Jl
VGltZW91dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZtb2R1bGVMb2FkZXJGZXRjaCwgbnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dz
QWNjZXNzRnJvbSwgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3Jp
cHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAwLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVm
b3JlVGltZW91dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZtb2R1bGVMb2FkZXJGZXRjaCwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OwogCiAKIEdsb2JhbE9iamVjdDo6R2xv
YmFsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCBjY2M1OGQxLi44YmZhN2Nk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAK
QEAgLTUwLDcgKzUwLDYgQEAKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgogI2luY2x1ZGUgIkxM
SW50Q29tbW9uLmgiCiAjaW5jbHVkZSAiTExJbnRFeGNlcHRpb25zLmgiCi0jaW5jbHVkZSAiTGVn
YWN5UHJvZmlsZXIuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVk
ZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJQcm90b0NhbGxGcmFtZS5oIgpAQCAt
MTQyNiwyMiArMTQyNSw2IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9kZWJ1ZykK
ICAgICBMTElOVF9FTkQoKTsKIH0KIAotTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3By
b2ZpbGVfd2lsbF9jYWxsKQotewotICAgIExMSU5UX0JFR0lOKCk7Ci0gICAgaWYgKExlZ2FjeVBy
b2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxl
ci0+d2lsbEV4ZWN1dGUoZXhlYywgTExJTlRfT1AoMSkuanNWYWx1ZSgpKTsKLSAgICBMTElOVF9F
TkQoKTsKLX0KLQotTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2Nh
bGwpCi17Ci0gICAgTExJTlRfQkVHSU4oKTsKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2Zp
bGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRl
KGV4ZWMsIExMSU5UX09QKDEpLmpzVmFsdWUoKSk7Ci0gICAgTExJTlRfRU5EKCk7Ci19Ci0KIExM
SU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9oYW5kbGVfZXhjZXB0aW9uKQogewogICAgIExM
SU5UX0JFR0lOX05PX1NFVF9QQygpOwpAQCAtMTUzMCw5ICsxNTEzLDYgQEAgTExJTlRfU0xPV19Q
QVRIX0RFQ0woc2xvd19wYXRoX2NoZWNrX2lmX2V4Y2VwdGlvbl9pc191bmNhdGNoYWJsZV9hbmRf
bm90aWZ5X3Byb2YKICAgICBMTElOVF9CRUdJTigpOwogICAgIFJFTEVBU0VfQVNTRVJUKCEhdm0u
ZXhjZXB0aW9uKCkpOwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVu
YWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+ZXhjZXB0aW9uVW53aW5kKGV4ZWMp
OwotCiAgICAgaWYgKGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbih2bS5leGNlcHRpb24o
KSkpCiAgICAgICAgIExMSU5UX1JFVFVSTl9UV08ocGMsIGJpdHdpc2VfY2FzdDx2b2lkKj4oc3Rh
dGljX2Nhc3Q8dWludHB0cl90PigxKSkpOwogICAgIExMSU5UX1JFVFVSTl9UV08ocGMsIDApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAppbmRleCBlM2Q0
MWU0Li4yNDk5NTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuaApAQCAtMTE3LDggKzExNyw2IEBAIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChz
bG93X3BhdGhfdGhyb3cpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90
aHJvd19zdGF0aWNfZXJyb3IpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9oYW5kbGVfd2F0Y2hkb2dfdGltZXIpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF9kZWJ1Zyk7Ci1MTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3By
b2ZpbGVfd2lsbF9jYWxsKTsKLUxMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
cHJvZmlsZV9kaWRfY2FsbCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRo
X2hhbmRsZV9leGNlcHRpb24pOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9nZXRfZnJvbV9zY29wZSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRo
X3B1dF90b19zY29wZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggNDNiZjc3ZS4uYTA4NzhmOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAt
MTY2MiwyOCArMTY2Miw2IEBAIF9sbGludF9vcF90aHJvd19zdGF0aWNfZXJyb3I6CiAgICAgZGlz
cGF0Y2goMykKIAogCi1fbGxpbnRfb3BfcHJvZmlsZV93aWxsX2NhbGw6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAotICAgIGxvYWRwIENvZGVCbG9j
azo6bV92bVt0MF0sIHQwCi0gICAgbG9hZGkgVk06Om1fZW5hYmxlZFByb2ZpbGVyW3QwXSwgdDAK
LSAgICBidHB6IHQwLCAub3BQcm9maWxlcldpbGxDYWxsRG9uZQotICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfd2lsbF9jYWxsKQotLm9wUHJvZmlsZXJXaWxsQ2FsbERv
bmU6Ci0gICAgZGlzcGF0Y2goMikKLQotCi1fbGxpbnRfb3BfcHJvZmlsZV9kaWRfY2FsbDoKLSAg
ICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCi0gICAgbG9h
ZHAgQ29kZUJsb2NrOjptX3ZtW3QwXSwgdDAKLSAgICBsb2FkaSBWTTo6bV9lbmFibGVkUHJvZmls
ZXJbdDBdLCB0MAotICAgIGJ0cHogdDAsIC5vcFByb2ZpbGVyRGlkQ2FsbERvbmUKLSAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wcm9maWxlX2RpZF9jYWxsKQotLm9wUHJvZmlsZXJE
aWRDYWxsRG9uZToKLSAgICBkaXNwYXRjaCgyKQotCi0KIF9sbGludF9vcF9kZWJ1ZzoKICAgICB0
cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKaW5kZXggZjBjM2EyMi4uMmI3OTUzYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyTW9kZXMuaApAQCAtMzksNyAr
MzksNiBAQCBlbnVtIGNsYXNzIENvbnN0cnVjdG9yS2luZCB7IE5vbmUsIEJhc2UsIERlcml2ZWQg
fTsKIGVudW0gY2xhc3MgU3VwZXJCaW5kaW5nIHsgTmVlZGVkLCBOb3ROZWVkZWQgfTsKIGVudW0g
Y2xhc3MgVGhpc1REWk1vZGUgeyBBbHdheXNDaGVjaywgQ2hlY2tJZk5lZWRlZCB9OwogCi1lbnVt
IFByb2ZpbGVyTW9kZSB7IFByb2ZpbGVyT2ZmLCBQcm9maWxlck9uIH07CiBlbnVtIERlYnVnZ2Vy
TW9kZSB7IERlYnVnZ2VyT2ZmLCBEZWJ1Z2dlck9uIH07CiAKIGVudW0gY2xhc3MgRnVuY3Rpb25N
b2RlIHsgRnVuY3Rpb25FeHByZXNzaW9uLCBGdW5jdGlvbkRlY2xhcmF0aW9uLCBNZXRob2REZWZp
bml0aW9uIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvQ2Fs
bElkZW50aWZpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9DYWxsSWRlbnRp
Zmllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTFmYzYyLi4wMDAwMDAwCi0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9DYWxsSWRlbnRpZmllci5oCisrKyAv
ZGV2L251bGwKQEAgLTEsMTEyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIw
MTQgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0KLSNpZm5kZWYgQ2FsbElkZW50aWZpZXJfaAotI2RlZmlu
ZSBDYWxsSWRlbnRpZmllcl9oCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotICAgIHN0cnVjdCBDYWxsSWRlbnRpZmllciB7Ci0g
ICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIHB1YmxpYzoKLSAgICAgICAgQ2Fs
bElkZW50aWZpZXIoKQotICAgICAgICAgICAgOiBtX2xpbmVOdW1iZXIoMCkKLSAgICAgICAgICAg
ICwgbV9jb2x1bW5OdW1iZXIoMCkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgQ2Fs
bElkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUsIGNvbnN0IFN0cmluZyYgdXJs
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIpCi0gICAgICAgICAg
ICA6IG1fZnVuY3Rpb25OYW1lKGZ1bmN0aW9uTmFtZSkKLSAgICAgICAgICAgICwgbV91cmwoIXVy
bC5pc051bGwoKSA/IHVybCA6ICIiKQotICAgICAgICAgICAgLCBtX2xpbmVOdW1iZXIobGluZU51
bWJlcikKLSAgICAgICAgICAgICwgbV9jb2x1bW5OdW1iZXIoY29sdW1uTnVtYmVyKQotICAgICAg
ICB7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25OYW1lOyB9Ci0KLSAgICAgICAgY29uc3QgU3RyaW5nJiB1
cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQotICAgICAgICB1bnNpZ25lZCBsaW5lTnVtYmVy
KCkgY29uc3QgeyByZXR1cm4gbV9saW5lTnVtYmVyOyB9Ci0gICAgICAgIHVuc2lnbmVkIGNvbHVt
bk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fY29sdW1uTnVtYmVyOyB9Ci0KLSAgICAgICAgaW5s
aW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDYWxsSWRlbnRpZmllciYgb3RoZXIpIGNvbnN0IHsg
cmV0dXJuIG90aGVyLm1fbGluZU51bWJlciA9PSBtX2xpbmVOdW1iZXIgJiYgb3RoZXIubV9jb2x1
bW5OdW1iZXIgPT0gbV9jb2x1bW5OdW1iZXIgJiYgb3RoZXIubV9mdW5jdGlvbk5hbWUgPT0gbV9m
dW5jdGlvbk5hbWUgJiYgb3RoZXIubV91cmwgPT0gbV91cmw7IH0KLSAgICAgICAgaW5saW5lIGJv
b2wgb3BlcmF0b3IhPShjb25zdCBDYWxsSWRlbnRpZmllciYgb3RoZXIpIGNvbnN0IHsgcmV0dXJu
ICEoKnRoaXMgPT0gb3RoZXIpOyB9Ci0KLSAgICAgICAgc3RydWN0IEhhc2ggewotICAgICAgICAg
ICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgQ2FsbElkZW50aWZpZXImIGtleSkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBoYXNoQ29kZXNbNF0gPSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGtleS5tX2Z1bmN0aW9uTmFtZS5pbXBsKCktPmhhc2goKSwKLSAgICAg
ICAgICAgICAgICAgICAga2V5Lm1fdXJsLmltcGwoKS0+aGFzaCgpLAotICAgICAgICAgICAgICAg
ICAgICBrZXkubV9saW5lTnVtYmVyLAotICAgICAgICAgICAgICAgICAgICBrZXkubV9jb2x1bW5O
dW1iZXIKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdI
YXNoZXI6Omhhc2hNZW1vcnk8c2l6ZW9mKGhhc2hDb2Rlcyk+KGhhc2hDb2Rlcyk7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IENhbGxJZGVudGlm
aWVyJiBhLCBjb25zdCBDYWxsSWRlbnRpZmllciYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAg
ICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9
IHRydWU7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IHsgcmV0
dXJuIEhhc2g6Omhhc2goKnRoaXMpOyB9Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgIG9wZXJh
dG9yIGNvbnN0IGNoYXIqKCkgY29uc3QgeyByZXR1cm4gY19zdHIoKTsgfQotICAgICAgICBjb25z
dCBjaGFyKiBjX3N0cigpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25OYW1lLnV0ZjgoKS5kYXRh
KCk7IH0KLSNlbmRpZgotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgU3RyaW5nIG1fZnVuY3Rpb25O
YW1lOwotICAgICAgICBTdHJpbmcgbV91cmw7Ci0gICAgICAgIHVuc2lnbmVkIG1fbGluZU51bWJl
cjsKLSAgICAgICAgdW5zaWduZWQgbV9jb2x1bW5OdW1iZXI7Ci0gICAgfTsKLQotfSAvLyBuYW1l
c3BhY2UgSlNDCi0KLW5hbWVzcGFjZSBXVEYgewotCi0gICAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVm
YXVsdEhhc2g8SlNDOjpDYWxsSWRlbnRpZmllcj4geyB0eXBlZGVmIEpTQzo6Q2FsbElkZW50aWZp
ZXI6Okhhc2ggSGFzaDsgfTsKLQotICAgIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlND
OjpDYWxsSWRlbnRpZmllcj4gOiBHZW5lcmljSGFzaFRyYWl0czxKU0M6OkNhbGxJZGVudGlmaWVy
PiB7Ci0gICAgICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShKU0M6OkNhbGxJ
ZGVudGlmaWVyJiBzbG90KQotICAgICAgICB7Ci0gICAgICAgICAgICBuZXcgKE5vdE51bGwsICZz
bG90KSBKU0M6OkNhbGxJZGVudGlmaWVyKFN0cmluZygpLCBTdHJpbmcoKSwgc3RkOjpudW1lcmlj
X2xpbWl0czx1bnNpZ25lZD46Om1heCgpLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6
bWF4KCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUo
Y29uc3QgSlNDOjpDYWxsSWRlbnRpZmllciYgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiB2YWx1ZS5mdW5jdGlvbk5hbWUoKS5pc051bGwoKSAmJiB2YWx1ZS51cmwoKS5pc051
bGwoKSAmJiB2YWx1ZS5saW5lTnVtYmVyKCkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25l
ZD46Om1heCgpICYmIHZhbHVlLmNvbHVtbk51bWJlcigpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8
dW5zaWduZWQ+OjptYXgoKTsKLSAgICAgICAgfQotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdU
RgotCi0jZW5kaWYgIC8vIENhbGxJZGVudGlmaWVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3ODdkMzYyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9MZWdhY3lQcm9maWxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyMDggKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKLQotI2lu
Y2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUgIkNvZGVCbG9jay5oIgotI2luY2x1ZGUgIkNv
bW1vbklkZW50aWZpZXJzLmgiCi0jaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgotI2luY2x1
ZGUgIkpTRnVuY3Rpb24uaCIKLSNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgotI2luY2x1ZGUg
Ik5vZGVzLmgiCi0jaW5jbHVkZSAiSlNDSW5saW5lcy5oIgotI2luY2x1ZGUgIlByb2ZpbGUuaCIK
LSNpbmNsdWRlICJQcm9maWxlR2VuZXJhdG9yLmgiCi0jaW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIK
LQotbmFtZXNwYWNlIEpTQyB7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiBHbG9iYWxDb2RlRXhlY3V0
aW9uID0gIihwcm9ncmFtKSI7Ci1zdGF0aWMgY29uc3QgY2hhciogQW5vbnltb3VzRnVuY3Rpb24g
PSAiKGFub255bW91cyBmdW5jdGlvbikiOwotc3RhdGljIHVuc2lnbmVkIFByb2ZpbGVzVUlEID0g
MDsKLQotc3RhdGljIENhbGxJZGVudGlmaWVyIGNyZWF0ZUNhbGxJZGVudGlmaWVyRnJvbUZ1bmN0
aW9uSW1wKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBkZWZhdWx0U291cmNl
VVJMLCB1bnNpZ25lZCBkZWZhdWx0TGluZU51bWJlciwgdW5zaWduZWQgZGVmYXVsdENvbHVtbk51
bWJlcik7Ci0KLUxlZ2FjeVByb2ZpbGVyKiBMZWdhY3lQcm9maWxlcjo6c19zaGFyZWRMZWdhY3lQ
cm9maWxlciA9IG51bGxwdHI7Ci0KLUxlZ2FjeVByb2ZpbGVyKiBMZWdhY3lQcm9maWxlcjo6cHJv
ZmlsZXIoKQotewotICAgIGlmICghc19zaGFyZWRMZWdhY3lQcm9maWxlcikKLSAgICAgICAgc19z
aGFyZWRMZWdhY3lQcm9maWxlciA9IG5ldyBMZWdhY3lQcm9maWxlcigpOwotICAgIHJldHVybiBz
X3NoYXJlZExlZ2FjeVByb2ZpbGVyOwotfQotCi12b2lkIExlZ2FjeVByb2ZpbGVyOjpzdGFydFBy
b2ZpbGluZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFBhc3NSZWZQdHI8
U3RvcHdhdGNoPiBzdG9wd2F0Y2gpCi17Ci0gICAgaWYgKCFleGVjKQotICAgICAgICByZXR1cm47
Ci0KLSAgICAvLyBDaGVjayBpZiB3ZSBjdXJyZW50bHkgaGF2ZSBhIFByb2ZpbGUgZm9yIHRoaXMg
Z2xvYmFsIEV4ZWNTdGF0ZSBhbmQgdGl0bGUuCi0gICAgLy8gSWYgc28gcmV0dXJuIGVhcmx5IGFu
ZCBkb24ndCBjcmVhdGUgYSBuZXcgUHJvZmlsZS4KLSAgICBKU0dsb2JhbE9iamVjdCogb3JpZ2lu
ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBtX2N1cnJlbnRQcm9maWxlcy5zaXplKCk7ICsraSkgewotICAgICAgICBQcm9maWxlR2Vu
ZXJhdG9yKiBwcm9maWxlR2VuZXJhdG9yID0gbV9jdXJyZW50UHJvZmlsZXNbaV0uZ2V0KCk7Ci0g
ICAgICAgIGlmIChwcm9maWxlR2VuZXJhdG9yLT5vcmlnaW4oKSA9PSBvcmlnaW4gJiYgcHJvZmls
ZUdlbmVyYXRvci0+dGl0bGUoKSA9PSB0aXRsZSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBleGVjLT52bSgpLnNldEVuYWJsZWRQcm9maWxlcih0aGlzKTsKLSAgICBSZWZQdHI8
UHJvZmlsZUdlbmVyYXRvcj4gcHJvZmlsZUdlbmVyYXRvciA9IFByb2ZpbGVHZW5lcmF0b3I6OmNy
ZWF0ZShleGVjLCB0aXRsZSwgKytQcm9maWxlc1VJRCwgc3RvcHdhdGNoKTsKLSAgICBtX2N1cnJl
bnRQcm9maWxlcy5hcHBlbmQocHJvZmlsZUdlbmVyYXRvcik7Ci19Ci0KLVJlZlB0cjxQcm9maWxl
PiBMZWdhY3lQcm9maWxlcjo6c3RvcFByb2ZpbGluZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0
cmluZyYgdGl0bGUpCi17Ci0gICAgaWYgKCFleGVjKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LQotICAgIEpTR2xvYmFsT2JqZWN0KiBvcmlnaW4gPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCk7Ci0gICAgZm9yIChwdHJkaWZmX3QgaSA9IG1fY3VycmVudFByb2ZpbGVzLnNpemUoKSAtIDE7
IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgIFByb2ZpbGVHZW5lcmF0b3IqIHByb2ZpbGVHZW5lcmF0
b3IgPSBtX2N1cnJlbnRQcm9maWxlc1tpXS5nZXQoKTsKLSAgICAgICAgaWYgKHByb2ZpbGVHZW5l
cmF0b3ItPm9yaWdpbigpID09IG9yaWdpbiAmJiAodGl0bGUuaXNOdWxsKCkgfHwgcHJvZmlsZUdl
bmVyYXRvci0+dGl0bGUoKSA9PSB0aXRsZSkpIHsKLSAgICAgICAgICAgIHByb2ZpbGVHZW5lcmF0
b3ItPnN0b3BQcm9maWxpbmcoKTsKLSAgICAgICAgICAgIFJlZlB0cjxQcm9maWxlPiByZXR1cm5Q
cm9maWxlID0gcHJvZmlsZUdlbmVyYXRvci0+cHJvZmlsZSgpOwotCi0gICAgICAgICAgICBtX2N1
cnJlbnRQcm9maWxlcy5yZW1vdmUoaSk7Ci0gICAgICAgICAgICBpZiAoIW1fY3VycmVudFByb2Zp
bGVzLnNpemUoKSkKLSAgICAgICAgICAgICAgICBleGVjLT52bSgpLnNldEVuYWJsZWRQcm9maWxl
cihudWxscHRyKTsKLQotICAgICAgICAgICAgcmV0dXJuIHJldHVyblByb2ZpbGU7Ci0gICAgICAg
IH0KLSAgICB9Ci0KLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotdm9pZCBMZWdhY3lQcm9maWxl
cjo6c3RvcFByb2ZpbGluZyhKU0dsb2JhbE9iamVjdCogb3JpZ2luKQotewotICAgIGZvciAocHRy
ZGlmZl90IGkgPSBtX2N1cnJlbnRQcm9maWxlcy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewot
ICAgICAgICBQcm9maWxlR2VuZXJhdG9yKiBwcm9maWxlR2VuZXJhdG9yID0gbV9jdXJyZW50UHJv
ZmlsZXNbaV0uZ2V0KCk7Ci0gICAgICAgIGlmIChwcm9maWxlR2VuZXJhdG9yLT5vcmlnaW4oKSA9
PSBvcmlnaW4pIHsKLSAgICAgICAgICAgIHByb2ZpbGVHZW5lcmF0b3ItPnN0b3BQcm9maWxpbmco
KTsKLSAgICAgICAgICAgIG1fY3VycmVudFByb2ZpbGVzLnJlbW92ZShpKTsKLSAgICAgICAgICAg
IGlmICghbV9jdXJyZW50UHJvZmlsZXMuc2l6ZSgpKQotICAgICAgICAgICAgICAgIG9yaWdpbi0+
dm0oKS5zZXRFbmFibGVkUHJvZmlsZXIobnVsbHB0cik7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0K
LXN0YXRpYyBpbmxpbmUgdm9pZCBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6
OmZ1bmN0aW9uPHZvaWQoUHJvZmlsZUdlbmVyYXRvciopPiBjYWxsYmFjaywgY29uc3QgVmVjdG9y
PFJlZlB0cjxQcm9maWxlR2VuZXJhdG9yPj4mIHByb2ZpbGVzLCB1bnNpZ25lZCB0YXJnZXRQcm9m
aWxlR3JvdXApCi17Ci0gICAgZm9yIChjb25zdCBSZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4mIHBy
b2ZpbGUgOiBwcm9maWxlcykgewotICAgICAgICBpZiAocHJvZmlsZS0+cHJvZmlsZUdyb3VwKCkg
PT0gdGFyZ2V0UHJvZmlsZUdyb3VwIHx8ICFwcm9maWxlLT5vcmlnaW4oKSkKLSAgICAgICAgICAg
IGNhbGxiYWNrKHByb2ZpbGUuZ2V0KCkpOwotICAgIH0KLX0KLQotdm9pZCBMZWdhY3lQcm9maWxl
cjo6c3VzcGVuZFByb2ZpbGluZyhKU0M6OkV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBpZiAoIWV4
ZWMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNhbGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdy
b3VwKHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRvcjo6c2V0SXNTdXNwZW5kZWQsIHN0ZDo6cGxh
Y2Vob2xkZXJzOjpfMSwgdHJ1ZSksIG1fY3VycmVudFByb2ZpbGVzLCBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKLX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6
dW5zdXNwZW5kUHJvZmlsaW5nKEpTQzo6RXhlY1N0YXRlKiBleGVjKQotewotICAgIGlmICghZXhl
YykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY2FsbEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3Jv
dXAoc3RkOjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjpzZXRJc1N1c3BlbmRlZCwgc3RkOjpwbGFj
ZWhvbGRlcnM6Ol8xLCBmYWxzZSksIG1fY3VycmVudFByb2ZpbGVzLCBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKLX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6
d2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIEpTVmFsdWUgZnVuY3Rpb24p
Ci17Ci0gICAgQVNTRVJUKCFtX2N1cnJlbnRQcm9maWxlcy5pc0VtcHR5KCkpOwotCi0gICAgQ2Fs
bElkZW50aWZpZXIgY2FsbElkZW50aWZpZXIgPSBjcmVhdGVDYWxsSWRlbnRpZmllcihjYWxsZXJD
YWxsRnJhbWUsIGZ1bmN0aW9uLCBTdHJpbmdJbXBsOjplbXB0eSgpLCAwLCAwKTsKLQotICAgIGNh
bGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdyb3VwKHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRv
cjo6d2lsbEV4ZWN1dGUsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgY2FsbGVyQ2FsbEZyYW1lLCBj
YWxsSWRlbnRpZmllciksIG1fY3VycmVudFByb2ZpbGVzLCBjYWxsZXJDYWxsRnJhbWUtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkpOwotfQotCi12b2lkIExlZ2FjeVByb2Zp
bGVyOjp3aWxsRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgU3RyaW5n
JiBzb3VyY2VVUkwsIHVuc2lnbmVkIHN0YXJ0aW5nTGluZU51bWJlciwgdW5zaWduZWQgc3RhcnRp
bmdDb2x1bW5OdW1iZXIpCi17Ci0gICAgQVNTRVJUKCFtX2N1cnJlbnRQcm9maWxlcy5pc0VtcHR5
KCkpOwotCi0gICAgQ2FsbElkZW50aWZpZXIgY2FsbElkZW50aWZpZXIgPSBjcmVhdGVDYWxsSWRl
bnRpZmllcihjYWxsZXJDYWxsRnJhbWUsIEpTVmFsdWUoKSwgc291cmNlVVJMLCBzdGFydGluZ0xp
bmVOdW1iZXIsIHN0YXJ0aW5nQ29sdW1uTnVtYmVyKTsKLQotICAgIGNhbGxGdW5jdGlvbkZvclBy
b2ZpbGVzV2l0aEdyb3VwKHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRvcjo6d2lsbEV4ZWN1dGUs
IHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgY2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciks
IG1fY3VycmVudFByb2ZpbGVzLCBjYWxsZXJDYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3Qo
KS0+cHJvZmlsZUdyb3VwKCkpOwotfQotCi12b2lkIExlZ2FjeVByb2ZpbGVyOjpkaWRFeGVjdXRl
KEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBKU1ZhbHVlIGZ1bmN0aW9uKQotewotICAgIEFT
U0VSVCghbV9jdXJyZW50UHJvZmlsZXMuaXNFbXB0eSgpKTsKLQotICAgIENhbGxJZGVudGlmaWVy
IGNhbGxJZGVudGlmaWVyID0gY3JlYXRlQ2FsbElkZW50aWZpZXIoY2FsbGVyQ2FsbEZyYW1lLCBm
dW5jdGlvbiwgU3RyaW5nSW1wbDo6ZW1wdHkoKSwgMCwgMCk7Ci0KLSAgICBjYWxsRnVuY3Rpb25G
b3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmJpbmQoJlByb2ZpbGVHZW5lcmF0b3I6OmRpZEV4ZWN1
dGUsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgY2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmll
ciksIG1fY3VycmVudFByb2ZpbGVzLCBjYWxsZXJDYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+cHJvZmlsZUdyb3VwKCkpOwotfQotCi12b2lkIExlZ2FjeVByb2ZpbGVyOjpkaWRFeGVj
dXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwg
dW5zaWduZWQgc3RhcnRpbmdMaW5lTnVtYmVyLCB1bnNpZ25lZCBzdGFydGluZ0NvbHVtbk51bWJl
cikKLXsKLSAgICBBU1NFUlQoIW1fY3VycmVudFByb2ZpbGVzLmlzRW1wdHkoKSk7Ci0KLSAgICBD
YWxsSWRlbnRpZmllciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJZGVudGlmaWVyKGNhbGxl
ckNhbGxGcmFtZSwgSlNWYWx1ZSgpLCBzb3VyY2VVUkwsIHN0YXJ0aW5nTGluZU51bWJlciwgc3Rh
cnRpbmdDb2x1bW5OdW1iZXIpOwotCi0gICAgY2FsbEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3Jv
dXAoc3RkOjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjpkaWRFeGVjdXRlLCBzdGQ6OnBsYWNlaG9s
ZGVyczo6XzEsIGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIpLCBtX2N1cnJlbnRQcm9m
aWxlcywgY2FsbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91
cCgpKTsKLX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6ZXhjZXB0aW9uVW53aW5kKEV4ZWNTdGF0
ZSogaGFuZGxlckNhbGxGcmFtZSkKLXsKLSAgICBBU1NFUlQoIW1fY3VycmVudFByb2ZpbGVzLmlz
RW1wdHkoKSk7Ci0KLSAgICBDYWxsSWRlbnRpZmllciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNh
bGxJZGVudGlmaWVyKGhhbmRsZXJDYWxsRnJhbWUsIEpTVmFsdWUoKSwgU3RyaW5nSW1wbDo6ZW1w
dHkoKSwgMCwgMCk7Ci0KLSAgICBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6
OmJpbmQoJlByb2ZpbGVHZW5lcmF0b3I6OmV4Y2VwdGlvblVud2luZCwgc3RkOjpwbGFjZWhvbGRl
cnM6Ol8xLCBoYW5kbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciksIG1fY3VycmVudFByb2Zp
bGVzLCBoYW5kbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91
cCgpKTsKLX0KLQotQ2FsbElkZW50aWZpZXIgTGVnYWN5UHJvZmlsZXI6OmNyZWF0ZUNhbGxJZGVu
dGlmaWVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBmdW5jdGlvblZhbHVlLCBjb25zdCBTdHJp
bmcmIGRlZmF1bHRTb3VyY2VVUkwsIHVuc2lnbmVkIGRlZmF1bHRMaW5lTnVtYmVyLCB1bnNpZ25l
ZCBkZWZhdWx0Q29sdW1uTnVtYmVyKQotewotICAgIGlmICghZnVuY3Rpb25WYWx1ZSkKLSAgICAg
ICAgcmV0dXJuIENhbGxJZGVudGlmaWVyKEFTQ0lJTGl0ZXJhbChHbG9iYWxDb2RlRXhlY3V0aW9u
KSwgZGVmYXVsdFNvdXJjZVVSTCwgZGVmYXVsdExpbmVOdW1iZXIsIGRlZmF1bHRDb2x1bW5OdW1i
ZXIpOwotICAgIGlmICghZnVuY3Rpb25WYWx1ZS5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4g
Q2FsbElkZW50aWZpZXIoQVNDSUlMaXRlcmFsKCIodW5rbm93bikiKSwgZGVmYXVsdFNvdXJjZVVS
TCwgZGVmYXVsdExpbmVOdW1iZXIsIGRlZmF1bHRDb2x1bW5OdW1iZXIpOwotICAgIGlmIChhc09i
amVjdChmdW5jdGlvblZhbHVlKS0+aW5oZXJpdHMoSlNGdW5jdGlvbjo6aW5mbygpKSB8fCBhc09i
amVjdChmdW5jdGlvblZhbHVlKS0+aW5oZXJpdHMoSW50ZXJuYWxGdW5jdGlvbjo6aW5mbygpKSkK
LSAgICAgICAgcmV0dXJuIGNyZWF0ZUNhbGxJZGVudGlmaWVyRnJvbUZ1bmN0aW9uSW1wKGV4ZWMs
IGFzT2JqZWN0KGZ1bmN0aW9uVmFsdWUpLCBkZWZhdWx0U291cmNlVVJMLCBkZWZhdWx0TGluZU51
bWJlciwgZGVmYXVsdENvbHVtbk51bWJlcik7Ci0gICAgaWYgKGFzT2JqZWN0KGZ1bmN0aW9uVmFs
dWUpLT5pbmhlcml0cyhKU0NhbGxlZTo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIENhbGxJZGVu
dGlmaWVyKEFTQ0lJTGl0ZXJhbChHbG9iYWxDb2RlRXhlY3V0aW9uKSwgZGVmYXVsdFNvdXJjZVVS
TCwgZGVmYXVsdExpbmVOdW1iZXIsIGRlZmF1bHRDb2x1bW5OdW1iZXIpOwotICAgIHJldHVybiBD
YWxsSWRlbnRpZmllcihhc09iamVjdChmdW5jdGlvblZhbHVlKS0+bWV0aG9kVGFibGUoKS0+Y2xh
c3NOYW1lKGFzT2JqZWN0KGZ1bmN0aW9uVmFsdWUpKSwgZGVmYXVsdFNvdXJjZVVSTCwgZGVmYXVs
dExpbmVOdW1iZXIsIGRlZmF1bHRDb2x1bW5OdW1iZXIpOwotfQotCi1DYWxsSWRlbnRpZmllciBj
cmVhdGVDYWxsSWRlbnRpZmllckZyb21GdW5jdGlvbkltcChFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiBmdW5jdGlvbiwgY29uc3QgU3RyaW5nJiBkZWZhdWx0U291cmNlVVJMLCB1bnNpZ25lZCBk
ZWZhdWx0TGluZU51bWJlciwgdW5zaWduZWQgZGVmYXVsdENvbHVtbk51bWJlcikKLXsKLSAgICBj
b25zdCBTdHJpbmcmIG5hbWUgPSBnZXRDYWxjdWxhdGVkRGlzcGxheU5hbWUoZXhlYywgZnVuY3Rp
b24pOwotICAgIEpTRnVuY3Rpb24qIGpzRnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rp
b24qPihmdW5jdGlvbik7Ci0gICAgaWYgKGpzRnVuY3Rpb24gJiYgIWpzRnVuY3Rpb24tPmlzSG9z
dE9yQnVpbHRpbkZ1bmN0aW9uKCkpCi0gICAgICAgIHJldHVybiBDYWxsSWRlbnRpZmllcihuYW1l
LmlzRW1wdHkoKSA/IEFTQ0lJTGl0ZXJhbChBbm9ueW1vdXNGdW5jdGlvbikgOiBuYW1lLCBqc0Z1
bmN0aW9uLT5qc0V4ZWN1dGFibGUoKS0+c291cmNlVVJMKCksIGpzRnVuY3Rpb24tPmpzRXhlY3V0
YWJsZSgpLT5maXJzdExpbmUoKSwganNGdW5jdGlvbi0+anNFeGVjdXRhYmxlKCktPnN0YXJ0Q29s
dW1uKCkpOwotICAgIHJldHVybiBDYWxsSWRlbnRpZmllcihuYW1lLmlzRW1wdHkoKSA/IEFTQ0lJ
TGl0ZXJhbChBbm9ueW1vdXNGdW5jdGlvbikgOiBuYW1lLCBkZWZhdWx0U291cmNlVVJMLCBkZWZh
dWx0TGluZU51bWJlciwgZGVmYXVsdENvbHVtbk51bWJlcik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVBy
b2ZpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWYwYWI0MS4uMDAwMDAwMAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDc3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIsIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1l
cyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBMZWdhY3lQcm9maWxlcl9oCi0jZGVmaW5l
IExlZ2FjeVByb2ZpbGVyX2gKLQotI2luY2x1ZGUgIlByb2ZpbGUuaCIKLSNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvU3Rv
cHdhdGNoLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQot
Y2xhc3MgRXhlY1N0YXRlOwotY2xhc3MgSlNHbG9iYWxPYmplY3Q7Ci1jbGFzcyBKU09iamVjdDsK
LWNsYXNzIEpTVmFsdWU7Ci1jbGFzcyBQcm9maWxlR2VuZXJhdG9yOwotc3RydWN0IENhbGxJZGVu
dGlmaWVyOwotCi1jbGFzcyBMZWdhY3lQcm9maWxlciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7Ci1wdWJsaWM6Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIExlZ2FjeVByb2Zp
bGVyKiBwcm9maWxlcigpOwotICAgIHN0YXRpYyBDYWxsSWRlbnRpZmllciBjcmVhdGVDYWxsSWRl
bnRpZmllcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlVVJM
LCB1bnNpZ25lZCBkZWZhdWx0TGluZU51bWJlciwgdW5zaWduZWQgZGVmYXVsdENvbHVtbk51bWJl
cik7Ci0KLSAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHN0YXJ0UHJvZmlsaW5nKEV4ZWNTdGF0
ZSosIGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+KTsKLSAg
ICBKU19FWFBPUlRfUFJJVkFURSBSZWZQdHI8UHJvZmlsZT4gc3RvcFByb2ZpbGluZyhFeGVjU3Rh
dGUqLCBjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUpOwotICAgIHZvaWQgc3RvcFByb2ZpbGluZyhK
U0dsb2JhbE9iamVjdCopOwotCi0gICAgLy8gVXNlZCB0byBpZ25vcmUgcHJvZmlsZSBub2RlIHN1
YnRyZWVzIHJvb3RlZCBhdCBJbmplY3RlZFNjcmlwdCBjYWxscy4KLSAgICBKU19FWFBPUlRfUFJJ
VkFURSB2b2lkIHN1c3BlbmRQcm9maWxpbmcoRXhlY1N0YXRlKik7Ci0gICAgSlNfRVhQT1JUX1BS
SVZBVEUgdm9pZCB1bnN1c3BlbmRQcm9maWxpbmcoRXhlY1N0YXRlKik7Ci0KLSAgICB2b2lkIHdp
bGxFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBKU1ZhbHVlIGZ1bmN0aW9uKTsK
LSAgICB2b2lkIHdpbGxFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBX
VEY6OlN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBzdGFydGluZ0xpbmVOdW1iZXIsIHVuc2ln
bmVkIHN0YXJ0aW5nQ29sdW1uTnVtYmVyKTsKLSAgICB2b2lkIGRpZEV4ZWN1dGUoRXhlY1N0YXRl
KiBjYWxsZXJDYWxsRnJhbWUsIEpTVmFsdWUgZnVuY3Rpb24pOwotICAgIHZvaWQgZGlkRXhlY3V0
ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIHNvdXJjZVVS
TCwgdW5zaWduZWQgc3RhcnRpbmdMaW5lTnVtYmVyLCB1bnNpZ25lZCBzdGFydGluZ0NvbHVtbk51
bWJlcik7Ci0KLSAgICB2b2lkIGV4Y2VwdGlvblVud2luZChFeGVjU3RhdGUqIGhhbmRsZXJDYWxs
RnJhbWUpOwotCi0gICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQcm9maWxlR2VuZXJhdG9yPj4mIGN1
cnJlbnRQcm9maWxlcygpIHsgcmV0dXJuIG1fY3VycmVudFByb2ZpbGVzOyB9OwotCi1wcml2YXRl
OgotICAgIFZlY3RvcjxSZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4+IG1fY3VycmVudFByb2ZpbGVz
OwotICAgIHN0YXRpYyBMZWdhY3lQcm9maWxlciogc19zaGFyZWRMZWdhY3lQcm9maWxlcjsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gTGVnYWN5UHJvZmlsZXJfaApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmM2Q0NTBhLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTQgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUHJvZmlsZS5oIgotCi0jaW5jbHVkZSAiUHJvZmlsZU5v
ZGUuaCIKLSNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotUmVm
PFByb2ZpbGU+IFByb2ZpbGU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1
aWQsIGRvdWJsZSBzdGFydFRpbWUpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHJvZmls
ZSh0aXRsZSwgdWlkLCBzdGFydFRpbWUpKTsKLX0KLQotUHJvZmlsZTo6UHJvZmlsZShjb25zdCBT
dHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSBzdGFydFRpbWUpCi0gICAgOiBtX3Rp
dGxlKHRpdGxlKQotICAgICwgbV91aWQodWlkKQotewotICAgIC8vIEZJWE1FOiBXaGVuIG11bHRp
LXRocmVhZGluZyBpcyBzdXBwb3J0ZWQgdGhpcyB3aWxsIGJlIGEgdmVjdG9yIGFuZCBjYWxscwot
ICAgIC8vIGludG8gdGhlIHByb2ZpbGVyIHdpbGwgbmVlZCB0byBrbm93IHdoaWNoIHRocmVhZCBp
dCBpcyBleGVjdXRpbmcgb24uCi0gICAgbV9yb290Tm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUo
bnVsbHB0ciwgQ2FsbElkZW50aWZpZXIoQVNDSUlMaXRlcmFsKCJUaHJlYWRfMSIpLCBTdHJpbmco
KSwgMCwgMCksIG51bGxwdHIpOwotICAgIG1fcm9vdE5vZGUtPmFwcGVuZENhbGwoUHJvZmlsZU5v
ZGU6OkNhbGwoc3RhcnRUaW1lKSk7Ci19Ci0KLVByb2ZpbGU6On5Qcm9maWxlKCkKLXsKLX0KLQot
I2lmbmRlZiBOREVCVUcKLXZvaWQgUHJvZmlsZTo6ZGVidWdQcmludCgpCi17Ci0gICAgQ2FsY3Vs
YXRlUHJvZmlsZVN1YnRyZWVEYXRhRnVuY3RvciBmdW5jdG9yOwotICAgIG1fcm9vdE5vZGUtPmZv
ckVhY2hOb2RlUG9zdG9yZGVyKGZ1bmN0b3IpOwotICAgIFByb2ZpbGVOb2RlOjpQcm9maWxlU3Vi
dHJlZURhdGEgZGF0YSA9IGZ1bmN0b3IucmV0dXJuVmFsdWUoKTsKLQotICAgIGRhdGFMb2dGKCJD
YWxsIGdyYXBoOlxuIik7Ci0gICAgbV9yb290Tm9kZS0+ZGVidWdQcmludFJlY3Vyc2l2ZWx5KDAs
IGRhdGEpOwotfQotCi10eXBlZGVmIFdURjo6S2V5VmFsdWVQYWlyPEZ1bmN0aW9uQ2FsbEhhc2hD
b3VudDo6VmFsdWVUeXBlLCB1bnNpZ25lZD4gTmFtZUNvdW50UGFpcjsKLQotc3RhdGljIGlubGlu
ZSBib29sIGZ1bmN0aW9uTmFtZUNvdW50UGFpckNvbXBhcmF0b3IoY29uc3QgTmFtZUNvdW50UGFp
ciYgYSwgY29uc3QgTmFtZUNvdW50UGFpciYgYikKLXsKLSAgICByZXR1cm4gYS52YWx1ZSA+IGIu
dmFsdWU7Ci19Ci0KLXZvaWQgUHJvZmlsZTo6ZGVidWdQcmludFNhbXBsZVN0eWxlKCkKLXsKLSAg
ICB0eXBlZGVmIFZlY3RvcjxOYW1lQ291bnRQYWlyPiBOYW1lQ291bnRQYWlyVmVjdG9yOwotCi0g
ICAgQ2FsY3VsYXRlUHJvZmlsZVN1YnRyZWVEYXRhRnVuY3RvciBmdW5jdG9yOwotICAgIG1fcm9v
dE5vZGUtPmZvckVhY2hOb2RlUG9zdG9yZGVyKGZ1bmN0b3IpOwotICAgIFByb2ZpbGVOb2RlOjpQ
cm9maWxlU3VidHJlZURhdGEgZGF0YSA9IGZ1bmN0b3IucmV0dXJuVmFsdWUoKTsKLQotICAgIEZ1
bmN0aW9uQ2FsbEhhc2hDb3VudCBjb3VudGVkRnVuY3Rpb25zOwotICAgIGRhdGFMb2dGKCJDYWxs
IGdyYXBoOlxuIik7Ci0gICAgbV9yb290Tm9kZS0+ZGVidWdQcmludFNhbXBsZVN0eWxlUmVjdXJz
aXZlbHkoMCwgY291bnRlZEZ1bmN0aW9ucywgZGF0YSk7Ci0KLSAgICBkYXRhTG9nRigiXG5Ub3Rh
bCBudW1iZXIgaW4gc3RhY2s6XG4iKTsKLSAgICBOYW1lQ291bnRQYWlyVmVjdG9yIHNvcnRlZEZ1
bmN0aW9ucyhjb3VudGVkRnVuY3Rpb25zLnNpemUoKSk7Ci0gICAgY29weVRvVmVjdG9yKGNvdW50
ZWRGdW5jdGlvbnMsIHNvcnRlZEZ1bmN0aW9ucyk7Ci0KLSAgICBzdGQ6OnNvcnQoc29ydGVkRnVu
Y3Rpb25zLmJlZ2luKCksIHNvcnRlZEZ1bmN0aW9ucy5lbmQoKSwgZnVuY3Rpb25OYW1lQ291bnRQ
YWlyQ29tcGFyYXRvcik7Ci0gICAgZm9yIChOYW1lQ291bnRQYWlyVmVjdG9yOjppdGVyYXRvciBp
dCA9IHNvcnRlZEZ1bmN0aW9ucy5iZWdpbigpOyBpdCAhPSBzb3J0ZWRGdW5jdGlvbnMuZW5kKCk7
ICsraXQpCi0gICAgICAgIGRhdGFMb2dGKCIgICAgICAgICUtMTJkJXNcbiIsICgqaXQpLnZhbHVl
LCBTdHJpbmcoKCppdCkua2V5KS51dGY4KCkuZGF0YSgpKTsKLQotICAgIGRhdGFMb2dGKCJcblNv
cnQgYnkgdG9wIG9mIHN0YWNrLCBzYW1lIGNvbGxhcHNlZCAod2hlbiA+PSA1KTpcbiIpOwotfQot
I2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxY2I2NzAuLjAwMDAw
MDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuaAorKysgL2Rl
di9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotIAotI2lmbmRlZiBQcm9maWxlX2gKLSNkZWZpbmUgUHJvZmlsZV9o
Ci0KLSNpbmNsdWRlICJQcm9maWxlTm9kZS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgUHJvZmlsZSA6
IHB1YmxpYyBSZWZDb3VudGVkPFByb2ZpbGU+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFBy
b2ZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSk7
Ci0gICAgdmlydHVhbCB+UHJvZmlsZSgpOwotCi0gICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdGl0bGU7IH0KLSAgICB1bnNpZ25lZCB1aWQoKSBjb25zdCB7IHJldHVy
biBtX3VpZDsgfQotCi0gICAgUHJvZmlsZU5vZGUqIHJvb3ROb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9yb290Tm9kZS5nZXQoKTsgfQotICAgIHZvaWQgc2V0Um9vdE5vZGUoUGFzc1JlZlB0cjxQcm9m
aWxlTm9kZT4gcm9vdE5vZGUpIHsgbV9yb290Tm9kZSA9IHJvb3ROb2RlOyB9Ci0KLSNpZm5kZWYg
TkRFQlVHCi0gICAgdm9pZCBkZWJ1Z1ByaW50KCk7Ci0gICAgdm9pZCBkZWJ1Z1ByaW50U2FtcGxl
U3R5bGUoKTsKLSNlbmRpZgotCi1wcm90ZWN0ZWQ6Ci0gICAgUHJvZmlsZShjb25zdCBTdHJpbmcm
IHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSBzdGFydFRpbWUpOwotCi1wcml2YXRlOgotICAg
IHZvaWQgcmVtb3ZlUHJvZmlsZVN0YXJ0KCk7Ci0gICAgdm9pZCByZW1vdmVQcm9maWxlRW5kKCk7
Ci0KLSAgICBTdHJpbmcgbV90aXRsZTsKLSAgICBSZWZQdHI8UHJvZmlsZU5vZGU+IG1fcm9vdE5v
ZGU7Ci0gICAgdW5zaWduZWQgbV91aWQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2Vu
ZGlmIC8vIFByb2ZpbGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVHZW5lcmF0b3IuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNWY4
YTQzLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxl
R2VuZXJhdG9yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI0MSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA4LCAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlByb2ZpbGVHZW5lcmF0b3IuaCIKLQotI2luY2x1ZGUgIkNh
bGxGcmFtZS5oIgotI2luY2x1ZGUgIkNvZGVCbG9jay5oIgotI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0LmgiCi0jaW5jbHVkZSAiSlNTdHJpbmdSZWYuaCIKLSNpbmNsdWRlICJKU0Z1bmN0aW9uLmgi
Ci0jaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKLSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0j
aW5jbHVkZSAiUHJvZmlsZS5oIgotI2luY2x1ZGUgIlN0YWNrVmlzaXRvci5oIgotCi1uYW1lc3Bh
Y2UgSlNDIHsKLQotUmVmPFByb2ZpbGVHZW5lcmF0b3I+IFByb2ZpbGVHZW5lcmF0b3I6OmNyZWF0
ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFz
c1JlZlB0cjxTdG9wd2F0Y2g+IHN0b3B3YXRjaCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBQcm9maWxlR2VuZXJhdG9yKGV4ZWMsIHRpdGxlLCB1aWQsIHN0b3B3YXRjaCkpOwotfQotCi1Q
cm9maWxlR2VuZXJhdG9yOjpQcm9maWxlR2VuZXJhdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4gc3RvcHdh
dGNoKQotICAgIDogbV9vcmlnaW4oZXhlYyA/IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSA6
IG51bGxwdHIpCi0gICAgLCBtX3Byb2ZpbGVHcm91cChleGVjID8gZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLT5wcm9maWxlR3JvdXAoKSA6IDApCi0gICAgLCBtX3N0b3B3YXRjaChzdG9wd2F0
Y2gpCi0gICAgLCBtX2ZvdW5kQ29uc29sZVN0YXJ0UGFyZW50KGZhbHNlKQotICAgICwgbV9zdXNw
ZW5kZWQoZmFsc2UpCi17Ci0gICAgZG91YmxlIHN0YXJ0VGltZSA9IG1fc3RvcHdhdGNoLT5lbGFw
c2VkVGltZSgpOwotICAgIG1fcHJvZmlsZSA9IFByb2ZpbGU6OmNyZWF0ZSh0aXRsZSwgdWlkLCBz
dGFydFRpbWUpOwotICAgIG1fY3VycmVudE5vZGUgPSBtX3Jvb3ROb2RlID0gbV9wcm9maWxlLT5y
b290Tm9kZSgpOwotICAgIGlmIChleGVjKQotICAgICAgICBhZGRQYXJlbnRGb3JDb25zb2xlU3Rh
cnQoZXhlYywgc3RhcnRUaW1lKTsKLX0KLQotY2xhc3MgQWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0
RnVuY3RvciB7Ci1wdWJsaWM6Ci0gICAgQWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0RnVuY3RvcihF
eGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxQcm9maWxlTm9kZT4mIHJvb3ROb2RlLCBSZWZQdHI8UHJv
ZmlsZU5vZGU+JiBjdXJyZW50Tm9kZSwgZG91YmxlIHN0YXJ0VGltZSkKLSAgICAgICAgOiBtX2V4
ZWMoZXhlYykKLSAgICAgICAgLCBtX2hhc1NraXBwZWRGaXJzdEZyYW1lKGZhbHNlKQotICAgICAg
ICAsIG1fZm91bmRQYXJlbnQoZmFsc2UpCi0gICAgICAgICwgbV9yb290Tm9kZShyb290Tm9kZSkK
LSAgICAgICAgLCBtX2N1cnJlbnROb2RlKGN1cnJlbnROb2RlKQotICAgICAgICAsIG1fc3RhcnRU
aW1lKHN0YXJ0VGltZSkKLSAgICB7Ci0gICAgfQotCi0gICAgYm9vbCBmb3VuZFBhcmVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fZm91bmRQYXJlbnQ7IH0KLQotICAgIFN0YWNrVmlzaXRvcjo6U3RhdHVz
IG9wZXJhdG9yKCkoU3RhY2tWaXNpdG9yJiB2aXNpdG9yKSBjb25zdAotICAgIHsKLSAgICAgICAg
aWYgKCFtX2hhc1NraXBwZWRGaXJzdEZyYW1lKSB7Ci0gICAgICAgICAgICBtX2hhc1NraXBwZWRG
aXJzdEZyYW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkNvbnRp
bnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgdW5zaWduZWQgbGluZSA9IDA7Ci0gICAgICAgIHVu
c2lnbmVkIGNvbHVtbiA9IDA7Ci0gICAgICAgIHZpc2l0b3ItPmNvbXB1dGVMaW5lQW5kQ29sdW1u
KGxpbmUsIGNvbHVtbik7Ci0gICAgICAgIG1fY3VycmVudE5vZGUgPSBQcm9maWxlTm9kZTo6Y3Jl
YXRlKG1fZXhlYywgTGVnYWN5UHJvZmlsZXI6OmNyZWF0ZUNhbGxJZGVudGlmaWVyKG1fZXhlYywg
dmlzaXRvci0+Y2FsbGVlKCksIHZpc2l0b3ItPnNvdXJjZVVSTCgpLCBsaW5lLCBjb2x1bW4pLCBt
X3Jvb3ROb2RlLmdldCgpKTsKLSAgICAgICAgbV9jdXJyZW50Tm9kZS0+YXBwZW5kQ2FsbChQcm9m
aWxlTm9kZTo6Q2FsbChtX3N0YXJ0VGltZSkpOwotICAgICAgICBtX3Jvb3ROb2RlLT5zcGxpY2VO
b2RlKG1fY3VycmVudE5vZGUuZ2V0KCkpOwotCi0gICAgICAgIG1fZm91bmRQYXJlbnQgPSB0cnVl
OwotICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9yOjpEb25lOwotICAgIH0KLQotcHJpdmF0ZToK
LSAgICBFeGVjU3RhdGUqIG1fZXhlYzsKLSAgICBtdXRhYmxlIGJvb2wgbV9oYXNTa2lwcGVkRmly
c3RGcmFtZTsKLSAgICBtdXRhYmxlIGJvb2wgbV9mb3VuZFBhcmVudDsKLSAgICBSZWZQdHI8UHJv
ZmlsZU5vZGU+JiBtX3Jvb3ROb2RlOwotICAgIFJlZlB0cjxQcm9maWxlTm9kZT4mIG1fY3VycmVu
dE5vZGU7Ci0gICAgZG91YmxlIG1fc3RhcnRUaW1lOwotfTsKLQotdm9pZCBQcm9maWxlR2VuZXJh
dG9yOjphZGRQYXJlbnRGb3JDb25zb2xlU3RhcnQoRXhlY1N0YXRlKiBleGVjLCBkb3VibGUgc3Rh
cnRUaW1lKQotewotICAgIEFkZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1bmN0b3IgZnVuY3Rvcihl
eGVjLCBtX3Jvb3ROb2RlLCBtX2N1cnJlbnROb2RlLCBzdGFydFRpbWUpOwotICAgIGV4ZWMtPml0
ZXJhdGUoZnVuY3Rvcik7Ci0KLSAgICBtX2ZvdW5kQ29uc29sZVN0YXJ0UGFyZW50ID0gZnVuY3Rv
ci5mb3VuZFBhcmVudCgpOwotfQotCi1jb25zdCBTdHJpbmcmIFByb2ZpbGVHZW5lcmF0b3I6OnRp
dGxlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wcm9maWxlLT50aXRsZSgpOwotfQotCi12b2lk
IFByb2ZpbGVHZW5lcmF0b3I6OmJlZ2luQ2FsbEVudHJ5KFByb2ZpbGVOb2RlKiBub2RlLCBkb3Vi
bGUgc3RhcnRUaW1lKQotewotICAgIEFTU0VSVF9BUkcobm9kZSwgbm9kZSk7Ci0KLSAgICBpZiAo
c3RkOjppc25hbihzdGFydFRpbWUpKQotICAgICAgICBzdGFydFRpbWUgPSBtX3N0b3B3YXRjaC0+
ZWxhcHNlZFRpbWUoKTsKLQotICAgIG5vZGUtPmFwcGVuZENhbGwoUHJvZmlsZU5vZGU6OkNhbGwo
c3RhcnRUaW1lKSk7Ci19Ci0KLXZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6ZW5kQ2FsbEVudHJ5KFBy
b2ZpbGVOb2RlKiBub2RlKQotewotICAgIEFTU0VSVF9BUkcobm9kZSwgbm9kZSk7Ci0KLSAgICBQ
cm9maWxlTm9kZTo6Q2FsbCYgbGFzdCA9IG5vZGUtPmxhc3RDYWxsKCk7Ci0KLSAgICBkb3VibGUg
cHJldmlvdXNFbGFwc2VkVGltZSA9IHN0ZDo6aXNuYW4obGFzdC5lbGFwc2VkVGltZSgpKSA/IDAu
MCA6IGxhc3QuZWxhcHNlZFRpbWUoKTsKLSAgICBkb3VibGUgbmV3bHlFbGFwc2VkVGltZSA9IG1f
c3RvcHdhdGNoLT5lbGFwc2VkVGltZSgpIC0gbGFzdC5zdGFydFRpbWUoKTsKLSAgICBsYXN0LnNl
dEVsYXBzZWRUaW1lKHByZXZpb3VzRWxhcHNlZFRpbWUgKyBuZXdseUVsYXBzZWRUaW1lKTsKLX0K
LQotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjp3aWxsRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNh
bGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJZGVudGlmaWVyKQotewotICAgIGlm
ICghbV9vcmlnaW4pCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX3N1c3BlbmRlZCkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBjYWxsZWVOb2RlID0gbnVs
bHB0cjsKLQotICAgIC8vIEZpbmQgb3IgY3JlYXRlIGEgbm9kZSBmb3IgdGhlIGNhbGxlZSBjYWxs
IGZyYW1lLgotICAgIGZvciAoY29uc3QgUmVmUHRyPFByb2ZpbGVOb2RlPiYgY2hpbGQgOiBtX2N1
cnJlbnROb2RlLT5jaGlsZHJlbigpKSB7Ci0gICAgICAgIGlmIChjaGlsZC0+Y2FsbElkZW50aWZp
ZXIoKSA9PSBjYWxsSWRlbnRpZmllcikKLSAgICAgICAgICAgIGNhbGxlZU5vZGUgPSBjaGlsZDsK
LSAgICB9Ci0KLSAgICBpZiAoIWNhbGxlZU5vZGUpIHsKLSAgICAgICAgY2FsbGVlTm9kZSA9IFBy
b2ZpbGVOb2RlOjpjcmVhdGUoY2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciwgbV9jdXJy
ZW50Tm9kZS5nZXQoKSk7Ci0gICAgICAgIG1fY3VycmVudE5vZGUtPmFkZENoaWxkKGNhbGxlZU5v
ZGUpOwotICAgIH0KLQotICAgIG1fY3VycmVudE5vZGUgPSBjYWxsZWVOb2RlOwotICAgIGJlZ2lu
Q2FsbEVudHJ5KGNhbGxlZU5vZGUuZ2V0KCksIG1fc3RvcHdhdGNoLT5lbGFwc2VkVGltZSgpKTsK
LX0KLQotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjpkaWRFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVy
Q2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIpCi17Ci0gICAg
aWYgKCFtX29yaWdpbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fc3VzcGVuZGVkKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBNYWtlIGEgbmV3IG5vZGUgaWYgdGhlIGNhbGxlciBu
b2RlIGhhcyBuZXZlciBzZWVuIHRoaXMgY2FsbGVlIGNhbGwgZnJhbWUgYmVmb3JlLgotICAgIC8v
IFRoaXMgY2FuIGhhcHBlbiBpZiB8Y29uc29sZS5wcm9maWxlKCl8IGlzIGNhbGxlZCBzZXZlcmFs
IGZyYW1lcyBkZWVwIGluIHRoZSBjYWxsIHN0YWNrLgotICAgIEFTU0VSVChtX2N1cnJlbnROb2Rl
KTsKLSAgICBpZiAobV9jdXJyZW50Tm9kZS0+Y2FsbElkZW50aWZpZXIoKSAhPSBjYWxsSWRlbnRp
ZmllcikgewotICAgICAgICBSZWZQdHI8UHJvZmlsZU5vZGU+IGNhbGxlZU5vZGUgPSBQcm9maWxl
Tm9kZTo6Y3JlYXRlKGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIsIG1fY3VycmVudE5v
ZGUuZ2V0KCkpOwotICAgICAgICBiZWdpbkNhbGxFbnRyeShjYWxsZWVOb2RlLmdldCgpLCBtX2N1
cnJlbnROb2RlLT5sYXN0Q2FsbCgpLnN0YXJ0VGltZSgpKTsKLSAgICAgICAgZW5kQ2FsbEVudHJ5
KGNhbGxlZU5vZGUuZ2V0KCkpOwotICAgICAgICBtX2N1cnJlbnROb2RlLT5zcGxpY2VOb2RlKGNh
bGxlZU5vZGUucmVsZWFzZSgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGVuZENh
bGxFbnRyeShtX2N1cnJlbnROb2RlLmdldCgpKTsKLSAgICBtX2N1cnJlbnROb2RlID0gbV9jdXJy
ZW50Tm9kZS0+cGFyZW50KCk7Ci19Ci0KLXZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6ZXhjZXB0aW9u
VW53aW5kKEV4ZWNTdGF0ZSogaGFuZGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXIm
KQotewotICAgIGlmIChtX3N1c3BlbmRlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gSWYg
dGhlIGN1cnJlbnQgbm9kZSB3YXMgY2FsbGVkIGJ5IHRoZSBoYW5kbGVyICg9PSkgb3IgYW55Ci0g
ICAgLy8gbW9yZSBuZXN0ZWQgZnVuY3Rpb24gKD4pIHRoZSB3ZSBoYXZlIGV4aXRlZCBlYXJseSBm
cm9tIGl0LgotICAgIEFTU0VSVChtX2N1cnJlbnROb2RlKTsKLSAgICB3aGlsZSAobV9jdXJyZW50
Tm9kZS0+Y2FsbGVyQ2FsbEZyYW1lKCkgPj0gaGFuZGxlckNhbGxGcmFtZSkgewotICAgICAgICBk
aWRFeGVjdXRlKG1fY3VycmVudE5vZGUtPmNhbGxlckNhbGxGcmFtZSgpLCBtX2N1cnJlbnROb2Rl
LT5jYWxsSWRlbnRpZmllcigpKTsKLSAgICAgICAgQVNTRVJUKG1fY3VycmVudE5vZGUpOwotICAg
IH0KLX0KLQotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjpzdG9wUHJvZmlsaW5nKCkKLXsKLSAgICBm
b3IgKFByb2ZpbGVOb2RlKiBub2RlID0gbV9jdXJyZW50Tm9kZS5nZXQoKTsgbm9kZSAhPSBtX3By
b2ZpbGUtPnJvb3ROb2RlKCk7IG5vZGUgPSBub2RlLT5wYXJlbnQoKSkKLSAgICAgICAgZW5kQ2Fs
bEVudHJ5KG5vZGUpOwotCi0gICAgaWYgKG1fZm91bmRDb25zb2xlU3RhcnRQYXJlbnQpIHsKLSAg
ICAgICAgcmVtb3ZlUHJvZmlsZVN0YXJ0KCk7Ci0gICAgICAgIHJlbW92ZVByb2ZpbGVFbmQoKTsK
LSAgICB9Ci0KLSAgICBBU1NFUlQobV9jdXJyZW50Tm9kZSk7Ci0KLSAgICAvLyBTZXQgdGhlIGN1
cnJlbnQgbm9kZSB0byB0aGUgcGFyZW50LCBiZWNhdXNlIHdlIGFyZSBpbiBhIGNhbGwgdGhhdAot
ICAgIC8vIHdpbGwgbm90IGdldCBkaWRFeGVjdXRlIGNhbGwuCi0gICAgbV9jdXJyZW50Tm9kZSA9
IG1fY3VycmVudE5vZGUtPnBhcmVudCgpOwotfQotCi0vLyBUaGUgY29uc29sZS5wcm9maWxlIHRo
YXQgc3RhcnRlZCB0aGlzIFByb2ZpbGVHZW5lcmF0b3Igd2lsbCBiZSB0aGUgZmlyc3QgY2hpbGQu
Ci12b2lkIFByb2ZpbGVHZW5lcmF0b3I6OnJlbW92ZVByb2ZpbGVTdGFydCgpCi17Ci0gICAgUHJv
ZmlsZU5vZGUqIGN1cnJlbnROb2RlID0gbnVsbHB0cjsKLSAgICBmb3IgKFByb2ZpbGVOb2RlKiBu
ZXh0ID0gbV9yb290Tm9kZS5nZXQoKTsgbmV4dDsgbmV4dCA9IG5leHQtPmZpcnN0Q2hpbGQoKSkK
LSAgICAgICAgY3VycmVudE5vZGUgPSBuZXh0OwotCi0gICAgaWYgKGN1cnJlbnROb2RlLT5jYWxs
SWRlbnRpZmllcigpLmZ1bmN0aW9uTmFtZSgpICE9ICJwcm9maWxlIikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgY3VycmVudE5vZGUtPnBhcmVudCgpLT5yZW1vdmVDaGlsZChjdXJyZW50Tm9kZSk7
Ci19Ci0KLS8vIFRoZSBjb25zb2xlLnByb2ZpbGVFbmQgdGhhdCBzdG9wcGVkIHRoaXMgUHJvZmls
ZUdlbmVyYXRvciB3aWxsIGJlIHRoZSBsYXN0IGNoaWxkLgotdm9pZCBQcm9maWxlR2VuZXJhdG9y
OjpyZW1vdmVQcm9maWxlRW5kKCkKLXsKLSAgICBQcm9maWxlTm9kZSogY3VycmVudE5vZGUgPSBu
dWxscHRyOwotICAgIGZvciAoUHJvZmlsZU5vZGUqIG5leHQgPSBtX3Jvb3ROb2RlLmdldCgpOyBu
ZXh0OyBuZXh0ID0gbmV4dC0+bGFzdENoaWxkKCkpCi0gICAgICAgIGN1cnJlbnROb2RlID0gbmV4
dDsKLQotICAgIGlmIChjdXJyZW50Tm9kZS0+Y2FsbElkZW50aWZpZXIoKS5mdW5jdGlvbk5hbWUo
KSAhPSAicHJvZmlsZUVuZCIpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChjdXJyZW50
Tm9kZS0+Y2FsbElkZW50aWZpZXIoKSA9PSAoY3VycmVudE5vZGUtPnBhcmVudCgpLT5jaGlsZHJl
bigpW2N1cnJlbnROb2RlLT5wYXJlbnQoKS0+Y2hpbGRyZW4oKS5zaXplKCkgLSAxXSktPmNhbGxJ
ZGVudGlmaWVyKCkpOwotICAgIGN1cnJlbnROb2RlLT5wYXJlbnQoKS0+cmVtb3ZlQ2hpbGQoY3Vy
cmVudE5vZGUpOwotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAzODdlZDVmLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQ
cm9maWxlR2VuZXJhdG9yX2gKLSNkZWZpbmUgUHJvZmlsZUdlbmVyYXRvcl9oCi0KLSNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9TdG9wd2F0Y2guaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLSAgICBjbGFzcyBEZWJ1
Z2dlckNhbGxGcmFtZTsKLSAgICBjbGFzcyBFeGVjU3RhdGU7Ci0gICAgY2xhc3MgSlNHbG9iYWxP
YmplY3Q7Ci0gICAgY2xhc3MgUHJvZmlsZTsKLSAgICBjbGFzcyBQcm9maWxlTm9kZTsKLSAgICBz
dHJ1Y3QgQ2FsbElkZW50aWZpZXI7Ci0KLSAgICBjbGFzcyBQcm9maWxlR2VuZXJhdG9yIDogcHVi
bGljIFJlZkNvdW50ZWQ8UHJvZmlsZUdlbmVyYXRvcj4gIHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IHN0YXRpYyBSZWY8UHJvZmlsZUdlbmVyYXRvcj4gY3JlYXRlKEV4ZWNTdGF0ZSosIGNvbnN0IFdU
Rjo6U3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4pOwot
Ci0gICAgICAgIC8vIE1lbWJlcnMKLSAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlKCkg
Y29uc3Q7Ci0gICAgICAgIFBhc3NSZWZQdHI8UHJvZmlsZT4gcHJvZmlsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcHJvZmlsZTsgfQotICAgICAgICBKU0dsb2JhbE9iamVjdCogb3JpZ2luKCkgY29uc3Qg
eyByZXR1cm4gbV9vcmlnaW47IH0KLSAgICAgICAgdW5zaWduZWQgcHJvZmlsZUdyb3VwKCkgY29u
c3QgeyByZXR1cm4gbV9wcm9maWxlR3JvdXA7IH0KLQotICAgICAgICB2b2lkIHdpbGxFeGVjdXRl
KEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYpOwotICAg
ICAgICB2b2lkIGRpZEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENh
bGxJZGVudGlmaWVyJik7Ci0gICAgICAgIHZvaWQgZXhjZXB0aW9uVW53aW5kKEV4ZWNTdGF0ZSog
aGFuZGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImKTsKLQotICAgICAgICB2b2lk
IHNldElzU3VzcGVuZGVkKGJvb2wgc3VzcGVuZGVkKSB7IEFTU0VSVChtX3N1c3BlbmRlZCAhPSBz
dXNwZW5kZWQpOyBtX3N1c3BlbmRlZCA9IHN1c3BlbmRlZDsgfQotCi0gICAgICAgIHZvaWQgc3Rv
cFByb2ZpbGluZygpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgUHJvZmlsZUdlbmVyYXRvcihF
eGVjU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1Jl
ZlB0cjxTdG9wd2F0Y2g+KTsKLSAgICAgICAgdm9pZCBhZGRQYXJlbnRGb3JDb25zb2xlU3RhcnQo
RXhlY1N0YXRlKiwgZG91YmxlKTsKLQotICAgICAgICB2b2lkIHJlbW92ZVByb2ZpbGVTdGFydCgp
OwotICAgICAgICB2b2lkIHJlbW92ZVByb2ZpbGVFbmQoKTsKLQotICAgICAgICB2b2lkIGJlZ2lu
Q2FsbEVudHJ5KFByb2ZpbGVOb2RlKiwgZG91YmxlIHN0YXJ0VGltZSk7Ci0gICAgICAgIHZvaWQg
ZW5kQ2FsbEVudHJ5KFByb2ZpbGVOb2RlKik7Ci0KLSAgICAgICAgUmVmUHRyPFByb2ZpbGU+IG1f
cHJvZmlsZTsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIG1fb3JpZ2luOwotICAgICAgICB1bnNp
Z25lZCBtX3Byb2ZpbGVHcm91cDsKLSAgICAgICAgUmVmUHRyPFN0b3B3YXRjaD4gbV9zdG9wd2F0
Y2g7Ci0gICAgICAgIFJlZlB0cjxQcm9maWxlTm9kZT4gbV9yb290Tm9kZTsKLSAgICAgICAgUmVm
UHRyPFByb2ZpbGVOb2RlPiBtX2N1cnJlbnROb2RlOwotICAgICAgICBib29sIG1fZm91bmRDb25z
b2xlU3RhcnRQYXJlbnQ7Ci0gICAgICAgIGJvb2wgbV9zdXNwZW5kZWQ7Ci0gICAgfTsKLQotfSAv
LyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBQcm9maWxlR2VuZXJhdG9yX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5YmNmMzc1Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxOTkgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBv
ZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIKLQotI2luY2x1
ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCi0jaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+Ci0jaW5jbHVk
ZSA8d3RmL0RhdGFMb2cuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLXVz
aW5nIG5hbWVzcGFjZSBXVEY7Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1Qcm9maWxlTm9kZTo6UHJv
ZmlsZU5vZGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVy
JiBjYWxsSWRlbnRpZmllciwgUHJvZmlsZU5vZGUqIHBhcmVudE5vZGUpCi0gICAgOiBtX2NhbGxl
ckNhbGxGcmFtZShjYWxsZXJDYWxsRnJhbWUpCi0gICAgLCBtX2NhbGxJZGVudGlmaWVyKGNhbGxJ
ZGVudGlmaWVyKQotICAgICwgbV9wYXJlbnQocGFyZW50Tm9kZSkKLSNpZm5kZWYgTkRFQlVHCi0g
ICAgLCBtX25leHRTaWJsaW5nKG51bGxwdHIpCi0jZW5kaWYKLXsKLX0KLQotUHJvZmlsZU5vZGU6
OlByb2ZpbGVOb2RlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBQcm9maWxlTm9kZSogbm9k
ZVRvQ29weSkKLSAgICA6IG1fY2FsbGVyQ2FsbEZyYW1lKGNhbGxlckNhbGxGcmFtZSkKLSAgICAs
IG1fY2FsbElkZW50aWZpZXIobm9kZVRvQ29weS0+Y2FsbElkZW50aWZpZXIoKSkKLSAgICAsIG1f
cGFyZW50KG5vZGVUb0NvcHktPnBhcmVudCgpKQotICAgICwgbV9jYWxscyhub2RlVG9Db3B5LT5j
YWxscygpKQotI2lmbmRlZiBOREVCVUcKLSAgICAsIG1fbmV4dFNpYmxpbmcobnVsbHB0cikKLSNl
bmRpZgotewotfQotCi12b2lkIFByb2ZpbGVOb2RlOjphZGRDaGlsZChQYXNzUmVmUHRyPFByb2Zp
bGVOb2RlPiBwcnBDaGlsZCkKLXsKLSAgICBSZWZQdHI8UHJvZmlsZU5vZGU+IGNoaWxkID0gcHJw
Q2hpbGQ7Ci0gICAgY2hpbGQtPnNldFBhcmVudCh0aGlzKTsKLSNpZm5kZWYgTkRFQlVHCi0gICAg
aWYgKG1fY2hpbGRyZW4uc2l6ZSgpKQotICAgICAgICBtX2NoaWxkcmVuLmxhc3QoKS0+c2V0TmV4
dFNpYmxpbmcoY2hpbGQuZ2V0KCkpOwotI2VuZGlmCi0gICAgbV9jaGlsZHJlbi5hcHBlbmQoY2hp
bGQucmVsZWFzZSgpKTsKLX0KLQotdm9pZCBQcm9maWxlTm9kZTo6cmVtb3ZlQ2hpbGQoUHJvZmls
ZU5vZGUqIG5vZGUpCi17Ci0gICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X2NoaWxkcmVuLnJlbW92ZUZpcnN0TWF0Y2hpbmcoW25vZGVdIChjb25zdCBSZWZQdHI8UHJvZmls
ZU5vZGU+JiBjdXJyZW50KSB7Ci0gICAgICAgIHJldHVybiAqbm9kZSA9PSBjdXJyZW50LmdldCgp
OwotICAgIH0pOwotCi0jaWZuZGVmIE5ERUJVRwotICAgIHNpemVfdCBzaXplID0gbV9jaGlsZHJl
bi5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAg
IG1fY2hpbGRyZW5baV0tPnNldE5leHRTaWJsaW5nKGkgKyAxID09IHNpemUgPyBudWxscHRyIDog
bV9jaGlsZHJlbltpICsgMV0uZ2V0KCkpOwotI2VuZGlmCi19Ci0KLXZvaWQgUHJvZmlsZU5vZGU6
OnNwbGljZU5vZGUoUGFzc1JlZlB0cjxQcm9maWxlTm9kZT4gcHJwTm9kZSkKLXsKLSAgICBSZWZQ
dHI8UHJvZmlsZU5vZGU+IG5vZGUgPSBwcnBOb2RlOwotCi0gICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1fY2hpbGRyZW4uc2l6ZSgpOyArK2kpCi0gICAgICAgIG5vZGUtPmFkZENoaWxkKG1f
Y2hpbGRyZW5baV0ucmVsZWFzZSgpKTsKLQotICAgIG1fY2hpbGRyZW4uY2xlYXIoKTsKLSAgICBt
X2NoaWxkcmVuLmFwcGVuZChub2RlLnJlbGVhc2UoKSk7Ci19Ci0KLSNpZm5kZWYgTkRFQlVHCi1Q
cm9maWxlTm9kZSogUHJvZmlsZU5vZGU6OnRyYXZlcnNlTmV4dE5vZGVQb3N0T3JkZXIoKSBjb25z
dAotewotICAgIFByb2ZpbGVOb2RlKiBuZXh0ID0gbV9uZXh0U2libGluZzsKLSAgICBpZiAoIW5l
eHQpCi0gICAgICAgIHJldHVybiBtX3BhcmVudDsKLSAgICB3aGlsZSAoUHJvZmlsZU5vZGUqIGZp
cnN0Q2hpbGQgPSBuZXh0LT5maXJzdENoaWxkKCkpCi0gICAgICAgIG5leHQgPSBmaXJzdENoaWxk
OwotICAgIHJldHVybiBuZXh0OwotfQotCi12b2lkIFByb2ZpbGVOb2RlOjpkZWJ1Z1ByaW50KCkK
LXsKLSAgICBDYWxjdWxhdGVQcm9maWxlU3VidHJlZURhdGFGdW5jdG9yIGZ1bmN0b3I7Ci0gICAg
Zm9yRWFjaE5vZGVQb3N0b3JkZXIoZnVuY3Rvcik7Ci0gICAgUHJvZmlsZU5vZGU6OlByb2ZpbGVT
dWJ0cmVlRGF0YSBkYXRhID0gZnVuY3Rvci5yZXR1cm5WYWx1ZSgpOwotCi0gICAgZGVidWdQcmlu
dFJlY3Vyc2l2ZWx5KDAsIGRhdGEpOwotfQotCi12b2lkIFByb2ZpbGVOb2RlOjpkZWJ1Z1ByaW50
U2FtcGxlU3R5bGUoKQotewotICAgIEZ1bmN0aW9uQ2FsbEhhc2hDb3VudCBjb3VudGVkRnVuY3Rp
b25zOwotCi0gICAgQ2FsY3VsYXRlUHJvZmlsZVN1YnRyZWVEYXRhRnVuY3RvciBmdW5jdG9yOwot
ICAgIGZvckVhY2hOb2RlUG9zdG9yZGVyKGZ1bmN0b3IpOwotICAgIFByb2ZpbGVOb2RlOjpQcm9m
aWxlU3VidHJlZURhdGEgZGF0YSA9IGZ1bmN0b3IucmV0dXJuVmFsdWUoKTsKLQotICAgIGRlYnVn
UHJpbnRTYW1wbGVTdHlsZVJlY3Vyc2l2ZWx5KDAsIGNvdW50ZWRGdW5jdGlvbnMsIGRhdGEpOwot
fQotCi12b2lkIFByb2ZpbGVOb2RlOjpkZWJ1Z1ByaW50UmVjdXJzaXZlbHkoaW50IGluZGVudExl
dmVsLCBjb25zdCBQcm9maWxlU3VidHJlZURhdGEmIGRhdGEpCi17Ci0gICAgLy8gUHJpbnQgZnVu
Y3Rpb24gbmFtZXMKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGVudExldmVsOyArK2kpCi0g
ICAgICAgIGRhdGFMb2dGKCIgICIpOwotCi0gICAgYXV0byBpdCA9IGRhdGEuc2VsZkFuZFRvdGFs
VGltZXMuZmluZCh0aGlzKTsKLSAgICBBU1NFUlQoaXQgIT0gZGF0YS5zZWxmQW5kVG90YWxUaW1l
cy5lbmQoKSk7Ci0KLSAgICBkb3VibGUgbm9kZVNlbGZUaW1lID0gaXQtPnZhbHVlLmZpcnN0Owot
ICAgIGRvdWJsZSBub2RlVG90YWxUaW1lID0gaXQtPnZhbHVlLnNlY29uZDsKLSAgICBkb3VibGUg
cm9vdFRvdGFsVGltZSA9IGRhdGEucm9vdFRvdGFsVGltZTsKLQotICAgIGRhdGFMb2dGKCJGdW5j
dGlvbiBOYW1lICVzICV6dSBTZWxmVGltZSAlLjNmbXMvJS4zZiUlIFRvdGFsVGltZSAlLjNmbXMv
JS4zZiUlIE5leHQgU2libGluZyAlc1xuIiwKLSAgICAgICAgZnVuY3Rpb25OYW1lKCkudXRmOCgp
LmRhdGEoKSwKLSAgICAgICAgbV9jYWxscy5zaXplKCksIG5vZGVTZWxmVGltZSwgbm9kZVNlbGZU
aW1lIC8gcm9vdFRvdGFsVGltZSAqIDEwMC4wLCBub2RlVG90YWxUaW1lLCBub2RlVG90YWxUaW1l
IC8gcm9vdFRvdGFsVGltZSAqIDEwMC4wLAotICAgICAgICBtX25leHRTaWJsaW5nID8gbV9uZXh0
U2libGluZy0+ZnVuY3Rpb25OYW1lKCkudXRmOCgpLmRhdGEoKSA6ICIiKTsKLQotICAgICsraW5k
ZW50TGV2ZWw7Ci0KLSAgICAvLyBQcmludCBjaGlsZHJlbidzIG5hbWVzIGFuZCBpbmZvcm1hdGlv
bgotICAgIGZvciAoU3RhY2tJdGVyYXRvciBjdXJyZW50Q2hpbGQgPSBtX2NoaWxkcmVuLmJlZ2lu
KCk7IGN1cnJlbnRDaGlsZCAhPSBtX2NoaWxkcmVuLmVuZCgpOyArK2N1cnJlbnRDaGlsZCkKLSAg
ICAgICAgKCpjdXJyZW50Q2hpbGQpLT5kZWJ1Z1ByaW50UmVjdXJzaXZlbHkoaW5kZW50TGV2ZWws
IGRhdGEpOwotfQotCi0vLyBwcmludCB0aGUgcHJvZmlsZWQgZGF0YSBpbiBhIGZvcm1hdCB0aGF0
IG1hdGNoZXMgdGhlIHRvb2wgc2FtcGxlJ3Mgb3V0cHV0LgotZG91YmxlIFByb2ZpbGVOb2RlOjpk
ZWJ1Z1ByaW50U2FtcGxlU3R5bGVSZWN1cnNpdmVseShpbnQgaW5kZW50TGV2ZWwsIEZ1bmN0aW9u
Q2FsbEhhc2hDb3VudCYgY291bnRlZEZ1bmN0aW9ucywgY29uc3QgUHJvZmlsZVN1YnRyZWVEYXRh
JiBkYXRhKQotewotICAgIGRhdGFMb2dGKCIgICAgIik7Ci0KLSAgICBhdXRvIGl0ID0gZGF0YS5z
ZWxmQW5kVG90YWxUaW1lcy5maW5kKHRoaXMpOwotICAgIEFTU0VSVChpdCAhPSBkYXRhLnNlbGZB
bmRUb3RhbFRpbWVzLmVuZCgpKTsKLSAgICBkb3VibGUgbm9kZVRvdGFsVGltZSA9IGl0LT52YWx1
ZS5zZWNvbmQ7Ci0KLSAgICAvLyBQcmludCBmdW5jdGlvbiBuYW1lcwotICAgIGNvbnN0IGNoYXIq
IG5hbWUgPSBmdW5jdGlvbk5hbWUoKS51dGY4KCkuZGF0YSgpOwotICAgIGRvdWJsZSBzYW1wbGVD
b3VudCA9IG5vZGVUb3RhbFRpbWUgKiAxMDAwOwotICAgIGlmIChpbmRlbnRMZXZlbCkgewotICAg
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGVudExldmVsOyArK2kpCi0gICAgICAgICAgICBk
YXRhTG9nRigiICAiKTsKLQotICAgICAgICAgY291bnRlZEZ1bmN0aW9ucy5hZGQoZnVuY3Rpb25O
YW1lKCkuaW1wbCgpKTsKLQotICAgICAgICBkYXRhTG9nRigiJS4wZiAlc1xuIiwgc2FtcGxlQ291
bnQgPyBzYW1wbGVDb3VudCA6IDEsIG5hbWUpOwotICAgIH0gZWxzZQotICAgICAgICBkYXRhTG9n
RigiJXNcbiIsIG5hbWUpOwotCi0gICAgKytpbmRlbnRMZXZlbDsKLQotICAgIC8vIFByaW50IGNo
aWxkcmVuJ3MgbmFtZXMgYW5kIGluZm9ybWF0aW9uCi0gICAgZG91YmxlIHN1bU9mQ2hpbGRyZW5z
Q291bnQgPSAwLjA7Ci0gICAgZm9yIChTdGFja0l0ZXJhdG9yIGN1cnJlbnRDaGlsZCA9IG1fY2hp
bGRyZW4uYmVnaW4oKTsgY3VycmVudENoaWxkICE9IG1fY2hpbGRyZW4uZW5kKCk7ICsrY3VycmVu
dENoaWxkKQotICAgICAgICBzdW1PZkNoaWxkcmVuc0NvdW50ICs9ICgqY3VycmVudENoaWxkKS0+
ZGVidWdQcmludFNhbXBsZVN0eWxlUmVjdXJzaXZlbHkoaW5kZW50TGV2ZWwsIGNvdW50ZWRGdW5j
dGlvbnMsIGRhdGEpOwotCi0gICAgc3VtT2ZDaGlsZHJlbnNDb3VudCAqPSAxMDAwOyAgICAvLwot
ICAgIC8vIFByaW50IHJlbWFpbmRlciBvZiBzYW1wbGVzIHRvIG1hdGNoIHNhbXBsZSdzIG91dHB1
dAotICAgIGlmIChzdW1PZkNoaWxkcmVuc0NvdW50IDwgc2FtcGxlQ291bnQpIHsKLSAgICAgICAg
ZGF0YUxvZ0YoIiAgICAiKTsKLSAgICAgICAgd2hpbGUgKGluZGVudExldmVsLS0pCi0gICAgICAg
ICAgICBkYXRhTG9nRigiICAiKTsKLQotICAgICAgICBkYXRhTG9nRigiJS4wZiAlc1xuIiwgc2Ft
cGxlQ291bnQgLSBzdW1PZkNoaWxkcmVuc0NvdW50LCBmdW5jdGlvbk5hbWUoKS51dGY4KCkuZGF0
YSgpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbm9kZVRvdGFsVGltZTsKLX0KLSNlbmRpZgotCi19
IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVOb2RlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhZDE0OWUuLjAwMDAwMDAK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSwxOTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFByb2ZpbGVOb2RlX2gKLSNkZWZpbmUgUHJv
ZmlsZU5vZGVfaAotCi0jaW5jbHVkZSAiQ2FsbElkZW50aWZpZXIuaCIKLSNpbmNsdWRlIDx3dGYv
SGFzaENvdW50ZWRTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBKU0Mg
ewotCi0gICAgY2xhc3MgRXhlY1N0YXRlOwotICAgIGNsYXNzIFByb2ZpbGVOb2RlOwotCi0gICAg
dHlwZWRlZiBIYXNoQ291bnRlZFNldDxTdHJpbmdJbXBsKj4gRnVuY3Rpb25DYWxsSGFzaENvdW50
OwotCi0gICAgY2xhc3MgUHJvZmlsZU5vZGUgOiBwdWJsaWMgUmVmQ291bnRlZDxQcm9maWxlTm9k
ZT4gewotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxQcm9maWxlTm9kZT4gY3JlYXRl
KEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElk
ZW50aWZpZXIsIFByb2ZpbGVOb2RlKiBwYXJlbnROb2RlKQotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm9maWxlTm9kZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJ
ZGVudGlmaWVyLCBwYXJlbnROb2RlKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0aWMgUmVm
PFByb2ZpbGVOb2RlPiBjcmVhdGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIFByb2ZpbGVO
b2RlKiBub2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQ
cm9maWxlTm9kZShjYWxsZXJDYWxsRnJhbWUsIG5vZGUpKTsKLSAgICAgICAgfQotCi0gICAgICAg
IHN0cnVjdCBDYWxsIHsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgQ2FsbChkb3VibGUg
c3RhcnRUaW1lLCBkb3VibGUgZWxhcHNlZFRpbWUgPSBOQU4pCi0gICAgICAgICAgICAgICAgOiBt
X3N0YXJ0VGltZShzdGFydFRpbWUpCi0gICAgICAgICAgICAgICAgLCBtX2VsYXBzZWRUaW1lKGVs
YXBzZWRUaW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBk
b3VibGUgc3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFRpbWU7IH0KLSAgICAgICAg
ICAgIHZvaWQgc2V0U3RhcnRUaW1lKGRvdWJsZSB0aW1lKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIEFTU0VSVF9BUkcodGltZSwgdGltZSA+PSAwLjAgfHwgc3RkOjppc25hbih0aW1l
KSk7Ci0gICAgICAgICAgICAgICAgbV9zdGFydFRpbWUgPSB0aW1lOwotICAgICAgICAgICAgfQot
Ci0gICAgICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2VsYXBz
ZWRUaW1lOyB9Ci0gICAgICAgICAgICB2b2lkIHNldEVsYXBzZWRUaW1lKGRvdWJsZSB0aW1lKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEFTU0VSVF9BUkcodGltZSwgdGltZSA+PSAw
LjAgfHwgc3RkOjppc25hbih0aW1lKSk7Ci0gICAgICAgICAgICAgICAgbV9lbGFwc2VkVGltZSA9
IHRpbWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgcHJpdmF0ZToKLSAgICAgICAgICAgIGRv
dWJsZSBtX3N0YXJ0VGltZTsKLSAgICAgICAgICAgIGRvdWJsZSBtX2VsYXBzZWRUaW1lOwotICAg
ICAgICB9OwotCi0gICAgICAgIGJvb2wgb3BlcmF0b3I9PShQcm9maWxlTm9kZSogbm9kZSkgeyBy
ZXR1cm4gbV9jYWxsSWRlbnRpZmllciA9PSBub2RlLT5jYWxsSWRlbnRpZmllcigpOyB9Ci0KLSAg
ICAgICAgRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2NhbGxl
ckNhbGxGcmFtZTsgfQotICAgICAgICBjb25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyOyB9Ci0gICAgICAgIHVuc2lnbmVk
IGlkKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsSWRlbnRpZmllci5oYXNoKCk7IH0KLSAgICAgICAg
Y29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUoKSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlm
aWVyLmZ1bmN0aW9uTmFtZSgpOyB9Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29uc3Qg
eyByZXR1cm4gbV9jYWxsSWRlbnRpZmllci51cmwoKTsgfQotICAgICAgICB1bnNpZ25lZCBsaW5l
TnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsSWRlbnRpZmllci5saW5lTnVtYmVyKCk7IH0K
LSAgICAgICAgdW5zaWduZWQgY29sdW1uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsSWRl
bnRpZmllci5jb2x1bW5OdW1iZXIoKTsgfQotCi0gICAgICAgIFByb2ZpbGVOb2RlKiBwYXJlbnQo
KSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQotICAgICAgICB2b2lkIHNldFBhcmVudChQcm9m
aWxlTm9kZSogcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9Ci0KLSAgICAgICAgY29uc3Qg
VmVjdG9yPENhbGw+JiBjYWxscygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbHM7IH0KLSAgICAgICAg
Q2FsbCYgbGFzdENhbGwoKSB7IEFTU0VSVCghbV9jYWxscy5pc0VtcHR5KCkpOyByZXR1cm4gbV9j
YWxscy5sYXN0KCk7IH0KLSAgICAgICAgdm9pZCBhcHBlbmRDYWxsKENhbGwgY2FsbCkgeyBtX2Nh
bGxzLmFwcGVuZChjYWxsKTsgfQotCi0gICAgICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UHJvZmls
ZU5vZGU+PiYgY2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuOyB9Ci0gICAgICAg
IFByb2ZpbGVOb2RlKiBmaXJzdENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZHJlbi5zaXpl
KCkgPyBtX2NoaWxkcmVuLmZpcnN0KCkuZ2V0KCkgOiBudWxscHRyOyB9Ci0gICAgICAgIFByb2Zp
bGVOb2RlKiBsYXN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuLnNpemUoKSA/IG1f
Y2hpbGRyZW4ubGFzdCgpLmdldCgpIDogbnVsbHB0cjsgfQotCi0gICAgICAgIHZvaWQgcmVtb3Zl
Q2hpbGQoUHJvZmlsZU5vZGUqKTsKLSAgICAgICAgdm9pZCBhZGRDaGlsZChQYXNzUmVmUHRyPFBy
b2ZpbGVOb2RlPik7Ci0gICAgICAgIC8vIFJlcGFyZW50IG91ciBjaGlsZCBub2RlcyB0byB0aGUg
cGFzc2VkIG5vZGUsIGFuZCBtYWtlIGl0IGEgY2hpbGQgbm9kZSBvZiB8dGhpc3wuCi0gICAgICAg
IHZvaWQgc3BsaWNlTm9kZShQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPik7Ci0KLSNpZm5kZWYgTkRF
QlVHCi0gICAgICAgIHN0cnVjdCBQcm9maWxlU3VidHJlZURhdGEgewotICAgICAgICAgICAgSGFz
aE1hcDxQcm9maWxlTm9kZSosIHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+IHNlbGZBbmRUb3Rh
bFRpbWVzOwotICAgICAgICAgICAgZG91YmxlIHJvb3RUb3RhbFRpbWU7Ci0gICAgICAgIH07Ci0K
LSAgICAgICAgLy8gVXNlIHRoZXNlIGZ1bmN0aW9ucyB0byBkdW1wIHRoZSBzdWJ0cmVlIHJvb3Rl
ZCBhdCB0aGlzIG5vZGUuCi0gICAgICAgIHZvaWQgZGVidWdQcmludCgpOwotICAgICAgICB2b2lk
IGRlYnVnUHJpbnRTYW1wbGVTdHlsZSgpOwotCi0gICAgICAgIC8vIFRoZXNlIGFyZSB1c2VkIHRv
IHJlY3Vyc2l2ZWx5IHByaW50IGVudGlyZSBzdWJ0cmVlcyB1c2luZyBwcmVjb21wdXRlZCBzZWxm
IGFuZCB0b3RhbCB0aW1lcy4KLSAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0b3I+IHZv
aWQgZm9yRWFjaE5vZGVQb3N0b3JkZXIoRnVuY3RvciYpOwotCi0gICAgICAgIHZvaWQgZGVidWdQ
cmludFJlY3Vyc2l2ZWx5KGludCBpbmRlbnRMZXZlbCwgY29uc3QgUHJvZmlsZVN1YnRyZWVEYXRh
Jik7Ci0gICAgICAgIGRvdWJsZSBkZWJ1Z1ByaW50U2FtcGxlU3R5bGVSZWN1cnNpdmVseShpbnQg
aW5kZW50TGV2ZWwsIEZ1bmN0aW9uQ2FsbEhhc2hDb3VudCYsIGNvbnN0IFByb2ZpbGVTdWJ0cmVl
RGF0YSYpOwotI2VuZGlmCi0KLSAgICBwcml2YXRlOgotICAgICAgICB0eXBlZGVmIFZlY3RvcjxS
ZWZQdHI8UHJvZmlsZU5vZGU+Pjo6Y29uc3RfaXRlcmF0b3IgU3RhY2tJdGVyYXRvcjsKLQotICAg
ICAgICBQcm9maWxlTm9kZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElk
ZW50aWZpZXImLCBQcm9maWxlTm9kZSogcGFyZW50Tm9kZSk7Ci0gICAgICAgIFByb2ZpbGVOb2Rl
KEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBQcm9maWxlTm9kZSogbm9kZVRvQ29weSk7Ci0K
LSNpZm5kZWYgTkRFQlVHCi0gICAgICAgIFByb2ZpbGVOb2RlKiBuZXh0U2libGluZygpIGNvbnN0
IHsgcmV0dXJuIG1fbmV4dFNpYmxpbmc7IH0KLSAgICAgICAgdm9pZCBzZXROZXh0U2libGluZyhQ
cm9maWxlTm9kZSogbmV4dFNpYmxpbmcpIHsgbV9uZXh0U2libGluZyA9IG5leHRTaWJsaW5nOyB9
Ci0KLSAgICAgICAgUHJvZmlsZU5vZGUqIHRyYXZlcnNlTmV4dE5vZGVQb3N0T3JkZXIoKSBjb25z
dDsKLSNlbmRpZgotCi0gICAgICAgIEV4ZWNTdGF0ZSogbV9jYWxsZXJDYWxsRnJhbWU7Ci0gICAg
ICAgIENhbGxJZGVudGlmaWVyIG1fY2FsbElkZW50aWZpZXI7Ci0gICAgICAgIFByb2ZpbGVOb2Rl
KiBtX3BhcmVudDsKLSAgICAgICAgVmVjdG9yPENhbGw+IG1fY2FsbHM7Ci0gICAgICAgIFZlY3Rv
cjxSZWZQdHI8UHJvZmlsZU5vZGU+PiBtX2NoaWxkcmVuOwotCi0jaWZuZGVmIE5ERUJVRwotICAg
ICAgICBQcm9maWxlTm9kZSogbV9uZXh0U2libGluZzsKLSNlbmRpZgotICAgIH07Ci0KLSNpZm5k
ZWYgTkRFQlVHCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0b3I+IGlubGluZSB2b2lkIFBy
b2ZpbGVOb2RlOjpmb3JFYWNoTm9kZVBvc3RvcmRlcihGdW5jdG9yJiBmdW5jdG9yKQotICAgIHsK
LSAgICAgICAgUHJvZmlsZU5vZGUqIGN1cnJlbnROb2RlID0gdGhpczsKLSAgICAgICAgLy8gR28g
ZG93biB0byB0aGUgZmlyc3Qgbm9kZSBvZiB0aGUgdHJhdmVyc2FsLCBhbmQgc2xvd2x5IHdhbGsg
YmFjayB1cC4KLSAgICAgICAgZm9yIChQcm9maWxlTm9kZSogbmV4dE5vZGUgPSBjdXJyZW50Tm9k
ZTsgbmV4dE5vZGU7IG5leHROb2RlID0gbmV4dE5vZGUtPmZpcnN0Q2hpbGQoKSkKLSAgICAgICAg
ICAgIGN1cnJlbnROb2RlID0gbmV4dE5vZGU7Ci0KLSAgICAgICAgUHJvZmlsZU5vZGUqIGVuZE5v
ZGUgPSB0aGlzOwotICAgICAgICB3aGlsZSAoY3VycmVudE5vZGUgJiYgY3VycmVudE5vZGUgIT0g
ZW5kTm9kZSkgewotICAgICAgICAgICAgZnVuY3RvcihjdXJyZW50Tm9kZSk7Ci0gICAgICAgICAg
ICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLT50cmF2ZXJzZU5leHROb2RlUG9zdE9yZGVyKCk7
Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdG9yKGVuZE5vZGUpOwotICAgIH0KLQotICAgIHN0
cnVjdCBDYWxjdWxhdGVQcm9maWxlU3VidHJlZURhdGFGdW5jdG9yIHsKLSAgICAgICAgdm9pZCBv
cGVyYXRvcigpKFByb2ZpbGVOb2RlKiBub2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICBkb3Vi
bGUgc2VsZlRpbWUgPSAwLjA7Ci0gICAgICAgICAgICBmb3IgKGNvbnN0IFByb2ZpbGVOb2RlOjpD
YWxsJiBjYWxsIDogbm9kZS0+Y2FsbHMoKSkKLSAgICAgICAgICAgICAgICBzZWxmVGltZSArPSBj
YWxsLmVsYXBzZWRUaW1lKCk7Ci0KLSAgICAgICAgICAgIGRvdWJsZSB0b3RhbFRpbWUgPSBzZWxm
VGltZTsKLSAgICAgICAgICAgIGZvciAoUmVmUHRyPFByb2ZpbGVOb2RlPiBjaGlsZCA6IG5vZGUt
PmNoaWxkcmVuKCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGl0ID0gbV9kYXRhLnNlbGZBbmRU
b3RhbFRpbWVzLmZpbmQoY2hpbGQuZ2V0KCkpOwotICAgICAgICAgICAgICAgIGlmIChpdCAhPSBt
X2RhdGEuc2VsZkFuZFRvdGFsVGltZXMuZW5kKCkpCi0gICAgICAgICAgICAgICAgICAgIHRvdGFs
VGltZSArPSBpdC0+dmFsdWUuc2Vjb25kOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBB
U1NFUlQobm9kZSk7Ci0gICAgICAgICAgICBtX2RhdGEuc2VsZkFuZFRvdGFsVGltZXMuc2V0KG5v
ZGUsIHN0ZDo6bWFrZV9wYWlyKHNlbGZUaW1lLCB0b3RhbFRpbWUpKTsKLSAgICAgICAgfQotCi0g
ICAgICAgIFByb2ZpbGVOb2RlOjpQcm9maWxlU3VidHJlZURhdGEgcmV0dXJuVmFsdWUoKSB7IHJl
dHVybiBXVEZNb3ZlKG1fZGF0YSk7IH0KLQotICAgICAgICBQcm9maWxlTm9kZTo6UHJvZmlsZVN1
YnRyZWVEYXRhIG1fZGF0YTsKLSAgICB9OwotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwot
Ci0jZW5kaWYgLy8gUHJvZmlsZU5vZGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24uY3BwCmluZGV4IDMwNjhmZjMu
LjM3NTFmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlckpldHRpc29uUmVhc29uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5jcHAKQEAgLTQ3LDkgKzQ3LDYgQEAgdm9pZCBwcmlu
dEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEpldHRpc29uUmVhc29uIHJlYXNvbikKICAgICBj
YXNlIEpldHRpc29uRHVlVG9EZWJ1Z2dlclN0ZXBwaW5nOgogICAgICAgICBvdXQucHJpbnQoIkRl
YnVnZ2VyU3RlcHBpbmciKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSmV0dGlzb25EdWVU
b0xlZ2FjeVByb2ZpbGVyOgotICAgICAgICBvdXQucHJpbnQoIkxlZ2FjeVByb2ZpbGVyIik7Ci0g
ICAgICAgIHJldHVybjsKICAgICBjYXNlIEpldHRpc29uRHVlVG9CYXNlbGluZUxvb3BSZW9wdGlt
aXphdGlvblRyaWdnZXI6CiAgICAgICAgIG91dC5wcmludCgiQmFzZWxpbmVMb29wUmVvcHRpbWl6
YXRpb25UcmlnZ2VyIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5oCmluZGV4IDZhNzkz
MjYuLjUzMDBhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlckpldHRpc29uUmVhc29uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24uaApAQCAtMzMsNyArMzMsNiBAQCBlbnVtIEpldHRp
c29uUmVhc29uIHsKICAgICBKZXR0aXNvbkR1ZVRvV2Vha1JlZmVyZW5jZSwKICAgICBKZXR0aXNv
bkR1ZVRvRGVidWdnZXJCcmVha3BvaW50LAogICAgIEpldHRpc29uRHVlVG9EZWJ1Z2dlclN0ZXBw
aW5nLAotICAgIEpldHRpc29uRHVlVG9MZWdhY3lQcm9maWxlciwKICAgICBKZXR0aXNvbkR1ZVRv
QmFzZWxpbmVMb29wUmVvcHRpbWl6YXRpb25UcmlnZ2VyLAogICAgIEpldHRpc29uRHVlVG9CYXNl
bGluZUxvb3BSZW9wdGltaXphdGlvblRyaWdnZXJPbk9TUkVudHJ5RmFpbCwKICAgICBKZXR0aXNv
bkR1ZVRvT1NSRXhpdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvZGVDYWNoZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUu
Y3BwCmluZGV4IDI4MTI3M2UuLjNiNzdkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29kZUNhY2hlLmNwcApAQCAtODEsMTMgKzgxLDEzIEBAIHRlbXBsYXRlIDw+IHN0cnVj
dCBDYWNoZVR5cGVzPFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jaz4gewogfTsKIAogdGVt
cGxhdGUgPGNsYXNzIFVubGlua2VkQ29kZUJsb2NrVHlwZSwgY2xhc3MgRXhlY3V0YWJsZVR5cGU+
Ci1VbmxpbmtlZENvZGVCbG9ja1R5cGUqIENvZGVDYWNoZTo6Z2V0R2xvYmFsQ29kZUJsb2NrKFZN
JiB2bSwgRXhlY3V0YWJsZVR5cGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJj
ZSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0
cmljdE1vZGUsIFRoaXNURFpNb2RlIHRoaXNURFpNb2RlLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJN
b2RlLCBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IsIEV2YWxD
b250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHZh
cmlhYmxlc1VuZGVyVERaKQorVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBDb2RlQ2FjaGU6OmdldEds
b2JhbENvZGVCbG9jayhWTSYgdm0sIEV4ZWN1dGFibGVUeXBlKiBleGVjdXRhYmxlLCBjb25zdCBT
b3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFy
c2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBUaGlzVERaTW9kZSB0aGlzVERaTW9kZSwgRGVidWdn
ZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBFdmFsQ29udGV4dFR5cGUg
ZXZhbENvbnRleHRUeXBlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiB2YXJpYWJsZXNVbmRl
clREWikKIHsKICAgICBTb3VyY2VDb2RlS2V5IGtleSA9IFNvdXJjZUNvZGVLZXkoc291cmNlLCBT
dHJpbmcoKSwgQ2FjaGVUeXBlczxVbmxpbmtlZENvZGVCbG9ja1R5cGU+Ojpjb2RlVHlwZSwgYnVp
bHRpbk1vZGUsIHN0cmljdE1vZGUsIHRoaXNURFpNb2RlKTsKICAgICBTb3VyY2VDb2RlVmFsdWUq
IGNhY2hlID0gbV9zb3VyY2VDb2RlLmZpbmRDYWNoZUFuZFVwZGF0ZUFnZShrZXkpOwogICAgIC8v
IEZJWE1FOiBXZSBzaG91bGQgZG8gc29tZXRoaW5nIHNtYXJ0IGZvciBURFogaW5zdGVhZCBvZiBq
dXN0IGRpc2FibGluZyBjYWNoaW5nLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTQwMTAKLSAgICBib29sIGNhbkNhY2hlID0gZGVidWdnZXJNb2RlID09
IERlYnVnZ2VyT2ZmICYmIHByb2ZpbGVyTW9kZSA9PSBQcm9maWxlck9mZiAmJiAhdm0udHlwZVBy
b2ZpbGVyKCkgJiYgIXZtLmNvbnRyb2xGbG93UHJvZmlsZXIoKSAmJiAhdmFyaWFibGVzVW5kZXJU
RFotPnNpemUoKTsKKyAgICBib29sIGNhbkNhY2hlID0gZGVidWdnZXJNb2RlID09IERlYnVnZ2Vy
T2ZmICYmICF2bS50eXBlUHJvZmlsZXIoKSAmJiAhdm0uY29udHJvbEZsb3dQcm9maWxlcigpICYm
ICF2YXJpYWJsZXNVbmRlclREWi0+c2l6ZSgpOwogICAgIGlmIChjYWNoZSAmJiBjYW5DYWNoZSkg
ewogICAgICAgICBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIHVubGlua2VkQ29kZUJsb2NrID0ganND
YXN0PFVubGlua2VkQ29kZUJsb2NrVHlwZSo+KGNhY2hlLT5jZWxsLmdldCgpKTsKICAgICAgICAg
dW5zaWduZWQgZmlyc3RMaW5lID0gc291cmNlLmZpcnN0TGluZSgpICsgdW5saW5rZWRDb2RlQmxv
Y2stPmZpcnN0TGluZSgpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIFVubGlua2VkQ29kZUJsb2NrVHlw
ZSogQ29kZUNhY2hlOjpnZXRHbG9iYWxDb2RlQmxvY2soVk0mIHZtLCBFeGVjdXRhYmxlVHlwZSog
ZXhlCiAgICAgdW5saW5rZWRDb2RlQmxvY2stPnNldFNvdXJjZVVSTERpcmVjdGl2ZShzb3VyY2Uu
cHJvdmlkZXIoKS0+c291cmNlVVJMKCkpOwogICAgIHVubGlua2VkQ29kZUJsb2NrLT5zZXRTb3Vy
Y2VNYXBwaW5nVVJMRGlyZWN0aXZlKHNvdXJjZS5wcm92aWRlcigpLT5zb3VyY2VNYXBwaW5nVVJM
KCkpOwogCi0gICAgZXJyb3IgPSBCeXRlY29kZUdlbmVyYXRvcjo6Z2VuZXJhdGUodm0sIHJvb3RO
b2RlLmdldCgpLCB1bmxpbmtlZENvZGVCbG9jaywgZGVidWdnZXJNb2RlLCBwcm9maWxlck1vZGUs
IHZhcmlhYmxlc1VuZGVyVERaKTsKKyAgICBlcnJvciA9IEJ5dGVjb2RlR2VuZXJhdG9yOjpnZW5l
cmF0ZSh2bSwgcm9vdE5vZGUuZ2V0KCksIHVubGlua2VkQ29kZUJsb2NrLCBkZWJ1Z2dlck1vZGUs
IHZhcmlhYmxlc1VuZGVyVERaKTsKIAogICAgIGlmIChlcnJvci5pc1ZhbGlkKCkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwpAQCAtMTMyLDIxICsxMzIsMjEgQEAgVW5saW5rZWRDb2RlQmxvY2tU
eXBlKiBDb2RlQ2FjaGU6OmdldEdsb2JhbENvZGVCbG9jayhWTSYgdm0sIEV4ZWN1dGFibGVUeXBl
KiBleGUKICAgICByZXR1cm4gdW5saW5rZWRDb2RlQmxvY2s7CiB9CiAKLVVubGlua2VkUHJvZ3Jh
bUNvZGVCbG9jayogQ29kZUNhY2hlOjpnZXRQcm9ncmFtQ29kZUJsb2NrKFZNJiB2bSwgUHJvZ3Jh
bUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJz
ZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUs
IERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUsIFBh
cnNlckVycm9yJiBlcnJvcikKK1VubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogQ29kZUNhY2hlOjpn
ZXRQcm9ncmFtQ29kZUJsb2NrKFZNJiB2bSwgUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9k
ZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1v
ZGUsIFBhcnNlckVycm9yJiBlcnJvcikKIHsKICAgICBWYXJpYWJsZUVudmlyb25tZW50IGVtcHR5
UGFyZW50VERaVmFyaWFibGVzOwotICAgIHJldHVybiBnZXRHbG9iYWxDb2RlQmxvY2s8VW5saW5r
ZWRQcm9ncmFtQ29kZUJsb2NrPih2bSwgZXhlY3V0YWJsZSwgc291cmNlLCBidWlsdGluTW9kZSwg
c3RyaWN0TW9kZSwgVGhpc1REWk1vZGU6OkNoZWNrSWZOZWVkZWQsIGRlYnVnZ2VyTW9kZSwgcHJv
ZmlsZXJNb2RlLCBlcnJvciwgRXZhbENvbnRleHRUeXBlOjpOb25lLCAmZW1wdHlQYXJlbnRURFpW
YXJpYWJsZXMpOworICAgIHJldHVybiBnZXRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRQcm9ncmFt
Q29kZUJsb2NrPih2bSwgZXhlY3V0YWJsZSwgc291cmNlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9k
ZSwgVGhpc1REWk1vZGU6OkNoZWNrSWZOZWVkZWQsIGRlYnVnZ2VyTW9kZSwgZXJyb3IsIEV2YWxD
b250ZXh0VHlwZTo6Tm9uZSwgJmVtcHR5UGFyZW50VERaVmFyaWFibGVzKTsKIH0KIAotVW5saW5r
ZWRFdmFsQ29kZUJsb2NrKiBDb2RlQ2FjaGU6OmdldEV2YWxDb2RlQmxvY2soVk0mIHZtLCBFdmFs
RXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1BhcnNl
ckJ1aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSwg
VGhpc1REWk1vZGUgdGhpc1REWk1vZGUsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2Zp
bGVyTW9kZSBwcm9maWxlck1vZGUsIFBhcnNlckVycm9yJiBlcnJvciwgRXZhbENvbnRleHRUeXBl
IGV2YWxDb250ZXh0VHlwZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogdmFyaWFibGVzVW5k
ZXJURFopCitVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIENvZGVDYWNoZTo6Z2V0RXZhbENvZGVCbG9j
ayhWTSYgdm0sIEV2YWxFeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBz
b3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9k
ZSBzdHJpY3RNb2RlLCBUaGlzVERaTW9kZSB0aGlzVERaTW9kZSwgRGVidWdnZXJNb2RlIGRlYnVn
Z2VyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRU
eXBlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiB2YXJpYWJsZXNVbmRlclREWikKIHsKLSAg
ICByZXR1cm4gZ2V0R2xvYmFsQ29kZUJsb2NrPFVubGlua2VkRXZhbENvZGVCbG9jaz4odm0sIGV4
ZWN1dGFibGUsIHNvdXJjZSwgYnVpbHRpbk1vZGUsIHN0cmljdE1vZGUsIHRoaXNURFpNb2RlLCBk
ZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSwgdmFyaWFi
bGVzVW5kZXJURFopOworICAgIHJldHVybiBnZXRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRFdmFs
Q29kZUJsb2NrPih2bSwgZXhlY3V0YWJsZSwgc291cmNlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9k
ZSwgdGhpc1REWk1vZGUsIGRlYnVnZ2VyTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSwgdmFy
aWFibGVzVW5kZXJURFopOwogfQogCi1VbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIENv
ZGVDYWNoZTo6Z2V0TW9kdWxlUHJvZ3JhbUNvZGVCbG9jayhWTSYgdm0sIE1vZHVsZVByb2dyYW1F
eGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2Vy
QnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2Zp
bGVyTW9kZSBwcm9maWxlck1vZGUsIFBhcnNlckVycm9yJiBlcnJvcikKK1VubGlua2VkTW9kdWxl
UHJvZ3JhbUNvZGVCbG9jayogQ29kZUNhY2hlOjpnZXRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKFZN
JiB2bSwgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNv
ZGUmIHNvdXJjZSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgRGVidWdnZXJNb2Rl
IGRlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yKQogewogICAgIFZhcmlhYmxlRW52aXJv
bm1lbnQgZW1wdHlQYXJlbnRURFpWYXJpYWJsZXM7Ci0gICAgcmV0dXJuIGdldEdsb2JhbENvZGVC
bG9jazxVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2s+KHZtLCBleGVjdXRhYmxlLCBzb3Vy
Y2UsIGJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdCwgVGhpc1REWk1vZGU6
OkNoZWNrSWZOZWVkZWQsIGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJNb2RlLCBlcnJvciwgRXZhbENv
bnRleHRUeXBlOjpOb25lLCAmZW1wdHlQYXJlbnRURFpWYXJpYWJsZXMpOworICAgIHJldHVybiBn
ZXRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrPih2bSwgZXhl
Y3V0YWJsZSwgc291cmNlLCBidWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlOjpTdHJpY3Qs
IFRoaXNURFpNb2RlOjpDaGVja0lmTmVlZGVkLCBkZWJ1Z2dlck1vZGUsIGVycm9yLCBFdmFsQ29u
dGV4dFR5cGU6Ok5vbmUsICZlbXB0eVBhcmVudFREWlZhcmlhYmxlcyk7CiB9CiAKIC8vIEZJWE1F
OiBUaGVyZSdzIG5vIG5lZWQgdG8gYWRkIHRoZSBmdW5jdGlvbidzIG5hbWUgdG8gdGhlIGtleSBo
ZXJlLiBJdCdzIGFscmVhZHkgaW4gdGhlIHNvdXJjZSBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db2RlQ2FjaGUuaAppbmRleCBlNWUyMTFiLi4wMDcwZDkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaApAQCAtMTg3LDkgKzE4Nyw5IEBAIHB1
YmxpYzoKICAgICBDb2RlQ2FjaGUoKTsKICAgICB+Q29kZUNhY2hlKCk7CiAKLSAgICBVbmxpbmtl
ZFByb2dyYW1Db2RlQmxvY2sqIGdldFByb2dyYW1Db2RlQmxvY2soVk0mLCBQcm9ncmFtRXhlY3V0
YWJsZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0
cmljdE1vZGUsIERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYpOwotICAg
IFVubGlua2VkRXZhbENvZGVCbG9jayogZ2V0RXZhbENvZGVCbG9jayhWTSYsIEV2YWxFeGVjdXRh
YmxlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpTUGFyc2VyU3Ry
aWN0TW9kZSwgVGhpc1REWk1vZGUsIERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBQYXJzZXJF
cnJvciYsIEV2YWxDb250ZXh0VHlwZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOwotICAg
IFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayogZ2V0TW9kdWxlUHJvZ3JhbUNvZGVCbG9j
ayhWTSYsIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFy
c2VyQnVpbHRpbk1vZGUsIERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYp
OworICAgIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogZ2V0UHJvZ3JhbUNvZGVCbG9jayhWTSYs
IFByb2dyYW1FeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1v
ZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSwgRGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYpOworICAg
IFVubGlua2VkRXZhbENvZGVCbG9jayogZ2V0RXZhbENvZGVCbG9jayhWTSYsIEV2YWxFeGVjdXRh
YmxlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpTUGFyc2VyU3Ry
aWN0TW9kZSwgVGhpc1REWk1vZGUsIERlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImLCBFdmFsQ29u
dGV4dFR5cGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKKyAgICBVbmxpbmtlZE1vZHVs
ZVByb2dyYW1Db2RlQmxvY2sqIGdldE1vZHVsZVByb2dyYW1Db2RlQmxvY2soVk0mLCBNb2R1bGVQ
cm9ncmFtRXhlY3V0YWJsZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlckJ1aWx0aW5Nb2Rl
LCBEZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJik7CiAgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1
dGFibGUqIGdldEZ1bmN0aW9uRXhlY3V0YWJsZUZyb21HbG9iYWxDb2RlKFZNJiwgY29uc3QgSWRl
bnRpZmllciYsIGNvbnN0IFNvdXJjZUNvZGUmLCBQYXJzZXJFcnJvciYpOwogCiAgICAgdm9pZCBj
bGVhcigpCkBAIC0xOTksNyArMTk5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHRlbXBs
YXRlIDxjbGFzcyBVbmxpbmtlZENvZGVCbG9ja1R5cGUsIGNsYXNzIEV4ZWN1dGFibGVUeXBlPiAK
LSAgICBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIGdldEdsb2JhbENvZGVCbG9jayhWTSYsIEV4ZWN1
dGFibGVUeXBlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpTUGFy
c2VyU3RyaWN0TW9kZSwgVGhpc1REWk1vZGUsIERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBQ
YXJzZXJFcnJvciYsIEV2YWxDb250ZXh0VHlwZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCop
OworICAgIFVubGlua2VkQ29kZUJsb2NrVHlwZSogZ2V0R2xvYmFsQ29kZUJsb2NrKFZNJiwgRXhl
Y3V0YWJsZVR5cGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJCdWlsdGluTW9kZSwgSlNQ
YXJzZXJTdHJpY3RNb2RlLCBUaGlzVERaTW9kZSwgRGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYs
IEV2YWxDb250ZXh0VHlwZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOwogCiAgICAgQ29k
ZUNhY2hlTWFwIG1fc291cmNlQ29kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IDkxOTVkNTUuLjlmY2RkZjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0zMTIsMTAgKzMxMiw5IEBA
IENvZGVCbG9jayogU2NyaXB0RXhlY3V0YWJsZTo6bmV3Q29kZUJsb2NrRm9yKAogICAgIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzY29wZS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgUGFy
c2VyRXJyb3IgZXJyb3I7CiAgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSA9IGdsb2JhbE9i
amVjdC0+aGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigpID8gRGVidWdnZXJPbiA6IERlYnVnZ2VyT2Zm
OwotICAgIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUgPSBnbG9iYWxPYmplY3QtPmhhc0xlZ2Fj
eVByb2ZpbGVyKCkgPyBQcm9maWxlck9uIDogUHJvZmlsZXJPZmY7CiAgICAgVW5saW5rZWRGdW5j
dGlvbkNvZGVCbG9jayogdW5saW5rZWRDb2RlQmxvY2sgPSAKICAgICAgICAgZXhlY3V0YWJsZS0+
bV91bmxpbmtlZEV4ZWN1dGFibGUtPnVubGlua2VkQ29kZUJsb2NrRm9yKAotICAgICAgICAgICAg
KnZtLCBleGVjdXRhYmxlLT5tX3NvdXJjZSwga2luZCwgZGVidWdnZXJNb2RlLCBwcm9maWxlck1v
ZGUsIGVycm9yLCAKKyAgICAgICAgICAgICp2bSwgZXhlY3V0YWJsZS0+bV9zb3VyY2UsIGtpbmQs
IGRlYnVnZ2VyTW9kZSwgZXJyb3IsIAogICAgICAgICAgICAgZXhlY3V0YWJsZS0+cGFyc2VNb2Rl
KCkpOwogICAgIHJlY29yZFBhcnNlKAogICAgICAgICBleGVjdXRhYmxlLT5tX3VubGlua2VkRXhl
Y3V0YWJsZS0+ZmVhdHVyZXMoKSwgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggZDc3MDU0OS4uNmMxNDczMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMTEyLDcg
KzExMiw2IEBACiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNsdWRlICJMYXp5Q2xhc3NT
dHJ1Y3R1cmVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTGF6eVByb3BlcnR5SW5saW5lcy5oIgotI2lu
Y2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCiAjaW5jbHVkZSAi
TWFwQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJNYXBJdGVyYXRvclByb3RvdHlwZS5oIgpAQCAt
MjA4LDcgKzIwNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNHbG9i
YWxPYmplY3Q6OnNfaW5mbyA9IHsgIkdsb2JhbE9iamVjdCIsICZCYXNlOjpzX2luZm8sICZnbG9i
YWxPYmplY3RUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0dsb2JhbE9iamVjdCkgfTsKIAot
Y29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNHbG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nlc3NGcm9tLCAmc3VwcG9ydHNMZWdhY3lQcm9m
aWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAm
amF2YVNjcmlwdFJ1bnRpbWVGbGFncywgbnVsbHB0ciwgJnNob3VsZEludGVycnVwdFNjcmlwdEJl
Zm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIs
IG51bGxwdHIgfTsKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTR2xvYmFsT2JqZWN0
OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNjZXNzRnJvbSwgJnN1cHBv
cnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVu
dGltZUZsYWdzLCBudWxscHRyLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwg
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9Owog
CiAvKiBTb3VyY2UgZm9yIEpTR2xvYmFsT2JqZWN0Lmx1dC5oCiBAYmVnaW4gZ2xvYmFsT2JqZWN0
VGFibGUKQEAgLTI5Nyw5ICsyOTYsNiBAQCBKU0dsb2JhbE9iamVjdDo6fkpTR2xvYmFsT2JqZWN0
KCkKIAogICAgIGlmIChtX2RlYnVnZ2VyKQogICAgICAgICBtX2RlYnVnZ2VyLT5kZXRhY2godGhp
cywgRGVidWdnZXI6Okdsb2JhbE9iamVjdElzRGVzdHJ1Y3RpbmcpOwotCi0gICAgaWYgKExlZ2Fj
eVByb2ZpbGVyKiBwcm9maWxlciA9IHZtKCkuZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHBy
b2ZpbGVyLT5zdG9wUHJvZmlsaW5nKHRoaXMpOwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0Ojpk
ZXN0cm95KEpTQ2VsbCogY2VsbCkKQEAgLTgzNywxMSArODMzLDYgQEAgcHV0RGlyZWN0V2l0aG91
dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBD
b25zdHJ1Y3QKICAgICByZXNldFByb3RvdHlwZSh2bSwgZ2V0UHJvdG90eXBlRGlyZWN0KCkpOwog
fQogCi1ib29sIEpTR2xvYmFsT2JqZWN0OjpoYXNMZWdhY3lQcm9maWxlcigpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPnN1cHBvcnRzTGVnYWN5UHJvZmls
aW5nKHRoaXMpOwotfQotCiBib29sIEpTR2xvYmFsT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUs
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU0dsb2JhbE9iamVjdCogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGNlbGwpOwpAQCAtMTIzMSwxMCArMTIyMiw5IEBA
IFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVByb2dyYW1D
b2RlQmxvY2soQ2FsbEZyYW1lKiBjYWxsCiAgICAgUGFyc2VyRXJyb3IgZXJyb3I7CiAgICAgSlNQ
YXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUgPSBleGVjdXRhYmxlLT5pc1N0cmljdE1vZGUoKSA/
IEpTUGFyc2VyU3RyaWN0TW9kZTo6U3RyaWN0IDogSlNQYXJzZXJTdHJpY3RNb2RlOjpOb3RTdHJp
Y3Q7CiAgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSA9IGhhc0ludGVyYWN0aXZlRGVidWdn
ZXIoKSA/IERlYnVnZ2VyT24gOiBEZWJ1Z2dlck9mZjsKLSAgICBQcm9maWxlck1vZGUgcHJvZmls
ZXJNb2RlID0gaGFzTGVnYWN5UHJvZmlsZXIoKSA/IFByb2ZpbGVyT24gOiBQcm9maWxlck9mZjsK
ICAgICBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqIHVubGlua2VkQ29kZUJsb2NrID0gdm0oKS5j
b2RlQ2FjaGUoKS0+Z2V0UHJvZ3JhbUNvZGVCbG9jaygKICAgICAgICAgdm0oKSwgZXhlY3V0YWJs
ZSwgZXhlY3V0YWJsZS0+c291cmNlKCksIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4s
IHN0cmljdE1vZGUsIAotICAgICAgICBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwgZXJyb3Ip
OworICAgICAgICBkZWJ1Z2dlck1vZGUsIGVycm9yKTsKIAogICAgIGlmIChoYXNEZWJ1Z2dlcigp
KQogICAgICAgICBkZWJ1Z2dlcigpLT5zb3VyY2VQYXJzZWQoY2FsbEZyYW1lLCBleGVjdXRhYmxl
LT5zb3VyY2UoKS5wcm92aWRlcigpLCBlcnJvci5saW5lKCksIGVycm9yLm1lc3NhZ2UoKSk7CkBA
IC0xMjU0LDkgKzEyNDQsOCBAQCBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIEpTR2xvYmFsT2JqZWN0
OjpjcmVhdGVFdmFsQ29kZUJsb2NrKENhbGxGcmFtZSogY2FsbEZyYW1lLAogICAgIERlYnVnZ2Vy
TW9kZSBkZWJ1Z2dlck1vZGUgPSBoYXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkgPyBEZWJ1Z2dlck9u
IDogRGVidWdnZXJPZmY7CiAgICAgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSA9IGV4
ZWN1dGFibGUtPmV4ZWN1dGFibGVJbmZvKCkuZXZhbENvbnRleHRUeXBlKCk7CiAgICAgCi0gICAg
UHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSA9IGhhc0xlZ2FjeVByb2ZpbGVyKCkgPyBQcm9maWxl
ck9uIDogUHJvZmlsZXJPZmY7CiAgICAgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiB1bmxpbmtlZENv
ZGVCbG9jayA9IHZtKCkuY29kZUNhY2hlKCktPmdldEV2YWxDb2RlQmxvY2soCi0gICAgICAgIHZt
KCksIGV4ZWN1dGFibGUsIGV4ZWN1dGFibGUtPnNvdXJjZSgpLCBKU1BhcnNlckJ1aWx0aW5Nb2Rl
OjpOb3RCdWlsdGluLCBzdHJpY3RNb2RlLCB0aGlzVERaTW9kZSwgZGVidWdnZXJNb2RlLCBwcm9m
aWxlck1vZGUsIGVycm9yLCBldmFsQ29udGV4dFR5cGUsIHZhcmlhYmxlc1VuZGVyVERaKTsKKyAg
ICAgICAgdm0oKSwgZXhlY3V0YWJsZSwgZXhlY3V0YWJsZS0+c291cmNlKCksIEpTUGFyc2VyQnVp
bHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIHN0cmljdE1vZGUsIHRoaXNURFpNb2RlLCBkZWJ1Z2dlck1v
ZGUsIGVycm9yLCBldmFsQ29udGV4dFR5cGUsIHZhcmlhYmxlc1VuZGVyVERaKTsKIAogICAgIGlm
IChoYXNEZWJ1Z2dlcigpKQogICAgICAgICBkZWJ1Z2dlcigpLT5zb3VyY2VQYXJzZWQoY2FsbEZy
YW1lLCBleGVjdXRhYmxlLT5zb3VyY2UoKS5wcm92aWRlcigpLCBlcnJvci5saW5lKCksIGVycm9y
Lm1lc3NhZ2UoKSk7CkBAIC0xMjczLDkgKzEyNjIsOCBAQCBVbmxpbmtlZE1vZHVsZVByb2dyYW1D
b2RlQmxvY2sqIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKENh
bAogewogICAgIFBhcnNlckVycm9yIGVycm9yOwogICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1v
ZGUgPSBoYXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkgPyBEZWJ1Z2dlck9uIDogRGVidWdnZXJPZmY7
Ci0gICAgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSA9IGhhc0xlZ2FjeVByb2ZpbGVyKCkgPyBQ
cm9maWxlck9uIDogUHJvZmlsZXJPZmY7CiAgICAgVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJs
b2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IHZtKCkuY29kZUNhY2hlKCktPmdldE1vZHVsZVByb2dy
YW1Db2RlQmxvY2soCi0gICAgICAgIHZtKCksIGV4ZWN1dGFibGUsIGV4ZWN1dGFibGUtPnNvdXJj
ZSgpLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RCdWlsdGluLCBkZWJ1Z2dlck1vZGUsIHByb2Zp
bGVyTW9kZSwgZXJyb3IpOworICAgICAgICB2bSgpLCBleGVjdXRhYmxlLCBleGVjdXRhYmxlLT5z
b3VyY2UoKSwgSlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRpbiwgZGVidWdnZXJNb2RlLCBl
cnJvcik7CiAKICAgICBpZiAoaGFzRGVidWdnZXIoKSkKICAgICAgICAgZGVidWdnZXIoKS0+c291
cmNlUGFyc2VkKGNhbGxGcmFtZSwgZXhlY3V0YWJsZS0+c291cmNlKCkucHJvdmlkZXIoKSwgZXJy
b3IubGluZSgpLCBlcnJvci5tZXNzYWdlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggZjU4MDQ3Ni4uOTZhZWNlYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNTEsOSAr
MTUxLDYgQEAgc3RydWN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHsKICAgICB0eXBlZGVmIGJv
b2wgKCpBbGxvd3NBY2Nlc3NGcm9tRnVuY3Rpb25QdHIpKGNvbnN0IEpTR2xvYmFsT2JqZWN0Kiwg
RXhlY1N0YXRlKik7CiAgICAgQWxsb3dzQWNjZXNzRnJvbUZ1bmN0aW9uUHRyIGFsbG93c0FjY2Vz
c0Zyb207CiAKLSAgICB0eXBlZGVmIGJvb2wgKCpTdXBwb3J0c0xlZ2FjeVByb2ZpbGluZ0Z1bmN0
aW9uUHRyKShjb25zdCBKU0dsb2JhbE9iamVjdCopOwotICAgIFN1cHBvcnRzTGVnYWN5UHJvZmls
aW5nRnVuY3Rpb25QdHIgc3VwcG9ydHNMZWdhY3lQcm9maWxpbmc7Ci0KICAgICB0eXBlZGVmIGJv
b2wgKCpTdXBwb3J0c1JpY2hTb3VyY2VJbmZvRnVuY3Rpb25QdHIpKGNvbnN0IEpTR2xvYmFsT2Jq
ZWN0Kik7CiAgICAgU3VwcG9ydHNSaWNoU291cmNlSW5mb0Z1bmN0aW9uUHRyIHN1cHBvcnRzUmlj
aFNvdXJjZUluZm87CiAKQEAgLTQwNyw3ICs0MDQsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGhh
c0RlYnVnZ2VyKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkgY29u
c3Q7Ci0gICAgYm9vbCBoYXNMZWdhY3lQcm9maWxlcigpIGNvbnN0OwogICAgIGNvbnN0IFJ1bnRp
bWVGbGFncyYgcnVudGltZUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9ydW50aW1lRmxhZ3M7IH0K
IAogcHJvdGVjdGVkOgpAQCAtNzE3LDcgKzcxMyw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBHbG9i
YWxPYmplY3RNZXRob2RUYWJsZSogZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKSBjb25zdCB7IHJl
dHVybiBtX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOyB9CiAKICAgICBzdGF0aWMgYm9vbCBhbGxv
d3NBY2Nlc3NGcm9tKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKikgeyByZXR1cm4g
dHJ1ZTsgfQotICAgIHN0YXRpYyBib29sIHN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nKGNvbnN0IEpT
R2xvYmFsT2JqZWN0KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0
c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gdHJ1ZTsgfQog
CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgRXhlY1N0YXRlKiBnbG9iYWxFeGVjKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKaW5kZXggMWQwZTU2NC4uMjVkZTIwYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtMTMxLDcgKzEzMSw2IEBA
IHR5cGVkZWYgY29uc3QgY2hhciogb3B0aW9uU3RyaW5nOwogICAgIHYoYm9vbCwgZHVtcEJ5dGVj
b2RlTGl2ZW5lc3NSZXN1bHRzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29s
LCB2YWxpZGF0ZUJ5dGVjb2RlLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29s
LCBmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uLCBmYWxzZSwgTm9ybWFsLCBudWxscHRy
KSBcCi0gICAgdihib29sLCBmb3JjZVByb2ZpbGVyQnl0ZWNvZGVHZW5lcmF0aW9uLCBmYWxzZSwg
Tm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAogICAgIHYoYm9vbCwgdXNlRnVuY3Rpb25Eb3RBcmd1
bWVudHMsIHRydWUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgdXNlVGFpbENhbGxz
LCB0cnVlLCBOb3JtYWwsIG51bGxwdHIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNw
cAppbmRleCBjYjZiYjM5Li4zOGMxZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
Y3BwCkBAIC0xOTQsNyArMTk0LDYgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhl
YXBUeXBlKQogI2VuZGlmCiAgICAgLCBtX2luRGVmaW5lT3duUHJvcGVydHkoZmFsc2UpCiAgICAg
LCBtX2NvZGVDYWNoZShzdGQ6Om1ha2VfdW5pcXVlPENvZGVDYWNoZT4oKSkKLSAgICAsIG1fZW5h
YmxlZFByb2ZpbGVyKG51bGxwdHIpCiAgICAgLCBtX2J1aWx0aW5FeGVjdXRhYmxlcyhzdGQ6Om1h
a2VfdW5pcXVlPEJ1aWx0aW5FeGVjdXRhYmxlcz4oKnRoaXMpKQogICAgICwgbV90eXBlUHJvZmls
ZXJFbmFibGVkQ291bnQoMCkKICAgICAsIG1fY29udHJvbEZsb3dQcm9maWxlckVuYWJsZWRDb3Vu
dCgwKQpAQCAtNzc2LDI1ICs3NzUsNiBAQCB2b2lkIFZNOjphZGRJbXB1cmVQcm9wZXJ0eShjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKICAgICAgICAgd2F0Y2hwb2ludFNldC0+ZmlyZUFsbCgi
SW1wdXJlIHByb3BlcnR5IGFkZGVkIik7CiB9CiAKLWNsYXNzIFNldEVuYWJsZWRQcm9maWxlckZ1
bmN0b3IgewotcHVibGljOgotICAgIGJvb2wgb3BlcmF0b3IoKShDb2RlQmxvY2sqIGNvZGVCbG9j
aykgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChKSVRDb2RlOjppc09wdGltaXppbmdKSVQoY29k
ZUJsb2NrLT5qaXRUeXBlKCkpKQotICAgICAgICAgICAgY29kZUJsb2NrLT5qZXR0aXNvbihQcm9m
aWxlcjo6SmV0dGlzb25EdWVUb0xlZ2FjeVByb2ZpbGVyKTsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLX07Ci0KLXZvaWQgVk06OnNldEVuYWJsZWRQcm9maWxlcihMZWdhY3lQcm9maWxl
ciogcHJvZmlsZXIpCi17Ci0gICAgbV9lbmFibGVkUHJvZmlsZXIgPSBwcm9maWxlcjsKLSAgICBp
ZiAobV9lbmFibGVkUHJvZmlsZXIpIHsKLSAgICAgICAgU2V0RW5hYmxlZFByb2ZpbGVyRnVuY3Rv
ciBmdW5jdG9yOwotICAgICAgICBoZWFwLmZvckVhY2hDb2RlQmxvY2soZnVuY3Rvcik7Ci0gICAg
fQotfQotCiBzdGF0aWMgYm9vbCBlbmFibGVQcm9maWxlcldpdGhSZXNwZWN0VG9Db3VudCh1bnNp
Z25lZCYgY291bnRlciwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRvRW5hYmxlV29yaykKIHsKICAg
ICBib29sIG5lZWRzVG9SZWNvbXBpbGUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5oCmluZGV4IGI0M2FmZmIuLmJkNWNiNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0u
aApAQCAtOTIsNyArOTIsNiBAQCBjbGFzcyBKU0JvdW5kU2xvdEJhc2VGdW5jdGlvbjsKIGNsYXNz
IEpTR2xvYmFsT2JqZWN0OwogY2xhc3MgSlNPYmplY3Q7CiBjbGFzcyBMTEludE9mZnNldHNFeHRy
YWN0b3I7Ci1jbGFzcyBMZWdhY3lQcm9maWxlcjsKIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGU7CiBj
bGFzcyBSZWdFeHBDYWNoZTsKIGNsYXNzIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OwpAQCAtMzU1LDEx
ICszNTQsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2luRGVmaW5lT3duUHJvcGVydHk7
CiAgICAgfQogCi0gICAgTGVnYWN5UHJvZmlsZXIqIGVuYWJsZWRQcm9maWxlcigpIHsgcmV0dXJu
IG1fZW5hYmxlZFByb2ZpbGVyOyB9Ci0gICAgdm9pZCBzZXRFbmFibGVkUHJvZmlsZXIoTGVnYWN5
UHJvZmlsZXIqKTsKLQotICAgIHZvaWQqIGVuYWJsZWRQcm9maWxlckFkZHJlc3MoKSB7IHJldHVy
biAmbV9lbmFibGVkUHJvZmlsZXI7IH0KLQogI2lmIEVOQUJMRShKSVQpCiAgICAgYm9vbCBjYW5V
c2VKSVQoKSB7IHJldHVybiBtX2NhblVzZUpJVDsgfQogI2Vsc2UKQEAgLTY1Nyw3ICs2NTEsNiBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9nbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJv
dyB7IHRydWUgfTsKICAgICBib29sIG1fc2hvdWxkQnVpbGRQQ1RvQ29kZU9yaWdpbk1hcHBpbmcg
eyBmYWxzZSB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2RlQ2FjaGU+IG1fY29kZUNhY2hlOwot
ICAgIExlZ2FjeVByb2ZpbGVyKiBtX2VuYWJsZWRQcm9maWxlcjsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8QnVpbHRpbkV4ZWN1dGFibGVzPiBtX2J1aWx0aW5FeGVjdXRhYmxlczsKICAgICBIYXNoTWFw
PFN0cmluZywgUmVmUHRyPFdhdGNocG9pbnRTZXQ+PiBtX2ltcHVyZVByb3BlcnR5V2F0Y2hwb2lu
dFNldHM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFR5cGVQcm9maWxlcj4gbV90eXBlUHJvZmlsZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGZjOTc3OTUuLjU3ODQ5YTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC01OTEsOCArNTkxLDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMK
IAogICAgIGluc3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuaWRsCiAgICAgaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5pZGwKLSAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwK
LSAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCiAKICAgICBsb2FkZXIvYXBwY2Fj
aGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJjODZkMmUuLmYxYTRk
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NSBAQAorMjAxNi0wNS0xMyAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBMZWdhY3lQcm9maWxl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNTY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9M
ZWdhY3lQcm9maWxlci5oOiBSZW1vdmVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3By
b2ZpbGVyL1Byb2ZpbGUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9w
cm9maWxlci9Qcm9maWxlTm9kZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRo
TlNSZXNvbHZlci5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6c3VwcG9ydHNMZWdhY3lQcm9m
aWxpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpzdXBw
b3J0c1JpY2hTb3VyY2VJbmZvKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3Bl
QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c3Vw
cG9ydHNMZWdhY3lQcm9maWxpbmcpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
V29ya2VyR2xvYmFsU2NvcGVCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q2Fj
aGVkRnJhbWVEYXRhLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNsZWFyV2luZG93U2hl
bGwpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlTm9kZS5oOiBSZW1vdmVk
LgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAg
ICAoQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9UZXN0T2JqLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25z
b2xlSW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OnN0b3BQcm9maWxpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Oklu
c3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cjo6bGVnYWN5UHJvZmlsZXJFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNvbnRyb2xsZXI6OnNldExlZ2FjeVByb2ZpbGVyRW5hYmxlZCk6IERlbGV0ZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFByb2ZpbGluZ0ltcGwpOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JU
aW1lbGluZUFnZW50OjpzdGFydEZyb21Db25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQ6OnN0b3BGcm9tQ29uc29sZSk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZURlYnVn
Z2VyQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGw6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1
aWxkQWdncmVnYXRlQ2FsbEluZm9JbnNwZWN0b3JPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6YnVpbGRJbnNwZWN0b3JPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6YnVpbGRQcm9maWxlSW5zcGVjdG9yT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6YXBwZW5kUHJvZmlsZSk6IERlbGV0ZWQuCisgICAg
ICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAg
ICAgICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
Q29uc29sZUNsaWVudDo6cHJvZmlsZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29s
ZUNsaWVudDo6Y2xlYXJQcm9maWxlcyk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9QYWdlQ29u
c29sZUNsaWVudC5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNvbnNvbGVQcm9maWxlcyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVU
ZXN0U3VwcG9ydC5jcHA6CisgICAgICAgICogeG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcDoK
KyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorCiAyMDE2LTA1LTEzICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIGNyb3NzLWZh
ZGUoKSByZW5kZXJpbmcgZG9lc24ndCBtYXRjaCBleHBlY3RhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCmluZGV4IDYwYjg1NTYuLjU4MGJiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAKQEAgLTQyMiw4ICs0MjIsNiBAQAogI2luY2x1ZGUgIkpTUlRDVHJhY2tFdmVudC5jcHAi
CiAjaW5jbHVkZSAiSlNTY3JlZW4uY3BwIgogI2luY2x1ZGUgIkpTU2NyaXB0UHJvY2Vzc29yTm9k
ZS5jcHAiCi0jaW5jbHVkZSAiSlNTY3JpcHRQcm9maWxlLmNwcCIKLSNpbmNsdWRlICJKU1Njcmlw
dFByb2ZpbGVOb2RlLmNwcCIKICNpZiBFTkFCTEUoQ1NQX05FWFQpCiAjaW5jbHVkZSAiSlNTZWN1
cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNwcCIKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggYzNhMTJlNC4uYmQ3NmE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC01MDUsOCArNTA1LDYgQEAgTk9OX1NWR19CSU5ESU5HX0lETFMgPSBcCiAgICAg
JChXZWJDb3JlKS9odG1sL3RyYWNrL1ZUVEN1ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvaW5zcGVj
dG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5pZGwgXAogICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5pZGwgXAotICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL1Njcmlw
dFByb2ZpbGUuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9k
ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2Fj
aGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvQWJzdHJhY3RWaWV3LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9wYWdlL0JhclByb3AuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9MZWdhY3lQcm9maWxlci5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBkYzBlOWJmLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0ZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw1ICswLDAgQEAKLSNpZm5kZWYgV2ViQ29yZV9GV0RfTGVnYWN5UHJvZmlsZXJfaAot
I2RlZmluZSBXZWJDb3JlX0ZXRF9MZWdhY3lQcm9maWxlcl9oCi0jaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvTGVnYWN5UHJvZmlsZXIuaD4KLSNlbmRpZgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9Qcm9maWxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9Qcm9maWxlLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQyNmJhZmQuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvcHJvZmlsZXIvUHJvZmlsZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCww
IEBACi0jaWZuZGVmIFdlYkNvcmVfRldEX1Byb2ZpbGVfaAotI2RlZmluZSBXZWJDb3JlX0ZXRF9Q
cm9maWxlX2gKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlLmg+Ci0jZW5kaWYKLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcHJvZmlsZXIvUHJv
ZmlsZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL1By
b2ZpbGVOb2RlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExOWEwN2UuLjAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcHJvZmlsZXIvUHJvZmls
ZU5vZGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotI2lmbmRlZiBXZWJDb3JlX0ZX
RF9Qcm9maWxlTm9kZV9oCi0jZGVmaW5lIFdlYkNvcmVfRldEX1Byb2ZpbGVOb2RlX2gKLSNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlTm9kZS5oPgotI2VuZGlmCi0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyNmE3MjVi
Li44NjQ1OTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00MDU1LDEyICs0MDU1LDYgQEAKIAkJOURBQzdDNTQxQUYyQ0FBMTAw
NDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5REFDN0M1MjFBRjJDQUExMDA0MzdDNDQg
LyogQ1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVlLmNwcCAqLzsgfTsKIAkJOURBQzdDNTUxQUYy
Q0FBMjAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOURBQzdDNTMxQUYyQ0FBMTAwNDM3
QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5oICovOyB9OwogCQk5REFDN0M1NzFB
RjJDQjY0MDA0MzdDNDQgLyogU3R5bGVDb250ZW50QWxpZ25tZW50RGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOURBQzdDNTYxQUYyQ0I2NDAwNDM3
QzQ0IC8qIFN0eWxlQ29udGVudEFsaWdubWVudERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5RjcyMzA0RjExMTg0QjQxMDBBRDAxMjYgLyog
U2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUY3MjMwNEMxMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5RkEzN0VFNDExNzJG
QzgwMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGQTM3RUUzMTE3MkZDODAwMEM0Q0Q1NSAvKiBTY3Jp
cHRQcm9maWxlTm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTlGQTM3RUZBMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZBMzdFRjYx
MTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5jcHAgKi87IH07Ci0JCTlGQTM3RUZC
MTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGQTM3RUY3MTE3MkZEOTMwMEM0Q0Q1NSAvKiBK
U1NjcmlwdFByb2ZpbGUuaCAqLzsgfTsKLQkJOUZBMzdFRkMxMTcyRkRBNjAwQzRDRDU1IC8qIEpT
U2NyaXB0UHJvZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUZBMzdFRjgxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5v
ZGUuY3BwICovOyB9OwotCQk5RkEzN0VGRDExNzJGREE2MDBDNENENTUgLyogSlNTY3JpcHRQcm9m
aWxlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuaCAqLzsgfTsK
IAkJQTA3RDMzNTUxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3Jt
YXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3
RDMzNTMxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3Bw
ICovOyB9OwogCQlBMDdEMzM1NjE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNoYWRlclByZWNp
c2lvbkZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTA3RDMzNTQxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3Jt
YXQuaCAqLzsgfTsKIAkJQTA3RDMzNTgxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMDdEMzM1NzE1MkI2MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3Jt
YXQuaCAqLzsgfTsKQEAgLTExNzc3LDE0ICsxMTc3MSw2IEBACiAJCTlEQUM3QzUyMUFGMkNBQTEw
MDQzN0M0NCAvKiBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOURBQzdDNTMxQUYyQ0FBMTAwNDM3QzQ0IC8q
IENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOURBQzdDNTYxQUYyQ0I2NDAwNDM3QzQ0IC8qIFN0eWxlQ29udGVudEFsaWdu
bWVudERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVDb250ZW50
QWxpZ25tZW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5RjcyMzA0QzEx
MTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTY3JpcHRQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTlGQTM3RUUzMTE3MkZDODAwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRQcm9maWxlTm9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VFRjExNzJGRDQxMDBDNENENTUgLyogU2NyaXB0UHJv
ZmlsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2NyaXB0UHJvZmlsZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlGQTM3RUYwMTE3MkZENDEwMEM0Q0Q1NSAvKiBTY3Jp
cHRQcm9maWxlTm9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2NyaXB0UHJvZmlsZU5v
ZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VGNjExNzJGRDkzMDBD
NENENTUgLyogSlNTY3JpcHRQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTU2NyaXB0UHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTlGQTM3RUY3MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3JpcHRQcm9maWxlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTlGQTM3RUY4MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFBy
b2ZpbGVOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2Ny
aXB0UHJvZmlsZU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VG
OTExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1NjcmlwdFByb2ZpbGVOb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUEwN0QzMzUzMTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVy
UHJlY2lzaW9uRm9ybWF0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBMDdEMzM1NDE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNoYWRlclByZWNpc2lv
bkZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMU2hhZGVy
UHJlY2lzaW9uRm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEwN0QzMzU3
MTUyQjYzMkQwMDFCNjM5MyAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyOTgsMTAgKzE2Mjg0LDYgQEAKIAkJCQlB
NTg0RkUzQTE4NjRFMkQ4MDA4NDNCMTAgLyogSlNDb21tYW5kTGluZUFQSUhvc3QuaCAqLywKIAkJ
CQk3QTBFNzcxQzEwQzAwREIxMDBBMDI3NkUgLyogSlNJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
ICovLAogCQkJCTdBMEU3NzFEMTBDMDBEQjEwMEEwMjc2RSAvKiBKU0luc3BlY3RvckZyb250ZW5k
SG9zdC5oICovLAotCQkJCTlGQTM3RUY2MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2Zp
bGUuY3BwICovLAotCQkJCTlGQTM3RUY3MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2Zp
bGUuaCAqLywKLQkJCQk5RkEzN0VGODExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxl
Tm9kZS5jcHAgKi8sCi0JCQkJOUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJv
ZmlsZU5vZGUuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gSW5zcGVjdG9yOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTE2Mzg2LDggKzE2MzY4LDYgQEAKIAkJCQlGMzgyMDg4RDE0N0Qz
NUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRpbWVBZ2VudC5oICovLAogCQkJCUE1RjM2RDM4MThGNzU4
NzIwMDU0QzAyNCAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwICovLAogCQkJCUE1RjM2RDM5
MThGNzU4NzIwMDU0QzAyNCAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCAqLywKLQkJCQk5RkEz
N0VFRjExNzJGRDQxMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZS5pZGwgKi8sCi0JCQkJOUZBMzdF
RjAxMTcyRkQ0MTAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmlkbCAqLywKIAkJCQk3NTUz
Q0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcCAqLywKIAkJ
CQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi8s
CiAJCQkJQTU2QzVCOTgxODlGMzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVBZ2VudC5jcHAgKi8s
CkBAIC0yMjM3NCw4ICsyMjM1NCw2IEBACiAJCQkJQTgzRTFDNzIwRTQ5MDQyQjAwMTQwQjlDIC8q
IFNjcmlwdENvbnRyb2xsZXJNYWMubW0gKi8sCiAJCQkJNDFGMDY2RTMwRjY0QkNGNjAwQTA3RUFD
IC8qIFNjcmlwdEdsb2JhbE9iamVjdC5jcHAgKi8sCiAJCQkJNDFGMDY2RTIwRjY0QkNGNjAwQTA3
RUFDIC8qIFNjcmlwdEdsb2JhbE9iamVjdC5oICovLAotCQkJCTlGNzIzMDRDMTExODRCNDEwMEFE
MDEyNiAvKiBTY3JpcHRQcm9maWxlLmggKi8sCi0JCQkJOUZBMzdFRTMxMTcyRkM4MDAwQzRDRDU1
IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmggKi8sCiAJCQkJOTM0Q0MxMDkwRURCMjIzOTAwQTY1OEYy
IC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLywKIAkJCQk0MTI3RDUzNjBGOEFBQjFEMDBFNDI0RjUg
LyogU2NyaXB0U3RhdGUuY3BwICovLAogCQkJCTQxQzc2MEIwMEVERTAzRDMwMEMxNjU1RiAvKiBT
Y3JpcHRTdGF0ZS5oICovLApAQCAtMjY4NTQsOCArMjY4MzIsNiBAQAogCQkJCTVFMkM0MzZDMUJD
RjA3MUUwMDAxRTJCQyAvKiBKU1JUQ1RyYWNrRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
RUMwMUMzMEMyNzREREQwMDlGNEVDOSAvKiBKU1NjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkRBMTVFQ0UxMkIwM0Y2MTAwM0E1ODNBIC8qIEpTU2NyaXB0UHJvY2Vzc29yTm9kZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJOUZBMzdFRkIxMTcyRkRBNjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmls
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUZBMzdFRkQxMTcyRkRBNjAwQzRDRDU1IC8qIEpTU2Ny
aXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRDA2QUQxMUM3Nzc1NDgwMEZE
RkFGMSAvKiBKU1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTlCREE2NEQ4MUI5NzVDRjIwMDlDNDM4NyAvKiBKU1NoYWRvd1Jvb3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUNEOURFMTdCMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNzg0Nyw4ICsyNzgyMyw2IEBACiAJCQkJRTExQzlEOUIwRUIzNjgx
MjAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxRjA2NkU0MEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JO
b2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5RjcyMzA0RjExMTg0QjQxMDBBRDAxMjYgLyogU2Ny
aXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUZBMzdFRTQxMTcyRkM4MDAwQzRDRDU1
IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QTQxM0FFMDEyMDdC
QkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzRDQzEw
QTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDFDNzYwQjEwRURFMDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggaW4gSGVhZGVycyAq
LywKQEAgLTMwNjIwLDggKzMwNTk0LDYgQEAKIAkJCQk1RTJDNDM2QjFCQ0YwNzFFMDAwMUUyQkMg
LyogSlNSVENUcmFja0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUMwMUMyMEMyNzRE
REQwMDlGNEVDOSAvKiBKU1NjcmVlbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUVDRDEy
QjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTlGQTM3RUZBMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJOUZBMzdFRkMxMTcyRkRBNjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJv
ZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0VEMDZBRDAxQzc3NzU0ODAwRkRGQUYx
IC8qIEpTU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5QkRBNjRENzFCOTc1Q0U1MDA5QzQzODcgLyogSlNTaGFkb3dSb290LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEOURFMTdBMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAppbmRleCBlZTlmOTY4Li5lMDkxNWE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2
ZXIuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBh
Z2VDb25zb2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRl
IDxwcm9maWxlci9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNs
dWRlIDx3dGYvUmVmLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCmluZGV4IDA0YWU4YTMuLmEwM2IwY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtNjQsNyArNjQsNyBAQCBzdGF0
aWMgYm9vbCBzaG91bGRBbGxvd0FjY2Vzc0Zyb20oY29uc3QgSlNHbG9iYWxPYmplY3QqIHRoaXNP
YmplY3QsIEV4ZWNTdGF0ZSogZQogCiBjb25zdCBDbGFzc0luZm8gSlNET01XaW5kb3dCYXNlOjpz
X2luZm8gPSB7ICJXaW5kb3ciLCAmSlNET01HbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU0RPTVdpbmRvd0Jhc2UpIH07CiAKLWNvbnN0IEdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsg
JnNob3VsZEFsbG93QWNjZXNzRnJvbSwgJnN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nLCAmc3VwcG9y
dHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50
aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVycnVwdFNjcmlwdEJl
Zm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9hZGVyRmV0Y2gsIG51
bGxwdHIsIG51bGxwdHIsICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwgJmRlZmF1bHRMYW5ndWFnZSB9
OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxkQWxsb3dBY2Nlc3NGcm9tLCAmc3VwcG9ydHNS
aWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1l
RmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9y
ZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9hZGVyRmV0Y2gsIG51bGxw
dHIsIG51bGxwdHIsICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwgJmRlZmF1bHRMYW5ndWFnZSB9Owog
CiBKU0RPTVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93QmFzZShWTSYgdm0sIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93LCBKU0RPTVdpbmRvd1NoZWxsKiBz
aGVsbCkKICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsICZzaGVsbC0+d29y
bGQoKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCkBAIC0xMjUsMjAgKzEyNSw2IEBAIHZv
aWQgSlNET01XaW5kb3dCYXNlOjpwcmludEVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpIGNvbnN0CiAgICAgcHJpbnRFcnJvck1lc3NhZ2VGb3JGcmFtZSh3cmFwcGVkKCkuZnJhbWUo
KSwgbWVzc2FnZSk7CiB9CiAKLWJvb2wgSlNET01XaW5kb3dCYXNlOjpzdXBwb3J0c0xlZ2FjeVBy
b2ZpbGluZyhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQotewotICAgIGNvbnN0IEpTRE9N
V2luZG93QmFzZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PGNvbnN0IEpTRE9NV2luZG93QmFz
ZSo+KG9iamVjdCk7Ci0gICAgRnJhbWUqIGZyYW1lID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmZy
YW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgUGFn
ZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICByZXR1cm4gcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmxlZ2FjeVBy
b2ZpbGVyRW5hYmxlZCgpOwotfQotCiBib29sIEpTRE9NV2luZG93QmFzZTo6c3VwcG9ydHNSaWNo
U291cmNlSW5mbyhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQogewogICAgIGNvbnN0IEpT
RE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PGNvbnN0IEpTRE9NV2luZG93
QmFzZSo+KG9iamVjdCk7CkBAIC0xNTIsNyArMTM4LDYgQEAgYm9vbCBKU0RPTVdpbmRvd0Jhc2U6
OnN1cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkKIAog
ICAgIGJvb2wgZW5hYmxlZCA9IHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5lbmFibGVkKCk7
CiAgICAgQVNTRVJUKGVuYWJsZWQgfHwgIXRoaXNPYmplY3QtPmRlYnVnZ2VyKCkpOwotICAgIEFT
U0VSVChlbmFibGVkIHx8ICFzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZyh0aGlzT2JqZWN0KSk7CiAg
ICAgcmV0dXJuIGVuYWJsZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmgKaW5kZXggNTY2OWRlNS4uMTZmYzM5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTYwLDcgKzYwLDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6Okdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlIHNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGU7CiAKLSAgICAgICAgc3RhdGljIGJv
b2wgc3VwcG9ydHNMZWdhY3lQcm9maWxpbmcoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwog
ICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0
KGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxk
SW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNj
b3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNj
b3BlQmFzZS5jcHAKaW5kZXggM2Q0NzZkZS4uM2IwYjMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNDQs
NyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IENsYXNzSW5mbyBKU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZTo6c19pbmZvID0geyAiV29ya2VyR2xvYmFsU2NvcGUiLCAmSlNET01H
bG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZSkgfTsKIAotY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrZXJH
bG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nl
c3NGcm9tLCAmc3VwcG9ydHNMZWdhY3lQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZv
LCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVl
VGFza1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgJmRlZmF1bHRMYW5ndWFn
ZSB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrZXJHbG9iYWxTY29wZUJh
c2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nlc3NGcm9tLCAmc3Vw
cG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRS
dW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVycnVwdFNjcmlw
dEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIsICZkZWZhdWx0TGFuZ3VhZ2UgfTsKIAogSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OkpTV29y
a2VyR2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJl
LCBQYXNzUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBpbXBsKQogICAgIDogSlNET01HbG9iYWxP
YmplY3Qodm0sIHN0cnVjdHVyZSwgJm5vcm1hbFdvcmxkKHZtKSwgJnNfZ2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUpCkBAIC03MywxMSArNzMsNiBAQCBib29sIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNl
OjphbGxvd3NBY2Nlc3NGcm9tKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QsIEV4ZQogICAg
IHJldHVybiBKU0dsb2JhbE9iamVjdDo6YWxsb3dzQWNjZXNzRnJvbShvYmplY3QsIGV4ZWMpOwog
fQogCi1ib29sIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzdXBwb3J0c0xlZ2FjeVByb2ZpbGlu
Zyhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQotewotICAgIHJldHVybiBKU0dsb2JhbE9i
amVjdDo6c3VwcG9ydHNMZWdhY3lQcm9maWxpbmcob2JqZWN0KTsKLX0KLQogYm9vbCBKU1dvcmtl
ckdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2JhbE9i
amVjdCogb2JqZWN0KQogewogICAgIHJldHVybiBKU0dsb2JhbE9iamVjdDo6c3VwcG9ydHNSaWNo
U291cmNlSW5mbyhvYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmgKaW5kZXggMWJkMmIxMC4uMDA2ZmYwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFz
ZS5oCkBAIC01Myw3ICs1Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGlj
IGNvbnN0IEpTQzo6R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgc19nbG9iYWxPYmplY3RNZXRob2RU
YWJsZTsKIAogICAgICAgICBzdGF0aWMgYm9vbCBhbGxvd3NBY2Nlc3NGcm9tKGNvbnN0IEpTQzo6
SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBzdGF0aWMgYm9vbCBz
dXBwb3J0c0xlZ2FjeVByb2ZpbGluZyhjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAg
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3QgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOwogICAgICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29u
c3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRl
cnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0KGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEu
Y3BwCmluZGV4IDFjY2NmOGEuLjU2MTZiM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcApAQCAtNDAsNyArNDAsNiBAQAog
I2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNp
bmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KLSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxl
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDxydW50aW1lL1dlYWtH
Q01hcElubGluZXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmNwcAppbmRleCAyZmMwNDEyLi5kMmYyZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNTIsNyArNTIsNiBAQAog
I2luY2x1ZGUgPGRlYnVnZ2VyL0RlYnVnZ2VyLmg+CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxp
bmVzLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgotI2luY2x1ZGUg
PHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRp
bmcuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRp
bmcuaD4KQEAgLTIxNSwxMyArMjE0LDYgQEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjpjbGVhcldp
bmRvd1NoZWxsKERPTVdpbmRvdyogbmV3RE9NV2luZG93LCBib29sIGdvaW5nSW50b1AKICAgICAg
ICAgYXR0YWNoRGVidWdnZXIod2luZG93U2hlbGwsIG51bGxwdHIpOwogICAgICAgICB3aW5kb3dT
aGVsbC0+d2luZG93KCktPnNldENvbnNvbGVDbGllbnQobnVsbHB0cik7CiAKLSAgICAgICAgLy8g
RklYTUU6IFdlIHNob3VsZCBjbGVhciBjb25zb2xlIHByb2ZpbGVzIGZvciBlYWNoIGZyYW1lIGFz
IHNvb24gYXMgdGhlIGZyYW1lIGlzIGRlc3Ryb3llZC4KLSAgICAgICAgLy8gSW5zdGVhZCBvZiBj
bGVhcmluZyBhbGwgb2YgdGhlbSB3aGVuIHRoZSBtYWluIGZyYW1lIGlzIGRlc3Ryb3llZC4KLSAg
ICAgICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkgewotICAgICAgICAgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBwYWdlLT5jb25zb2xlKCku
Y2xlYXJQcm9maWxlcygpOwotICAgICAgICB9Ci0KICAgICAgICAgd2luZG93U2hlbGwtPndpbmRv
dygpLT53aWxsUmVtb3ZlRnJvbVdpbmRvd1NoZWxsKCk7CiAgICAgICAgIHdpbmRvd1NoZWxsLT5z
ZXRXaW5kb3cobmV3RE9NV2luZG93KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0UHJvZmlsZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjQzZjgyLi4wMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaAorKysg
L2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU2NyaXB0UHJvZmlsZV9oCi0jZGVmaW5lIFNj
cmlwdFByb2ZpbGVfaAotCi0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLXR5cGVkZWYgSlNDOjpQcm9maWxlIFNjcmlwdFByb2ZpbGU7Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNjcmlwdFByb2ZpbGVfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZU5vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVOb2RlLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGZkMTI4M2QuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZU5vZGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgU2NyaXB0UHJvZmlsZU5vZGVfaAotI2RlZmluZSBTY3JpcHRQcm9maWxlTm9kZV9oCi0KLSNp
bmNsdWRlIDxwcm9maWxlci9Qcm9maWxlTm9kZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LXR5cGVkZWYgSlNDOjpQcm9maWxlTm9kZSBTY3JpcHRQcm9maWxlTm9kZTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gU2NyaXB0UHJvZmlsZU5vZGVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA1
ZjY1ZDFlLi5mMjhiM2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMjY0LDEyICsyNjQsNiBAQCBzdWIgQWRkQ2xhc3NG
b3J3YXJkSWZOZWVkZWQKIHsKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0OwogCi0gICAg
aWYgKCRpbnRlcmZhY2VOYW1lIGVxICJTY3JpcHRQcm9maWxlTm9kZSIpIHsKLSAgICAgICAgJGhl
YWRlckluY2x1ZGVzeyI8cHJvZmlsZXIvUHJvZmlsZU5vZGUuaD4ifSA9IDE7Ci0gICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICJ0eXBlZGVmIEpTQzo6UHJvZmlsZU5vZGUgU2NyaXB0UHJvZmls
ZU5vZGU7XG5cbiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgIyBTVkdBbmltYXRl
ZExlbmd0aC9OdW1iZXIvZXRjLiBhcmUgdHlwZWRlZnMgYW5kIHNob3VsZCBub3QgYmUgZm9yd2Fy
ZC1kZWNsYXJlZCBhcyBjbGFzc2VzLgogICAgIHJldHVybiBpZiAkY29kZUdlbmVyYXRvci0+SXNT
VkdBbmltYXRlZFR5cGUoJGludGVyZmFjZU5hbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDlhMjRmMTUu
LmU2NDZmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC00Miw3ICs0Miw2IEBACiAjaW5jbHVkZSAiSlNOb2Rl
LmgiCiAjaW5jbHVkZSAiSlNTVkdEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpTU1ZHUG9pbnQuaCIK
LSNpbmNsdWRlICJKU1NjcmlwdFByb2ZpbGUuaCIKICNpbmNsdWRlICJKU1Rlc3RDYWxsYmFjay5o
IgogI2luY2x1ZGUgIkpTVGVzdENhbGxiYWNrRnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU1Rlc3RO
b2RlLmgiCkBAIC01NCw3ICs1Myw2IEBACiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJTVkdQb2ludC5oIgogI2luY2x1ZGUgIlNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oIgot
I2luY2x1ZGUgIlNjcmlwdFByb2ZpbGUuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRlc3RPYmouaCIKQEAgLTUz
Nyw4ICs1MzUsNiBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2Jq
UHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBhdGhOU1JlcwogSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdN
ZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uTnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2Qo
SlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZChKU0M6OkV4
ZWNTdGF0ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialBy
b3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKEpTQzo6RXhlY1N0YXRlKik7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aEVudW1BcmcoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1Bcmco
SlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0
VmFsdWUoSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTExMDksOCArMTEwNSw2IEBAIHN0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7
ICJtZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVyIiwgSlNDOjpGdW5jdGlvbiwgTm9J
bnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIpLCAo
aW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAibnVsbGFibGVTdHJpbmdNZXRob2QiLCBKU0M6OkZ1
bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rp
b24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdNZXRob2QpLCAoaW50
cHRyX3QpICgwKSB9IH0sCiAgICAgeyAibnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kIiwgSlND
OjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1
bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3BlY2lhbE1l
dGhvZCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJtZXRob2RXaXRoU2VxdWVuY2VBcmci
LCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNl
QXJnKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgIm1ldGhvZFJldHVybmluZ1NlcXVlbmNl
IiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFJldHVybmluZ1Nl
cXVlbmNlKSwgKGludHB0cl90KSAoMSkgfSB9LAogICAgIHsgIm1ldGhvZFdpdGhFbnVtQXJnIiwg
SlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2
ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJnKSwg
KGludHB0cl90KSAoMSkgfSB9LAogICAgIHsgIm1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmciLCBK
U0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZl
RnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51
bUFyZyksIChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxFbnVt
QXJnQW5kRGVmYXVsdFZhbHVlIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUpLCAoaW50cHRyX3QpICgw
KSB9IH0sCkBAIC00MTQwLDQwICs0MTM0LDYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGgKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VB
cmcoRXhlY1N0YXRlKiBzdGF0ZSkKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IHN0YXRlLT50
aGlzVmFsdWUoKTsKLSAgICBhdXRvIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KHRoaXNWYWx1ZSk7Ci0gICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAg
cmV0dXJuIHRocm93VGhpc1R5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgIm1ldGhvZFdpdGhT
ZXF1ZW5jZUFyZyIpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywg
SlNUZXN0T2JqOjppbmZvKCkpOwotICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVk
KCk7Ci0gICAgaWYgKFVOTElLRUxZKHN0YXRlLT5hcmd1bWVudENvdW50KCkgPCAxKSkKLSAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJy
b3Ioc3RhdGUpKTsKLSAgICBhdXRvIHNlcXVlbmNlQXJnID0gKHRvUmVmUHRyTmF0aXZlQXJyYXk8
U2NyaXB0UHJvZmlsZSwgSlNTY3JpcHRQcm9maWxlPihzdGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDAp
LCAmSlNTY3JpcHRQcm9maWxlOjp0b1dyYXBwZWQpKTsKLSAgICBpZiAoVU5MSUtFTFkoc3RhdGUt
PmhhZEV4Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKLSAgICBpbXBsLm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhXVEZNb3ZlKHNlcXVlbmNl
QXJnKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQot
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1l
dGhvZFJldHVybmluZ1NlcXVlbmNlKEV4ZWNTdGF0ZSogc3RhdGUpCi17Ci0gICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBzdGF0ZS0+dGhpc1ZhbHVlKCk7Ci0gICAgYXV0byBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwotICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1RoaXNUeXBlRXJyb3IoKnN0YXRlLCAiVGVz
dE9iaiIsICJtZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSIpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwotICAgIGF1dG8mIGltcGwg
PSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAgaWYgKFVOTElLRUxZKHN0YXRlLT5hcmd1bWVu
dENvdW50KCkgPCAxKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihzdGF0ZSwgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3Ioc3RhdGUpKTsKLSAgICBhdXRvIGxvbmdBcmcgPSBjb252
ZXJ0PGludDMyX3Q+KCpzdGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDApLCBOb3JtYWxDb252ZXJzaW9u
KTsKLSAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9
IGpzQXJyYXkoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBpbXBsLm1ldGhvZFJl
dHVybmluZ1NlcXVlbmNlKFdURk1vdmUobG9uZ0FyZykpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZyhFeGVjU3RhdGUqIHN0YXRlKQog
ewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gc3RhdGUtPnRoaXNWYWx1ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDlmYWUz
NmUuLjkzZWU0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9iai5pZGwKQEAgLTExNyw5ICsxMTcsNiBAQCBlbnVtIFRlc3RDb25maWRlbmNlIHsg
ImhpZ2giLCAia2luZGEtbG93IiB9OwogICAgIHN0YXRpYyBET01TdHJpbmc/IG51bGxhYmxlU3Ry
aW5nU3RhdGljTWV0aG9kKCk7CiAgICAgZ2V0dGVyIERPTVN0cmluZz8gbnVsbGFibGVTdHJpbmdT
cGVjaWFsTWV0aG9kKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogCi0gICAgdm9pZCBtZXRob2RXaXRo
U2VxdWVuY2VBcmcoc2VxdWVuY2U8U2NyaXB0UHJvZmlsZT4gc2VxdWVuY2VBcmcpOwotICAgIHNl
cXVlbmNlPFNjcmlwdFByb2ZpbGU+IG1ldGhvZFJldHVybmluZ1NlcXVlbmNlKGxvbmcgbG9uZ0Fy
Zyk7Ci0KICAgICB2b2lkIG1ldGhvZFdpdGhFbnVtQXJnKFRlc3RFbnVtVHlwZSBlbnVtQXJnKTsK
ICAgICB2b2lkIG1ldGhvZFdpdGhPcHRpb25hbEVudW1Bcmcob3B0aW9uYWwgVGVzdEVudW1UeXBl
IGVudW1BcmcpOwogICAgIHZvaWQgbWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRW
YWx1ZShvcHRpb25hbCBUZXN0RW51bVR5cGUgZW51bUFyZyA9ICJFbnVtVmFsdWUxIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDk0OGZiMTIuLjI2NGZiNDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCkBAIC05Nyw3ICs5Nyw2IEBACiAjaW5jbHVkZSAiV2ViS2l0Q1NTRmlsdGVy
VmFsdWUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NSZWdpb25SdWxlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxl
Lmg+CiAjaW5jbHVkZSA8Yml0c2V0PgogI2luY2x1ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0
Zi9IZXhOdW1iZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDVmNzcwYWUuLjI1Y2Jh
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTgyLDcgKzE4Miw2IEBACiAjaW5jbHVk
ZSAiWFBhdGhOU1Jlc29sdmVyLmgiCiAjaW5jbHVkZSAiWFBhdGhSZXN1bHQuaCIKICNpbmNsdWRl
ICJodG1sZWRpdGluZy5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNp
bmNsdWRlIDxjdGltZT4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaAppbmRleCA0ODQ5
MjM1Li5hMDE3MGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNk
ZWZpbmUgSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbl9oCiAKICNpbmNsdWRlICJJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKLSNpbmNsdWRlICJTY3JpcHRQcm9maWxlLmgiCiAjaW5j
bHVkZSA8aW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9T
Y3JpcHRDYWxsU3RhY2suaD4KIApAQCAtODUsOSArODQsOSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0UHJvZmlsaW5nKFBhZ2UmIHBhZ2UsIEpTQzo6RXhlY1N0
YXRlKgogICAgIHN0YXJ0UHJvZmlsaW5nSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShw
YWdlKSwgZXhlYywgdGl0bGUpOwogfQogCi1pbmxpbmUgUmVmUHRyPEpTQzo6UHJvZmlsZT4gSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wUHJvZmlsaW5nKFBhZ2UmIHBhZ2UsIEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcgJnRpdGxlKQoraW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpzdG9wUHJvZmlsaW5nKFBhZ2UmIHBhZ2UsIEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBjb25zdCBTdHJpbmcgJnRpdGxlKQogewotICAgIHJldHVybiBzdG9wUHJvZmlsaW5n
SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSwgZXhlYywgdGl0bGUpOworICAg
IHN0b3BQcm9maWxpbmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpLCBleGVj
LCB0aXRsZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBkYjFjZmFkLi4wNDM4
NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCkBAIC03Miw3ICs3Miw2IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JBZ2VudC5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFn
ZW50Lmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxl
ckFnZW50Lmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaD4KICNpbmNsdWRl
IDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9TdG9wd2F0Y2guaD4KIApAQCAtMTcx
LDE0ICsxNzAsMTEgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQ
YWdlJiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICAgICBtX2luc3RydW1lbnRp
bmdBZ2VudHMtPnNldFdlYkNvbnNvbGVBZ2VudChjb25zb2xlQWdlbnRQdHIuZ2V0KCkpOwogICAg
IG1fYWdlbnRzLmFwcGVuZChXVEZNb3ZlKGNvbnNvbGVBZ2VudFB0cikpOwogCi0gICAgYXV0byB0
aW1lbGluZUFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JUaW1lbGluZUFnZW50
PihwYWdlQ29udGV4dCwgc2NyaXB0UHJvZmlsZXJBZ2VudCwgaGVhcEFnZW50LCBwYWdlQWdlbnQp
OwotICAgIG1fdGltZWxpbmVBZ2VudCA9IHRpbWVsaW5lQWdlbnRQdHIuZ2V0KCk7Ci0gICAgbV9h
Z2VudHMuYXBwZW5kKFdURk1vdmUodGltZWxpbmVBZ2VudFB0cikpOwotCiAgICAgYXV0byBkZWJ1
Z2dlckFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlRGVidWdnZXJBZ2VudD4ocGFnZUNv
bnRleHQsIHBhZ2VBZ2VudCwgbV9vdmVybGF5LmdldCgpKTsKICAgICBQYWdlRGVidWdnZXJBZ2Vu
dCogZGVidWdnZXJBZ2VudCA9IGRlYnVnZ2VyQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMu
YXBwZW5kKFdURk1vdmUoZGVidWdnZXJBZ2VudFB0cikpOwogCisgICAgbV9hZ2VudHMuYXBwZW5k
KHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4ocGFnZUNvbnRleHQsIHNj
cmlwdFByb2ZpbGVyQWdlbnQsIGhlYXBBZ2VudCwgcGFnZUFnZW50KSk7CiAgICAgbV9hZ2VudHMu
YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yRE9NRGVidWdnZXJBZ2VudD4ocGFnZUNv
bnRleHQsIG1fZG9tQWdlbnQsIGRlYnVnZ2VyQWdlbnQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQo
c3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQ+KHBhZ2VDb250
ZXh0LCBwYWdlQWdlbnQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJ
bnNwZWN0b3JMYXllclRyZWVBZ2VudD4ocGFnZUNvbnRleHQpKTsKQEAgLTQxNCwyNyArNDEwLDYg
QEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRJbmRpY2F0aW5nKGJvb2wgaW5kaWNhdGlu
ZykKICNlbmRpZgogfQogCi1ib29sIEluc3BlY3RvckNvbnRyb2xsZXI6OmxlZ2FjeVByb2ZpbGVy
RW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGVnYWN5UHJvZmlsZXJFbmFibGVkOwot
fQotCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldExlZ2FjeVByb2ZpbGVyRW5hYmxlZChi
b29sIGVuYWJsZSkKLXsKLSAgICBtX2xlZ2FjeVByb2ZpbGVyRW5hYmxlZCA9IGVuYWJsZTsKLQot
ICAgIEVycm9yU3RyaW5nIHVudXNlZDsKLSAgICBpZiAoZW5hYmxlKSB7Ci0gICAgICAgIG1faW5z
dHJ1bWVudGluZ0FnZW50cy0+c2V0UGVyc2lzdGVudEluc3BlY3RvclRpbWVsaW5lQWdlbnQobV90
aW1lbGluZUFnZW50KTsKLSAgICAgICAgbV9zY3JpcHREZWJ1Z1NlcnZlci5yZWNvbXBpbGVBbGxK
U0Z1bmN0aW9ucygpOwotICAgICAgICBtX3RpbWVsaW5lQWdlbnQtPnN0YXJ0KHVudXNlZCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRQZXJzaXN0ZW50
SW5zcGVjdG9yVGltZWxpbmVBZ2VudChudWxscHRyKTsKLSAgICAgICAgbV9zY3JpcHREZWJ1Z1Nl
cnZlci5yZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwotICAgICAgICBtX3RpbWVsaW5lQWdlbnQt
PnN0b3AodW51c2VkKTsKLSAgICB9Ci19Ci0KIGJvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFnZS5zZXR0aW5n
cygpLmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4IGNiZjVjMTkuLmE1ODk2ZjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNjMsNyAr
NjMsNiBAQCBjbGFzcyBJbnNwZWN0b3JET01BZ2VudDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5k
Q2xpZW50OwogY2xhc3MgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOwogY2xhc3MgSW5zcGVjdG9y
UGFnZUFnZW50OwotY2xhc3MgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDsKIGNsYXNzIEluc3RydW1l
bnRpbmdBZ2VudHM7CiBjbGFzcyBOb2RlOwogY2xhc3MgUGFnZTsKQEAgLTExMSw5ICsxMTAsNiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJc1VuZGVyVGVzdChib29sIGlzVW5kZXJUZXN0KSB7IG1f
aXNVbmRlclRlc3QgPSBpc1VuZGVyVGVzdDsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXZh
bHVhdGVGb3JUZXN0SW5Gcm9udGVuZChjb25zdCBTdHJpbmcmIHNjcmlwdCk7CiAKLSAgICBXRUJD
T1JFX0VYUE9SVCBib29sIGxlZ2FjeVByb2ZpbGVyRW5hYmxlZCgpIGNvbnN0OwotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0TGVnYWN5UHJvZmlsZXJFbmFibGVkKGJvb2wpOwotCiAgICAgSW5z
cGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3Rv
ckNsaWVudDsgfQogICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50KiBpbnNwZWN0b3JGcm9udGVu
ZENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7IH0KICAg
ICBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUFn
ZW50OyB9CkBAIC0xNDgsMTEgKzE0NCw5IEBAIHByaXZhdGU6CiAgICAgSW5zcGVjdG9yOjpJbnNw
ZWN0b3JBZ2VudCogbV9pbnNwZWN0b3JBZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JE
T01BZ2VudCogbV9kb21BZ2VudCB7IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQq
IG1fcGFnZUFnZW50IHsgbnVsbHB0ciB9OwotICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIG1f
dGltZWxpbmVBZ2VudCB7IG51bGxwdHIgfTsKIAogICAgIGJvb2wgbV9pc1VuZGVyVGVzdCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2lzQXV0b21hdGljSW5zcGVjdGlvbiB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBtX2xlZ2FjeVByb2ZpbGVyRW5hYmxlZCB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDk5MDA3ZTAuLmE5MzM4NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
CkBAIC02Nyw3ICs2Nyw2IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5o
PgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaD4KLSNpbmNsdWRlIDxwcm9maWxl
ci9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAt
ODk0LDExICs4OTMsMTAgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0UHJv
ZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW4KICAgICAgICAgdGltZWxp
bmVBZ2VudC0+c3RhcnRGcm9tQ29uc29sZShleGVjLCB0aXRsZSk7CiB9CiAKLVJlZlB0cjxKU0M6
OlByb2ZpbGU+IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFByb2ZpbGluZ0ltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
c3RvcFByb2ZpbGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50
cywgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgaWYg
KEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLnBlcnNpc3RlbnRJbnNwZWN0b3JUaW1lbGluZUFnZW50KCkpCi0gICAgICAgIHJldHVybiB0
aW1lbGluZUFnZW50LT5zdG9wRnJvbUNvbnNvbGUoZXhlYywgdGl0bGUpOwotICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICB0aW1lbGluZUFnZW50LT5zdG9wRnJvbUNvbnNvbGUoZXhlYywgdGl0
bGUpOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkT3BlbkRhdGFiYXNl
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBSZWZQdHI8RGF0
YWJhc2U+JiYgZGF0YWJhc2UsIGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBkOWQxNDQ4Li5lNGZlZjYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCkBAIC0yMTgsNyArMjE4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZEZp
cmVBbmltYXRpb25GcmFtZShjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsK
IAogICAgIHN0YXRpYyB2b2lkIHN0YXJ0UHJvZmlsaW5nKFBhZ2UmLCBKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHN0YXRpYyBSZWZQdHI8SlNDOjpQcm9maWxlPiBz
dG9wUHJvZmlsaW5nKFBhZ2UmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUp
OworICAgIHN0YXRpYyB2b2lkIHN0b3BQcm9maWxpbmcoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSk7CiAKICAgICBzdGF0aWMgdm9pZCBkaWRPcGVuRGF0YWJhc2Uo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFJlZlB0cjxEYXRhYmFzZT4mJiwgY29uc3QgU3RyaW5n
JiBkb21haW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKIApA
QCAtMzg3LDcgKzM4Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkRmlyZUFuaW1h
dGlvbkZyYW1lSW1wbChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKIAog
ICAgIHN0YXRpYyB2b2lkIHN0YXJ0UHJvZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKLSAgICBzdGF0aWMgUmVmUHRy
PEpTQzo6UHJvZmlsZT4gc3RvcFByb2ZpbGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CisgICAgc3RhdGljIHZvaWQgc3Rv
cFByb2ZpbGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7CiAKICAgICBzdGF0aWMgdm9pZCBkaWRPcGVuRGF0YWJhc2VJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmLCBSZWZQdHI8RGF0YWJhc2U+JiYsIGNvbnN0IFN0cmluZyYg
ZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNw
cAppbmRleCA3MDFiYTdiLi4yYzhlMThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC00Nyw3ICs0Nyw2IEBACiAjaW5j
bHVkZSA8aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg+CiAjaW5jbHVk
ZSA8aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuaD4KICNpbmNsdWRlIDxpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaD4KLSNpbmNsdWRlIDxw
cm9maWxlci9MZWdhY3lQcm9maWxlci5oPgogI2luY2x1ZGUgPHd0Zi9TdG9wd2F0Y2guaD4KIAog
I2lmIFBMQVRGT1JNKElPUykKQEAgLTI0Miw1OCArMjQxLDE0IEBAIGRvdWJsZSBJbnNwZWN0b3JU
aW1lbGluZUFnZW50Ojp0aW1lc3RhbXAoKQogICAgIHJldHVybiBtX2Vudmlyb25tZW50LmV4ZWN1
dGlvblN0b3B3YXRjaCgpLT5lbGFwc2VkVGltZSgpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OnN0YXJ0RnJvbUNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0
cmluZyAmdGl0bGUpCit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0YXJ0RnJvbUNvbnNv
bGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKQogewogICAgIC8vIEZJWE1FOiA8aHR0
cHM6Ly93ZWJraXQub3JnL2IvMTUzNDk5PiBXZWIgSW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUg
c2hvdWxkIHVzZSB0aGUgbmV3IFNhbXBsaW5nIFByb2ZpbGVyCi0KLSAgICAvLyBPbmx5IGFsbG93
IHJlY29yZGluZyBvZiBhIHByb2ZpbGUgaWYgaXQgaXMgYW5vbnltb3VzIChlbXB0eSB0aXRsZSkg
b3IgZG9lcyBub3QgbWF0Y2gKLSAgICAvLyB0aGUgdGl0bGUgb2YgYW4gYWxyZWFkeSByZWNvcmRp
bmcgcHJvZmlsZS4KLSAgICBpZiAoIXRpdGxlLmlzRW1wdHkoKSkgewotICAgICAgICBmb3IgKGNv
bnN0IFRpbWVsaW5lUmVjb3JkRW50cnkmIHJlY29yZCA6IG1fcGVuZGluZ0NvbnNvbGVQcm9maWxl
UmVjb3JkcykgewotICAgICAgICAgICAgU3RyaW5nIHJlY29yZFRpdGxlOwotICAgICAgICAgICAg
cmVjb3JkLmRhdGEtPmdldFN0cmluZyhBU0NJSUxpdGVyYWwoInRpdGxlIiksIHJlY29yZFRpdGxl
KTsKLSAgICAgICAgICAgIGlmIChyZWNvcmRUaXRsZSA9PSB0aXRsZSkKLSAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIW1fZW5hYmxlZCAmJiBtX3Bl
bmRpbmdDb25zb2xlUHJvZmlsZVJlY29yZHMuaXNFbXB0eSgpKQotICAgICAgICBpbnRlcm5hbFN0
YXJ0KCk7Ci0KLSAgICBKU0M6OkxlZ2FjeVByb2ZpbGVyOjpwcm9maWxlcigpLT5zdGFydFByb2Zp
bGluZyhleGVjLCB0aXRsZSwgbV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKSk7Ci0K
LSAgICBtX3BlbmRpbmdDb25zb2xlUHJvZmlsZVJlY29yZHMuYXBwZW5kKGNyZWF0ZVJlY29yZEVu
dHJ5KFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3JlYXRlQ29uc29sZVByb2ZpbGVEYXRhKHRpdGxl
KSwgVGltZWxpbmVSZWNvcmRUeXBlOjpDb25zb2xlUHJvZmlsZSwgdHJ1ZSwgZnJhbWVGcm9tRXhl
Y1N0YXRlKGV4ZWMpKSk7CiB9CiAKLVJlZlB0cjxKU0M6OlByb2ZpbGU+IEluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OnN0b3BGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3Ry
aW5nJiB0aXRsZSkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcEZyb21Db25zb2xl
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikKIHsKICAgICAvLyBGSVhNRTogPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzE1MzQ5OT4gV2ViIEluc3BlY3RvcjogY29uc29sZS5wcm9maWxlIHNo
b3VsZCB1c2UgdGhlIG5ldyBTYW1wbGluZyBQcm9maWxlcgotCi0gICAgLy8gU3RvcCBwcm9maWxl
cyBpbiByZXZlcnNlIG9yZGVyLiBJZiB0aGUgdGl0bGUgaXMgZW1wdHksIHRoZW4gc3RvcCB0aGUg
bGFzdCBwcm9maWxlLgotICAgIC8vIE90aGVyd2lzZSwgbWF0Y2ggdGhlIHRpdGxlIG9mIHRoZSBw
cm9maWxlIHRvIHN0b3AuCi0gICAgZm9yIChwdHJkaWZmX3QgaSA9IG1fcGVuZGluZ0NvbnNvbGVQ
cm9maWxlUmVjb3Jkcy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewotICAgICAgICBjb25zdCBU
aW1lbGluZVJlY29yZEVudHJ5JiByZWNvcmQgPSBtX3BlbmRpbmdDb25zb2xlUHJvZmlsZVJlY29y
ZHNbaV07Ci0KLSAgICAgICAgU3RyaW5nIHJlY29yZFRpdGxlOwotICAgICAgICByZWNvcmQuZGF0
YS0+Z2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgidGl0bGUiKSwgcmVjb3JkVGl0bGUpOwotCi0gICAg
ICAgIGlmICh0aXRsZS5pc0VtcHR5KCkgfHwgcmVjb3JkVGl0bGUgPT0gdGl0bGUpIHsKLSAgICAg
ICAgICAgIFJlZlB0cjxKU0M6OlByb2ZpbGU+IHByb2ZpbGUgPSBKU0M6OkxlZ2FjeVByb2ZpbGVy
Ojpwcm9maWxlcigpLT5zdG9wUHJvZmlsaW5nKGV4ZWMsIHRpdGxlKTsKLSAgICAgICAgICAgIGlm
IChwcm9maWxlKQotICAgICAgICAgICAgICAgIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6YXBwZW5k
UHJvZmlsZShyZWNvcmQuZGF0YS5nZXQoKSwgcHJvZmlsZS5jb3B5UmVmKCkpOwotCi0gICAgICAg
ICAgICBkaWRDb21wbGV0ZVJlY29yZEVudHJ5KHJlY29yZCk7Ci0KLSAgICAgICAgICAgIG1fcGVu
ZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jkcy5yZW1vdmUoaSk7Ci0KLSAgICAgICAgICAgIGlmICgh
bV9lbmFibGVkRnJvbUZyb250ZW5kICYmIG1fcGVuZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jkcy5p
c0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgaW50ZXJuYWxTdG9wKCk7Ci0KLSAgICAgICAgICAg
IHJldHVybiBwcm9maWxlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIG51bGxwdHI7
CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbihjb25z
dCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3JpcHRMaW5lLCBGcmFtZSogZnJhbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRl
eCA4ODM4OGZjLi44Yjc4YTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAKICAg
ICAvLyBNZXRob2RzIGNhbGxlZCBmcm9tIFdlYkNvcmUuCiAgICAgdm9pZCBzdGFydEZyb21Db25z
b2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nICZ0aXRsZSk7Ci0gICAgUmVmUHRyPEpT
Qzo6UHJvZmlsZT4gc3RvcEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JiB0aXRsZSk7CisgICAgdm9pZCBzdG9wRnJvbUNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBTdHJpbmcmIHRpdGxlKTsKIAogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbiBjYWxs
YmFja3MuCiAgICAgdm9pZCBkaWRJbnN0YWxsVGltZXIoaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBzaW5nbGVTaG90LCBGcmFtZSopOwpAQCAtMjA3
LDggKzIwNyw2IEBAIHByaXZhdGU6CiAgICAgaW50IG1faWQgeyAxIH07CiAgICAgaW50IG1fbWF4
Q2FsbFN0YWNrRGVwdGggeyA1IH07CiAKLSAgICBWZWN0b3I8VGltZWxpbmVSZWNvcmRFbnRyeT4g
bV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzOwotCiAgICAgYm9vbCBtX2VuYWJsZWQgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVkRnJvbUZyb250ZW5kIHsgZmFsc2UgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggMTk3
ZDJlMS4uYTg2ZWQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VE
ZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVn
Z2VyQWdlbnQuY3BwCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0TWFuYWdlci5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2su
aD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgotI2luY2x1
ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9QYWdlUnVudGltZUFnZW50LmNwcAppbmRleCBhNWZhZTRjLi40ZjRmYTI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC00NSw3ICs0NSw2
IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
Lmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgogCiB1c2luZyBJbnNwZWN0b3I6OlBy
b3RvY29sOjpSdW50aW1lOjpFeGVjdXRpb25Db250ZXh0RGVzY3JpcHRpb247CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTE4NGE1YS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
U2NyaXB0UHJvZmlsZS5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgTm9JbnRlcmZhY2VP
YmplY3QsCi0gICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCi0gICAgRXhwb3J0TWFjcm89V0VCQ09S
RV9FWFBPUlQsCi1dIGludGVyZmFjZSBTY3JpcHRQcm9maWxlIHsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHRpdGxlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIHVpZDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU2NyaXB0UHJvZmlsZU5vZGUgcm9vdE5v
ZGU7Ci19OwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJv
ZmlsZU5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2Rl
LmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDBlNTNkYi4uMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCisrKyAvZGV2
L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0LAotICAgIEltcGxlbWVudGF0aW9u
TGFja3NWVGFibGUsCi0gICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi1dIGludGVyZmFj
ZSBTY3JpcHRQcm9maWxlTm9kZSB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgaWQ7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZ1bmN0aW9uTmFtZTsK
LQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJsOwotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxpbmVOdW1iZXI7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgY29sdW1uTnVtYmVyOwotCi0gICAgc2VxdWVuY2U8U2NyaXB0UHJvZmls
ZU5vZGU+IGNoaWxkcmVuKCk7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAppbmRleCBmNGM2N2MzLi42OGY3NTkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApA
QCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRCcmVha3BvaW50Lmg+
CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPGluc3Bl
Y3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmls
ZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCkBAIC0xNTIsNjMgKzE1MSw0IEBA
IHZvaWQgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjphcHBlbmRMYXlvdXRSb290KEluc3BlY3Rvck9i
amVjdCogZGF0YSwgY29uc3QgRmxvYXRRCiAgICAgZGF0YS0+c2V0QXJyYXkoQVNDSUlMaXRlcmFs
KCJyb290IiksIGNyZWF0ZVF1YWQocXVhZCkpOwogfQogCi1zdGF0aWMgUmVmPFByb3RvY29sOjpU
aW1lbGluZTo6Q1BVUHJvZmlsZU5vZGVBZ2dyZWdhdGVDYWxsSW5mbz4gYnVpbGRBZ2dyZWdhdGVD
YWxsSW5mb0luc3BlY3Rvck9iamVjdChjb25zdCBKU0M6OlByb2ZpbGVOb2RlKiBub2RlKQotewot
ICAgIGRvdWJsZSBzdGFydFRpbWUgPSBub2RlLT5jYWxscygpWzBdLnN0YXJ0VGltZSgpOwotICAg
IGRvdWJsZSBlbmRUaW1lID0gbm9kZS0+Y2FsbHMoKS5sYXN0KCkuc3RhcnRUaW1lKCkgKyBub2Rl
LT5jYWxscygpLmxhc3QoKS5lbGFwc2VkVGltZSgpOwotCi0gICAgZG91YmxlIHRvdGFsVGltZSA9
IDA7Ci0gICAgZm9yIChjb25zdCBKU0M6OlByb2ZpbGVOb2RlOjpDYWxsJiBjYWxsIDogbm9kZS0+
Y2FsbHMoKSkKLSAgICAgICAgdG90YWxUaW1lICs9IGNhbGwuZWxhcHNlZFRpbWUoKTsKLQotICAg
IHJldHVybiBQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlQWdncmVnYXRlQ2FsbElu
Zm86OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRDYWxsQ291bnQobm9kZS0+Y2FsbHMoKS5zaXplKCkp
Ci0gICAgICAgIC5zZXRTdGFydFRpbWUoc3RhcnRUaW1lKQotICAgICAgICAuc2V0RW5kVGltZShl
bmRUaW1lKQotICAgICAgICAuc2V0VG90YWxUaW1lKHRvdGFsVGltZSkKLSAgICAgICAgLnJlbGVh
c2UoKTsKLX0KLQotc3RhdGljIFJlZjxQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2Rl
PiBidWlsZEluc3BlY3Rvck9iamVjdChjb25zdCBKU0M6OlByb2ZpbGVOb2RlKiBub2RlKQotewot
ICAgIGF1dG8gcmVzdWx0ID0gUHJvdG9jb2w6OlRpbWVsaW5lOjpDUFVQcm9maWxlTm9kZTo6Y3Jl
YXRlKCkKLSAgICAgICAgLnNldElkKG5vZGUtPmlkKCkpCi0gICAgICAgIC5zZXRDYWxsSW5mbyhi
dWlsZEFnZ3JlZ2F0ZUNhbGxJbmZvSW5zcGVjdG9yT2JqZWN0KG5vZGUpKQotICAgICAgICAucmVs
ZWFzZSgpOwotCi0gICAgaWYgKCFub2RlLT5mdW5jdGlvbk5hbWUoKS5pc0VtcHR5KCkpCi0gICAg
ICAgIHJlc3VsdC0+c2V0RnVuY3Rpb25OYW1lKG5vZGUtPmZ1bmN0aW9uTmFtZSgpKTsKLQotICAg
IGlmICghbm9kZS0+dXJsKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHJlc3VsdC0+c2V0VXJsKG5v
ZGUtPnVybCgpKTsKLSAgICAgICAgcmVzdWx0LT5zZXRMaW5lTnVtYmVyKG5vZGUtPmxpbmVOdW1i
ZXIoKSk7Ci0gICAgICAgIHJlc3VsdC0+c2V0Q29sdW1uTnVtYmVyKG5vZGUtPmNvbHVtbk51bWJl
cigpKTsKLSAgICB9Ci0KLSAgICBpZiAoIW5vZGUtPmNoaWxkcmVuKCkuaXNFbXB0eSgpKSB7Ci0g
ICAgICAgIGF1dG8gY2hpbGRyZW4gPSBQcm90b2NvbDo6QXJyYXk8UHJvdG9jb2w6OlRpbWVsaW5l
OjpDUFVQcm9maWxlTm9kZT46OmNyZWF0ZSgpOwotICAgICAgICBmb3IgKFJlZlB0cjxKU0M6OlBy
b2ZpbGVOb2RlPiBwcm9maWxlTm9kZSA6IG5vZGUtPmNoaWxkcmVuKCkpCi0gICAgICAgICAgICBj
aGlsZHJlbi0+YWRkSXRlbShidWlsZEluc3BlY3Rvck9iamVjdChwcm9maWxlTm9kZS5nZXQoKSkp
OwotICAgICAgICByZXN1bHQtPnNldENoaWxkcmVuKFdURk1vdmUoY2hpbGRyZW4pKTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUmVmPFByb3RvY29sOjpUaW1lbGlu
ZTo6Q1BVUHJvZmlsZT4gYnVpbGRQcm9maWxlSW5zcGVjdG9yT2JqZWN0KGNvbnN0IEpTQzo6UHJv
ZmlsZSogcHJvZmlsZSkKLXsKLSAgICBhdXRvIHJvb3ROb2RlcyA9IFByb3RvY29sOjpBcnJheTxQ
cm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlPjo6Y3JlYXRlKCk7Ci0gICAgZm9yIChS
ZWZQdHI8SlNDOjpQcm9maWxlTm9kZT4gcHJvZmlsZU5vZGUgOiBwcm9maWxlLT5yb290Tm9kZSgp
LT5jaGlsZHJlbigpKQotICAgICAgICByb290Tm9kZXMtPmFkZEl0ZW0oYnVpbGRJbnNwZWN0b3JP
YmplY3QocHJvZmlsZU5vZGUuZ2V0KCkpKTsKLQotICAgIHJldHVybiBQcm90b2NvbDo6VGltZWxp
bmU6OkNQVVByb2ZpbGU6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRSb290Tm9kZXMoV1RGTW92ZShy
b290Tm9kZXMpKQotICAgICAgICAucmVsZWFzZSgpOwotfQotCi12b2lkIFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6YXBwZW5kUHJvZmlsZShJbnNwZWN0b3JPYmplY3QqIGRhdGEsIFJlZlB0cjxKU0M6
OlByb2ZpbGU+JiYgcHJvZmlsZSkKLXsKLSAgICBkYXRhLT5zZXRWYWx1ZShBU0NJSUxpdGVyYWwo
InByb2ZpbGUiKSwgYnVpbGRQcm9maWxlSW5zcGVjdG9yT2JqZWN0KHByb2ZpbGUuZ2V0KCkpKTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmlu
ZGV4IDJiNTlhMzMuLmUyOGUxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTEw
MCw3ICsxMDAsNiBAQAogI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAjaW5jbHVkZSAiV2luZG93
RmVhdHVyZXMuaCIKICNpbmNsdWRlICJXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCIKLSNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgog
I2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxpbnNwZWN0
b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMzIwZjgy
OC4uNDYzZmJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC05Niw3ICs5Niw2IEBACiAjaW5jbHVk
ZSAiVmlzaXRlZExpbmtTdG9yZS5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgogI2luY2x1
ZGUgIldpZGdldC5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIu
aD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbnNvbGVDbGllbnQuY3BwCmluZGV4IDVjZmE5N2IuLjlkMGUwYTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCkBAIC0xOTEsOCArMTkxLDcgQEAgdm9pZCBQ
YWdlQ29uc29sZUNsaWVudDo6cHJvZmlsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3Ry
aW5nJiB0aXRsZSkKIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OnByb2ZpbGVFbmQoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgLy8gRklYTUU6IDxodHRw
czovL3dlYmtpdC5vcmcvYi8xNTM0OTk+IFdlYiBJbnNwZWN0b3I6IGNvbnNvbGUucHJvZmlsZSBz
aG91bGQgdXNlIHRoZSBuZXcgU2FtcGxpbmcgUHJvZmlsZXIKLSAgICBpZiAoUmVmUHRyPEpTQzo6
UHJvZmlsZT4gcHJvZmlsZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFByb2ZpbGlu
ZyhtX3BhZ2UsIGV4ZWMsIHRpdGxlKSkKLSAgICAgICAgbV9wcm9maWxlcy5hcHBlbmQoV1RGTW92
ZShwcm9maWxlKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wUHJvZmlsaW5n
KG1fcGFnZSwgZXhlYywgdGl0bGUpOwogfQogCiB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0YWtl
SGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKQEAgLTIx
Niw5ICsyMTUsNCBAQCB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lU3RhbXAoSlNDOjpFeGVj
U3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFyZwogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcChtX3BhZ2UubWFpbkZyYW1lKCksIFdURk1vdmUo
YXJndW1lbnRzKSk7CiB9CiAKLXZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmNsZWFyUHJvZmlsZXMo
KQotewotICAgIG1fcHJvZmlsZXMuY2xlYXIoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCmluZGV4IGNlNWM1MTguLmVh
ZWYzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKQEAgLTMwLDcg
KzMwLDYgQEAKICNkZWZpbmUgUGFnZUNvbnNvbGVDbGllbnRfaAogCiAjaW5jbHVkZSA8aW5zcGVj
dG9yL1NjcmlwdENhbGxTdGFjay5oPgotI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNp
bmNsdWRlIDxydW50aW1lL0NvbnNvbGVDbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogCkBAIC00Myw4ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50
OwogY2xhc3MgUGFnZTsKIAotdHlwZWRlZiBWZWN0b3I8UmVmUHRyPEpTQzo6UHJvZmlsZT4+IFBy
b2ZpbGVzQXJyYXk7Ci0KIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25zb2xlQ2xpZW50IGZp
bmFsIDogcHVibGljIEpTQzo6Q29uc29sZUNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CkBAIC02MSw5ICs1OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7CiAgICAgdm9pZCBhZGRNZXNz
YWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1
bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCwgRG9jdW1lbnQqID0gbnVsbHB0cik7
CiAKLSAgICBjb25zdCBQcm9maWxlc0FycmF5JiBwcm9maWxlcygpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvZmlsZXM7IH0KLSAgICB2b2lkIGNsZWFyUHJvZmlsZXMoKTsKLQogcHJvdGVjdGVkOgogICAg
IHZvaWQgbWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwg
SlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92
ZXJyaWRlOwogICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9y
OjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwpAQCAtNzYsNyArNzAsNiBAQCBwcm90ZWN0
ZWQ6CiAKIHByaXZhdGU6CiAgICAgUGFnZSYgbV9wYWdlOwotICAgIFByb2ZpbGVzQXJyYXkgbV9w
cm9maWxlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAppbmRleCAzMjQzODNlLi4zNzkyYzA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC0xMjQsNyArMTI0LDYgQEAKICNpbmNsdWRlICJXZWJDb3JlSlND
bGllbnREYXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAiWE1MSHR0
cFJlcXVlc3QuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVk
ZSA8Ynl0ZWNvZGUvQ29kZUJsb2NrLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFn
ZW50QmFzZS5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwu
aD4KQEAgLTM4OCw3ICszODcsNiBAQCB2b2lkIEludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRT
dGF0ZShQYWdlJiBwYWdlKQogICAgIFdlYkNvcmU6Om92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1
YWdlcyhWZWN0b3I8U3RyaW5nPigpKTsKICAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc092
ZXJsYXlTY3JvbGxiYXJzKGZhbHNlKTsKICAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc01v
Y2tTY3JvbGxBbmltYXRvcihmYWxzZSk7Ci0gICAgcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCku
c2V0TGVnYWN5UHJvZmlsZXJFbmFibGVkKGZhbHNlKTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
CiAgICAgcGFnZS5ncm91cCgpLmNhcHRpb25QcmVmZXJlbmNlcygpLnNldENhcHRpb25zU3R5bGVT
aGVldE92ZXJyaWRlKGVtcHR5U3RyaW5nKCkpOwogICAgIHBhZ2UuZ3JvdXAoKS5jYXB0aW9uUHJl
ZmVyZW5jZXMoKS5zZXRUZXN0aW5nTW9kZShmYWxzZSk7CkBAIC0xNzMzLDExICsxNzMxLDYgQEAg
dW5zaWduZWQgSW50ZXJuYWxzOjpjb3VudE1hdGNoZXNGb3JUZXh0KGNvbnN0IFN0cmluZyYgdGV4
dCwgdW5zaWduZWQgZmluZE9wdGlvbnMKICAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPmVk
aXRvcigpLmNvdW50TWF0Y2hlc0ZvclRleHQodGV4dCwgbnVsbHB0ciwgZmluZE9wdGlvbnMsIDEw
MDAsIG1hcmssIG51bGxwdHIpOwogfQogCi1jb25zdCBQcm9maWxlc0FycmF5JiBJbnRlcm5hbHM6
OmNvbnNvbGVQcm9maWxlcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGNvbnRleHREb2N1bWVudCgp
LT5wYWdlKCktPmNvbnNvbGUoKS5wcm9maWxlcygpOwotfQotCiB1bnNpZ25lZCBJbnRlcm5hbHM6
Om51bWJlck9mTGl2ZU5vZGVzKCkgY29uc3QKIHsKICAgICB1bnNpZ25lZCBub2RlQ291bnQgPSAw
OwpAQCAtMTc2NiwxNyArMTc1OSw2IEBAIHZvaWQgSW50ZXJuYWxzOjpjbG9zZUR1bW15SW5zcGVj
dG9yRnJvbnRlbmQoKQogICAgIG1faW5zcGVjdG9yRnJvbnRlbmQgPSBudWxscHRyOwogfQogCi12
b2lkIEludGVybmFsczo6c2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBl
bmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBQYWdlKiBwYWdlID0gY29udGV4dERv
Y3VtZW50KCktPmZyYW1lKCktPnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpIHsKLSAgICAgICAgZWMg
PSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBwYWdl
LT5pbnNwZWN0b3JDb250cm9sbGVyKCkuc2V0TGVnYWN5UHJvZmlsZXJFbmFibGVkKGVuYWJsZWQp
OwotfQotCiB2b2lkIEludGVybmFsczo6c2V0SW5zcGVjdG9ySXNVbmRlclRlc3QoYm9vbCBpc1Vu
ZGVyVGVzdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgUGFnZSogcGFnZSA9IGNvbnRleHRE
b2N1bWVudCgpLT5mcmFtZSgpLT5wYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApp
bmRleCA1ZjJhYmIzLi43ZmMwNmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTI2NywxNCArMjY3LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGluc2VydEF1dGhvckNTUyhjb25z
dCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgdm9pZCBpbnNlcnRVc2VyQ1NT
KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAotICAgIGNvbnN0IFByb2Zp
bGVzQXJyYXkmIGNvbnNvbGVQcm9maWxlcygpIGNvbnN0OwotCiAgICAgdW5zaWduZWQgbnVtYmVy
T2ZMaXZlTm9kZXMoKSBjb25zdDsKICAgICB1bnNpZ25lZCBudW1iZXJPZkxpdmVEb2N1bWVudHMo
KSBjb25zdDsKIAogICAgIFJlZlB0cjxET01XaW5kb3c+IG9wZW5EdW1teUluc3BlY3RvckZyb250
ZW5kKGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIGNsb3NlRHVtbXlJbnNwZWN0b3JGcm9u
dGVuZCgpOwotICAgIHZvaWQgc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JJc1VuZGVy
VGVzdChib29sIGlzVW5kZXJUZXN0LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBTdHJpbmcgY291
bnRlclZhbHVlKEVsZW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRl
eCA0ZGM0MDMxLi4zMmRhMmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBA
IC0yNjAsMTYgKzI2MCwxMCBAQCBlbnVtIEF1dG9GaWxsQnV0dG9uVHlwZSB7CiAgICAgW1JhaXNl
c0V4Y2VwdGlvbl0gdm9pZCBzZXREZXZpY2VQcm94aW1pdHkoRE9NU3RyaW5nIGV2ZW50VHlwZSwg
dW5yZXN0cmljdGVkIGRvdWJsZSB2YWx1ZSwgdW5yZXN0cmljdGVkIGRvdWJsZSBtaW4sIHVucmVz
dHJpY3RlZCBkb3VibGUgbWF4KTsKICNlbmRpZgogCi0gICAgLy8gQXMgcGVyIHNwZWM6IGh0dHA6
Ly93d3cudzMub3JnL1RSL1dlYklETC8jaWRsLXNlcXVlbmNlCi0gICAgLy8gIlNlcXVlbmNlcyBt
dXN0IG5vdCBiZSB1c2VkIGFzIHRoZSB0eXBlIG9mIGFuIGF0dHJpYnV0ZSwgY29uc3RhbnQgb3Ig
ZXhjZXB0aW9uIGZpZWxkLiIKLSAgICAvLyBGSVhNRTogdGhpcyB3aWxsIGxlYWQgdG8gQlVHIGlu
dGVybmFscy5jb25zb2xlUHJvZmlsZXMgIT09IGludGVybmFscy5jb25zb2xlUHJvZmlsZXMgYXMg
cHJvZmlsZSB3aWxsIGFsd2F5cyByZXR1cm5zIG5ldyBhcnJheS4KLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgU2NyaXB0UHJvZmlsZVtdIGNvbnNvbGVQcm9maWxlczsKLQogICAgIHVuc2lnbmVkIGxv
bmcgbnVtYmVyT2ZMaXZlTm9kZXMoKTsKICAgICB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZURv
Y3VtZW50cygpOwogICAgIERPTVdpbmRvdyBvcGVuRHVtbXlJbnNwZWN0b3JGcm9udGVuZChET01T
dHJpbmcgdXJsKTsKICAgICB2b2lkIGNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOwotICAg
IFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQoYm9vbGVhbiBlbmFibGVkKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldEluc3Bl
Y3RvcklzVW5kZXJUZXN0KGJvb2xlYW4gaXNVbmRlclRlc3QpOwogCiAgICAgRE9NU3RyaW5nIGNv
dW50ZXJWYWx1ZShFbGVtZW50IGVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCmluZGV4IDQ4MjEwMTQuLmJlMTU2ZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKQEAg
LTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJXaGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
SlNWYWx1ZVJlZi5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNs
dWRlIDxpbnRlcnByZXRlci9DYWxsRnJhbWUuaD4KICNpbmNsdWRlIDxydW50aW1lL0lkZW50aWZp
ZXJJbmxpbmVzLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNo
ZWV0TGlieHNsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldExpYnhzbHQu
Y3BwCmluZGV4IDk2NzcwYTYuLjRiMjQ2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0
eWxlU2hlZXRMaWJ4c2x0LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIlhNTERvY3Vt
ZW50UGFyc2VyU2NvcGUuaCIKICNpbmNsdWRlICJYU0xJbXBvcnRSdWxlLmgiCiAjaW5jbHVkZSAi
WFNMVFByb2Nlc3Nvci5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNp
bmNsdWRlIDxsaWJ4bWwvdXJpLmg+CiAjaW5jbHVkZSA8bGlieHNsdC94c2x0dXRpbHMuaD4KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXggOGExODRj
My4uZTRhMzNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JM
aWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQu
Y3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiWFNMVEV4dGVuc2lvbnMuaCIKICNpbmNs
dWRlICJYU0xUVW5pY29kZVNvcnQuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKLSNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8bGlieHNsdC9pbXBvcnRzLmg+CiAj
aW5jbHVkZSA8bGlieHNsdC9zZWN1cml0eS5oPgogI2luY2x1ZGUgPGxpYnhzbHQvdmFyaWFibGVz
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggOWM0M2IwNC4uOGQ1YTQwOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA1LTEzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIExlZ2FjeVByb2ZpbGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM1NjUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAg
ICAgICAqIFdlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJJbnNwZWN0b3I6OmlzSmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yOjpz
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViSW5z
cGVjdG9yLmg6CisKIDIwMTYtMDUtMTIgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFu
ZGV4LnJ1PgogCiAgICAgICAgIFVzZSByZWZlcmVuY2UgaW5zdGVhZCBvZiBwb2ludGVyIGluIEZy
YW1lTG9hZGVyQ2xpZW50OjpzYXZlVmlld1N0YXRlVG9JdGVtLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkluc3Bl
Y3Rvci5jcHAKaW5kZXggOTFhNzhiMy4uZjYyMTlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0
b3IuY3BwCkBAIC0yMDIsMzggKzIwMiw2IEBAIEhSRVNVTFQgV2ViSW5zcGVjdG9yOjp0b2dnbGVQ
cm9maWxpbmdKYXZhU2NyaXB0KCkKICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBXZWJJ
bnNwZWN0b3I6OmlzSmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoX091dF8gQk9PTCogaXNQcm9m
aWxpbmdFbmFibGVkKQotewotICAgIGlmICghaXNQcm9maWxpbmdFbmFibGVkKQotICAgICAgICBy
ZXR1cm4gRV9QT0lOVEVSOwotCi0gICAgKmlzUHJvZmlsaW5nRW5hYmxlZCA9IEZBTFNFOwotCi0g
ICAgaWYgKCFtX2luc3BlY3RlZFdlYlZpZXcpCi0gICAgICAgIHJldHVybiBTX09LOwotCi0gICAg
UGFnZSogaW5zcGVjdGVkUGFnZSA9IG1faW5zcGVjdGVkV2ViVmlldy0+cGFnZSgpOwotICAgIGlm
ICghaW5zcGVjdGVkUGFnZSkKLSAgICAgICAgcmV0dXJuIFNfT0s7Ci0KLSAgICAqaXNQcm9maWxp
bmdFbmFibGVkID0gaW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmxlZ2FjeVBy
b2ZpbGVyRW5hYmxlZCgpOwotICAgIHJldHVybiBTX09LOwotfQotCi1IUkVTVUxUIFdlYkluc3Bl
Y3Rvcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoQk9PTCBlbmFibGVkKQotewotICAg
IGlmICghbV9pbnNwZWN0ZWRXZWJWaWV3KQotICAgICAgICByZXR1cm4gU19PSzsKLQotICAgIFBh
Z2UqIGluc3BlY3RlZFBhZ2UgPSBtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKTsKLSAgICBpZiAo
IWluc3BlY3RlZFBhZ2UpCi0gICAgICAgIHJldHVybiBTX09LOwotCi0gICAgaW5zcGVjdGVkUGFn
ZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldExlZ2FjeVByb2ZpbGVyRW5hYmxlZChlbmFibGVk
KTsKLQotICAgIHJldHVybiBTX09LOwotfQotCiBIUkVTVUxUIFdlYkluc3BlY3Rvcjo6ZXZhbHVh
dGVJbkZyb250ZW5kKF9Jbl8gQlNUUiBiU2NyaXB0KQogewogICAgIGlmICghbV9pbnNwZWN0ZWRX
ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmggYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuaAppbmRleCBkZjcwN2NmLi4yNzk0ZjcxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuaApAQCAtNjAsOSArNjAsNiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGlzUHJvZmlsaW5nSmF2YVNjcmlwdChf
T3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHRvZ2ds
ZVByb2ZpbGluZ0phdmFTY3JpcHQoKTsKIAotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBpc0phdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKF9PdXRfIEJPT0wqKTsKLSAgICB2
aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQoQk9PTCk7Ci0KICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZXZh
bHVhdGVJbkZyb250ZW5kKF9Jbl8gQlNUUiBzY3JpcHQpOwogCiAgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIGlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVkKF9PdXRfIEJPT0wq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggNjcxZGRlMy4uM2I1NWIyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Vmlldy5jcHAKQEAgLTEyMSw3ICsxMjEsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJl
c3VsdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SlNFbGVtZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9KU1NjcmlwdFByb2ZpbGUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278917</attachid>
            <date>2016-05-13 20:44:39 -0700</date>
            <delta_ts>2016-05-13 22:04:37 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix - remove some ManualTests as well</desc>
            <filename>rm-LegacyProfiler-4.patch</filename>
            <type>text/plain</type>
            <size>346458</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBkNzI3NmVlLi4zY2VhMjIz
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTYtMDUtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW1vdmUgTGVnYWN5UHJvZmlsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MzU2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTWFudWFsVGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyLXRlc3Qt
Y2FsbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIE1hbnVhbFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci10ZXN0LW1hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbDogUmVtb3ZlZC4KKwog
MjAxNi0wNS0xMyAgWW9hdiBXZWlzcyAgPHlvYXZAeW9hdi53cz4KIAogICAgICAgICBUdXJuIG9u
IFdFQl9USU1JTkcgZm9yIGFsbCBwb3J0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMyZDIwNmUuLjJhZjVlMzIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMDMgQEAKKzIwMTYtMDUtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTGVnYWN5UHJvZmlsZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzU2NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9u
eW1vdXMtZXZlbnQtaGFuZGxlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFuZGxlci5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVu
dC1jb250ZXh0cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxl
ci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2Fs
bHMtYnVpbHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlv
bi1jYWxscy1ldmFsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMt
ZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvcHJvZmlsZXIvYXBwbHktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvYXBwbHkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2J1
aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9u
LWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQt
ZnVuY3Rpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGwtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rl
ci1sZWFrLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Nh
bGwtcmVnaXN0ZXItbGVhay5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
Y2FsbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUt
ZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUt
ZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJv
ZmlsZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY29t
cGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL2RlYWQtdGltZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9m
aWxlci9kZWFkLXRpbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Rv
Y3VtZW50LWRvdC13cml0ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGZhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250
ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1p
bi10aGUtc2FtZS1zY29wZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
bXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFu
ZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQt
ZnVuY3Rpb24tY2FsbHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255bW91cy1mdW5j
dGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1j
YWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvcHJvZmlsZXIvbXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGZhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlv
bnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9m
aWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmls
ZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbmVzdGVk
LXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGZhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0LWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4
dC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1p
bi1pbmNsdWRlZC1maWxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3By
b2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4taW5jbHVkZWQtZmlsZS5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1u
ZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmctZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZy
b20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3Rp
bmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9t
LWEtbmVzdGVkLWxvY2F0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogZmFzdC9wcm9maWxlci9yZXNvdXJjZXMvb3RoZXItZnJhbWUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci13aW5kb3cuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Np
bXBsZS1ldmVudC1jYWxsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3By
b2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBmYXN0L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRp
cGxlLXRpbWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVy
L3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNh
bWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmls
ZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2Zp
bGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdGFy
dC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRlci1zZXRU
aW1lb3V0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdG9wLXRoZW4t
ZnVuY3Rpb24tY2FsbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9m
aWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0
bWwtZGlzYWJsZWQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci90d28tZXhlY3V0
aW9uLWNvbnRleHRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL3R3by1leGVjdXRpb24tY29udGV4dHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvdXNlci1kZWZp
bmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvd2luZG93LWRvdC1ldmFsLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11
bGF0b3IvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNi0wNS0xMyAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBjcm9zcy1mYWRlKCkgcmVuZGVyaW5nIGRv
ZXNuJ3QgbWF0Y2ggZXhwZWN0YXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFuZGxlci1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0OGJmMzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFuZGxlci1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGlzIHBhZ2UgaGFzIGFuIGFub255bW91cyBl
dmVudCBoYW5kbGVyLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0
aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJv
ZmlsZS4gSXQgc2hvdWxkIHNob3cgdGhlIGFub255bW91cyBmdW5jdGlvbiBhdCB0aGUgc2FtZSBs
ZXZlbCBhcyB0aGUgb25sb2FkIGhhbmRsZXIuIAotCi1Qcm9maWxlIHRpdGxlOiBBbm9ueW1vdXMg
ZXZlbnQgaGFuZGxlcgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVz
dCBhbm9ueW1vdXMtZXZlbnQtaGFuZGxlci5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZ2V0RWxl
bWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGNsaWNrIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICBvbmNsaWNrIGFub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwgKGxp
bmUgMTU6NTEpCi0gICAgICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQot
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50
LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50
LWhhbmRsZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmJjZmZhNS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5k
bGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExl
Z2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRl
c3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGV2ZW50IGhhbmRsZXIiKTsK
LQotICAgIHZhciBidXR0b25XaXRoQW5vbnltb3VzSGFuZGxlciA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJidXR0b25XaXRoQW5Bbm9ueW1vdXNFdmVudEhhbmRsZXIiKQotICAgIGJ1dHRvbldp
dGhBbm9ueW1vdXNIYW5kbGVyLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGluc2Vy
dE5ld1RleHQoKTsKLSAgICB9Ci0KLSAgICBidXR0b25XaXRoQW5vbnltb3VzSGFuZGxlci5jbGlj
aygpOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIGhhcyBhbiBhbm9ueW1vdXMgZXZlbnQgaGFu
ZGxlci4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4g
dGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBw
cm9maWxlLiAgSXQgc2hvdWxkIHNob3cgdGhlIGFub255bW91cyBmdW5jdGlvbiBhdCB0aGUgc2Ft
ZSBsZXZlbCBhcyB0aGUgb25sb2FkCi1oYW5kbGVyLgotPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9
ImJ1dHRvbldpdGhBbkFub255bW91c0V2ZW50SGFuZGxlciIgdmFsdWU9IkJ1dHRvbiB3aXRoIGFu
IGFub255bW91cyBldmVudCBoYW5kbGVyIj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255
bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZy
b20tZGlmZmVyZW50LWNvbnRleHRzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggM2NiYmYwNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2Fub255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNj
cmlwdCBjYWxscyBhbiBhbm9ueW1vdXMgZnVuY3Rpb24gZnJvbSBkaWZmZXJlbnQgY29udGV4dHMu
IAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRo
ZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBCZW5lYXRo
IG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNob3VsZCBzaG93IHRocmVlIGNoaWxkcmVuLCBhbiBh
bm9ueW1vdXMgZnVuY3Rpb24sIHNjcmlwdCBjb250ZXh0LCBhbmQgdGhlIGVuZFRlc3QgY2FsbC4K
LQotUHJvZmlsZSB0aXRsZTogU2FtZSBhbm9ueW1vdXMgZnVuY3Rpb24gY2FsbGVkIGZyb20gZGlm
ZmVyZW50IGNvbnRleHRzCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRU
ZXN0IGFub255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMuaHRt
bCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVs
ZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgIGV2YWwgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIChwcm9ncmFtKSAobm8g
ZmlsZSkgKGxpbmUgMToxKQotICAgICAgICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICAgICAgICBpbnNlcnRO
ZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAg
ICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRp
ZmZlcmVudC1jb250ZXh0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1v
dXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhYjgzMTcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNv
bnRleHRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFy
dFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU2FtZSBhbm9ueW1vdXMgZnVuY3Rpb24g
Y2FsbGVkIGZyb20gZGlmZmVyZW50IGNvbnRleHRzIik7Ci0KLSAgICBhbm9ueW1vdXNGdW5jdGlv
bigpOwotICAgIGV2YWwoImFub255bW91c0Z1bmN0aW9uKCkiKTsKLQotICAgIGVuZFRlc3QoKTsK
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRo
aXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIGZ1bmN0aW9uIGZyb20gZGlm
ZmVyZW50IGNvbnRleHRzLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwg
bG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9v
ayBhdAotdGhlIHByb2ZpbGUuICBCZW5lYXRoIG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNob3Vs
ZCBzaG93IHRocmVlIGNoaWxkcmVuLCBhbgotYW5vbnltb3VzIGZ1bmN0aW9uLCBzY3JpcHQgY29u
dGV4dCwgYW5kIHRoZSBlbmRUZXN0IGNhbGwuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9u
eW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWlu
LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkx
MjA2MDAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMt
ZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDE2ICswLDAgQEAKLVRoaXMgcGFnZSBoYXMgYW4gYW5vbnltb3VzIEphdmFTY3Jp
cHQgZnVuY3Rpb24gdGhhdCBjYWxscyBidWlsdC1pbiBmdW5jdGlvbnMuIAotCi1UbyBydW4gdGhp
cyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2Vi
SW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBCZW5lYXRoIG9ubG9hZCBhbmQgc3Rh
cnRUZXN0IGl0IHNob3VsZCBzaG93IHRocmVlIGNoaWxkcmVuLCBhbiBhbm9ueW1vdXMgZnVuY3Rp
b24sIHNjcmlwdCBjb250ZXh0LCBhbmQgdGhlIGVuZFRlc3QgY2FsbC4KLQotUHJvZmlsZSB0aXRs
ZTogQW5vbnltb3VzIGZ1bmN0aW9uIGNhbGxzIGJ1aWx0LWluIGZ1bmN0aW9ucwotVGhyZWFkXzEg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBhbm9ueW1vdXMtZnVuY3Rpb24tY2Fs
bHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9ueW1vdXNG
dW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAgICAg
ICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6
MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
YXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRC
eUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1i
dWlsdC1pbi1mdW5jdGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWJj
NzNiNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1m
dW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDI4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93Lmlu
dGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxl
KCJBbm9ueW1vdXMgZnVuY3Rpb24gY2FsbHMgYnVpbHQtaW4gZnVuY3Rpb25zIik7Ci0gICAgYW5v
bnltb3VzRnVuY3Rpb24oKTsKLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIGFuIGFub255bW91
cyBKYXZhU2NyaXB0IGZ1bmN0aW9uIHRoYXQgY2FsbHMgYnVpbHQtaW4gZnVuY3Rpb25zLgotPGJy
PgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3Nl
ciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBC
ZW5lYXRoIG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNob3VsZCBzaG93IHRocmVlIGNoaWxkcmVu
LCBhbgotYW5vbnltb3VzIGZ1bmN0aW9uLCBzY3JpcHQgY29udGV4dCwgYW5kIHRoZSBlbmRUZXN0
IGNhbGwuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMt
ZXZhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1m
dW5jdGlvbi1jYWxscy1ldmFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOWEwZmQ0Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fu
b255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDE4ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3Vz
IGZ1bmN0aW9uIHdoaWNoIGNhbGxzIGV2YWwoKS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQgdGhlIHByb2ZpbGUuIEJlbmVhdGggb25sb2FkIGFuZCBzdGFydFRlc3QgaXQgc2hv
dWxkIHNob3cgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2hpY2ggaGFzIGEgKHByb2dyYW0pIGNo
aWxkLgotCi1Qcm9maWxlIHRpdGxlOiBBbm9ueW1vdXMgZnVuY3Rpb24gY2FsbGVzIGV2YWwKLVRo
cmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgYW5vbnltb3VzLWZ1bmN0
aW9uLWNhbGxzLWV2YWwuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIHZhcmlhYmxlVGhhdFBvaW50
c1RvQW5Bbm9ueW1vdXNGdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5odG1s
IChsaW5lIDE0OjU5KQotICAgICAgICAgZXZhbCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgKHByb2dyYW0pIChubyBmaWxlKSAobGluZSAxOjEpCi0gICAgICAgICAgICAgICBpbnNl
cnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAg
ICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBw
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxz
LWV2YWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTlmNzY2Ni4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxs
cy1ldmFsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFy
dFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGZ1bmN0aW9uIGNhbGxl
cyBldmFsIik7Ci0KLSAgICB2YXIgdmFyaWFibGVUaGF0UG9pbnRzVG9BbkFub255bW91c0Z1bmN0
aW9uID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWwoImluc2VydE5ld1RleHQoKSIpOwotICAg
IH0KLQotICAgIHZhcmlhYmxlVGhhdFBvaW50c1RvQW5Bbm9ueW1vdXNGdW5jdGlvbigpOwotICAg
IGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0
VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIGZ1bmN0
aW9uIHdoaWNoIGNhbGxzIGV2YWwoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgQmVuZWF0aCBvbmxvYWQgYW5kIHN0YXJ0VGVzdCBp
dCBzaG91bGQgc2hvdyBhbiAoYW5vbnltb3VzIGZ1bmN0aW9uKQotd2hpY2ggaGFzIGEgKHByb2dy
YW0pIGNoaWxkLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13
aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiOGQ4MDcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1l
cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UaGlzIHBhZ2Un
cyBKYXZhU2NyaXB0IGNhbGxzIGFub255bW91cyBmdW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVz
LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0
aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gWW91IHNo
b3VsZCBzZWUgZnVuY3Rpb25zIG5hbWVkICJbeF0gaXRlcmF0aW9ucyBmdW5jdGlvbiIsIGFuZCBu
byBhbm9ueW1vdXMgZnVuY3Rpb25zLgotCi1Qcm9maWxlIHRpdGxlOiBBbm9ueW1vdXMgZnVuY3Rp
b25zIHdpdGggZGlzcGxheSBuYW1lcwotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
IHN0YXJ0VGVzdCBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChs
aW5lIDIyOjE5KQotICAgICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IgYW5vbnltb3VzLWZ1
bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMDozNikKLSAgICAgIDAgaXRl
cmF0aW9ucyBmdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5o
dG1sIChsaW5lIDEyOjU5KQotICAgICAgMSBpdGVyYXRpb25zIGZ1bmN0aW9uIGFub255bW91cy1m
dW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMTI6NTkpCi0gICAgICAyIGl0
ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMu
aHRtbCAobGluZSAxMjo1OSkKLSAgICAgIDIwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnltb3Vz
LWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMjo1OSkKLSAgICAgIDEw
MDAgaXRlcmF0aW9ucyBmdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1u
YW1lcy5odG1sIChsaW5lIDEyOjU5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXkt
bmFtZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I5ZmMzNC4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0
aC1kaXNwbGF5LW5hbWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50
ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5j
dGlvbiBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcihpdGVyYXRpb25zKQotewotICAgIHZhciB2
YXJpYWJsZVRoYXRQb2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbigpCi0gICAg
ewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgOwotICAgIH0K
LSAgICAKLSAgICB2YXJpYWJsZVRoYXRQb2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24uZGlzcGxh
eU5hbWUgPSBpdGVyYXRpb25zICsgIiBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKLSAgICAKLSAgICBy
ZXR1cm4gdmFyaWFibGVUaGF0UG9pbnRzVG9BbkFub255bW91c0Z1bmN0aW9uOwotfQotCi1mdW5j
dGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGZ1bmN0
aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMiKTsKLQotICAgIGFub255bW91c0Z1bmN0aW9uR2VuZXJh
dG9yKDApKCk7Ci0gICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IoMSkoKTsKLSAgICBhbm9u
eW1vdXNGdW5jdGlvbkdlbmVyYXRvcigyKSgpOwotICAgIGFub255bW91c0Z1bmN0aW9uR2VuZXJh
dG9yKDIwKSgpOwotICAgIGFub255bW91c0Z1bmN0aW9uR2VuZXJhdG9yKDEwMDApKCk7Ci0KLSAg
ICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFy
dFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGFub255bW91cyBmdW5jdGlv
bnMgd2l0aCBkaXNwbGF5IG5hbWVzLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBZb3Ugc2hvdWxkIHNlZSBmdW5jdGlvbnMgbmFtZWQg
Ilt4XSBpdGVyYXRpb25zIGZ1bmN0aW9uIiwgYW5kIG5vIGFub255bW91cyBmdW5jdGlvbnMuCi08
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2FwcGx5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzA4YmQwNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fw
cGx5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRoaXMgcGFn
ZSdzIEphdmFTY3JpcHQgaGFzIGEgY2FsbCB0byBhcHBseSgpIGluIGl0LiAKLQotVG8gcnVuIHRo
aXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdl
Ykluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUg
c2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFuZCBhIGNhbGwgdG8g
YXBwbHkoKS4KLQotUHJvZmlsZSB0aXRsZTogVXNpbmcgdGhlIGFwcGx5KCkgbWV0aG9kCi1UaHJl
YWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGFwcGx5Lmh0bWwgKGxpbmUg
MTA6MTkpCi0gICAgICBmYWtlT2JqZWN0IGFwcGx5Lmh0bWwgKGxpbmUgMTc6MjEpCi0gICAgICAg
ICBmYWtlSW50ZXJpb3JGdW5jdGlvbiBhcHBseS5odG1sIChsaW5lIDIzOjMwKQotICAgICAgZW5k
VGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OThkNDFhYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2FwcGx5Lmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQot
ewotICAgIGNvbnNvbGUucHJvZmlsZSgiVXNpbmcgdGhlIGFwcGx5KCkgbWV0aG9kIik7Ci0gICAg
dmFyIG15T2JqZWN0ID0gbmV3IGZha2VPYmplY3QoMSwgMik7Ci0gICAgZW5kVGVzdCgpOwotfQot
Ci1mdW5jdGlvbiBmYWtlT2JqZWN0ICh4LCB5KQotewotICAgIHRoaXMueCA9IHg7Ci0gICAgZmFr
ZUludGVyaW9yRnVuY3Rpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLX0KLQotZnVuY3Rpb24g
ZmFrZUludGVyaW9yRnVuY3Rpb24oeCwgeSkKLXsKLSAgICB0aGlzLnkgPSB5OwotfQotCi08L3Nj
cmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2Un
cyBKYXZhU2NyaXB0IGhhcyBhIGNhbGwgdG8gYXBwbHkoKSBpbiBpdC4KLTxicj4KLTxicj4KLVRv
IHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2Fk
IHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2Zp
bGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFuZAot
YSBjYWxsIHRvIGFwcGx5KCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5j
dGlvbi1jYWxscy1hbm9ueW1vdXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTZiYWYzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRoaXMgcGFnZSB1c2VzIGEg
YnVpbHQtaW4gZnVuY3Rpb24gdG8gY2FsbCBhbiBhbm9ueW1vdXMgZnVuY3Rpb24uIAotCi1UbyBy
dW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0
aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSBt
YXAoKSBzaG91bGQgYmUgdGhlIHNpYmxpbmcgb2YgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2hp
Y2ggaGFzIGFycmF5T3BlcmF0b3JGdW5jdGlvbigpIGFzIGEgY2hpbGQuCi0KLVByb2ZpbGUgdGl0
bGU6IEJ1aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlvbgotVGhyZWFk
XzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBidWlsdC1pbi1mdW5jdGlvbi1j
YWxscy1hbm9ueW1vdXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIEFycmF5IChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICBtYXAgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIE9iamVj
dCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgdG9MZW5ndGggKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgIHRvSW50ZWdlciAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgICAgTnVtYmVyIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAoYW5v
bnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgaXNBcnJheSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgIHNwZWNpZXNHZXR0ZXIgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgIEFycmF5IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBteUZ1bmN0
aW9uIGJ1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sIChsaW5lIDE0OjMwKQot
ICAgICAgICAgICAgYXJyYXlPcGVyYXRvckZ1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIChsaW5lIDI1OjMxKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNWFlZDQ4Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQot
ewotICAgIGNvbnNvbGUucHJvZmlsZSgiQnVpbHQtaW4gZnVuY3Rpb24gY2FsbHMgYW4gYW5vbnlt
b3VzIGZ1bmN0aW9uIik7Ci0KLSAgICB2YXIgbXlGdW5jdGlvbiA9IGZ1bmN0aW9uKGFycmF5RWxl
bWVudCkgewotICAgICAgICByZXR1cm4gYXJyYXlPcGVyYXRvckZ1bmN0aW9uKGFycmF5RWxlbWVu
dCk7Ci0gICAgfQotCi0gICAgdmFyIG15QXJyYXkgPSBuZXcgQXJyYXkgKDAsIDEsIDIpOwotICAg
IG15QXJyYXkubWFwKG15RnVuY3Rpb24pOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIHVzZXMg
YSBidWlsdC1pbiBmdW5jdGlvbiB0byBjYWxsIGFuIGFub255bW91cyBmdW5jdGlvbi4KLTxicj4K
LTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4g
dGhlIHByb2ZpbGUgbWFwKCkgc2hvdWxkIGJlIHRoZSBzaWJsaW5nIG9mIGFuIChhbm9ueW1vdXMg
ZnVuY3Rpb24pCi13aGljaCBoYXMgYXJyYXlPcGVyYXRvckZ1bmN0aW9uKCkgYXMgYSBjaGlsZC4K
LTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVm
aW5lZC1mdW5jdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1
aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3MTU1ZTcuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmlu
ZWQtZnVuY3Rpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAot
VGhpcyBwYWdlIHVzZXMgYSBidWlsdC1pbiBmdW5jdGlvbiB0byBjYWxsIGEgdXNlciBkZWZpbmVk
IGZ1bmN0aW9uLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUg
YnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmls
ZS4gSW4gdGhlIHByb2ZpbGUgbWFwKCkgc2hvdWxkIGhhdmUgYXJyYXlPcGVyYXRvckZ1bmN0aW9u
KCkgYXMgYSBjaGlsZC4KLQotUHJvZmlsZSB0aXRsZTogQnVpbHQtaW4gZnVuY3Rpb24gY2FsbHMg
YSB1c2VyIGRlZmluZWQgZnVuY3Rpb24KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICBzdGFydFRlc3QgYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9u
Lmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBBcnJheSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgbWFwIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBPYmplY3QgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgIHRvTGVuZ3RoIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICB0b0ludGVnZXIgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIE51bWJl
ciAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlv
bikgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGlzQXJyYXkgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICBzcGVjaWVzR2V0dGVyIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBB
cnJheSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgYXJyYXlPcGVyYXRvckZ1bmN0aW9u
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI1OjMxKQotICAgICAgZW5kVGVz
dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNl
ci1kZWZpbmVkLWZ1bmN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0
LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjNjYzYjY5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9u
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2Fj
eUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3Qo
KQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQnVpbHQtaW4gZnVuY3Rpb24gY2FsbHMgYSB1c2Vy
IGRlZmluZWQgZnVuY3Rpb24iKTsKLQotICAgIHZhciBteUFycmF5ID0gbmV3IEFycmF5ICgwLCAx
LCAyKTsKLSAgICBteUFycmF5Lm1hcChhcnJheU9wZXJhdG9yRnVuY3Rpb24pOwotCi0gICAgZW5k
VGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0
KCkiPgotVGhpcyBwYWdlIHVzZXMgYSBidWlsdC1pbiBmdW5jdGlvbiB0byBjYWxsIGEgdXNlciBk
ZWZpbmVkIGZ1bmN0aW9uLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwg
bG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9v
ayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSBtYXAoKSBzaG91bGQgaGF2ZSBhcnJh
eU9wZXJhdG9yRnVuY3Rpb24oKSBhcyBhIGNoaWxkLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
Y2FsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzg2ZmQ5Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBhIGNhbGwg
dG8gY2FsbCgpIGluIGl0LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBp
biB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUg
cHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2Jq
ZWN0KCkgd2l0aCBjYWxsKCkgYXMgaXRzIGNoaWxkIGFuZCBhIGZha2VJbnRlcmlvckZ1bmN0aW9u
KCkgYXMgY2FsbCgpJ3MgY2hpbGQuCi0KLVByb2ZpbGUgdGl0bGU6IFVzaW5nIHRoZSBjYWxsKCkg
bWV0aG9kCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGNhbGwu
aHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGZha2VPYmplY3QgY2FsbC5odG1sIChsaW5lIDE5OjIx
KQotICAgICAgICAgZmFrZUludGVyaW9yRnVuY3Rpb24gY2FsbC5odG1sIChsaW5lIDI1OjMwKQot
ICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQot
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1s
ZWFrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rl
ci1sZWFrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDM2NDdi
Zi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXIt
bGVhay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGlzIHBh
Z2UgdGVzdHMgdGhhdCB0aGUgZ2VuZXJhdGlvbiBvZiBieXRlY29kZSBhbGxvY2F0ZXMgcmVnaXN0
ZXJzIGNvcnJlY3RseSB3aGVuIHByb2ZpbGluZyBpcyBlbmFibGVkLiBUbyBydW4gdGhlIHRlc3Qg
bWFudWFsbHksIGVuYWJsZSBwcm9maWxpbmcgaW4gdGhlIHdlYiBpbnNwZWN0b3IgYW5kIHJlbG9h
ZCB0aGlzIHBhZ2UuCi0KLVBBU1M6IGxvY2FsQ2FsbFRlc3QoMSwgMikgc2hvdWxkIGJlIDIgYW5k
IGlzLgotCi1QQVNTOiBnbG9iYWxDYWxsVGVzdCgxLCAyKSBzaG91bGQgYmUgMiBhbmQgaXMuCi0K
LVBBU1M6IHNjb3BlZENhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQotUEFTUzog
cmVzb2x2ZUNhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQotUEFTUzogYnJhY2tl
dENhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQotUEFTUzogZG90Q2FsbFRlc3Qo
MSwgMikgc2hvdWxkIGJlIDIgYW5kIGlzLgotCi1QQVNTOiBuZXdUZXN0KDEsIDIpIHNob3VsZCBi
ZSAyIGFuZCBpcy4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Nh
bGwtcmVnaXN0ZXItbGVhay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJl
Z2lzdGVyLWxlYWsuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzY2YjQ0MS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVh
ay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAKLTxib2R5PgotPGhlYWQ+Ci08
c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBsb2cocykKLXsKLSAgICBp
ZiAodGhpcy5kb2N1bWVudCkKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNv
bGUiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzICsgIlxuIikpOwotICAg
IGVsc2UKLSAgICAgICAgcHJpbnQocyArICJcbiIpOwotfQotCi1mdW5jdGlvbiBzaG91bGRCZShh
LCBhRGVzY3JpcHRpb24sIGIpCi17Ci0gICAgaWYgKGEgPT09IGIpCi0gICAgICAgIGxvZygiUEFT
UzogIiArIGFEZXNjcmlwdGlvbiArICIgc2hvdWxkIGJlICIgKyBiICsgIiBhbmQgaXMuXG4iKTsK
LSAgICBlbHNlCi0gICAgICAgIGxvZygiRkFJTDogIiArIGFEZXNjcmlwdGlvbiArICIgc2hvdWxk
IGJlICIgKyBiICsgIiBidXQgaW5zdGVhZCBpcyAiICsgYSArICIuXG4iKTsKLX0KLQotZnVuY3Rp
b24gbG9jYWxDYWxsVGVzdChhLCBiKQotewotICAgIGZ1bmN0aW9uIGxvY2FsQ2FsbChvKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIG8udG9TdHJpbmcoKTsKLSAgICB9Ci0gICAgcmV0dXJuIFtsb2Nh
bENhbGwoYSksIGJdWzFdOwotfQotCi1mdW5jdGlvbiBnbG9iYWxDYWxsKG8pCi17Ci0gICAgcmV0
dXJuIG8udG9TdHJpbmcoKTsKLX0KLQotZnVuY3Rpb24gZ2xvYmFsQ2FsbFRlc3QoYSwgYikKLXsK
LSAgICByZXR1cm4gW2dsb2JhbENhbGwoYSksIGJdWzFdOwotfQotCi1mdW5jdGlvbiBzY29wZWRD
YWxsVGVzdChhLCBiKQotewotICAgIGZ1bmN0aW9uIHNjb3BlZENhbGwobykKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBvLnRvU3RyaW5nKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZigpCi0gICAg
ewotICAgICAgICByZXR1cm4gW3Njb3BlZENhbGwoYSksIGJdWzFdOwotICAgIH0KLQotICAgIHJl
dHVybiBmKCk7Ci19Ci0KLWZ1bmN0aW9uIHJlc29sdmVDYWxsVGVzdChhLCBiKQotewotICAgIG8g
PSB7IHJlc29sdmVkQ2FsbDogZnVuY3Rpb24obykgeyByZXR1cm4gby50b1N0cmluZygpOyB9fTsK
LSAgICB3aXRoIChvKSB7Ci0gICAgICAgIHJldHVybiBbcmVzb2x2ZWRDYWxsKG8pLCBiXVsxXTsK
LSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGJyYWNrZXRDYWxsVGVzdChhLCBiKQotewotICAgIHJldHVy
biBbYVsidG9TdHJpbmciXSgpLCBiXVsxXTsKLX0KLQotZnVuY3Rpb24gZG90Q2FsbFRlc3QoYSwg
YikKLXsKLSAgICByZXR1cm4gW2EudG9TdHJpbmcoKSwgYl1bMV07Ci19Ci0KLWZ1bmN0aW9uIHRl
c3RDb25zdHJ1Y3RvcihvKQotewotICAgIHJldHVybiBvLnRvU3RyaW5nKCk7Ci19Ci0KLWZ1bmN0
aW9uIG5ld1Rlc3QoYSwgYikKLXsKLSAgICByZXR1cm4gW25ldyB0ZXN0Q29uc3RydWN0b3IoYSks
IGJdWzFdOwotfQotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIHNob3VsZEJlKGxvY2Fs
Q2FsbFRlc3QoMSwgMiksICJsb2NhbENhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxkQmUo
Z2xvYmFsQ2FsbFRlc3QoMSwgMiksICJnbG9iYWxDYWxsVGVzdCgxLCAyKSIsIDIpOwotICAgIHNo
b3VsZEJlKHNjb3BlZENhbGxUZXN0KDEsIDIpLCAic2NvcGVkQ2FsbFRlc3QoMSwgMikiLCAyKTsK
LSAgICBzaG91bGRCZShyZXNvbHZlQ2FsbFRlc3QoMSwgMiksICJyZXNvbHZlQ2FsbFRlc3QoMSwg
MikiLCAyKTsKLSAgICBzaG91bGRCZShicmFja2V0Q2FsbFRlc3QoMSwgMiksICJicmFja2V0Q2Fs
bFRlc3QoMSwgMikiLCAyKTsKLSAgICBzaG91bGRCZShkb3RDYWxsVGVzdCgxLCAyKSwgImRvdENh
bGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxkQmUobmV3VGVzdCgxLCAyKSwgIm5ld1Rlc3Qo
MSwgMikiLCAyKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzdGFydFRl
c3QoKSI+Ci08cD4KLVRoaXMgcGFnZSB0ZXN0cyB0aGF0IHRoZSBnZW5lcmF0aW9uIG9mIGJ5dGVj
b2RlIGFsbG9jYXRlcyByZWdpc3RlcnMgY29ycmVjdGx5IHdoZW4gcHJvZmlsaW5nIGlzIGVuYWJs
ZWQuIFRvIHJ1biB0aGUgdGVzdCBtYW51YWxseSwgZW5hYmxlIHByb2ZpbGluZyBpbiB0aGUgd2Vi
IGluc3BlY3RvciBhbmQgcmVsb2FkIHRoaXMgcGFnZS4KLTwvcD4KLTxwcmUgaWQ9ImNvbnNvbGUi
PjwvcHJlPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9jYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjEwNWM3YS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQxICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFs
cykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJVc2lu
ZyB0aGUgY2FsbCgpIG1ldGhvZCIpOwotCi0gICAgdmFyIG15T2JqZWN0ID0gbmV3IGZha2VPYmpl
Y3QoMSwgMik7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGZha2VPYmplY3QgKHgs
IHkpCi17Ci0gICAgdGhpcy54ID0geDsKLSAgICBmYWtlSW50ZXJpb3JGdW5jdGlvbi5jYWxsKHRo
aXMsIHkpOwotfQotCi1mdW5jdGlvbiBmYWtlSW50ZXJpb3JGdW5jdGlvbih5KQotewotICAgIHRo
aXMueSA9IHk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRl
c3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBhIGNhbGwgdG8gY2FsbCgpIGluIGl0
LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUg
YnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2Zp
bGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZha2VPYmplY3Qo
KSB3aXRoIGNhbGwoKSBhcwotaXRzIGNoaWxkIGFuZCBhIGZha2VJbnRlcmlvckZ1bmN0aW9uKCkg
YXMgY2FsbCgpJ3MgY2hpbGQuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsaW5nLXRoZS1m
dW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9u
LXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmMyYmIxOC4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRl
ZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDEyICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgc3RhcnRzIHByb2Zp
bGluZyBmcm9tIHdpdGhpbiBhIGZ1bmN0aW9uIHdoaWNoIGlzIHRoZW4gY2FsbGVkIGxhdGVyIGZy
b20gYW5vdGhlciBjb250ZXh0LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBp
dCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0
aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGVyIHlvdSBzaG91bGQgc2VlIGEgY2FsbCB0byBpbmRp
cmVjdGlvbigpIGFuZCBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCkKLQot
UHJvZmlsZSB0aXRsZTogQ2FsbGluZyB0aGUgc2FtZSBmdW5jdGlvbiB3aGVyZSB0aGUgcHJvZmls
ZSBzdGFydGVkIGZyb20gYW5vdGhlciBmdW5jdGlvbgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgIGluZGlyZWN0aW9uIGNhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10
aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwgKGxpbmUgMTc6MjEpCi0gICAgICBm
dW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyIGNhbGxpbmctdGhlLWZ1bmN0aW9u
LXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwgKGxpbmUg
MjM6NDcpCi0gICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyIGNhbGxpbmct
dGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3Bl
Lmh0bWwgKGxpbmUgMjM6NDcpCi0gICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9jYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5v
dGhlci1zY29wZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsaW5nLXRoZS1m
dW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzU2N2YyLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVk
LXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQ3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93Lmlu
dGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgaW5kaXJlY3Rpb24oKTsK
LSAgICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCk7Ci0gICAgZW5kVGVz
dCgpOwotfQotCi1mdW5jdGlvbiBpbmRpcmVjdGlvbigpCi17Ci0gICAgZnVuY3Rpb25XaWNoU3Rh
cnRzQW5kU3RvcHNUaGVQcm9maWxlcigpOwotfQotCi12YXIgZmlyc3RUaW1lID0gdHJ1ZTsKLWZ1
bmN0aW9uIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKQotewotICAgIGlm
IChmaXJzdFRpbWUpIHsKLSAgICAgICAgY29uc29sZS5wcm9maWxlKCJDYWxsaW5nIHRoZSBzYW1l
IGZ1bmN0aW9uIHdoZXJlIHRoZSBwcm9maWxlIHN0YXJ0ZWQgZnJvbSBhbm90aGVyIGZ1bmN0aW9u
Iik7Ci0gICAgICAgIGZpcnN0VGltZSA9IGZhbHNlOwotICAgIH0KLQotICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDAwMDA7IGkrKykKLSAgICAgICAgdmFyIGIgPSBpICsgMjsKLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdl
J3MgSmF2YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgZnVuY3Rpb24gd2hp
Y2ggaXMgdGhlbiBjYWxsZWQKLWxhdGVyIGZyb20gYW5vdGhlciBjb250ZXh0LgotPGJyPgotPGJy
PgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUg
cHJvZmlsZXIgeW91IHNob3VsZCBzZWUgYSBjYWxsIHRvIGluZGlyZWN0aW9uKCkgYW5kCi1mdW5j
dGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCkKLTxkaXYgaWQ9Im91dHB1dCI+PC9k
aXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzNiYmUyMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBtdWx0aXBsZSBw
cm9maWxlcyB3aXRoIHRoZSBzYW1lIG5hbWUuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5
LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBs
b29rIGF0IHRoZSBwcm9maWxlLiBJdCBzaG91bGQgbm90IGNyYXNoIG9yIGhhbmcgYW5kIHRoZXJl
IHNob3VsZCBiZSBtdWx0aXBsZSBydW5zIG9mIHRoZSBzYW1lIG5hbWVkIHByb2ZpbGUuCi0KLVBy
b2ZpbGUgdGl0bGU6IFRlc3QKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFy
dFRlc3QgY29tcGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sIChsaW5lIDIyOjE5KQotICAgICAg
dGVzdCBjb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwgKGxpbmUgMTE6MTQpCi0gICAgICAg
ICB0ZXN0MiBjb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwgKGxpbmUgMTc6MTUpCi0KLVBy
b2ZpbGUgdGl0bGU6IFRlc3QKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFy
dFRlc3QgY29tcGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sIChsaW5lIDIyOjE5KQotICAgICAg
dGVzdCBjb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwgKGxpbmUgMTE6MTQpCi0gICAgICAg
ICB0ZXN0MiBjb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwgKGxpbmUgMTc6MTUpCi0KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXBy
b2ZpbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUt
cHJvZmlsZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTYwMmI0NC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJv
ZmlsZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0
TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLXZhciBqID0gMDsKLWZ1
bmN0aW9uIHRlc3QobGVuKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkKLSAg
ICAgICAgKytqOwotICAgIHRlc3QyKDIwMDAgLSBsZW4pOwotfQotCi1mdW5jdGlvbiB0ZXN0Mihs
ZW4pIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKQotICAgICAgICAtLWo7Ci19
Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJUZXN0Iik7
Ci0gICAgdGVzdCgxMDApOwotICAgIGNvbnNvbGUucHJvZmlsZUVuZCgiVGVzdCIpOwotCi0gICAg
Y29uc29sZS5wcm9maWxlKCJUZXN0Iik7Ci0gICAgdGVzdCgxMDAwKTsKLSAgICBjb25zb2xlLnBy
b2ZpbGVFbmQoIlRlc3QiKTsKLQotICAgIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUoKTsK
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRo
aXMgcGFnZSBoYXMgbXVsdGlwbGUgcHJvZmlsZXMgd2l0aCB0aGUgc2FtZSBuYW1lLgotPGJyPgot
PGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0
aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJdCBz
aG91bGQgbm90IGNyYXNoIG9yIGhhbmcgYW5kIHRoZXJlIHNob3VsZCBiZSBtdWx0aXBsZSBydW5z
IG9mIHRoZQotc2FtZSBuYW1lZCBwcm9maWxlLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29u
c3RydWN0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25zdHJ1
Y3Rvci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzZDg5NjMu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25zdHJ1Y3Rvci1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZh
U2NyaXB0IGhhcyBhIGNhbGwgdG8gbmV3KCkgaW4gaXQuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1h
bnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9y
IGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUg
YSBjYWxsIHRvIGZha2VPYmplY3QoKSBhbmQgQXJyYXkoKSBpbiBpdC4KLQotUHJvZmlsZSB0aXRs
ZTogVXNpbmcgYSBjb25zdHJ1Y3Rvci4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICBzdGFydFRlc3QgY29uc3RydWN0b3IuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGZha2VPYmpl
Y3QgY29uc3RydWN0b3IuaHRtbCAobGluZSAxOToyMSkKLSAgICAgICAgIEFycmF5IChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
IChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9j
b25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25zdHJ1Y3Rvci5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYzYzOTA4Li4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDM2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2lu
ZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5w
cm9maWxlKCJVc2luZyBhIGNvbnN0cnVjdG9yLiIpOwotCi0gICAgdmFyIG15T2JqZWN0ID0gbmV3
IGZha2VPYmplY3QoMSwgMik7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGZha2VP
YmplY3QgKHgsIHkpCi17Ci0gICAgdmFyIG15QXJyYXkgPSBuZXcgQXJyYXkoKQotICAgIG15QXJy
YXlbMF0gPSA1OwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRU
ZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgYSBjYWxsIHRvIG5ldygpIGluIGl0
LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUg
YnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2Zp
bGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZha2VPYmplY3Qo
KSBhbmQgQXJyYXkoKQotaW4gaXQuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZGU2NGY2Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgSGFzIHNv
bWUgZGVhZCB0aW1lIGluIHRoZSBwcm9maWxlLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgbGFy
Z2UgYW1vdW50IG9mIHRoZSAlIHNwZW50IGluIChub24tSmF2YVNjcmlwdCkuCi0KLVByb2ZpbGUg
dGl0bGU6IERlYWQgdGltZSBpbiBwcm9maWxlLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgIG9ubG9hZCBkZWFkLXRpbWUuaHRtbCAobGluZSAyMTo0NCkKLSAgICAgIHN0YXJ0VGVz
dCBkZWFkLXRpbWUuaHRtbCAobGluZSAxMjoxOSkKLSAgICAgICAgIHNldFRpbWVvdXQgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgIChwcm9ncmFtKSBkZWFkLXRpbWUuaHRtbCAobGluZSAxOjEpCi0g
ICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGE2NjRjZTAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9kZWFkLXRpbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
LSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKLX0KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkK
LXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkRlYWQgdGltZSBpbiBwcm9maWxlLiIpOwotICAgIHNl
dFRpbWVvdXQoImVuZFRlc3QoKSIsIDEyMzQpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IEhhcyBz
b21lIGRlYWQgdGltZSBpbiB0aGUgcHJvZmlsZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRl
c3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNw
ZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hv
dWxkIGJlIGEgbGFyZ2UgYW1vdW50IG9mIHRoZSAlIHNwZW50IGluIAotKG5vbi1KYXZhU2NyaXB0
KS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODQ5ZjFiZC4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLQotUHJvZmlsZSB0aXRsZTogQ2Fs
bCBEb2N1bWVudC53cml0ZSgpCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3Rh
cnRUZXN0IGRvY3VtZW50LWRvdC13cml0ZS5odG1sIChsaW5lIDEwOjE5KQotICAgICAgd3JpdGUg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YWY1NGY0MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RvY3VtZW50
LWRvdC13cml0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFs
cy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24g
c3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkNhbGwgRG9jdW1lbnQud3JpdGUo
KSIpOwotCi0gICAgZG9jdW1lbnQud3JpdGUoIjxkaXYgaWQ9XCJvdXRwdXRcIj48L2Rpdj4iKTsK
LQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9
InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBjYWxscyBkb2N1bWVudC53cml0ZSgpLgotPGJyPgot
PGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0
aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJZiB0
aGVyZSBpcyBhIHByb2ZpbGUgaXQgc2hvdWxkIHNob3cgd3JpdGUoKS4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXItZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNWM0OGNkLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGlzIHBhZ2UgaGFzIGFuIGV2ZW50
IGhhbmRsZXIuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBi
cm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxl
LiBJbiB0aGUgcHJvZmlsZSBpbnNlcnRuZXdUZXh0KCkgc2hvdWxkIGJlIGEgc2libGluZyB0byBv
bmxvYWQoKS4gCi0KLVByb2ZpbGUgdGl0bGU6IEV2ZW50IGhhbmRsZXIKLVRocmVhZF8xIChubyBm
aWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgZXZlbnQtaGFuZGxlci5odG1sIChsaW5lIDEw
OjE5KQotICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGFk
ZEV2ZW50TGlzdGVuZXIgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGNsaWNrIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVz
dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9ldmVudC1oYW5kbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGY2YTQ2MWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9ldmVudC1oYW5kbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAg
aW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1m
dW5jdGlvbiBzdGFydFRlc3QoKQoteyAgICAKLSAgICBjb25zb2xlLnByb2ZpbGUoIkV2ZW50IGhh
bmRsZXIiKTsKLQotICAgIHZhciBteUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJi
dXR0b25XaXRoQW5FdmVudExpc3RlbmVyIik7Ci0gICAgbXlCdXR0b24uYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCBpbnNlcnROZXdUZXh0LCBmYWxzZSk7Ci0gICAgbXlCdXR0b24uY2xpY2soKTsK
LQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9
InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgYW4gZXZlbnQgaGFuZGxlci4KLTxicj4KLTxi
cj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhl
IHByb2ZpbGUgaW5zZXJ0bmV3VGV4dCgpIHNob3VsZCBiZSBhIHNpYmxpbmcgdG8gb25sb2FkKCku
Ci08aW5wdXQgdHlwZT0iYnV0dG9uIiBpZD0iYnV0dG9uV2l0aEFuRXZlbnRMaXN0ZW5lciIgdmFs
dWU9IkJ1dHRvbiB3aXRoIGFuIGV2ZW50IGxpc3RlbmVyIj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9k
aXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9u
LXNhbWUtbGluZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5
NWMyNjEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9leGVjdXRpb24t
Y29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhIGNhbGwgdG8gZXZhbCBhbmQgYSBzY3Jp
cHQgdGFnIG9uIHRoZSBzYW1lIGxpbmUuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBs
b2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29r
IGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgbXVsdGlwbGUg
KHByb2dyYW0pIGVsZW1lbnRzIGFuZCBvbmUgdGhhdCByZXByZXNlbnRzIHRoZSBldmFsKCkuCi0K
LVByb2ZpbGUgdGl0bGU6IFR3byBFeGVjdXRpb24gQ29udGV4dHMgb24gdGhlIHNhbWUgbGluZQot
VGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBleGVjdXRpb24tY29u
dGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGV2YWxG
dW5jdGlvbiAobm8gZmlsZSkgKGxpbmUgMToyMikKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVh
dGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9k
ZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6
MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9leGVjdXRpb24t
Y29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3NWIyOWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9leGVjdXRpb24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgp
Ci17Ci0gICAgY29uc29sZS5wcm9maWxlKCJUd28gRXhlY3V0aW9uIENvbnRleHRzIG9uIHRoZSBz
YW1lIGxpbmUiKTsKLQotICAgIGV2YWxGdW5jdGlvbigpOwotCi0gICAgZW5kVGVzdCgpOwotfQot
PC9zY3JpcHQ+Ci08c2NyaXB0PgotZXZhbCgiZnVuY3Rpb24gZXZhbEZ1bmN0aW9uKCkgeyBpbnNl
cnROZXdUZXh0KCk7IH0iKTsKLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0
YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgYSBjYWxsIHRvIGV2YWwgYW5kIGEgc2NyaXB0IHRh
ZyBvbiB0aGUgc2FtZSBsaW5lLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgbXVs
dGlwbGUgKHByb2dyYW0pIGVsZW1lbnRzIGFuZAotb25lIHRoYXQgcmVwcmVzZW50cyB0aGUgZXZh
bCgpLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwMjNlNWYuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGlzIHBhZ2UgaGFz
IGFuIGlubGluZSBldmVudCBoYW5kbGVyLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwg
bG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9v
ayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgb25jbGljaygpIHNob3VsZCBiZSBhIHNp
YmxpbmcgdG8gb25sb2FkKCkgYW5kIG9uY2xpY2soKSBzaG91bGQgaGF2ZSBldmVudExpc3RlbmVy
KCkgYXMgYSBjaGlsZC4gCi0KLVByb2ZpbGUgdGl0bGU6IElubGluZSBldmVudCBoYW5kbGVyCi1U
aHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGlubGluZS1ldmVudC1o
YW5kbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgY2xpY2sgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIG9u
Y2xpY2sgaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbCAobGluZSAzMToxMjcpCi0gICAgICAgICAg
ICBldmVudExpc3RlbmVyIGlubGluZS1ldmVudC1oYW5kbGVyLmh0bWwgKGxpbmUgMTc6MjMpCi0g
ICAgICAgICAgICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgICAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAg
ICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAg
IGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBlbmRU
ZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDAxNDYzLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDM0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1p
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAo
d2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17ICAgIAotICAgIGNv
bnNvbGUucHJvZmlsZSgiSW5saW5lIGV2ZW50IGhhbmRsZXIiKTsKLQotICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJldmVudExpc3RlbmVyU2V0SW5saW5lIikuY2xpY2soKTsKLX0KLQotZnVu
Y3Rpb24gZXZlbnRMaXN0ZW5lcigpIHsgICAgCi0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAg
ICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFy
dFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIGFuIGlubGluZSBldmVudCBoYW5kbGVyLgotPGJyPgot
PGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0
aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0
aGUgcHJvZmlsZSBvbmNsaWNrKCkgc2hvdWxkIGJlIGEgc2libGluZyB0byBvbmxvYWQoKSBhbmQg
b25jbGljaygpCi1zaG91bGQgaGF2ZSBldmVudExpc3RlbmVyKCkgYXMgYSBjaGlsZC4KLTxpbnB1
dCB0eXBlPSJidXR0b24iIG9uY2xpY2s9ImV2ZW50TGlzdGVuZXIoKSIgaWQ9ImV2ZW50TGlzdGVu
ZXJTZXRJbmxpbmUiIHZhbHVlPSJFdmVudCBMaXN0ZW5lciBTZXQgSW5saW5lIj4KLTxkaXYgaWQ9
Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3Bl
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNkNDVkMS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNh
bWUtc2NvcGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotVGhp
cyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgbWFueSBmdW5jdGlvbiBjYWxscyBpbiB0aGUgc2FtZSBz
Y29wZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dz
ZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIElu
IHRoZSBwcm9maWxlIG1hbnkgZnVuY3Rpb25zIHNob3VsZCBiZSB0aGUgY2hpbGRyZW4gb2Ygc3Rh
cnRUZXN0LiBVc2UgdGhlIHNvcnRpbmcgY2FwYWJpbGl0ZXMgdG8gbWFrZSBzdXJlIHRoZSBzaW1p
bGFybHkgbmFtZWQgZnVuY3Rpb25zIGFyZSBzb3J0ZWQgY29ycmVjdGx5LgotCi1Qcm9maWxlIHRp
dGxlOiBNYW55IENhbGxzIEluIFRoZSBTYW1lIFNjb3BlCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgc3RhcnRUZXN0IG1hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbCAo
bGluZSAxMDoxOSkKLSAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGdldEVsZW1l
bnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBpbnNlcnRHaXZlblRleHQgcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgOToyNSkKLSAgICAgICAgIGNyZWF0ZUVsZW1l
bnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGFycmF5
T3BlcmF0b3JGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyNToz
MSkKLSAgICAgIGludGVybWVkaWFyeUZ1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIChsaW5lIDMyOjMwKQotICAgICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICAgICBpbnNlcnROZXdUZXh0
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAg
ICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgY3Jl
YXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGFwcGVuZENo
aWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHBy
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3Jl
YXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5v
ZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgZW5kIG1hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbCAobGluZSAy
NjoxMykKLSAgICAgIGVuZFQgbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sIChsaW5l
IDMxOjE0KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1j
YWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9t
YW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDA3MTliY2UuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9t
YW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiTWFu
eSBDYWxscyBJbiBUaGUgU2FtZSBTY29wZSIpOwotCi0gICAgaW5zZXJ0TmV3VGV4dCgpOwotICAg
IGluc2VydEdpdmVuVGV4dCgiVGhpcyB3YXMgYSB0cml1bXBoLiIpOwotICAgIGFycmF5T3BlcmF0
b3JGdW5jdGlvbig3KTsKLSAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbigpOwotICAgIGFub255bW91
c0Z1bmN0aW9uKCk7Ci0gICAgZW5kKCkKLSAgICBlbmRUKCk7Ci0gICAgZW5kVCgpOwotCi0gICAg
ZW5kVGVzdCgpOwotfQotCi1mdW5jdGlvbiBlbmQoKQotewotICAgIHZhciB4ID0gMDsKLX0KLQot
ZnVuY3Rpb24gZW5kVCgpCi17Ci0gICAgdmFyIHkgPSAxOwotfQotCi08L3NjcmlwdD4KLTwvaGVh
ZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0
IGhhcyBtYW55IGZ1bmN0aW9uIGNhbGxzIGluIHRoZSBzYW1lIHNjb3BlLgotPGJyPgotPGJyPgot
VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxv
YWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJv
ZmlsZSBtYW55IGZ1bmN0aW9ucyBzaG91bGQgYmUgdGhlIGNoaWxkcmVuIG9mIHN0YXJ0VGVzdC4K
LVVzZSB0aGUgc29ydGluZyBjYXBhYmlsaXRlcyB0byBtYWtlIHN1cmUgdGhlIHNpbWlsYXJseSBu
YW1lZCBmdW5jdGlvbnMgYXJlIHNvcnRlZAotY29ycmVjdGx5LgotPGRpdiBpZD0ib3V0cHV0Ij48
L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNh
bGxzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5k
LWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDUxZWM4MS4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255
bW91cy1mdW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyAr
MCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIHRoZSBzYW1lIGFub255bW91cyBm
dW5jdGlvbiBmcm9tIG11bHRpcGxlIGFuZCBkaWZmZXJlbnRseSBzY29wZWQgbG9jYXRpb25zLiAK
LQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHBy
b2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0IHdpdGggZmFrZUludGVy
aW9yRnVuY3Rpb24gYXMgaXRzIGNoaWxkLCBidXQgY2FsbCgpIHNob3VsZCBub3QgYmUgc2hvd24u
Ci0KLVByb2ZpbGUgdGl0bGU6IE11bHRpcGxlIGFuZCBkaWZmZXJlbnQgc2NvcGVkIGNhbGxzIHRv
IHRoZSBzYW1lIGFub255bW91cyBmdW5jdGlvbgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgIHN0YXJ0VGVzdCBtdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMt
ZnVuY3Rpb24tY2FsbHMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9u
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5z
ZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAg
ICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
IGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRD
aGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGludGVybWVkaWFyeUZ1bmN0aW9uIHByb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDMyOjMwKQotICAgICAgICAgYW5vbnltb3VzRnVuY3Rp
b24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICAg
ICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIz
KQotICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBn
ZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnlt
b3VzLWZ1bmN0aW9uLWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRp
cGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMmQwMDVhLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnlt
b3VzLWZ1bmN0aW9uLWNhbGxzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAg
aW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1m
dW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiTXVsdGlwbGUgYW5k
IGRpZmZlcmVudCBzY29wZWQgY2FsbHMgdG8gdGhlIHNhbWUgYW5vbnltb3VzIGZ1bmN0aW9uIik7
Ci0KLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGFub255bW91c0Z1bmN0aW9uKCk7Ci0K
LSAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbigpOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3Mg
SmF2YVNjcmlwdCBjYWxscyB0aGUgc2FtZSBhbm9ueW1vdXMgZnVuY3Rpb24gZnJvbSBtdWx0aXBs
ZSBhbmQgZGlmZmVyZW50bHkgc2NvcGVkIGxvY2F0aW9ucy4KLTxicj4KLTxicj4KLVRvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBX
ZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhl
cmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0IHdpdGgKLWZha2VJbnRlcmlvckZ1bmN0
aW9uIGFzIGl0cyBjaGlsZCwgYnV0IGNhbGwoKSBzaG91bGQgbm90IGJlIHNob3duLgotPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24t
Y2FsbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1h
bmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5ZmRjZWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxs
cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGlzIHBhZ2Un
cyBKYXZhU2NyaXB0IGNhbGxzIHRoZSBzYW1lIGZ1bmN0aW9uIGZyb20gbXVsdGlwbGUgYW5kIGRp
ZmZlcmVudGx5IHNjb3BlZCBsb2NhdGlvbnMuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5
LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBs
b29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgdHdvIGNh
bGxzIHRvIGluc2VydE5ld1RleHQgdW5kZXIgc3RhcnRUZXN0KCkgYW5kIG9uZSB1bmRlciBhbiAo
YW5vbnltb3VzIGZ1bmN0aW9uKSB1bmRlciBpbnRlcm1lZGlhcnlGdW5jdGlvbigpLgotCi1Qcm9m
aWxlIHRpdGxlOiBNdWx0aXBsZSBhbmQgZGlmZmVyZW50IHNjb3BlZCBjYWxscyB0byB0aGUgc2Ft
ZSBmdW5jdGlvbgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBt
dWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy5odG1sIChsaW5lIDEw
OjE5KQotICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAo
bGluZSAxNzoyMykKLSAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBh
cHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgZ2V0RWxlbWVudEJ5SWQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGludGVybWVkaWFyeUZ1bmN0aW9uIHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDMyOjMwKQotICAgICAgICAgYW5vbnltb3VzRnVu
Y3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAg
ICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3
OjIzKQotICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVu
Y3Rpb24tY2FsbHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5k
LWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZmMyZTIyMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAg
IGNvbnNvbGUucHJvZmlsZSgiTXVsdGlwbGUgYW5kIGRpZmZlcmVudCBzY29wZWQgY2FsbHMgdG8g
dGhlIHNhbWUgZnVuY3Rpb24iKTsKLQotICAgIGluc2VydE5ld1RleHQoKTsKLSAgICBpbnNlcnRO
ZXdUZXh0KCk7Ci0KLSAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbigpOwotCi0gICAgZW5kVGVzdCgp
OwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgot
VGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIG11bHRp
cGxlIGFuZCBkaWZmZXJlbnRseSBzY29wZWQgbG9jYXRpb25zLgotPGJyPgotPGJyPgotVG8gcnVu
IHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhl
IFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0
aGVyZSBzaG91bGQgYmUgdHdvIGNhbGxzIHRvIGluc2VydE5ld1RleHQgdW5kZXIKLXN0YXJ0VGVz
dCgpIGFuZCBvbmUgdW5kZXIgYW4gKGFub255bW91cyBmdW5jdGlvbikgdW5kZXIgaW50ZXJtZWRp
YXJ5RnVuY3Rpb24oKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255bW91
cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNh
bGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTQwMTQwNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUt
ZnVuY3Rpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhp
cyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyB0aGUgZGlmZmVyZW50IGFub255bW91cyBmdW5jdGlv
bnMgdGhlIHNhbWUgc2NvcGUuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0
IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRo
ZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHR3byBlbnRy
aWVzIG5hbWVkIHRvIChhbm9ueW1vdXMgZnVuY3Rpb24pLCBhcyBvcHBvc2VkIHRvIG9uZSBlbnRy
eSBjYWxsZWQgdHdpY2UuCi0KLVByb2ZpbGUgdGl0bGU6IE11bHRpcGxlIGNhbGxzIHRvIGRpZmZl
cmVudCBhbm9ueW1vdXMgZnVuY3Rpb25zCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgc3RhcnRUZXN0IG11bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhl
LXNhbWUtZnVuY3Rpb24uaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9u
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5z
ZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAg
ICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
IGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRD
aGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGFub3RoZXJBbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAzMDo0MSkKLSAgICAgICAgIGluc2VydEdpdmVu
VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA5OjI1KQotICAgICAgICAg
ICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRl
VGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAo
bGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVs
dGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rp
b25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGZiMWNmMmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1
bmN0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFy
dFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiTXVsdGlwbGUgY2FsbHMgdG8gZGlmZmVy
ZW50IGFub255bW91cyBmdW5jdGlvbnMiKTsKLQotICAgIGFub255bW91c0Z1bmN0aW9uKCk7Ci0g
ICAgYW5vdGhlckFub255bW91c0Z1bmN0aW9uKCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2Un
cyBKYXZhU2NyaXB0IGNhbGxzIHRoZSBkaWZmZXJlbnQgYW5vbnltb3VzIGZ1bmN0aW9ucyB0aGUg
c2FtZSBzY29wZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQg
aXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQK
LXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0d28g
ZW50cmllcyBuYW1lZCB0byAoYW5vbnltb3VzIGZ1bmN0aW9uKSwKLWFzIG9wcG9zZWQgdG8gb25l
IGVudHJ5IGNhbGxlZCB0d2ljZS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZy
YW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZy
YW1lcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlMjNmNGMu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhpcyB0ZXN0IGhh
cyBKUyBleGVjdXRpbmcgaW4gYW5vdGhlciB3aW5kb3cuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1h
bnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9y
IGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUg
YSBjYWxsIHRvIGZ1bmN0aW9uSW5PdGhlckZyYW1lKCkuCi0KLVByb2ZpbGUgdGl0bGU6IE90aGVy
IHdpbmRvdyBleGVjdXRpbmcgSmF2YVNjcmlwdAotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgIHN0YXJ0VGVzdCBtdWx0aXBsZS1mcmFtZXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAg
IGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBmdW5jdGlvbkluT3Ro
ZXJGcmFtZSBvdGhlci1mcmFtZS5odG1sIChsaW5lIDQ6MzApCi0gICAgICAgICBmdW5jdGlvbklu
UGFyZW50RnJhbWUgbXVsdGlwbGUtZnJhbWVzLmh0bWwgKGxpbmUgMjE6MzEpCi0gICAgICBpbnNl
cnRHaXZlblRleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgOToyNSkKLSAg
ICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGNyZWF0
ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBhcHBlbmRDaGlsZCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
MToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxl
LWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFiNGZmNi4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlm
ICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25z
b2xlLnByb2ZpbGUoIk90aGVyIHdpbmRvdyBleGVjdXRpbmcgSmF2YVNjcmlwdCIpOwotCi0gICAg
dmFyIG15RnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdWJGcmFtZSIpOwotICAg
IHZhciBzZWNyZXQgPSBteUZyYW1lLmNvbnRlbnRXaW5kb3cuZnVuY3Rpb25Jbk90aGVyRnJhbWUo
KTsKLSAgICBpbnNlcnRHaXZlblRleHQoc2VjcmV0KTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLQot
ZnVuY3Rpb24gZnVuY3Rpb25JblBhcmVudEZyYW1lKCkgewotICAgIHJldHVybiAiUGkiOwotfQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyB0
ZXN0IGhhcyBKUyBleGVjdXRpbmcgaW4gYW5vdGhlciB3aW5kb3cuCi08YnI+Ci08YnI+Ci1UbyBy
dW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0
aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxl
IHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25Jbk90aGVyRnJhbWUoKS4KLTxkaXYg
aWQ9Im91dHB1dCI+PC9kaXY+Ci08aWZyYW1lIHNyYz0icmVzb3VyY2VzL290aGVyLWZyYW1lLmh0
bWwiIGlkPSJteVN1YkZyYW1lIj48L2lmcmFtZT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxh
eS1uYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1
bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxOTBhNjRjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxz
IG5hbWVkIGZ1bmN0aW9ucyBhbmQgY2hhbmdlcyB0aGVpciBkaXNwbGF5IG5hbWVzLiAKLQotVG8g
cnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQg
dGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gWW91IHNob3VsZCBzZWUg
ZnVuY3Rpb25zIG5hbWVkICJbeF0gaXRlcmF0aW9uW3NdIGZ1bmN0aW9uIiwgYW5kIG5vdCAiZnVu
Y3Rpb25beF0iCi0KLVByb2ZpbGUgdGl0bGU6IE5hbWVkIGZ1bmN0aW9ucyB3aXRoIGRpc3BsYXkg
bmFtZXMKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmFtZWQt
ZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDUzOjE5KQotICAgICAgMCBp
dGVyYXRpb25zIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRt
bCAobGluZSAxMDoxOSkKLSAgICAgIDEgaXRlcmF0aW9uIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9u
cy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxNzoxOSkKLSAgICAgIDIgaXRlcmF0aW9u
cyBmdW5jdGlvbiBuYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUg
MjQ6MTkpCi0gICAgICAyMCBpdGVyYXRpb25zIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRo
LWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAzMToyMCkKLSAgICAgIDEwMDAgaXRlcmF0aW9ucyBm
dW5jdGlvbiBuYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMzg6
MjIpCi0gICAgICBib2d1c0Rpc3BsYXlOYW1lRnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25zLXdpdGgt
ZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDQ2OjM0KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5
LW5hbWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhZjJlYzAuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1k
aXNwbGF5LW5hbWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJu
YWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlv
biBmdW5jdGlvbjAoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMDsgKytpKSA7Ci19Ci0K
LWZ1bmN0aW9uMC5kaXNwbGF5TmFtZSA9ICIwIGl0ZXJhdGlvbnMgZnVuY3Rpb24iOwotCi1mdW5j
dGlvbiBmdW5jdGlvbjEoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTsgKytpKSA7Ci19
Ci0KLWZ1bmN0aW9uMS5kaXNwbGF5TmFtZSA9ICIxIGl0ZXJhdGlvbiBmdW5jdGlvbiI7Ci0KLWZ1
bmN0aW9uIGZ1bmN0aW9uMigpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyOyArK2kpIDsK
LX0KLQotZnVuY3Rpb24yLmRpc3BsYXlOYW1lID0gIjIgaXRlcmF0aW9ucyBmdW5jdGlvbiI7Ci0K
LWZ1bmN0aW9uIGZ1bmN0aW9uMjAoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjA7ICsr
aSkgOwotfQotCi1mdW5jdGlvbjIwLmRpc3BsYXlOYW1lID0gIjIwIGl0ZXJhdGlvbnMgZnVuY3Rp
b24iOwotCi1mdW5jdGlvbiBmdW5jdGlvbjEwMDAoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDsgKytpKSA7Ci19Ci0KLWZ1bmN0aW9uMTAwMC5kaXNwbGF5TmFtZSA9ICIxMDAwIGl0
ZXJhdGlvbnMgZnVuY3Rpb24iOwotCi0KLWZ1bmN0aW9uIGJvZ3VzRGlzcGxheU5hbWVGdW5jdGlv
bigpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAwOyArK2kpIDsKLX0KLQotYm9ndXNEaXNw
bGF5TmFtZUZ1bmN0aW9uLmRpc3BsYXlOYW1lID0gYm9ndXNEaXNwbGF5TmFtZUZ1bmN0aW9uOwot
Ci1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiTmFtZWQgZnVu
Y3Rpb25zIHdpdGggZGlzcGxheSBuYW1lcyIpOwotCi0gICAgZnVuY3Rpb24wKCk7Ci0gICAgZnVu
Y3Rpb24xKCk7Ci0gICAgZnVuY3Rpb24yKCk7Ci0gICAgZnVuY3Rpb24yMCgpOwotICAgIGZ1bmN0
aW9uMTAwMCgpOwotICAgIGJvZ3VzRGlzcGxheU5hbWVGdW5jdGlvbigpOwotCi0gICAgZW5kVGVz
dCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCki
PgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBuYW1lZCBmdW5jdGlvbnMgYW5kIGNoYW5n
ZXMgdGhlaXIgZGlzcGxheSBuYW1lcy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgWW91IHNob3VsZCBzZWUgZnVuY3Rpb25zIG5hbWVk
ICJbeF0gaXRlcmF0aW9uW3NdIGZ1bmN0aW9uIiwgYW5kIG5vdCAiZnVuY3Rpb25beF0iCi08ZGl2
IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24tZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjI5YTQyLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9u
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoaXMgcGFnZSdz
IEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIHdoaWNoIGNhbGxzIGEgbmVzdGVkIGFub255
bW91cyBmdW5jdGlvbi4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4g
dGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHBy
b2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhbiAoYW5vbnltb3VzIGZ1bmN0
aW9uKSB3aXRoIGEgY2hpbGQgKGFub255bW91cyBmdW5jdGlvbikuCi0KLVByb2ZpbGUgdGl0bGU6
IE5lc3RlZCBhbm9ueW1vdXMgZnVuY3Rpb25zIGNhbGxlZAotVGhyZWFkXzEgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBuZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbCAobGlu
ZSAxMDoxOSkKLSAgICAgIEFub255bW91c0Z1bmN0aW9uV2ljaENhbGxzQW5Bbm9ueW1vdXNGdW5j
dGlvbiBuZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbCAobGluZSAxNDo2NSkKLSAgICAgICAg
IGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5
OjM0KQotICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
IGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVu
Y3Rvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1
bmN0b24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjZiOTI1YS4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rv
bi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdh
Y3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0
KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIk5lc3RlZCBhbm9ueW1vdXMgZnVuY3Rpb25zIGNh
bGxlZCIpOwotCi0gICAgdmFyIEFub255bW91c0Z1bmN0aW9uV2ljaENhbGxzQW5Bbm9ueW1vdXNG
dW5jdGlvbiA9IGZ1bmN0aW9uKCkgewotICAgICAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAg
IH0KLQotICAgIEFub255bW91c0Z1bmN0aW9uV2ljaENhbGxzQW5Bbm9ueW1vdXNGdW5jdGlvbigp
OwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9h
ZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBhbiBhbm9ueW1v
dXMgd2hpY2ggY2FsbHMgYSBuZXN0ZWQgYW5vbnltb3VzIGZ1bmN0aW9uLgotPGJyPgotPGJyPgot
VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxv
YWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJv
ZmlsZSB0aGVyZSBzaG91bGQgYmUgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2l0aCBhIGNoaWxk
Ci0oYW5vbnltb3VzIGZ1bmN0aW9uKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1z
dGFydC1hbmQtc3RvcC1wcm9maWxlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL25lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1YTMwOWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTg2ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3Jp
cHQgY2FsbHMgY29uc29sZS5wcm9maWxlKCkgdGhyZWUgdGltZXMgdGhlbiBjb25zb2xlLnByb2Zp
bGVFbmQoKSB0aHJlZSB0aW1lcy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQg
aXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQg
dGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJvZmls
ZXMuCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgdGhpcmQgdGltZS4K
LVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVzdGVkLXN0YXJ0
LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRUZXN0IHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQotUHJvZmlsZSB0aXRsZTog
U3RhcnQgdGhlIHByb2ZpbGVyIHRoZSB0aGlyZCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBuZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRt
bCAobGluZSAxMDoxOSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMgKGxpbmUgMToxNykKLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBz
ZWNvbmQgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qg
bmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBl
bmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0gICAgICAg
ICBwcm9maWxlRW5kIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBwcmludFByb2ZpbGVz
RGF0YVdpdGhvdXRUaW1lIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDYyOjM4
KQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFw
cGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBwcmludFByb2ZpbGVO
b2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6Mzcp
Ci0gICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNG
b3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNo
aWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBwcmludFByb2Zp
bGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6
MzcpCi0gICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdS
ZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAo
YW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50
QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgbm90aWZ5RG9uZSAobm8gZmlsZSkg
KGxpbmUgMDowKQotCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgdGhp
cmQgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVz
dGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRU
ZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLVByb2ZpbGUg
dGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25kIHRpbWUuCi1UaHJlYWRfMSAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG5lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9m
aWxlci5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSAxOjE3KQotICAgICAgICAgcHJvZmlsZUVuZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA2MjozOCkKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1l
bnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHByb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAgcmVwbGFjZSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgaGFzT2JzZXJ2YWJsZVNpZGVF
ZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgICAgIGFub255bW91cyAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGFw
cGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjaGlsZHJlbiAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhv
dXRUaW1lIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAg
ICAgICAgICAgICAgcmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFub255bW91cyAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAgICAgICAg
cmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgaGFz
T2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGFub255bW91cyAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgIG5vdGlmeURvbmUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLQotUHJvZmlsZSB0aXRs
ZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBmaXJzdCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBuZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIu
aHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgMToxNykKLSAgICAgICAgIHByb2ZpbGVFbmQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMgKGxpbmUgNjI6MzgpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0
c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNy
ZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRD
aGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGlt
ZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAg
ICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAg
IGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgIHJlcGxh
Y2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2Vy
dmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVu
Y3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBh
bm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAg
ICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAg
ICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAg
IHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFi
bGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHRO
b2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBl
bmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09i
c2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24p
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
bm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmlu
Z1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2Rl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
cHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1Jl
cGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRl
eHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGlt
ZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVT
aWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24p
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0Zv
clN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRC
eUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBub3RpZnlEb25lIChubyBmaWxlKSAo
bGluZSAwOjApCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0
ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDJlNzg3MjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDMxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3By
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93
LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9m
aWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgdGhlIGZpcnN0IHRpbWUuIik7Ci0gICAgY29uc29sZS5w
cm9maWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgdGhlIHNlY29uZCB0aW1lLiIpOwotICAgIGNvbnNv
bGUucHJvZmlsZSgiU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSB0aGlyZCB0aW1lLiIpOwotICAgIGVu
ZFRlc3QoKTsKLSAgICBlbmRUZXN0KCk7Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNj
cmlwdCBjYWxscyBjb25zb2xlLnByb2ZpbGUoKSB0aHJlZSB0aW1lcyB0aGVuIGNvbnNvbGUucHJv
ZmlsZUVuZCgpCi10aHJlZSB0aW1lcy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGVyIHRoZXJlIHNob3VsZCBi
ZSB0aHJlZSBwcm9maWxlcy4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1j
b250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0
aW9uLWNvbnRleHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
NTVkY2NiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0
aW9uLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1U
aGlzIHBhZ2UgaGFzIGEgbm8gcHJvZmlsaW5nIGluZm9ybWF0aW9uLiAKLQotVG8gcnVuIHRoaXMg
dGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYklu
c3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gWW91IHNob3VsZCBub3Qgc2VlIGFueSBw
cm9maWxlIGRhdGUgaW4gdGhlIFdlYkluc3BlY3Rvci4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDE5Yzg1MzkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjAg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJu
YWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InByaW50UHJvZmlsZXNE
YXRhV2l0aG91dFRpbWUoKSI+Ci1UaGlzIHBhZ2UgaGFzIGEgbm8gcHJvZmlsaW5nIGluZm9ybWF0
aW9uLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0
aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHBy
b2ZpbGUuICBZb3Ugc2hvdWxkIG5vdCBzZWUgYW55IHByb2ZpbGUgZGF0ZSBpbiB0aGUgV2ViSW5z
cGVjdG9yLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250
ZXh0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhkZDY3MC4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29u
dGV4dC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHBh
Z2UgaGFzIGEgc2luZ2xlIHNjcmlwdCB0YWcgd2l0aCBzb21lIHNpbXBsZSBKYXZhU2NyaXB0LiAK
LQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4KLQotUHJvZmls
ZSB0aXRsZTogT25lIEV4ZWN1dGlvbiBDb250ZXh0Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgc3RhcnRUZXN0IG9uZS1leGVjdXRpb24tY29udGV4dC5odG1sIChsaW5lIDEwOjE5
KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3
KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlv
bi1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24t
Y29udGV4dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTVmODczLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2Fj
eUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3Qo
KQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiT25lIEV4ZWN1dGlvbiBDb250ZXh0Iik7Ci0gICAg
ZW5kVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFy
dFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIGEgc2luZ2xlIHNjcmlwdCB0YWcgd2l0aCBzb21lIHNp
bXBsZSBKYXZhU2NyaXB0LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwg
bG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9v
ayBhdAotdGhlIHByb2ZpbGUuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxz
LWluLWluY2x1ZGVkLWZpbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjNDJkMTcxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSBjYWxscyB0aGUgcHJvZmls
ZXIgZnJvbSB0aGUgaW5jbHVkZWQgZmlsZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQgdGhlIHByb2ZpbGUuIElmIHRoZXJlIGlzIGEgcHJvZmlsZSB0aGF0IGlzIHN1ZmZpY2ll
bnQgZm9yIHRoaXMgdGVzdC4KLQotUHJvZmlsZSB0aXRsZTogUHJvZmlsZSBjYWxsIGluIGluY2x1
ZGVkIGZpbGUKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFByb2ZpbGUg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNDI6MjIpCi0gICBlbmRUZXN0IHBy
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRl
ZC1maWxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmMGY4ZjIuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1
ZGVkLWZpbGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMu
c2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0
YXJ0VGVzdCgpCi17Ci0gICAgc3RhcnRQcm9maWxlKCJQcm9maWxlIGNhbGwgaW4gaW5jbHVkZWQg
ZmlsZSIpOwotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBjYWxscyB0aGUgcHJvZmlsZXIgZnJvbSB0
aGUgaW5jbHVkZWQgZmlsZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQKLXRoZSBwcm9maWxlLiAgSWYgdGhlcmUgaXMgYSBwcm9maWxlIHRoYXQgaXMgc3VmZmlj
aWVudCBmb3IgdGhpcyB0ZXN0LgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci08
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMThkYWNkYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2UgY3JlYXRlcyBhIHByb2ZpbGUgd2l0
aG91dCBhIHRpdGxlLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0
aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJv
ZmlsZS4gSWYgdGhlcmUgaXMgYSBwcm9maWxlIHRoYXQgaXMgc3VmZmljaWVudCBmb3IgdGhpcyB0
ZXN0LgotCi1Qcm9maWxlIHRpdGxlOiAKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICBzdGFydFRlc3QgcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAg
ICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0
bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhNTI1YmMuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0g
ICAgY29uc29sZS5wcm9maWxlKCk7Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIGNyZWF0ZXMgYSBw
cm9maWxlIHdpdGhvdXQgYSB0aXRsZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSWYgdGhlcmUgaXMgYSBwcm9maWxlIHRoYXQgaXMg
c3VmZmljaWVudCBmb3IgdGhpcyB0ZXN0LgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3Jp
cHQ+Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3At
cHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1w
cm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDE1NmEyYjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxp
bmctb3V0c2lkZS10aGUtbmVzdGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
MCArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJvbSB3
aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24gYnV0IHN0b3BzIHRoZSBwcm9maWxlciBmcm9tIGEgZGlm
ZmVyZW50IGxldmVsIG9mIG5lc3RpbmcuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBs
b2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29r
IGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRv
IGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKS4KLQotUHJvZmlsZSB0aXRs
ZTogUHJvZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24gQnV0IFN0b3AgUHJvZmlsaW5nIE91
dHNpZGUgVGhlIE5lc3RpbmcKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBmdW5j
dGlvbldpY2hTdGFydHNUaGVQcm9maWxlciBwcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlv
bi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy5odG1sIChsaW5lIDE2OjM5
KQotICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQot
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20t
YS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3Rpbmcu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQt
bG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDhiNWY3Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1z
dG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGZ1bmN0aW9uV2ljaFN0
YXJ0c1RoZVByb2ZpbGVyKCk7Ci0gICAgZW5kVGVzdCgpOwotfQotCi1mdW5jdGlvbiBmdW5jdGlv
bldpY2hTdGFydHNUaGVQcm9maWxlcigpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJQcm9maWxp
bmcgRnJvbSBBIE5lc3RlZCBMb2NhdGlvbiBCdXQgU3RvcCBQcm9maWxpbmcgT3V0c2lkZSBUaGUg
TmVzdGluZyIpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgaSsrKQotICAg
ICAgICB2YXIgYiA9IGkgKyAyOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25s
b2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxp
bmcgZnJvbSB3aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24gYnV0IHN0b3BzIHRoZSBwcm9maWxlcgot
ZnJvbSBhIGRpZmZlcmVudCBsZXZlbCBvZiBuZXN0aW5nLgotPGJyPgotPGJyPgotVG8gcnVuIHRo
aXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdl
Ykluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVy
ZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmls
ZXIoKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxv
Y2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5n
LWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA0ODQyODNiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBzdGFydHMgcHJv
ZmlsaW5nIGZyb20gd2l0aGluIGEgbmVzdGVkIGxvY2F0aW9uLiAKLQotVG8gcnVuIHRoaXMgdGVz
dCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3Bl
Y3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxk
IGJlIGEgY2FsbCB0byBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCkuCi0K
LVByb2ZpbGUgdGl0bGU6IFByb2ZpbGluZyBGcm9tIEEgTmVzdGVkIExvY2F0aW9uCi1UaHJlYWRf
MSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQ
cm9maWxlciBwcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi5odG1sIChsaW5lIDE1OjQ3
KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3
KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZy
b20tYS1uZXN0ZWQtbG9jYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJv
ZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjgxZmQwMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGZ1bmN0aW9uV2ljaFN0
YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKTsKLX0KLQotZnVuY3Rpb24gZnVuY3Rpb25XaWNoU3Rh
cnRzQW5kU3RvcHNUaGVQcm9maWxlcigpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJQcm9maWxp
bmcgRnJvbSBBIE5lc3RlZCBMb2NhdGlvbiIpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDAwMDsgaSsrKQotICAgICAgICB2YXIgYiA9IGkgKyAyOwotCi0gICAgZW5kVGVzdCgpOwot
fQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1U
aGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJvbSB3aXRoaW4gYSBuZXN0
ZWQgbG9jYXRpb24uCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2Fk
IGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0
Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8g
ZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpLgotPGRpdiBpZD0ib3V0cHV0
Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvcmVzb3VyY2VzL290aGVyLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3Jlc291cmNlcy9vdGhlci1mcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlODM2ZmJmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
cmVzb3VyY2VzL290aGVyLWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWZ1bmN0aW9uIGZ1bmN0aW9uSW5PdGhlckZyYW1l
KCkgewotICAgICAgICByZXR1cm4gcGFyZW50LmZ1bmN0aW9uSW5QYXJlbnRGcmFtZSgpOwotfQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotVGhpcyBmaWxlIGNvbnRhaW5zIHNvbWUgSmF2
YVNjcmlwdC4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci13aW5k
b3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL290aGVyLXdpbmRv
dy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDg0MWE4Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL290aGVyLXdpbmRvdy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSJwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
dmFyIGludGVyZXN0aW5nS25vd2xlZGdlOwotZnVuY3Rpb24gb3RoZXJUZXN0U3RhcnQoKQotewot
ICAgIGludGVyZXN0aW5nS25vd2xlZGdlID0gaXNFcXVhbFRvRml2ZSgzKTsKLSAgICBvcGVuZXIu
d2luZG93RmluaXNoZWRMb2FkaW5nKCk7Ci19Ci0KLWZ1bmN0aW9uIGZ1bmN0aW9uSW5PdGhlcldp
bmRvdygpIHsKLSAgICAgICAgcmV0dXJuIGludGVyZXN0aW5nS25vd2xlZGdlOwotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ib3RoZXJUZXN0U3RhcnQoKSI+Ci1UaGlzIGZp
bGUgZXhlY3V0ZXMgc29tZSBKYXZhU2NyaXB0LgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL3Byb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
NjM1NDJmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2Vz
L3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAs
MCBAQAotZnVuY3Rpb24gZW5kVGVzdCgpIHsKLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKLSAg
ICBwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCk7Ci0KLSAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfQotCi1mdW5jdGlvbiBp
bnNlcnRHaXZlblRleHQodGV4dCkgewotICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJwIik7Ci0gICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKHRleHQpKTsKLSAgICBwYXJhZ3JhcGguc3R5bGUuZGlzcGxheSA9ICJub25lIjsg
Ly8gSGlkZGVuIHNpbmNlIHRoaXMgaXNuJ3QgaW1wb3J0YW50IGluIHRoZSB0ZXN0IHJlc3VsdHMu
Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBwZW5kQ2hpbGQocGFy
YWdyYXBoKTsKLX0KLQotZnVuY3Rpb24gaW5zZXJ0TmV3VGV4dCgpIHsKLSAgICB2YXIgcGFyYWdy
YXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwotICAgIHBhcmFncmFwaC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGhpcyBpcyBpbnNlcnRlZCBUZXh0IikpOwot
ICAgIHBhcmFncmFwaC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyAvLyBIaWRkZW4gc2luY2UgdGhp
cyBpc24ndCBpbXBvcnRhbnQgaW4gdGhlIHRlc3QgcmVzdWx0cy4KLQotICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOwotfQotCi1mdW5j
dGlvbiBhcnJheU9wZXJhdG9yRnVuY3Rpb24oYXJyYXlFbGVtZW50KSB7Ci0gICAgcmV0dXJuIGFy
cmF5RWxlbWVudCArIDU7Ci19Ci0KLXZhciBhbm9ueW1vdXNGdW5jdGlvbiA9IGZ1bmN0aW9uICgp
IHsgaW5zZXJ0TmV3VGV4dCgpOyB9OwotdmFyIGFub3RoZXJBbm9ueW1vdXNGdW5jdGlvbiA9IGZ1
bmN0aW9uICgpIHsgaW5zZXJ0R2l2ZW5UZXh0KCJBbm90aGVyIGFub255bW91cyBmdW5jdGlvbiB3
YXMgY2FsbGVkLiIpIH07Ci0KLWZ1bmN0aW9uIGludGVybWVkaWFyeUZ1bmN0aW9uKCkKLXsKLSAg
ICBhbm9ueW1vdXNGdW5jdGlvbigpOwotfQotCi1mdW5jdGlvbiBpc0VxdWFsVG9GaXZlKGlucHV0
KQotewotICAgIHJldHVybiBpbnB1dCA9PT0gNTsKLX0KLQotZnVuY3Rpb24gc3RhcnRQcm9maWxl
KHRpdGxlKQotewotICAgIGNvbnNvbGUucHJvZmlsZSh0aXRsZSk7Ci19Ci0KLWZ1bmN0aW9uIHBy
aW50SGVhdnlQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpCi17Ci0gICAgdmFyIHByZUVsZW1lbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwcmUiKTsKLSAgICBwcmVFbGVtZW50LmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKLQotICAgIHZhciBwcm9maWxlcyA9
IGludGVybmFscy5jb25zb2xlUHJvZmlsZXM7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9m
aWxlcy5sZW5ndGg7ICsraSkgewotICAgICAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCJQcm9maWxlIHRpdGxlOiAiICsgcHJvZmlsZXNbaV0udGl0bGUg
KyAiXG4iKSk7Ci0gICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZShwcmVFbGVtZW50
LCBwcm9maWxlc1tpXS5oZWF2eVByb2ZpbGUucm9vdE5vZGUsIDApOwotICAgICAgICBwcmVFbGVt
ZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKLSAgICB9Ci0K
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBwZW5kQ2hpbGQocHJlRWxl
bWVudCk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUoKQotewot
ICAgIHZhciBwcmVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7Ci0gICAg
cHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXG4iKSk7Ci0K
LSAgICB2YXIgcHJvZmlsZXMgPSBpbnRlcm5hbHMuY29uc29sZVByb2ZpbGVzOwotICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgcHJvZmlsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgcHJlRWxlbWVu
dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUHJvZmlsZSB0aXRsZTogIiAr
IHByb2ZpbGVzW2ldLnRpdGxlICsgIlxuIikpOwotICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0
aG91dFRpbWUocHJlRWxlbWVudCwgcHJvZmlsZXNbaV0ucm9vdE5vZGUsIDApOwotICAgICAgICBw
cmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKLSAg
ICB9Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBwZW5kQ2hpbGQo
cHJlRWxlbWVudCk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZShw
cmVFbGVtZW50LCBub2RlLCBpbmRlbnRMZXZlbCkKLXsKLSAgICB2YXIgc3BhY2UgPSAiIjsKLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGluZGVudExldmVsOyArK2kpCi0gICAgICAgIHNwYWNlICs9
ICIgICAiCi0KLSAgICArK2luZGVudExldmVsOwotCi0gICAgdmFyIHN0cmlwcGVkVVJMID0gbm9k
ZS51cmwucmVwbGFjZSgvLipcLy8sICIiKTsKLSAgICBpZiAoIXN0cmlwcGVkVVJMKQotICAgICAg
ICBzdHJpcHBlZFVSTCA9ICIobm8gZmlsZSkiOwotCi0gICAgdmFyIGxpbmUgPSBzcGFjZSArIG5v
ZGUuZnVuY3Rpb25OYW1lICsgIiAiICsgc3RyaXBwZWRVUkwgKyAiIChsaW5lICIgKyBub2RlLmxp
bmVOdW1iZXIgKyAiOiIgKyBub2RlLmNvbHVtbk51bWJlciArICIpXG4iOwotICAgIHByZUVsZW1l
bnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobGluZSkpOwotCi0gICAgdmFy
IGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbigpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hp
bGRyZW4ubGVuZ3RoOyArK2kpCi0gICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZShw
cmVFbGVtZW50LCBjaGlsZHJlbltpXSwgaW5kZW50TGV2ZWwpOwotfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzRjZWUzZC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgaGFzIGFu
IG9ubG9hZCBldmVudC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4g
dGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHBy
b2ZpbGUuIFRoZXJlIHNob3VsZCBiZSBvbmx5IG9uZSBvbmxvYWQgbm9kZS4KLQotUHJvZmlsZSB0
aXRsZTogQSBzaW1wbGUgcHJvZmlsZSB0ZXN0IHdoZXJlIGFuIGV2ZW50IGhhcHBlbnMuCi1UaHJl
YWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHNpbXBsZS1ldmVudC1jYWxs
Lmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9zaW1wbGUtZXZlbnQtY2FsbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9z
aW1wbGUtZXZlbnQtY2FsbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNGJk
YjUwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLWV2ZW50
LWNhbGwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0
TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0
VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJBIHNpbXBsZSBwcm9maWxlIHRlc3Qgd2hl
cmUgYW4gZXZlbnQgaGFwcGVucy4iKTsKLSAgICAvLyBGSVhNRTogdGhpcyBpcyBub3QgdGVzdGlu
ZyB3aGF0IGl0IHNheXMgaXQgaXMuCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlw
dCBoYXMgYW4gb25sb2FkIGV2ZW50LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBUaGVyZSBzaG91bGQgYmUgb25seSBvbmUgb25sb2Fk
IG5vZGUuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNo
YW5nZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiYzM4YTUu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwt
Y2hhbmdlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMg
cGFnZSdzIEphdmFTY3JpcHQgc3RhcnRzIGFuZCBzdG9wcyBwcm9maWxpbmcgZnJvbSB0aGUgc2Ft
ZSBzY29wZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJy
b3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUu
IFRoZXJlIHNob3VsZCBiZSBubyBmdW5jdGlvbiBjYWxscyBiZXR3ZWVuIGNvbnNvbGUucHJvZmls
ZSgpIGFuZCBjb25zb2xlLnByb2ZpbGVFbmQoKS4KLQotUHJvZmlsZSB0aXRsZTogQSBzaW1wbGUg
cHJvZmlsZSB0ZXN0IHdoZXJlIG5vIHNjb3BlIGNoYWduZXMKLVRocmVhZF8xIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyIHNpbXBs
ZS1uby1sZXZlbC1jaGFuZ2UuaHRtbCAobGluZSAxNTo0NykKLSAgICAgIGdldEVsZW1lbnRCeUlk
IChubyBmaWxlKSAobGluZSAwOjApCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYTM2MmM4My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5u
ZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykK
LSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7
Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3Rv
cHNUaGVQcm9maWxlcigpOwotfQotCi1mdW5jdGlvbiBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9w
c1RoZVByb2ZpbGVyKCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkEgc2ltcGxlIHByb2ZpbGUg
dGVzdCB3aGVyZSBubyBzY29wZSBjaGFnbmVzIik7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwMDAwOyBpKyspCi0gICAgICAgIHZhciBiID0gaSArIDI7Ci0KLSAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7Ci0KLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKLSAg
ICBwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0
YXJ0cyBhbmQgc3RvcHMgcHJvZmlsaW5nIGZyb20gdGhlIHNhbWUgc2NvcGUuCi08YnI+Ci08YnI+
Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4g
bG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIFRoZXJlIHNo
b3VsZCBiZSBubyBmdW5jdGlvbiBjYWxscyBiZXR3ZWVuIGNvbnNvbGUucHJvZmlsZSgpIGFuZAot
Y29uc29sZS5wcm9maWxlRW5kKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQt
c3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjgxZTRiZi4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11
bHRpcGxlLXRpbWVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAK
LVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxlKCkgYW5kIGNvbnNv
bGUucHJvZmlsZUVuZCgpIHRocmVlIHRpbWVzLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGVyIHRoZXJlIHNob3VsZCBiZSB0aHJl
ZSBwcm9maWxlcy4KLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBmaXJz
dCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBzdGFy
dC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1sIChsaW5lIDEwOjE5KQotICAg
ICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
Mjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KLVByb2ZpbGUgdGl0bGU6
IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgZmlyc3QgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUt
dGltZXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4
dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAg
IGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRl
eHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMToxNykKLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBzZWNvbmQg
dGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qgc3RhcnQt
YW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAg
IGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5
OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
Z2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCi1Qcm9maWxlIHRpdGxlOiBT
dGFydCB0aGUgcHJvZmlsZXIgdGhlIGZpcnN0IHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRp
bWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBj
cmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0
Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDE6MTcpCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25kIHRp
bWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0LWFu
ZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBh
bm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOToz
NCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdl
dEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0
IHRoZSBwcm9maWxlciB0aGUgdGhpcmQgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAw
OjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMu
aHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0
ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2Rl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTox
NykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1z
dG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2OWE3NjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotIDxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17
Ci0gICAgY29uc29sZS5wcm9maWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgdGhlIGZpcnN0IHRpbWUu
Iik7Ci0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBlbmRUZXN0KCk7Ci0gICAgY29uc29s
ZS5wcm9maWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgdGhlIHNlY29uZCB0aW1lLiIpOwotICAgIGFu
b255bW91c0Z1bmN0aW9uKCk7Ci0gICAgZW5kVGVzdCgpOwotICAgIGNvbnNvbGUucHJvZmlsZSgi
U3RhcnQgdGhlIHByb2ZpbGVyIHRoZSB0aGlyZCB0aW1lLiIpOwotICAgIGFub255bW91c0Z1bmN0
aW9uKCk7Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBjb25zb2xl
LnByb2ZpbGUoKSBhbmQgY29uc29sZS5wcm9maWxlRW5kKCkgdGhyZWUgdGltZXMuCi08YnI+Ci08
YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRo
ZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRo
ZSBwcm9maWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJvZmlsZXMuCi08ZGl2IGlkPSJvdXRw
dXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1w
cm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3YThmNWE2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSdzIEph
dmFTY3JpcHQgc3RhcnRzIHByb2ZpbGluZyBmcm9tIHdpdGhpbiBhIG5lc3RlZCBsb2NhdGlvbi4g
Ci0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBw
cm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25XaWNoU3RvcHNUaGVQcm9m
aWxlcigpLgotCi1Qcm9maWxlIHRpdGxlOiBQcm9maWxpbmcgRnJvbSBBIE5lc3RlZCBMb2NhdGlv
bgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBzdGFydC1hbmQt
c3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCAobGluZSAxMDoxOSkKLSAg
ICAgIGZ1bmN0aW9uV2ljaFN0b3BzVGhlUHJvZmlsZXIgc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5n
LWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwgKGxpbmUgMTc6MzgpCi0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhl
LXNhbWUtZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5k
LXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDNlYzA3MzEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17
Ci0gICAgY29uc29sZS5wcm9maWxlKCJQcm9maWxpbmcgRnJvbSBBIE5lc3RlZCBMb2NhdGlvbiIp
OwotCi0gICAgZnVuY3Rpb25XaWNoU3RvcHNUaGVQcm9maWxlcigpOwotfQotCi1mdW5jdGlvbiBm
dW5jdGlvbldpY2hTdG9wc1RoZVByb2ZpbGVyKCkKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDAwMDAwOyBpKyspCi0gICAgICAgIHZhciBiID0gaSArIDI7Ci0KLSAgICBjb25zb2xlLnBy
b2ZpbGVFbmQoIlByb2ZpbGluZyBGcm9tIEEgTmVzdGVkIExvY2F0aW9uIik7Ci0gICAgcHJpbnRQ
cm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBw
cm9maWxpbmcgZnJvbSB3aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24uCi08YnI+Ci08YnI+Ci1UbyBy
dW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0
aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxl
IHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25XaWNoU3RvcHNUaGVQcm9maWxlcigp
LgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmct
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1z
dG9wLXByb2ZpbGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDRkYmMxMmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1i
dXQtZG9udC1zdG9wLXByb2ZpbGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1
ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxlKCkg
YnV0IG5vdCBjb25zb2xlLnByb2ZpbGVFbmQoKS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQgdGhlIHByb2ZpbGUuIFlvdSBzaG91bGQgc2VlIHRoZSBwcm9maWxlIHJ1bm5pbmcg
KHdoZW4gdGhhdCBmZWF0dXJlIGlzIGltcGxlbWVudGVkIDYwNjA1NTYpLiBUaGVuIG5hdmlnYXRl
IHRvIGFub3RoZXIgcGFnZSBhbmQgY2hlY2sgdGhlIFdlYkluc3BlY3RvciBhZ2Fpbi4gU2FmYXJp
IHNob3VsZCBub3QgaGF2ZSBjcmFzaGVkIGFuZCB0aGUgSW5zcGVjdG9yIHNob3VsZCBub3Qgc2hv
dyBhIHByb2ZpbGUgKHVubGVzcyB3ZSBhbGxvdyBjcm9zcy1sb2FkIHByb2ZpbGluZyBpbiB0aGUg
ZnV0dXJlIDU5NTE0NzggJiA1OTU0OTEyKS4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxMzZkNzMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotIDxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0g
ICAgY29uc29sZS5wcm9maWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgYnV0IGRvbid0IHN0b3AgaXQu
Iik7Ci0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBwcmludFByb2ZpbGVzRGF0YVdpdGhv
dXRUaW1lKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRl
c3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGNvbnNvbGUucHJvZmlsZSgpIGJ1
dCBub3QgY29uc29sZS5wcm9maWxlRW5kKCkuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIFlvdSBzaG91bGQgc2VlIHRoZSBwcm9maWxl
IHJ1bm5pbmcgKHdoZW4gdGhhdCBmZWF0dXJlIGlzIGltcGxlbWVudGVkIDYwNjA1NTYpLgotVGhl
biBuYXZpZ2F0ZSB0byBhbm90aGVyIHBhZ2UgYW5kIGNoZWNrIHRoZSBXZWJJbnNwZWN0b3IgYWdh
aW4uIFNhZmFyaSBzaG91bGQgbm90Ci1oYXZlIGNyYXNoZWQgYW5kIHRoZSBJbnNwZWN0b3Igc2hv
dWxkIG5vdCBzaG93IGEgcHJvZmlsZSAodW5sZXNzIHdlIGFsbG93IGNyb3NzLWxvYWQKLXByb2Zp
bGluZyBpbiB0aGUgZnV0dXJlIDU5NTE0NzggJmFtcDsgNTk1NDkxMikuCi08ZGl2IGlkPSJvdXRw
dXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91
dC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzMjVkYTQuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRl
ci1zZXRUaW1lb3V0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAK
LVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgc3RvcHMgcHJvZmlsaW5nIGZyb20gYSB0aW1lb3V0LiAK
LQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHBy
b2ZpbGUgZW5kUHJvZmlsZSgpIHNob3VsZCBub3QgYmUgYSBjaGlsZCBvZiAocHJvZ3JhbSkuCi0K
LVByb2ZpbGUgdGl0bGU6IFN0b3AgcHJvZmlsaW5nIGZyb20gYSB0aW1lb3V0Ci1UaHJlYWRfMSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgb25sb2FkIHN0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRp
bWVvdXQuaHRtbCAobGluZSAyMTo0NCkKLSAgICAgIHN0YXJ0VGVzdCBzdG9wLXByb2ZpbGluZy1h
ZnRlci1zZXRUaW1lb3V0Lmh0bWwgKGxpbmUgMTI6MTkpCi0gICAgICAgICBzZXRUaW1lb3V0IChu
byBmaWxlKSAobGluZSAwOjApCi0gICAocHJvZ3JhbSkgc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0
VGltZW91dC5odG1sIChsaW5lIDE6MSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWZkNThlLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotfQotaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmls
ZSgiU3RvcCBwcm9maWxpbmcgZnJvbSBhIHRpbWVvdXQiKTsgICAgCi0gICAgc2V0VGltZW91dCgi
ZW5kVGVzdCgpIiwgMjApOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2Fk
PSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0b3BzIHByb2ZpbGluZyBm
cm9tIGEgdGltZW91dC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxv
YWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sg
YXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgZW5kUHJvZmlsZSgpIHNob3VsZCBub3Qg
YmUgYSBjaGlsZCBvZiAocHJvZ3JhbSkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRo
ZW4tZnVuY3Rpb24tY2FsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3N0b3AtdGhlbi1mdW5jdGlvbi1jYWxsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMWMwNTA0NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3N0b3AtdGhlbi1mdW5jdGlvbi1jYWxsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSBoYXMgYW4gYW5vbnltb3VzIEphdmFTY3JpcHQgZnVu
Y3Rpb24gdGhhdCBjYWxscyBidWlsdC1pbiBmdW5jdGlvbnMuIAotCi1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBUaGVyZSBzaG91bGQgYmUgdHdvIG5vZGVzIGlu
IHRoZSBwcm9maWxlLCBhICIocHJvZ3JhbSkiIG5vZGUgd2l0aCBvbmUgY2hpbGQgdGhhdCBpcyAi
dGVzdCIuCi0KLVByb2ZpbGUgdGl0bGU6IFRlc3QKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAocHJvZ3JhbSkgKG5vIGZpbGUpIChsaW5lIDE6MTYpCi0gICAgICB0ZXN0IHN0b3At
dGhlbi1mdW5jdGlvbi1jYWxsLmh0bWwgKGxpbmUgMTE6MTQpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTZhMTlhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDQzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1p
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAo
d2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLXZhciBqID0gMDsKLWZ1bmN0aW9uIHRlc3QobGVuKSB7Ci0g
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkKLSAgICAgICAgKytqOwotfQotCi1mdW5j
dGlvbiB0ZXN0MihsZW4pIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKQotICAg
ICAgICAtLWo7Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgdmFyIHNjcmlwdCA9
ICJjb25zb2xlLnByb2ZpbGUoJ1Rlc3QnKTtcbiI7Ci0gICAgc2NyaXB0ICs9ICJ0ZXN0KDEwMDAp
O1xuIjsKLSAgICBzY3JpcHQgKz0gImNvbnNvbGUucHJvZmlsZUVuZCgnVGVzdCcpO1xuIjsKLSAg
ICBzY3JpcHQgKz0gInRlc3QyKDEwMDApO1xuIjsKLQotICAgIGV2YWwoc2NyaXB0KTsKLQotICAg
IHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgYW4gYW5vbnltb3Vz
IEphdmFTY3JpcHQgZnVuY3Rpb24gdGhhdCBjYWxscyBidWlsdC1pbiBmdW5jdGlvbnMuCi08YnI+
Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2Vy
IHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gVGhl
cmUgc2hvdWxkIGJlIHR3byBub2RlcyBpbiB0aGUgcHJvZmlsZSwgYSAiKHByb2dyYW0pIiBub2Rl
IHdpdGggb25lIGNoaWxkIHRoYXQgaXMgInRlc3QiLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
dGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDdjOWVhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFRlc3QgZXhjZXB0
aW9uLgotVGhpcyBwYWdlIHRocm93cyBhbiBleGNlcHRpb24gZnJvbSB3aXRoaW4gZXZhbCgpLiAK
LQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gVGhlIHByb2Zp
bGVyIHNob3VsZCBub3QgY3Jhc2ggYW5kIHN0aWxsIHNob3cgdGhlIHN0YWNrIHVuZGVyIGluc2Vy
dG5ld1RleHQoKS4KLQotUHJvZmlsZSB0aXRsZTogVGhyb3cgd2l0aGluIGFuIGV2YWwuCi1UaHJl
YWRfMSAobm8gZmlsZSkgKGxpbmUgMCkKLSAgIChwcm9ncmFtKSB0aHJvdy1leGNlcHRpb24tZnJv
bS1ldmFsLmh0bWwgKGxpbmUgMTkpCi0gICAgICAocHJvZ3JhbSkgdGhyb3ctZXhjZXB0aW9uLWZy
b20tZXZhbC5odG1sIChsaW5lIDEwKQotICAgICAgICAgKHByb2dyYW0pIHRocm93LWV4Y2VwdGlv
bi1mcm9tLWV2YWwuaHRtbCAobGluZSA0KQotICAgICAgICAgKHByb2dyYW0pIHRocm93LWV4Y2Vw
dGlvbi1mcm9tLWV2YWwuaHRtbCAobGluZSAxOSkKLSAgICAgICAgICAgIGV2YWwgKG5vIGZpbGUp
IChsaW5lIDApCi0gICAgICAgICAgICAgICAocHJvZ3JhbSkgKG5vIGZpbGUpIChsaW5lIDEpCi0g
ICBvbmxvYWQgdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sIChsaW5lIDI0KQotICAgICAg
c3RhcnRUZXN0IHRocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbCAobGluZSAxMykKLSAgICAg
ICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTcp
Ci0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwKQotICAgICAgICAg
ICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDApCi0gICAgICAgICAgICBhcHBlbmRD
aGlsZCAobm8gZmlsZSkgKGxpbmUgMCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBm
aWxlKSAobGluZSAwKQotICAgICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAxKQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
dGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2FibGVkIGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZWFjOWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQK
KysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldExl
Z2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1jb25zb2xlLnByb2ZpbGUo
IlRocm93IHdpdGhpbiBhbiBldmFsLiIpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAg
IGluc2VydE5ld1RleHQoKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlw
dD4KLWV2YWwoInRocm93KCdUZXN0IGV4Y2VwdGlvbi4nKTsiKTsKLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSB0aHJvd3MgYW4gZXhj
ZXB0aW9uIGZyb20gd2l0aGluIGV2YWwoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3Qg
bWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0
b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgVGhlIHByb2ZpbGVyIHNob3VsZCBub3QgY3Jh
c2ggYW5kIHN0aWxsIHNob3cgdGhlIHN0YWNrIHVuZGVyCi1pbnNlcnRuZXdUZXh0KCkuCi08ZGl2
IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxZTlkZDEuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRoaXMgcGFnZSBoYXMgdHdv
IHNjcmlwdCB0YWdzIHdpdGggc29tZSBzaW1wbGUgSmF2YVNjcmlwdC4gCi0KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNo
b3VsZCBiZSB0d28gKHByb2dyYW0pIGVsZW1lbnRzLgotCi1Qcm9maWxlIHRpdGxlOiBUd28gRXhl
Y3V0aW9uIENvbnRleHRzCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRU
ZXN0IHR3by1leGVjdXRpb24tY29udGV4dHMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGludGVy
bWVkaWFyeUZ1bmN0aW9uIHR3by1leGVjdXRpb24tY29udGV4dHMuaHRtbCAobGluZSAxNzozMCkK
LSAgICAgICAgIHRlc3RFbmQgdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sIChsaW5lIDMzOjE3
KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlv
bi1jb250ZXh0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9u
LWNvbnRleHRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4NTE2NTUuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRl
eHRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExl
Z2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRl
c3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVHdvIEV4ZWN1dGlvbiBDb250ZXh0cyIpOwot
Ci0gICAgaW50ZXJtZWRpYXJ5RnVuY3Rpb24oKTsKLX0KLQotZnVuY3Rpb24gaW50ZXJtZWRpYXJ5
RnVuY3Rpb24oKQotewotICAgIHRlc3RFbmQoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08
Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgdHdvIHNjcmlwdCB0YWdz
IHdpdGggc29tZSBzaW1wbGUgSmF2YVNjcmlwdC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRl
c3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNw
ZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hv
dWxkIGJlIHR3byAocHJvZ3JhbSkgZWxlbWVudHMuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pgot
PC9ib2R5PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3RFbmQoKSB7Ci0gICAgY29uc29sZS5wcm9m
aWxlRW5kKCk7Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwotfQotPC9zY3Jp
cHQ+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3VzZXIt
ZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVp
bHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDZjZTU1MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3VzZXIt
ZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBKYXZhU2NyaXB0IHRo
YXQgY2FsbHMgYnVpbHQtaW4gZnVuY3Rpb25zLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGNhbGxz
IHRvIGNyZWF0ZUVsZW1lbnQoKSBjcmVhdGVUZXh0Tm9kZSgpIGFwcGVuZENoaWxkKCkgYW5kIHRl
c3RFbmQoKSwgYW1vbmcgb3RoZXJzLgotVGhpcyBpcyBpbnNlcnRlZCBUZXh0Ci0KLQotUHJvZmls
ZSB0aXRsZTogVXNlciBkZWZpbmVkIGZ1bmN0aW9uIGNhbGxlcyBidWlsdC1pbiBmdW5jdGlvbnMK
LVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgdXNlci1kZWZpbmVk
LWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIChsaW5lIDEwOjE5KQotICAg
ICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgY3JlYXRlVGV4dE5v
ZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0aW9u
LWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3NTI3YjcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4t
ZnVuY3Rpb25zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxz
LnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVXNlciBkZWZpbmVkIGZ1bmN0aW9u
IGNhbGxlcyBidWlsdC1pbiBmdW5jdGlvbnMiKTsKLQotICAgIHZhciBuZXdQID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgicCIpOwotICAgIHZhciB0ZXh0Tm9kZSA9ZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoIlRoaXMgaXMgaW5zZXJ0ZWQgVGV4dCIpOwotICAgIG5ld1AuYXBwZW5kQ2hpbGQodGV4
dE5vZGUpOwotICAgIHZhciBvdXRwdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0
Iik7Ci0gICAgb3V0cHV0LmFwcGVuZENoaWxkKG5ld1ApOwotICAgIAotICAgIGVuZFRlc3QoKTsK
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRo
aXMgcGFnZSBoYXMgSmF2YVNjcmlwdCB0aGF0IGNhbGxzIGJ1aWx0LWluIGZ1bmN0aW9ucy4KLTxi
cj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dz
ZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAg
SW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGNhbGxzIHRvIGNyZWF0ZUVsZW1lbnQoKSBj
cmVhdGVUZXh0Tm9kZSgpCi1hcHBlbmRDaGlsZCgpIGFuZCB0ZXN0RW5kKCksIGFtb25nIG90aGVy
cy4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjZTg4ZGMuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci93aW5kb3ctZG90LWV2YWwtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhIGNhbGwgdG8gd2luZG93
LmV2YWwoKS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJy
b3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUu
IEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZXZhbCgpLgotCi1Qcm9m
aWxlIHRpdGxlOiBDYWxsIHdpbmRvdy5ldmFsKCkKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAw
OjApCi0gICBzdGFydFRlc3Qgd2luZG93LWRvdC1ldmFsLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAg
ICBldmFsRnVuY3Rpb24gKG5vIGZpbGUpIChsaW5lIDE6MjIpCi0gICAgICAgICBpbnNlcnROZXdU
ZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAg
ICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRl
VGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAo
bGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2lu
ZG93LWRvdC1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3Qt
ZXZhbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2EyYjNjLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2luZG93LWRvdC1ldmFsLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAg
IGNvbnNvbGUucHJvZmlsZSgiQ2FsbCB3aW5kb3cuZXZhbCgpIik7Ci0KLSAgICBldmFsRnVuY3Rp
b24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLXdpbmRvdy5l
dmFsKCJmdW5jdGlvbiBldmFsRnVuY3Rpb24oKSB7IGluc2VydE5ld1RleHQoKTsgfSIpOwotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdl
IGhhcyBhIGNhbGwgdG8gd2luZG93LmV2YWwoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRl
c3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNw
ZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hv
dWxkIGJlIGEgY2FsbCB0byBldmFsKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA0M2YzYzk2Li40ZWQyYWFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTAyMSw5ICsxMDIxLDYgQEAgd2Via2l0Lm9yZy9iLzE0MjE1NiBjc3MzL3No
YXBlcy9zcGVjLWV4YW1wbGVzL3NoYXBlLW91dHNpZGUtMDExLmh0bWwgWyBGYWlsdXJlIFAKIHdl
YmtpdC5vcmcvYi8xNDIxNTYgY3NzMy9zaGFwZXMvc3BlYy1leGFtcGxlcy9zaGFwZS1vdXRzaWRl
LTAxMi5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xNDIxNTYgY3NzMy9zaGFw
ZXMvc3BlYy1leGFtcGxlcy9zaGFwZS1vdXRzaWRlLTAxOS5odG1sIFsgRmFpbHVyZSBQYXNzIF0K
IAotd2Via2l0Lm9yZy9iLzE0MjE1NyBmYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1sIFsgRmFp
bHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xNDIxNTcgZmFzdC9wcm9maWxlci9zdG9wLXByb2Zp
bGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotCiB3ZWJraXQub3Jn
L2IvOTU1NTEgZmFzdC9mb3Jtcy9kYXRhbGlzdC91cGRhdGUtcmFuZ2Utd2l0aC1kYXRhbGlzdC5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KIAogd2Via2l0Lm9yZy9iLzEyOTgyMCBzdmcv
Y2xpcC1wYXRoL21hc2stbmVzdGVkLWNsaXAtcGF0aC0wMDYuc3ZnIFsgUGFzcyBJbWFnZU9ubHlG
YWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
N2JmYWVjMC4uZWU3MDU4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTEyMDEsOSArMTIwMSw2IEBAIHdlYmtpdC5vcmcvYi8xMzYwNjYgYW5pbWF0aW9u
cy9taXNzaW5nLWtleWZyYW1lLXByb3BlcnRpZXMuaHRtbCBbIENyYXNoIFBhc3MgXQogd2Via2l0
Lm9yZy9iLzEzNjA2NiBhbmltYXRpb25zL21pc3NpbmctdmFsdWVzLWZpcnN0LWtleWZyYW1lLmh0
bWwgWyBDcmFzaCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMzYwNjYgYW5pbWF0aW9ucy9zdGF0ZS1h
dC1lbmQtZXZlbnQuaHRtbCBbIENyYXNoIFBhc3MgXQogCi13ZWJraXQub3JnL2IvMTM2MDY3IGZh
c3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotd2Via2l0Lm9yZy9i
LzEzNjA2NyBmYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRt
bCBbIEZhaWx1cmUgUGFzcyBdCi0KIHdlYmtpdC5vcmcvYi8xMzYwNzAgZmFzdC9mb3Jtcy9sYWJl
bC9sYWJlbC1iZWNvbWVzLXZpc2libGUtd2hpbGUtY2xpY2tpbmctb24tbGFiZWwuaHRtbCBbIEZh
aWx1cmUgUGFzcyBdCiAKIHdlYmtpdC5vcmcvYi8xMzY1ODAgbWVkaWEvY29udGV4dC1tZW51LWFj
dGlvbnMuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzgwMWVhOC4uYzNiNzVlOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTg5Miw3ICsxODkyLDYgQEAgZmFzdC9wYXJzZXIvbmVzdGVkLWZyYWdtZW50
LXBhcnNlci1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L3ByZWxvYWRlci9kb2N1bWVudC13
cml0ZS0yLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvcHJlbG9hZGVyL2RvY3VtZW50LXdyaXRlLmh0
bWwgWyBGYWlsdXJlIF0KIGZhc3QvcHJlbG9hZGVyL2ltYWdlLXNyY3NldC5odG1sIFsgRmFpbHVy
ZSBdCi1mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1z
dG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3Qv
cmVnaW9ucy9hYnNvbHV0ZS1pbi1yZWxhdGl2ZS1vdmVyZmxvdy5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCiBmYXN0L3JlZ2lvbnMvYWJzb2x1dGUtcG9zLWVsZW0taW4tcmVnaW9uLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIGZhc3QvcmVnaW9ucy9hbmltYXRpb24tZWxlbWVudC1pbi1yZWdp
b24tZmxvd2VkLXRvLW90aGVyLXRocmVhZC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYg
LS1naXQgYS9NYW51YWxUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXItdGVzdC1jYWxsLmh0bWwgYi9N
YW51YWxUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXItdGVzdC1jYWxsLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDU3MmEyZTkuLjAwMDAwMDAKLS0tIGEvTWFudWFsVGVzdHMvaW5z
cGVjdG9yL3Byb2ZpbGVyLXRlc3QtY2FsbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWNvbnNvbGUucHJvZmlsZSgi
VXNpbmcgdGhlIGNhbGwoKSBtZXRob2QiKTsKLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAg
dmFyIG15T2JqZWN0ID0gbmV3IGZha2VPYmplY3QoMSwgMik7Ci0gICAgZW5kVGVzdCgpOwotfQot
Ci1mdW5jdGlvbiBmYWtlT2JqZWN0ICh4LCB5KQotewotICAgIHRoaXMueCA9IHg7Ci0gICAgZmFr
ZUludGVyaW9yRnVuY3Rpb24uY2FsbCh0aGlzLCB5KTsKLX0KLQotZnVuY3Rpb24gZmFrZUludGVy
aW9yRnVuY3Rpb24oeSkKLXsKLSAgICB0aGlzLnkgPSB5OwotfQotCi08L3NjcmlwdD4KLTwvaGVh
ZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0
IGhhcyBhIGNhbGwgdG8gY2FsbCgpIGluIGl0LgotPGJyPgotPGJyPgotVG8gdXNlIHRoaXMgdGVz
dCwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBj
YWxsIHRvIGZha2VPYmplY3QoKSB3aXRoIGNhbGwoKSBhcwotaXRzIGNoaWxkIGFuZCBhIGZha2VJ
bnRlcmlvckZ1bmN0aW9uKCkgYXMgY2FsbCgpJ3MgY2hpbGQuCi08ZGl2IGlkPSJvdXRwdXQiPjwv
ZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTWFudWFsVGVzdHMvaW5zcGVjdG9y
L3Byb2ZpbGVyLXRlc3QtbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sIGIvTWFudWFs
VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyLXRlc3QtbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29w
ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYTViZTQyLi4wMDAwMDAwCi0t
LSBhL01hbnVhbFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci10ZXN0LW1hbnktY2FsbHMtaW4tdGhl
LXNhbWUtc2NvcGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1jb25zb2xlLnByb2ZpbGUoIk1hbnkgQ2FsbHMgSW4g
VGhlIFNhbWUgU2NvcGUiKTsKLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgaW5zZXJ0TmV3
VGV4dCgpOwotICAgIGluc2VydEdpdmVuVGV4dCgiVGhpcyB3YXMgYSB0cml1bXBoLiIpOwotICAg
IGFycmF5T3BlcmF0b3JGdW5jdGlvbig3KTsKLSAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbigpOwot
ICAgIGFub255bW91c0Z1bmN0aW9uKCk7Ci0gICAgZW5kKCkKLSAgICBlbmRUKCk7Ci0gICAgZW5k
VCgpOwotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gZW5kKCkKLXsKLSAgICB2YXIgeCA9
IDA7Ci19Ci0KLWZ1bmN0aW9uIGVuZFQoKQotewotICAgIHZhciB5ID0gMTsKLX0KLQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3Mg
SmF2YVNjcmlwdCBoYXMgbWFueSBmdW5jdGlvbiBjYWxscyBpbiB0aGUgc2FtZSBzY29wZS4KLTxi
cj4KLTxicj4KLVRvIHVzZSB0aGlzIHRlc3QsIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBs
b2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHBy
b2ZpbGUgbWFueSBmdW5jdGlvbnMgc2hvdWxkIGJlIHRoZSBjaGlsZHJlbiBvZiBzdGFydFRlc3Qu
Ci1Vc2UgdGhlIHNvcnRpbmcgY2FwYWJpbGl0ZXMgdG8gbWFrZSBzdXJlIHRoZSBzaW1pbGFybHkg
bmFtZWQgZnVuY3Rpb25zIGFyZSBzb3J0ZWQKLWNvcnJlY3RseS4KLTxkaXYgaWQ9Im91dHB1dCI+
PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTUHJvZmlsZXJQcml2YXRlLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWMxMTJhZS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTUHJvZmlsZXJQcml2YXRlLmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTUHJvZmlsZXJQcml2YXRlLmgiCi0K
LSNpbmNsdWRlICJBUElDYXN0LmgiCi0jaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKLSNpbmNs
dWRlICJPcGFxdWVKU1N0cmluZy5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi12b2lkIEpT
U3RhcnRQcm9maWxpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgdGl0bGUpCi17Ci0g
ICAgLy8gVXNlIGFuIGluZGVwZW5kZW50IHN0b3B3YXRjaCBmb3IgQVBJLWluaXRpYXRlZCBwcm9m
aWxpbmcsIHNpbmNlIHRoZSB1c2VyIHdpbGwgZXhwZWN0IGl0Ci0gICAgLy8gdG8gYmUgcmVsYXRp
dmUgdG8gd2hlbiB0aGVpciBjb21tYW5kIHdhcyBpc3N1ZWQuCi0gICAgUmVmUHRyPFN0b3B3YXRj
aD4gc3RvcHdhdGNoID0gU3RvcHdhdGNoOjpjcmVhdGUoKTsKLSAgICBzdG9wd2F0Y2gtPnN0YXJ0
KCk7Ci0gICAgTGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCktPnN0YXJ0UHJvZmlsaW5nKHRvSlMo
Y3R4KSwgdGl0bGUtPnN0cmluZygpLCBzdG9wd2F0Y2gucmVsZWFzZSgpKTsKLX0KLQotdm9pZCBK
U0VuZFByb2ZpbGluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiB0aXRsZSkKLXsKLSAg
ICBFeGVjU3RhdGUqIGV4ZWMgPSB0b0pTKGN0eCk7Ci0gICAgTGVnYWN5UHJvZmlsZXIqIHByb2Zp
bGVyID0gTGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCk7Ci0gICAgcHJvZmlsZXItPnN0b3BQcm9m
aWxpbmcoZXhlYywgdGl0bGUtPnN0cmluZygpKTsKLX0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzNGYyNmEyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNQcm9m
aWxlclByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgSlNQcm9maWxlcl9o
Ci0jZGVmaW5lIEpTUHJvZmlsZXJfaAotCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNCYXNl
Lmg+Ci0KLSNpZm5kZWYgX19jcGx1c3BsdXMKLSNpbmNsdWRlIDxzdGRib29sLmg+Ci0jZW5kaWYK
LQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0vKiEKLUBmdW5j
dGlvbiBKU1N0YXJ0UHJvZmlsaW5nCi1AYWJzdHJhY3QgRW5hYmxlcyB0aGUgcHJvZmxlci4KLUBw
YXJhbSBjdHggVGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIHVzZS4KLUBwYXJhbSB0aXRsZSBUaGUg
dGl0bGUgb2YgdGhlIHByb2ZpbGUuCi1AcmVzdWx0IFRoZSBwcm9maWxlciBpcyB0dXJuZWQgb24u
Ci0qLwotSlNfRVhQT1JUIHZvaWQgSlNTdGFydFByb2ZpbGluZyhKU0NvbnRleHRSZWYgY3R4LCBK
U1N0cmluZ1JlZiB0aXRsZSk7Ci0KLS8qIQotQGZ1bmN0aW9uIEpTRW5kUHJvZmlsaW5nCi1AYWJz
dHJhY3QgRGlzYWJsZXMgdGhlIHByb2ZsZXIuCi1AcGFyYW0gY3R4IFRoZSBleGVjdXRpb24gY29u
dGV4dCB0byB1c2UuCi1AcGFyYW0gdGl0bGUgVGhlIHRpdGxlIG9mIHRoZSBwcm9maWxlLgotQHJl
c3VsdCBUaGUgcHJvZmlsZXIgaXMgdHVybmVkIG9mZi4gSWYgdGhlcmUgaXMgbm8gbmFtZSwgdGhl
IG1vc3QgcmVjZW50bHkgc3RhcnRlZAotICAgICAgICBwcm9maWxlIGlzIHN0b3BwZWQuIElmIHRo
ZSBuYW1lIGRvZXMgbm90IG1hdGNoIGFueSBwcm9maWxlIHRoZW4gbm8gcHJvZmlsZQotICAgICAg
ICBpcyBzdG9wcGVkLgotKi8KLUpTX0VYUE9SVCB2b2lkIEpTRW5kUHJvZmlsaW5nKEpTQ29udGV4
dFJlZiBjdHgsIEpTU3RyaW5nUmVmIHRpdGxlKTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0j
ZW5kaWYKLQotI2VuZGlmIC8qIEpTUHJvZmlsZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IGJmNTIxODEuLjYxNjIxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTU0LDcgKzU0LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMK
ICAgICBBUEkvSlNDbGFzc1JlZi5jcHAKICAgICBBUEkvSlNDb250ZXh0UmVmLmNwcAogICAgIEFQ
SS9KU09iamVjdFJlZi5jcHAKLSAgICBBUEkvSlNQcm9maWxlclByaXZhdGUuY3BwCiAgICAgQVBJ
L0pTVHlwZWRBcnJheS5jcHAKICAgICBBUEkvSlNTY3JpcHRSZWYuY3BwCiAgICAgQVBJL0pTU3Ry
aW5nUmVmLmNwcApAQCAtNTg2LDEwICs1ODUsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNF
UwogICAgIHBhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmNwcAogICAgIHBhcnNlci9WYXJpYWJs
ZUVudmlyb25tZW50LmNwcAogCi0gICAgcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwCi0gICAg
cHJvZmlsZXIvUHJvZmlsZS5jcHAKLSAgICBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAot
ICAgIHByb2ZpbGVyL1Byb2ZpbGVOb2RlLmNwcAogICAgIHByb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNv
ZGUuY3BwCiAgICAgcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmNwcAogICAgIHBy
b2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODFkODViOC4uNTVlYWMwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTI5
IEBACiAyMDE2LTA1LTEzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAK
KyAgICAgICAgUmVtb3ZlIExlZ2FjeVByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM1NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBKYXZhU2NyaXB0Q29yZSBub3cgcHJvdmlkZXMgYSBzYW1w
bGluZyBwcm9maWxlciBhbmQgaXQgaXMgZW5hYmxlZAorICAgICAgICBieSBhbGwgcG9ydHMuIFdl
YiBJbnNwZWN0b3Igc3dpdGNoZWQgbW9udGhzIGFnbyB0byB1c2luZyB0aGUKKyAgICAgICAgc2Ft
cGxpbmcgcHJvZmlsZXIgYW5kIGRpc3BsYXlpbmcgaXRzIGRhdGEuIFJlbW92ZSB0aGUgbGVnYWN5
CisgICAgICAgIHByb2ZpbGVyLCBhcyBpdCBpcyBubyBsb25nZXIgYmVpbmcgdXNlZCBieSBhbnl0
aGluZyBvdGhlciB0aGVuCisgICAgICAgIGNvbnNvbGUucHJvZmlsZSBhbmQgdGVzdHMuIFdlIHdp
bGwgdXBkYXRlIGNvbnNvbGUucHJvZmlsZSdzCisgICAgICAgIGJlaGF2aW9yIHNvb24gdG8gaGF2
ZSBuZXcgYmVoYXZpb3IgYW5kIHVzZSB0aGUgc2FtcGxpbmcgZGF0YS4KKworICAgICAgICAqIEFQ
SS9KU1Byb2ZpbGVyUHJpdmF0ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogQVBJL0pTUHJvZmls
ZXJQcml2YXRlLmg6IFJlbW92ZWQuCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBi
eXRlY29kZS9CeXRlY29kZUxpc3QuanNvbjoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZVVz
ZURlZi5oOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29kZU9mZnNldCk6IERlbGV0
ZWQuCisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29k
ZUJsb2NrOjpkdW1wQnl0ZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVVbmxpbmtl
ZEZ1bmN0aW9uQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1
dGFibGU6OnVubGlua2VkQ29kZUJsb2NrRm9yKToKKyAgICAgICAgKiBieXRlY29kZS9Vbmxpbmtl
ZEZ1bmN0aW9uRXhlY3V0YWJsZS5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdl
bmVyYXRvcik6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbCk6Cisg
ICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3MpOgorICAgICAg
ICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRpb24p
OgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVjdFZhcmFyZ3Mp
OgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVjdCk6CisgICAg
ICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkNh
bGxBcmd1bWVudHM6OnByb2ZpbGVIb29rUmVnaXN0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlND
OjpCeXRlY29kZUdlbmVyYXRvcjo6c2hvdWxkRW1pdFByb2ZpbGVIb29rcyk6IERlbGV0ZWQuCisg
ICAgICAgICogYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkNh
bGxGdW5jdGlvbkNhbGxEb3ROb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpBcHBs
eUZ1bmN0aW9uQ2FsbERvdE5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkNhbGxB
cmd1bWVudHM6OkNhbGxBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50
ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6IERlbGV0ZWQuCisg
ICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpC
eXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0Nh
cGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6
OmNsb2JiZXJpemUpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OmRvZXNHQyk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0ZpeHVw
UGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6IERl
bGV0ZWQuCisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR1By
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhl
Y3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOiBEZWxldGVkLgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNl
LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRCYXNlOjpjYWxsRnVuY3Rp
b25XaXRoRXZhbEVuYWJsZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9UaW1lbGlu
ZS5qc29uOgorICAgICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAg
KEpTQzo6VW53aW5kRnVuY3Rvcjo6b3BlcmF0b3IoKSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkludGVycHJldGVyOjpleGVjdXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0
ZXI6OmV4ZWN1dGVDYWxsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4
ZWN1dGVDb25zdHJ1Y3QpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAg
ICAoSlNDOjpKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MpOiBEZWxldGVkLgorICAgICAgICAq
IGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdF9vcF9wcm9maWxlX3dpbGxfY2FsbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkpJVDo6ZW1pdF9vcF9wcm9maWxlX2RpZF9jYWxsKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQv
SklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Byb2ZpbGVf
d2lsbF9jYWxsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Byb2ZpbGVf
ZGlkX2NhbGwpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAg
ICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAg
ICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRf
U0xPV19QQVRIX0RFQ0wpOiBEZWxldGVkLgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhz
Lmg6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICog
cGFyc2VyL1BhcnNlck1vZGVzLmg6CisgICAgICAgICogcHJvZmlsZXIvQ2FsbElkZW50aWZpZXIu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwcm9maWxlci9Qcm9maWxlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwcm9maWxlci9Q
cm9maWxlLmg6IFJlbW92ZWQuCisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oOiBSZW1v
dmVkLgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVOb2RlLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwcm9maWxlci9Qcm9maWxlTm9kZS5oOiBSZW1vdmVkLgorICAgICAgICAqIHByb2ZpbGVy
L1Byb2ZpbGVySmV0dGlzb25SZWFzb24uY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFs
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmg6
CisgICAgICAgICogcnVudGltZS9Db2RlQ2FjaGUuY3BwOgorICAgICAgICAoSlNDOjpDb2RlQ2Fj
aGU6OmdldEdsb2JhbENvZGVCbG9jayk6CisgICAgICAgIChKU0M6OkNvZGVDYWNoZTo6Z2V0UHJv
Z3JhbUNvZGVCbG9jayk6CisgICAgICAgIChKU0M6OkNvZGVDYWNoZTo6Z2V0RXZhbENvZGVCbG9j
ayk6CisgICAgICAgIChKU0M6OkNvZGVDYWNoZTo6Z2V0TW9kdWxlUHJvZ3JhbUNvZGVCbG9jayk6
CisgICAgICAgICogcnVudGltZS9Db2RlQ2FjaGUuaDoKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1
dGFibGUuY3BwOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpuZXdDb2RlQmxvY2tG
b3IpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdDo6Y3JlYXRlUHJvZ3JhbUNvZGVCbG9jayk6CisgICAgICAgIChKU0M6
OkpTR2xvYmFsT2JqZWN0OjpjcmVhdGVFdmFsQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6SlNH
bG9iYWxPYmplY3Q6OmNyZWF0ZU1vZHVsZVByb2dyYW1Db2RlQmxvY2spOgorICAgICAgICAoSlND
OjpKU0dsb2JhbE9iamVjdDo6fkpTR2xvYmFsT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6SlNHbG9iYWxPYmplY3Q6Omhhc0xlZ2FjeVByb2ZpbGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KiBydW50aW1lL0pTR2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0
OjpzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9P
cHRpb25zLmg6CisgICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpW
TSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OlNldEVuYWJsZWRQcm9maWxlckZ1bmN0b3I6Om9w
ZXJhdG9yKCkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpWTTo6c2V0RW5hYmxlZFByb2ZpbGVy
KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgIChKU0M6OlZNOjpl
bmFibGVkUHJvZmlsZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpWTTo6ZW5hYmxlZFByb2Zp
bGVyQWRkcmVzcyk6IERlbGV0ZWQuCisKKzIwMTYtMDUtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbmZvcm0gYXVnbWVu
dGluZyBjbGllbnQgd2hlbiBpbnNwZWN0b3IgY29udHJvbGxlciBpcyBkZXN0cm95ZWQKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzY4OAogICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjU4MzI3MjQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGYxMmJmZDUuLjBmOWRlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
NDE1LDE0ICsxNDE1LDYgQEAKIAkJOTMzMDQwMDQwRTZBNzQ5NDAwNzg2RTZBIC8qIFNtYWxsU3Ry
aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMz
MDNGRUEwRTZBNzJDMDAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMzA0MDJDMEU2QTc2NDAwMDc4NkU2
QSAvKiBTbWFsbFN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTMzMDNGRTgwRTZBNzJCNTAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5jcHAg
Ki87IH07CiAJCTkzMzVGMjREMTJFNjc2NUIwMDJCNTU1MyAvKiBTdHJpbmdSZWN1cnNpb25DaGVj
a2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
MzQ1QTg3MTJEODM4QzQwMDMwMkJFMyAvKiBTdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcCAqLzsg
fTsKLQkJOTUzNEFBRkIwRTVCN0E5NjAwQjhBNDVCIC8qIEpTUHJvZmlsZXJQcml2YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTJDNjNBQzBFNDc3
N0Q2MDBDMTM5MzYgLyogSlNQcm9maWxlclByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5NTc0MkY2NTBERDExRjVBMDAwOTE3RkIgLyog
UHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NTc0MkY2MzBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5jcHAgKi87IH07Ci0JCTk1QUI4
MzQyMERBNDMyMjUwMEJDODNGMyAvKiBMZWdhY3lQcm9maWxlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUFCODMyRTBEQTQyQ0FEMDBCQzgzRjMg
LyogTGVnYWN5UHJvZmlsZXIuY3BwICovOyB9OwotCQk5NUFCODM1NjBEQTQzQzMwMDBCQzgzRjMg
LyogUHJvZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTVBQjgzNTQwREE0M0I0NDAwQkM4M0YzIC8qIFByb2ZpbGVOb2RlLmNwcCAqLzsg
fTsKLQkJOTVDRDQ1NzYwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVDRDQ1NzQwRTFD
NEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuY3BwICovOyB9OwotCQk5NUNENDU3NzBF
MUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVDRDQ1NzUwRTFDNEZERDAwODUzNThFIC8qIFBy
b2ZpbGVHZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9Owot
CQk5NUUzQkMwNTBFMUFFNjgyMDBCMkQxQzEgLyogQ2FsbElkZW50aWZpZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1RTNCQzA0MEUxQUU2ODIwMEIy
RDFDMSAvKiBDYWxsSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTk1RjZFNjk1MEU1QjVGOTcwMDkxRTg2MCAvKiBKU1Byb2ZpbGVy
UHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NTk4OEJBOTBFNDc3QkVDMDBEMjhENEQgLyogSlNQcm9maWxlclByaXZhdGUuY3BwICovOyB9
OwogCQk5NjAwOTdBNjBFQkFCQjU4MDA3QTcyOTcgLyogTGFiZWxTY29wZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTYwMDk3QTUwRUJBQkI1ODAwN0E3
Mjk3IC8qIExhYmVsU2NvcGUuaCAqLzsgfTsKIAkJOTY4OENCMTUwRUQxMkI0RTAwMUQ2NDlGIC8q
IEFzc2VtYmxlckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTY4OENCMTMwRUQxMkI0RTAwMUQ2NDlGIC8qIEFzc2VtYmxlckJ1ZmZlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk2ODhDQjE2
MEVEMTJCNEUwMDFENjQ5RiAvKiBYODZBc3NlbWJsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2ODhDQjE0MEVEMTJCNEUwMDFENjQ5RiAvKiBYODZB
c3NlbWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTg5MSw5ICsxODgzLDYgQEAKIAkJQkMxOEM0NDYwRTE2RjVDRDAwQjM0NDYwIC8qIE9i
amVjdFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMyNjgwQzkwRTE2RDRFOTAwQTA2RTkyIC8qIE9iamVjdFByb3RvdHlwZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDQ4MEUx
NkY1Q0QwMEIzNDQ2MCAvKiBPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg3ODAyNTU1OTdEMDFGRjYwRjcgLyogT3BlcmF0aW9u
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJD
MThDNDRCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjBCM0FBMDlCQjREQzAwMDY4RkNFMyAvKiBQYXJz
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlC
QzE4QzQ1MDBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU3NDJGNjQwREQxMUY1QTAwMDkxN0ZCIC8qIFBy
b2ZpbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQlCQzE4QzQ1MTBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QUI4MzU1MERBNDNCNDQwMEJDODNG
MyAvKiBQcm9maWxlTm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUJDMThDNDUyMEUxNkY1Q0QwMEIzNDQ2MCAvKiBMZWdhY3lQcm9maWxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBQjgzMkYw
REE0MkNBRDAwQkM4M0YzIC8qIExlZ2FjeVByb2ZpbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0NTQwRTE2RjVDRDAwQjM0NDYwIC8q
IFByb3BlcnR5TmFtZUFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2NTQwMEMxMDBBNjlCQUYyMDA1MDk4ODcgLyogUHJvcGVydHlOYW1lQXJyYXku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4
QzQ1NTBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvcGVydHlTbG90LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTYyMUU2QzA4OUU4NTk3MDA3NjBGMzUgLyog
UHJvcGVydHlTbG90LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQkMxOEM0NTYwRTE2RjVDRDAwQjM0NDYwIC8qIFByb3RlY3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1QzAyRkJCMDYzNzQ2MkEwMDNF
N0VFNiAvKiBQcm90ZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTM2MzMsMTggKzM2MjIsNyBAQAogCQk5M0YwQjNBOTA5QkI0REMwMDA2OEZD
RTMgLyogUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBh
cnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjBCM0FBMDlCQjREQzAw
MDY4RkNFMyAvKiBQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFy
c2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjE5ODFBMDgyNDVBQUUwMDFF
OUFCQyAvKiBLZXl3b3Jkcy50YWJsZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IEtleXdvcmRzLnRhYmxlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IH07Ci0JCTk1MkM2M0FDMEU0Nzc3RDYwMEMxMzkzNiAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Byb2ZpbGVyUHJpdmF0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NTc0MkY2MzBERDExRjVBMDAwOTE3RkIgLyog
UHJvZmlsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxl
LmNwcDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk5NTc0MkY2NDBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlLmg7IHBhdGggPSBwcm9maWxlci9Qcm9maWxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk1OTg4QkE5MEU0NzdCRUMwMEQyOEQ0
RCAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTk1QUI4MzJFMERBNDJDQUQwMEJDODNGMyAvKiBMZWdhY3lQcm9maWxlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMZWdhY3lQcm9maWxlci5jcHA7IHBhdGgg
PSBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTk1QUI4MzJGMERBNDJDQUQwMEJDODNGMyAvKiBMZWdhY3lQcm9maWxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMZWdhY3lQcm9maWxlci5oOyBwYXRoID0gcHJvZmls
ZXIvTGVnYWN5UHJvZmlsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTVBQjgz
NTQwREE0M0I0NDAwQkM4M0YzIC8qIFByb2ZpbGVOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVOb2RlLmNwcDsgcGF0aCA9IHByb2ZpbGVyL1Byb2Zp
bGVOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTVBQjgzNTUwREE0M0I0
NDAwQkM4M0YzIC8qIFByb2ZpbGVOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFByb2ZpbGVOb2RlLmg7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlTm9kZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5NUMxOEQzRTBDOTBFN0VGMDBFNzJGNzMgLyogSlNSZXRh
aW5QdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSZXRhaW5QdHIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTVDRDQ1NzQwRTFDNEZERDAwODUzNThFIC8q
IFByb2ZpbGVHZW5lcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gUHJvZmlsZUdlbmVyYXRvci5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTVDRDQ1NzUwRTFDNEZERDAwODUz
NThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gUHJvZmlsZUdlbmVyYXRvci5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NUUzQkMwNDBFMUFFNjgyMDBCMkQxQzEg
LyogQ2FsbElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2Fs
bElkZW50aWZpZXIuaDsgcGF0aCA9IHByb2ZpbGVyL0NhbGxJZGVudGlmaWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk2MDA5N0E1MEVCQUJCNTgwMDdBNzI5NyAvKiBMYWJlbFNj
b3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExhYmVsU2NvcGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTY4OENCMTMwRUQxMkI0RTAwMUQ2NDlGIC8qIEFz
c2VtYmxlckJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3NlbWJs
ZXJCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTY4OENCMTQwRUQxMkI0
RTAwMUQ2NDlGIC8qIFg4NkFzc2VtYmxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBYODZBc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUyNjYs
OCArNTI0NCw2IEBACiAJCQkJMTQ4MkI3RTIwQTQzMDc2MDAwNTE3Q0ZDIC8qIEpTT2JqZWN0UmVm
LmNwcCAqLywKIAkJCQkxNDgyQjdFMTBBNDMwNzYwMDA1MTdDRkMgLyogSlNPYmplY3RSZWYuaCAq
LywKIAkJCQlBNzlFREIwODExNTMxQ0Q2MDAxOUU5MTIgLyogSlNPYmplY3RSZWZQcml2YXRlLmgg
Ki8sCi0JCQkJOTU5ODhCQTkwRTQ3N0JFQzAwRDI4RDREIC8qIEpTUHJvZmlsZXJQcml2YXRlLmNw
cCAqLywKLQkJCQk5NTJDNjNBQzBFNDc3N0Q2MDBDMTM5MzYgLyogSlNQcm9maWxlclByaXZhdGUu
aCAqLywKIAkJCQlBNTUyQzM3RDFBRERCOEZFMDAxMzk3MjYgLyogSlNSZW1vdGVJbnNwZWN0b3Iu
Y3BwICovLAogCQkJCUE1NTJDMzdFMUFEREI4RkUwMDEzOTcyNiAvKiBKU1JlbW90ZUluc3BlY3Rv
ci5oICovLAogCQkJCTk1QzE4RDNFMEM5MEU3RUYwMEU3MkY3MyAvKiBKU1JldGFpblB0ci5oICov
LApAQCAtNjQzMCwxNSArNjQwNiw2IEBACiAJCTk1QUI4MzFBMERBNDJDNjkwMEJDODNGMyAvKiBw
cm9maWxlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJ
OTVFM0JDMDQwRTFBRTY4MjAwQjJEMUMxIC8qIENhbGxJZGVudGlmaWVyLmggKi8sCi0JCQkJOTVB
QjgzMkUwREE0MkNBRDAwQkM4M0YzIC8qIExlZ2FjeVByb2ZpbGVyLmNwcCAqLywKLQkJCQk5NUFC
ODMyRjBEQTQyQ0FEMDBCQzgzRjMgLyogTGVnYWN5UHJvZmlsZXIuaCAqLywKLQkJCQk5NTc0MkY2
MzBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5jcHAgKi8sCi0JCQkJOTU3NDJGNjQwREQxMUY1
QTAwMDkxN0ZCIC8qIFByb2ZpbGUuaCAqLywKLQkJCQk5NUNENDU3NDBFMUM0RkREMDA4NTM1OEUg
LyogUHJvZmlsZUdlbmVyYXRvci5jcHAgKi8sCi0JCQkJOTVDRDQ1NzUwRTFDNEZERDAwODUzNThF
IC8qIFByb2ZpbGVHZW5lcmF0b3IuaCAqLywKLQkJCQk5NUFCODM1NDBEQTQzQjQ0MDBCQzgzRjMg
LyogUHJvZmlsZU5vZGUuY3BwICovLAotCQkJCTk1QUI4MzU1MERBNDNCNDQwMEJDODNGMyAvKiBQ
cm9maWxlTm9kZS5oICovLAogCQkJCTBGRjcyOTkyMTY2QUQzNDcwMDBGNUJBMyAvKiBQcm9maWxl
ckJ5dGVjb2RlLmNwcCAqLywKIAkJCQkwRkY3Mjk5MzE2NkFEMzQ3MDAwRjVCQTMgLyogUHJvZmls
ZXJCeXRlY29kZS5oICovLAogCQkJCTBGRjcyOTk0MTY2QUQzNDcwMDBGNUJBMyAvKiBQcm9maWxl
ckJ5dGVjb2Rlcy5jcHAgKi8sCkBAIC03MTE1LDcgKzcwODIsNiBAQAogCQkJCTE0MjlEOERFMEVE
MjIwNUIwMEI4OTYxOSAvKiBDYWxsRnJhbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTYyRUM5QkI3
MUI3RUIwN0MwMDMwM0FEMSAvKiBDYWxsRnJhbWVTaHVmZmxlRGF0YS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjJENzU1RDcxQjg0RkI0QTAwMTgwMUZBIC8qIENhbGxGcmFtZVNodWZmbGVyLmggaW4g
SGVhZGVycyAqLywKLQkJCQk5NUUzQkMwNTBFMUFFNjgyMDBCMkQxQzEgLyogQ2FsbElkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMEI4M0IxMTRCQ0Y3MTgwMDg4NUI0RiAvKiBDYWxs
TGlua0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTMzMjlFMTRDQTdEQzUwMDg1RjNDNiAv
KiBDYWxsTGlua1N0YXR1cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjI3NjczMjQxQjY4MEMxRTAw
RkQ5RjJFIC8qIENhbGxNb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTc3MzMsNyArNzY5OSw2IEBA
CiAJCQkJQTcyODBBMjgxMTU1N0UzMDAwRDU2OTU3IC8qIEpTT2JqZWN0UmVmUHJpdmF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTdGOTkzNUYwRkQ3MzI1MTAwQTBCMkQwIC8qIEpTT05PYmplY3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDODdDREI5MTA3MTJBRDQwMDA2MTRDRiAvKiBKU09OT2Jq
ZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTUzNEFBRkIwRTVCN0E5NjAwQjhBNDVCIC8q
IEpTUHJvZmlsZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE4NEUxQjE3QkVEQkQz
MDA3Q0I2M0EgLyogSlNQcm9taXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzE4NEUyMzE3QkVF
MjQwMDA3Q0I2M0EgLyogSlNQcm9taXNlQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk5NkI3MzFFMUJEQTA4RUYwMDMzMUI4NCAvKiBKU1Byb21pc2VDb25zdHJ1Y3Rvci5sdXQuaCBp
biBIZWFkZXJzICovLApAQCAtNzc5OSw3ICs3NzY0LDYgQEAKIAkJCQk5NjAwOTdBNjBFQkFCQjU4
MDA3QTcyOTcgLyogTGFiZWxTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCNTQ2NzcxNEY1
OUI1QzAwMkMyOTg5IC8qIExhenlPcGVyYW5kVmFsdWVQcm9maWxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5OURBMDBCMDFCRDU5OTRFMDBGNDU3NUMgLyogbGF6eXdyaXRlci5weSBpbiBIZWFkZXJz
ICovLAotCQkJCUJDMThDNDUyMEUxNkY1Q0QwMEIzNDQ2MCAvKiBMZWdhY3lQcm9maWxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MzEwRTE2RjVDRDAwQjM0NDYwIC8qIExleGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzE4QzUyRTBFMTZGQ0UxMDBCMzQ0NjAgLyogTGV4ZXIubHV0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlEQ0YzRDU2QjFDRDI5NDcyMDAzRDVDNjUgLyogTGF6eUNsYXNz
U3RydWN0dXJlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC03OTA0LDkgKzc4NjgsNiBAQAog
CQkJCTBGRTgzNDE4MUE2RUY5N0IwMEQwNDg0NyAvKiBQb2x5bW9ycGhpY0NhbGxTdHViUm91dGlu
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5ODIwNjExNkJGRTM4MzAwMjQwRDAyIC8qIFByZWNp
c2VKdW1wVGFyZ2V0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODY4OTE2QjAxNTVGMjg2MzAwQ0Iy
QjlBIC8qIFByaXZhdGVOYW1lLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzE4QzQ1MDBFMTZGNUNE
MDBCMzQ0NjAgLyogUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTVDRDQ1NzcwRTFDNEZE
RDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMThD
NDUxMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZGNzI5QTUxNjZBRDM1MTAwMEY1QkEzIC8qIFByb2ZpbGVyQnl0ZWNvZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRjcyOUI5MTY2QUQzNjAwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2Rlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxMzkxMkExNjc3MUMzNjAwOUNDQjA3IC8qIFByb2ZpbGVy
Qnl0ZWNvZGVTZXF1ZW5jZS5oIGluIEhlYWRlcnMgKi8sCkBAIC05MTUxLDcgKzkxMTIsNiBAQAog
CQkJCTE0N0YzOUQ0MTA3RUMzNzYwMDQyN0E0OCAvKiBKU09iamVjdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDgyQjdFNDBBNDMwNzYwMDA1MTdDRkMgLyogSlNPYmplY3RSZWYuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTdGOTkzNjAwRkQ3MzI1MTAwQTBCMkQwIC8qIEpTT05PYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJOTVGNkU2OTUwRTVCNUY5NzAwOTFFODYwIC8qIEpTUHJvZmls
ZXJQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDMTg0RTFBMTdCRURCRDMwMDdDQjYz
QSAvKiBKU1Byb21pc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0MxODRFMjIxN0JFRTI0MDAw
N0NCNjNBIC8qIEpTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
MDA4Q0RBMTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21pc2VEZWZlcnJlZC5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTkxOTQsNyArOTE1NCw2IEBACiAJCQkJMTQyODA4NzAxMDdFQzEzNDAwMTNFN0Iy
IC8qIEpTV3JhcHBlck9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0ZEOEM5MjBFRUIy
RUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQjU0Njc5
MTRGNUM0NkIwMDJDMjk4OSAvKiBMYXp5T3BlcmFuZFZhbHVlUHJvZmlsZS5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQk5NUFCODM0MjBEQTQzMjI1MDBCQzgzRjMgLyogTGVnYWN5UHJvZmlsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ4RjIxQjAxMDdFQzU0MTAwNDJFQzJDIC8qIExleGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzU3MTU5MTRBMjAwMDRDQjlGRiAvKiBMaW5rQnVm
ZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RTJFQTZDMEZCNDYwQ0YwMDYwMUYwNiAvKiBM
aXRlcmFsUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTI2Miw5ICs5MjIxLDYgQEAKIAkJ
CQkwRkU4MzQxNzFBNkVGOTdCMDBEMDQ4NDcgLyogUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYzMzhFMTQxQkYwMjc2QzAwMTNDODhGIC8qIEIzVmFs
dWVLZXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5ODIwNjAxNkJGRTM4MTAwMjQwRDAyIC8q
IFByZWNpc2VKdW1wVGFyZ2V0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5NTc0MkY2NTBERDEx
RjVBMDAwOTE3RkIgLyogUHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5NUNENDU3NjBF
MUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk5NUFCODM1NjBEQTQzQzMwMDBCQzgzRjMgLyogUHJvZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZGNzI5QUQxNjZBRDM1QzAwMEY1QkEzIC8qIFByb2ZpbGVyQnl0ZWNvZGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNzI5QUUxNjZBRDM1QzAwMEY1QkEzIC8qIFByb2ZpbGVy
Qnl0ZWNvZGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMTM5MTI5MTY3NzFDMzMwMDlDQ0Iw
NyAvKiBQcm9maWxlckJ5dGVjb2RlU2VxdWVuY2UuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KaW5kZXggN2I0
OWM2NC4uOTFhOTZjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlTGlzdC5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZUxpc3QuanNvbgpAQCAtMTIzLDggKzEyMyw2IEBACiAgICAgICAgICAgICB7ICJuYW1l
IiA6ICJvcF90aHJvdyIsICJsZW5ndGgiIDogMiB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAi
b3BfdGhyb3dfc3RhdGljX2Vycm9yIiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAgICB7ICJu
YW1lIiA6ICJvcF9kZWJ1ZyIsICJsZW5ndGgiIDogMyB9LAotICAgICAgICAgICAgeyAibmFtZSIg
OiAib3BfcHJvZmlsZV93aWxsX2NhbGwiLCAibGVuZ3RoIiA6IDIgfSwKLSAgICAgICAgICAgIHsg
Im5hbWUiIDogIm9wX3Byb2ZpbGVfZGlkX2NhbGwiLCAibGVuZ3RoIiA6IDIgfSwKICAgICAgICAg
ICAgIHsgIm5hbWUiIDogIm9wX2VuZCIsICJsZW5ndGgiIDogMiB9LAogICAgICAgICAgICAgeyAi
bmFtZSIgOiAib3BfcHJvZmlsZV90eXBlIiwgImxlbmd0aCIgOiA2IH0sCiAgICAgICAgICAgICB7
ICJuYW1lIiA6ICJvcF9wcm9maWxlX2NvbnRyb2xfZmxvdyIsICJsZW5ndGgiIDogMiB9LApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRleCA0
YTE2NzJlLi43Y2YwZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVVc2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVVc2VEZWYuaApAQCAtNjIsOCArNjIsNiBAQCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0
ZWNvZGVPZmZzZXQoCiAgICAgY2FzZSBvcF9nZXRfc2NvcGU6CiAgICAgY2FzZSBvcF90b190aGlz
OgogICAgIGNhc2Ugb3BfY2hlY2tfdGR6OgotICAgIGNhc2Ugb3BfcHJvZmlsZV93aWxsX2NhbGw6
Ci0gICAgY2FzZSBvcF9wcm9maWxlX2RpZF9jYWxsOgogICAgIGNhc2Ugb3BfcHJvZmlsZV90eXBl
OgogICAgIGNhc2Ugb3BfdGhyb3c6CiAgICAgY2FzZSBvcF9lbmQ6CkBAIC0zMTIsOCArMzEwLDYg
QEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zmc2V0KENvZGVCbG9jayogY29kZUJsb2Nr
LCBCeXRlY29kZUJhc2ljQmxvY2sqIGJsb2MKICAgICBjYXNlIG9wX2NvcHlfcmVzdDoKICAgICBj
YXNlIG9wX3B1dF90b19zY29wZToKICAgICBjYXNlIG9wX2VuZDoKLSAgICBjYXNlIG9wX3Byb2Zp
bGVfd2lsbF9jYWxsOgotICAgIGNhc2Ugb3BfcHJvZmlsZV9kaWRfY2FsbDoKICAgICBjYXNlIG9w
X3Rocm93OgogICAgIGNhc2Ugb3BfdGhyb3dfc3RhdGljX2Vycm9yOgogICAgIGNhc2Ugb3Bfc2F2
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXgg
M2E4MDhjYi4uNDFlOGNmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5jcHAKQEAgLTE2NTQsMTYgKzE2NTQsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5
dGVjb2RlKAogICAgICAgICAgICAgb3V0LnByaW50ZigiJXMsICVkIiwgcmVnaXN0ZXJOYW1lKGNv
bmRpdGlvbikuZGF0YSgpLCBsaW5lKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0g
ICAgICAgIGNhc2Ugb3BfcHJvZmlsZV93aWxsX2NhbGw6IHsKLSAgICAgICAgICAgIGludCBmdW5j
dGlvbiA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgcHJpbnRMb2NhdGlvbk9wQW5k
UmVnaXN0ZXJPcGVyYW5kKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicHJvZmlsZV93aWxsX2Nh
bGwiLCBmdW5jdGlvbik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBj
YXNlIG9wX3Byb2ZpbGVfZGlkX2NhbGw6IHsKLSAgICAgICAgICAgIGludCBmdW5jdGlvbiA9ICgr
K2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgcHJpbnRMb2NhdGlvbk9wQW5kUmVnaXN0ZXJP
cGVyYW5kKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAicHJvZmlsZV9kaWRfY2FsbCIsIGZ1bmN0
aW9uKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZW5k
OiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAg
IHByaW50TG9jYXRpb25PcEFuZFJlZ2lzdGVyT3BlcmFuZChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBp
dCwgImVuZCIsIHIwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwCmluZGV4IDY2Mjc4ODQuLjM0
NjE5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Vbmxpbmtl
ZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcApAQCAtNDksNyArNDksNyBAQCBjb25z
dCBDbGFzc0luZm8gVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OnNfaW5mbyA9IHsgIlVubGlu
a2VkRnVuY3Rpb25FeGVjdXRhYgogCiBzdGF0aWMgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayog
Z2VuZXJhdGVVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKAogICAgIFZNJiB2bSwgVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwK
LSAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1v
ZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUsCisgICAgQ29kZVNwZWNpYWxpemF0aW9uS2lu
ZCBraW5kLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLAogICAgIFVubGlua2VkRnVuY3Rpb25L
aW5kIGZ1bmN0aW9uS2luZCwgUGFyc2VyRXJyb3ImIGVycm9yLCBTb3VyY2VQYXJzZU1vZGUgcGFy
c2VNb2RlKQogewogICAgIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUgPSBleGVjdXRh
YmxlLT5pc0J1aWx0aW5GdW5jdGlvbigpID8gSlNQYXJzZXJCdWlsdGluTW9kZTo6QnVpbHRpbiA6
IEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW47CkBAIC03MCw3ICs3MCw3IEBAIHN0YXRp
YyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBnZW5lcmF0ZVVubGlua2VkRnVuY3Rpb25Db2Rl
QmxvY2soCiAKICAgICBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiByZXN1bHQgPSBVbmxpbmtl
ZEZ1bmN0aW9uQ29kZUJsb2NrOjpjcmVhdGUoJnZtLCBGdW5jdGlvbkNvZGUsIEV4ZWN1dGFibGVJ
bmZvKGZ1bmN0aW9uLT51c2VzRXZhbCgpLCBmdW5jdGlvbi0+aXNTdHJpY3RNb2RlKCksIGtpbmQg
PT0gQ29kZUZvckNvbnN0cnVjdCwgZnVuY3Rpb25LaW5kID09IFVubGlua2VkQnVpbHRpbkZ1bmN0
aW9uLCBleGVjdXRhYmxlLT5jb25zdHJ1Y3RvcktpbmQoKSwgZXhlY3V0YWJsZS0+c3VwZXJCaW5k
aW5nKCksIHBhcnNlTW9kZSwgZXhlY3V0YWJsZS0+ZGVyaXZlZENvbnRleHRUeXBlKCksIGZhbHNl
LCBpc0NsYXNzQ29udGV4dCwgRXZhbENvbnRleHRUeXBlOjpGdW5jdGlvbkV2YWxDb250ZXh0KSk7
CiAKLSAgICBlcnJvciA9IEJ5dGVjb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZSh2bSwgZnVuY3Rpb24u
Z2V0KCksIHJlc3VsdCwgZGVidWdnZXJNb2RlLCBwcm9maWxlck1vZGUsIGV4ZWN1dGFibGUtPnBh
cmVudFNjb3BlVERaVmFyaWFibGVzKCkpOworICAgIGVycm9yID0gQnl0ZWNvZGVHZW5lcmF0b3I6
OmdlbmVyYXRlKHZtLCBmdW5jdGlvbi5nZXQoKSwgcmVzdWx0LCBkZWJ1Z2dlck1vZGUsIGV4ZWN1
dGFibGUtPnBhcmVudFNjb3BlVERaVmFyaWFibGVzKCkpOwogCiAgICAgaWYgKGVycm9yLmlzVmFs
aWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xOTEsNyArMTkxLDcgQEAgVW5saW5r
ZWRGdW5jdGlvbkV4ZWN1dGFibGUqIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpmcm9tR2xv
YmFsQ29kZSgKIAogVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGU6OnVubGlua2VkQ29kZUJsb2NrRm9yKAogICAgIFZNJiB2bSwgY29uc3QgU291cmNl
Q29kZSYgc291cmNlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIHNwZWNpYWxpemF0aW9uS2luZCwg
Ci0gICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9k
ZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBTb3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlKQorICAgIERl
YnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJiBlcnJvciwgU291cmNlUGFyc2VN
b2RlIHBhcnNlTW9kZSkKIHsKICAgICBzd2l0Y2ggKHNwZWNpYWxpemF0aW9uS2luZCkgewogICAg
IGNhc2UgQ29kZUZvckNhbGw6CkBAIC0yMDUsNyArMjA1LDcgQEAgVW5saW5rZWRGdW5jdGlvbkNv
ZGVCbG9jayogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OnVubGlua2VkQ29kZUJsb2NrRm9y
KAogICAgIH0KIAogICAgIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIHJlc3VsdCA9IGdlbmVy
YXRlVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jaygKLSAgICAgICAgdm0sIHRoaXMsIHNvdXJjZSwg
c3BlY2lhbGl6YXRpb25LaW5kLCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwgCisgICAgICAg
IHZtLCB0aGlzLCBzb3VyY2UsIHNwZWNpYWxpemF0aW9uS2luZCwgZGVidWdnZXJNb2RlLCAKICAg
ICAgICAgaXNCdWlsdGluRnVuY3Rpb24oKSA/IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9uIDogVW5s
aW5rZWROb3JtYWxGdW5jdGlvbiwgCiAgICAgICAgIGVycm9yLCBwYXJzZU1vZGUpOwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGUuaAppbmRleCBiMzU5MTk0Li42NDZiMGE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4
ZWN1dGFibGUuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEludmFs
aWRUeXBlUHJvZmlsaW5nT2Zmc2V0cygpOwogCiAgICAgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9j
ayogdW5saW5rZWRDb2RlQmxvY2tGb3IoCi0gICAgICAgIFZNJiwgY29uc3QgU291cmNlQ29kZSYs
IENvZGVTcGVjaWFsaXphdGlvbktpbmQsIERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCAKKyAg
ICAgICAgVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCwgRGVi
dWdnZXJNb2RlLAogICAgICAgICBQYXJzZXJFcnJvciYsIFNvdXJjZVBhcnNlTW9kZSk7CiAKICAg
ICBzdGF0aWMgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGZyb21HbG9iYWxDb2RlKApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcAppbmRleCBlYzExMGY5Li45NGYyMjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAt
MTQ3LDkgKzE0Nyw4IEBAIFBhcnNlckVycm9yIEJ5dGVjb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZSgp
CiAgICAgcmV0dXJuIFBhcnNlckVycm9yKFBhcnNlckVycm9yOjpFcnJvck5vbmUpOwogfQogCi1C
eXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBQcm9ncmFtTm9kZSog
cHJvZ3JhbU5vZGUsIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogY29kZUJsb2NrLCBEZWJ1Z2dl
ck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlLCBjb25zdCBWYXJp
YWJsZUVudmlyb25tZW50KiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcykKK0J5dGVjb2RlR2VuZXJh
dG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIFByb2dyYW1Ob2RlKiBwcm9ncmFtTm9kZSwg
VW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiBjb2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dl
ck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHBhcmVudFNjb3BlVERaVmFyaWFibGVz
KQogICAgIDogbV9zaG91bGRFbWl0RGVidWdIb29rcyhPcHRpb25zOjpmb3JjZURlYnVnZ2VyQnl0
ZWNvZGVHZW5lcmF0aW9uKCkgfHwgZGVidWdnZXJNb2RlID09IERlYnVnZ2VyT24pCi0gICAgLCBt
X3Nob3VsZEVtaXRQcm9maWxlSG9va3MoT3B0aW9uczo6Zm9yY2VQcm9maWxlckJ5dGVjb2RlR2Vu
ZXJhdGlvbigpIHx8IHByb2ZpbGVyTW9kZSA9PSBQcm9maWxlck9uKQogICAgICwgbV9zY29wZU5v
ZGUocHJvZ3JhbU5vZGUpCiAgICAgLCBtX2NvZGVCbG9jayh2bSwgY29kZUJsb2NrKQogICAgICwg
bV90aGlzUmVnaXN0ZXIoQ2FsbEZyYW1lOjp0aGlzQXJndW1lbnRPZmZzZXQoKSkKQEAgLTE5Myw5
ICsxOTIsOCBAQCBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBQ
cm9ncmFtTm9kZSogcHJvZ3JhbU5vZGUsIFVubGlua2VkUAogICAgIH0KIH0KIAotQnl0ZWNvZGVH
ZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRnVuY3Rpb25Ob2RlKiBmdW5jdGlv
bk5vZGUsIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIGNvZGVCbG9jaywgRGVidWdnZXJNb2Rl
IGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSwgY29uc3QgVmFyaWFibGVF
bnZpcm9ubWVudCogcGFyZW50U2NvcGVURFpWYXJpYWJsZXMpCitCeXRlY29kZUdlbmVyYXRvcjo6
Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBGdW5jdGlvbk5vZGUqIGZ1bmN0aW9uTm9kZSwgVW5s
aW5rZWRGdW5jdGlvbkNvZGVCbG9jayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJN
b2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcykK
ICAgICA6IG1fc2hvdWxkRW1pdERlYnVnSG9va3MoT3B0aW9uczo6Zm9yY2VEZWJ1Z2dlckJ5dGVj
b2RlR2VuZXJhdGlvbigpIHx8IGRlYnVnZ2VyTW9kZSA9PSBEZWJ1Z2dlck9uKQotICAgICwgbV9z
aG91bGRFbWl0UHJvZmlsZUhvb2tzKE9wdGlvbnM6OmZvcmNlUHJvZmlsZXJCeXRlY29kZUdlbmVy
YXRpb24oKSB8fCBwcm9maWxlck1vZGUgPT0gUHJvZmlsZXJPbikKICAgICAsIG1fc2NvcGVOb2Rl
KGZ1bmN0aW9uTm9kZSkKICAgICAsIG1fY29kZUJsb2NrKHZtLCBjb2RlQmxvY2spCiAgICAgLCBt
X2NvZGVUeXBlKEZ1bmN0aW9uQ29kZSkKQEAgLTIwNyw3ICsyMDUsNyBAQCBCeXRlY29kZUdlbmVy
YXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBGdW5jdGlvbk5vZGUqIGZ1bmN0aW9uTm9k
ZSwgVW5saW5rZQogICAgIC8vIG9wX3dpbGxfY2FsbCAvIG9wX2RpZF9jYWxsIHBhaXJzIGJlZm9y
ZSBhbmQgYWZ0ZXIgYSBjYWxsLCB3aGljaCBhcmUgbm90CiAgICAgLy8gY29tcGF0aWJsZSB3aXRo
IHRhaWwgY2FsbHMgKHdlIGhhdmUgbm8gd2F5IG9mIGVtaXR0aW5nIG9wX2RpZF9jYWxsKS4KICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4ODE5Ci0gICAg
LCBtX2luVGFpbFBvc2l0aW9uKE9wdGlvbnM6OnVzZVRhaWxDYWxscygpICYmICFpc0NvbnN0cnVj
dG9yKCkgJiYgY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0b3JLaW5kOjpOb25lICYmIGlz
U3RyaWN0TW9kZSgpICYmICFtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MpCisgICAgLCBtX2luVGFp
bFBvc2l0aW9uKE9wdGlvbnM6OnVzZVRhaWxDYWxscygpICYmICFpc0NvbnN0cnVjdG9yKCkgJiYg
Y29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0b3JLaW5kOjpOb25lICYmIGlzU3RyaWN0TW9k
ZSgpKQogICAgICwgbV9uZWVkc1RvVXBkYXRlQXJyb3dGdW5jdGlvbkNvbnRleHQoZnVuY3Rpb25O
b2RlLT51c2VzQXJyb3dGdW5jdGlvbigpIHx8IGZ1bmN0aW9uTm9kZS0+dXNlc0V2YWwoKSkKICAg
ICAsIG1fZGVyaXZlZENvbnRleHRUeXBlKGNvZGVCbG9jay0+ZGVyaXZlZENvbnRleHRUeXBlKCkp
CiB7CkBAIC01OTQsOSArNTkyLDggQEAgQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJh
dG9yKFZNJiB2bSwgRnVuY3Rpb25Ob2RlKiBmdW5jdGlvbk5vZGUsIFVubGlua2UKICAgICBwdXNo
TGV4aWNhbFNjb3BlKG1fc2NvcGVOb2RlLCBURFpDaGVja09wdGltaXphdGlvbjo6T3B0aW1pemUs
IE5lc3RlZFNjb3BlVHlwZTo6SXNOb3ROZXN0ZWQsIG51bGxwdHIsIHNob3VsZEluaXRpYWxpemVC
bG9ja1Njb3BlZEZ1bmN0aW9ucyk7CiB9CiAKLUJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdl
bmVyYXRvcihWTSYgdm0sIEV2YWxOb2RlKiBldmFsTm9kZSwgVW5saW5rZWRFdmFsQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9m
aWxlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHBhcmVudFNjb3BlVERaVmFyaWFi
bGVzKQorQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRXZhbE5v
ZGUqIGV2YWxOb2RlLCBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIGNvZGVCbG9jaywgRGVidWdnZXJN
b2RlIGRlYnVnZ2VyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogcGFyZW50U2NvcGVU
RFpWYXJpYWJsZXMpCiAgICAgOiBtX3Nob3VsZEVtaXREZWJ1Z0hvb2tzKE9wdGlvbnM6OmZvcmNl
RGVidWdnZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBkZWJ1Z2dlck1vZGUgPT0gRGVidWdnZXJP
bikKLSAgICAsIG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcyhPcHRpb25zOjpmb3JjZVByb2ZpbGVy
Qnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgcHJvZmlsZXJNb2RlID09IFByb2ZpbGVyT24pCiAgICAg
LCBtX3Njb3BlTm9kZShldmFsTm9kZSkKICAgICAsIG1fY29kZUJsb2NrKHZtLCBjb2RlQmxvY2sp
CiAgICAgLCBtX3RoaXNSZWdpc3RlcihDYWxsRnJhbWU6OnRoaXNBcmd1bWVudE9mZnNldCgpKQpA
QCAtNjUyLDkgKzY0OSw4IEBAIEJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihW
TSYgdm0sIEV2YWxOb2RlKiBldmFsTm9kZSwgVW5saW5rZWRFdmFsQ29kCiAgICAgcHVzaExleGlj
YWxTY29wZShtX3Njb3BlTm9kZSwgVERaQ2hlY2tPcHRpbWl6YXRpb246Ok9wdGltaXplLCBOZXN0
ZWRTY29wZVR5cGU6OklzTm90TmVzdGVkLCBudWxscHRyLCBzaG91bGRJbml0aWFsaXplQmxvY2tT
Y29wZWRGdW5jdGlvbnMpOwogfQogCi1CeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0
b3IoVk0mIHZtLCBNb2R1bGVQcm9ncmFtTm9kZSogbW9kdWxlUHJvZ3JhbU5vZGUsIFVubGlua2Vk
TW9kdWxlUHJvZ3JhbUNvZGVCbG9jayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJN
b2RlLCBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50
KiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcykKK0J5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdl
bmVyYXRvcihWTSYgdm0sIE1vZHVsZVByb2dyYW1Ob2RlKiBtb2R1bGVQcm9ncmFtTm9kZSwgVW5s
aW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiBjb2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1
Z2dlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHBhcmVudFNjb3BlVERaVmFyaWFi
bGVzKQogICAgIDogbV9zaG91bGRFbWl0RGVidWdIb29rcyhPcHRpb25zOjpmb3JjZURlYnVnZ2Vy
Qnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgZGVidWdnZXJNb2RlID09IERlYnVnZ2VyT24pCi0gICAg
LCBtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MoT3B0aW9uczo6Zm9yY2VQcm9maWxlckJ5dGVjb2Rl
R2VuZXJhdGlvbigpIHx8IHByb2ZpbGVyTW9kZSA9PSBQcm9maWxlck9uKQogICAgICwgbV9zY29w
ZU5vZGUobW9kdWxlUHJvZ3JhbU5vZGUpCiAgICAgLCBtX2NvZGVCbG9jayh2bSwgY29kZUJsb2Nr
KQogICAgICwgbV90aGlzUmVnaXN0ZXIoQ2FsbEZyYW1lOjp0aGlzQXJndW1lbnRPZmZzZXQoKSkK
QEAgLTMwNTMsOSArMzA0OSw2IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
Q2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpCiAgICAgQVNTRVJU
KG9wY29kZUlEID09IG9wX2NhbGwgfHwgb3Bjb2RlSUQgPT0gb3BfY2FsbF9ldmFsIHx8IG9wY29k
ZUlEID09IG9wX3RhaWxfY2FsbCk7CiAgICAgQVNTRVJUKGZ1bmMtPnJlZkNvdW50KCkpOwogICAg
IAotICAgIGlmIChtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MpCi0gICAgICAgIGVtaXRNb3ZlKGNh
bGxBcmd1bWVudHMucHJvZmlsZUhvb2tSZWdpc3RlcigpLCBmdW5jKTsKLQogICAgIC8vIEdlbmVy
YXRlIGNvZGUgZm9yIGFyZ3VtZW50cy4KICAgICB1bnNpZ25lZCBhcmd1bWVudCA9IDA7CiAgICAg
aWYgKGNhbGxBcmd1bWVudHMuYXJndW1lbnRzTm9kZSgpKSB7CkBAIC0zMDY2LDcgKzMwNTksNyBA
QCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGwoT3Bjb2RlSUQgb3Bjb2Rl
SUQsIFJlZ2lzdGVySUQqIGRzdCwgUmVnaQogICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+
IGFyZ3VtZW50UmVnaXN0ZXI7CiAgICAgICAgICAgICBhcmd1bWVudFJlZ2lzdGVyID0gZXhwcmVz
c2lvbi0+ZW1pdEJ5dGVjb2RlKCp0aGlzLCBjYWxsQXJndW1lbnRzLmFyZ3VtZW50UmVnaXN0ZXIo
MCkpOwogICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRoaXNSZWdpc3RlciA9IGVtaXRN
b3ZlKG5ld1RlbXBvcmFyeSgpLCBjYWxsQXJndW1lbnRzLnRoaXNSZWdpc3RlcigpKTsKLSAgICAg
ICAgICAgIHJldHVybiBlbWl0Q2FsbFZhcmFyZ3Mob3Bjb2RlSUQgPT0gb3BfdGFpbF9jYWxsID8g
b3BfdGFpbF9jYWxsX3ZhcmFyZ3MgOiBvcF9jYWxsX3ZhcmFyZ3MsIGRzdCwgZnVuYywgY2FsbEFy
Z3VtZW50cy50aGlzUmVnaXN0ZXIoKSwgYXJndW1lbnRSZWdpc3Rlci5nZXQoKSwgbmV3VGVtcG9y
YXJ5KCksIDAsIGNhbGxBcmd1bWVudHMucHJvZmlsZUhvb2tSZWdpc3RlcigpLCBkaXZvdCwgZGl2
b3RTdGFydCwgZGl2b3RFbmQpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRDYWxsVmFyYXJncyhv
cGNvZGVJRCA9PSBvcF90YWlsX2NhbGwgPyBvcF90YWlsX2NhbGxfdmFyYXJncyA6IG9wX2NhbGxf
dmFyYXJncywgZHN0LCBmdW5jLCBjYWxsQXJndW1lbnRzLnRoaXNSZWdpc3RlcigpLCBhcmd1bWVu
dFJlZ2lzdGVyLmdldCgpLCBuZXdUZW1wb3JhcnkoKSwgMCwgZGl2b3QsIGRpdm90U3RhcnQsIGRp
dm90RW5kKTsKICAgICAgICAgfQogICAgICAgICBmb3IgKDsgbjsgbiA9IG4tPm1fbmV4dCkKICAg
ICAgICAgICAgIGVtaXROb2RlKGNhbGxBcmd1bWVudHMuYXJndW1lbnRSZWdpc3Rlcihhcmd1bWVu
dCsrKSwgbik7CkBAIC0zMDc3LDExICszMDcwLDYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRDYWxsKE9wY29kZUlEIG9wY29kZUlELCBSZWdpc3RlcklEKiBkc3QsIFJlZ2kK
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7ICsr
aSkKICAgICAgICAgY2FsbEZyYW1lLmFwcGVuZChuZXdUZW1wb3JhcnkoKSk7CiAKLSAgICBpZiAo
bV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7Ci0gICAgICAgIGVtaXRPcGNvZGUob3BfcHJvZmls
ZV93aWxsX2NhbGwpOwotICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoY2FsbEFyZ3VtZW50
cy5wcm9maWxlSG9va1JlZ2lzdGVyKCktPmluZGV4KCkpOwotICAgIH0KLQogICAgIGVtaXRFeHBy
ZXNzaW9uSW5mbyhkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOwogCiAgICAgUmVmUHRyPExh
YmVsPiBkb25lID0gbmV3TGFiZWwoKTsKQEAgLTMxMDcsMzcgKzMwOTUsMjYgQEAgUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsKE9wY29kZUlEIG9wY29kZUlELCBSZWdpc3Rl
cklEKiBkc3QsIFJlZ2kKICAgICBpZiAoZXhwZWN0ZWRGdW5jdGlvbiAhPSBOb0V4cGVjdGVkRnVu
Y3Rpb24pCiAgICAgICAgIGVtaXRMYWJlbChkb25lLmdldCgpKTsKIAotICAgIGlmIChtX3Nob3Vs
ZEVtaXRQcm9maWxlSG9va3MpIHsKLSAgICAgICAgZW1pdE9wY29kZShvcF9wcm9maWxlX2RpZF9j
YWxsKTsKLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGNhbGxBcmd1bWVudHMucHJvZmls
ZUhvb2tSZWdpc3RlcigpLT5pbmRleCgpKTsKLSAgICB9Ci0KICAgICByZXR1cm4gZHN0OwogfQog
Ci1SZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzKFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdp
c3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90
IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCitSZWdpc3RlcklEKiBCeXRlY29kZUdl
bmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVu
YywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lz
dGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCiB7Ci0gICAgcmV0dXJuIGVtaXRDYWxs
VmFyYXJncyhvcF9jYWxsX3ZhcmFyZ3MsIGRzdCwgZnVuYywgdGhpc1JlZ2lzdGVyLCBhcmd1bWVu
dHMsIGZpcnN0RnJlZVJlZ2lzdGVyLCBmaXJzdFZhckFyZ09mZnNldCwgcHJvZmlsZUhvb2tSZWdp
c3RlciwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKKyAgICByZXR1cm4gZW1pdENhbGxW
YXJhcmdzKG9wX2NhbGxfdmFyYXJncywgZHN0LCBmdW5jLCB0aGlzUmVnaXN0ZXIsIGFyZ3VtZW50
cywgZmlyc3RGcmVlUmVnaXN0ZXIsIGZpcnN0VmFyQXJnT2Zmc2V0LCBkaXZvdCwgZGl2b3RTdGFy
dCwgZGl2b3RFbmQpOwogfQogCi1SZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENh
bGxWYXJhcmdzSW5UYWlsUG9zaXRpb24oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5j
LCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0
ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIFJlZ2lz
dGVySUQqIHByb2ZpbGVIb29rUmVnaXN0ZXIsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBk
aXZvdEVuZCkKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3NJ
blRhaWxQb3NpdGlvbihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVy
SUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJz
dEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgY29uc3QgSlNUZXh0UG9z
aXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90RW5kKQogewotICAgIHJldHVybiBlbWl0Q2FsbFZhcmFyZ3MobV9p
blRhaWxQb3NpdGlvbiA/IG9wX3RhaWxfY2FsbF92YXJhcmdzIDogb3BfY2FsbF92YXJhcmdzLCBk
c3QsIGZ1bmMsIHRoaXNSZWdpc3RlciwgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdpc3RlciwgZmly
c3RWYXJBcmdPZmZzZXQsIHByb2ZpbGVIb29rUmVnaXN0ZXIsIGRpdm90LCBkaXZvdFN0YXJ0LCBk
aXZvdEVuZCk7CisgICAgcmV0dXJuIGVtaXRDYWxsVmFyYXJncyhtX2luVGFpbFBvc2l0aW9uID8g
b3BfdGFpbF9jYWxsX3ZhcmFyZ3MgOiBvcF9jYWxsX3ZhcmFyZ3MsIGRzdCwgZnVuYywgdGhpc1Jl
Z2lzdGVyLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyLCBmaXJzdFZhckFyZ09mZnNldCwg
ZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKIH0KIAotUmVnaXN0ZXJJRCogQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3RWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJ
RCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMs
IFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0
LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3Np
dGlvbiYgZGl2b3RFbmQpCitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0
cnVjdFZhcmFyZ3MoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklE
KiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RG
cmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdEVuZCkKIHsKLSAgICByZXR1cm4gZW1pdENhbGxWYXJhcmdzKG9wX2Nv
bnN0cnVjdF92YXJhcmdzLCBkc3QsIGZ1bmMsIHRoaXNSZWdpc3RlciwgYXJndW1lbnRzLCBmaXJz
dEZyZWVSZWdpc3RlciwgZmlyc3RWYXJBcmdPZmZzZXQsIHByb2ZpbGVIb29rUmVnaXN0ZXIsIGRp
dm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7CisgICAgcmV0dXJuIGVtaXRDYWxsVmFyYXJncyhv
cF9jb25zdHJ1Y3RfdmFyYXJncywgZHN0LCBmdW5jLCB0aGlzUmVnaXN0ZXIsIGFyZ3VtZW50cywg
Zmlyc3RGcmVlUmVnaXN0ZXIsIGZpcnN0VmFyQXJnT2Zmc2V0LCBkaXZvdCwgZGl2b3RTdGFydCwg
ZGl2b3RFbmQpOwogfQogICAgIAotUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRD
YWxsVmFyYXJncyhPcGNvZGVJRCBvcGNvZGUsIFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCog
ZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJl
Z2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBS
ZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2
b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RFbmQpCitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJh
cmdzKE9wY29kZUlEIG9wY29kZSwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBS
ZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJ
RCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKIHsKLSAgICBpZiAobV9zaG91bGRFbWl0UHJv
ZmlsZUhvb2tzKSB7Ci0gICAgICAgIGVtaXRNb3ZlKHByb2ZpbGVIb29rUmVnaXN0ZXIsIGZ1bmMp
OwotICAgICAgICBlbWl0T3Bjb2RlKG9wX3Byb2ZpbGVfd2lsbF9jYWxsKTsKLSAgICAgICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKHByb2ZpbGVIb29rUmVnaXN0ZXItPmluZGV4KCkpOwotICAgIH0K
LSAgICAKICAgICBlbWl0RXhwcmVzc2lvbkluZm8oZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5k
KTsKIAogICAgIGlmIChvcGNvZGUgPT0gb3BfdGFpbF9jYWxsX3ZhcmFyZ3MpCkBAIC0zMTU1LDEw
ICszMTMyLDYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsVmFyYXJn
cyhPcGNvZGVJRCBvcGNvZGUsIFJlZ2lzdGVySUQqIGRzdCwKICAgICBpbnN0cnVjdGlvbnMoKS5h
cHBlbmQoZmlyc3RWYXJBcmdPZmZzZXQpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhcnJh
eVByb2ZpbGUpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChwcm9maWxlKTsKLSAgICBpZiAo
bV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7Ci0gICAgICAgIGVtaXRPcGNvZGUob3BfcHJvZmls
ZV9kaWRfY2FsbCk7Ci0gICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChwcm9maWxlSG9va1Jl
Z2lzdGVyLT5pbmRleCgpKTsKLSAgICB9CiAgICAgcmV0dXJuIGRzdDsKIH0KIApAQCAtMzI0OSw5
ICszMjIyLDYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3Qo
UmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLAogewogICAgIEFTU0VSVChmdW5jLT5y
ZWZDb3VudCgpKTsKIAotICAgIGlmIChtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MpCi0gICAgICAg
IGVtaXRNb3ZlKGNhbGxBcmd1bWVudHMucHJvZmlsZUhvb2tSZWdpc3RlcigpLCBmdW5jKTsKLQog
ICAgIC8vIEdlbmVyYXRlIGNvZGUgZm9yIGFyZ3VtZW50cy4KICAgICB1bnNpZ25lZCBhcmd1bWVu
dCA9IDA7CiAgICAgaWYgKEFyZ3VtZW50c05vZGUqIGFyZ3VtZW50c05vZGUgPSBjYWxsQXJndW1l
bnRzLmFyZ3VtZW50c05vZGUoKSkgewpAQCAtMzI2MiwxOCArMzIzMiwxMyBAQCBSZWdpc3RlcklE
KiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVjdChSZWdpc3RlcklEKiBkc3QsIFJlZ2lz
dGVySUQqIGZ1bmMsCiAgICAgICAgICAgICBhdXRvIGV4cHJlc3Npb24gPSBzdGF0aWNfY2FzdDxT
cHJlYWRFeHByZXNzaW9uTm9kZSo+KG4tPm1fZXhwciktPmV4cHJlc3Npb24oKTsKICAgICAgICAg
ICAgIFJlZlB0cjxSZWdpc3RlcklEPiBhcmd1bWVudFJlZ2lzdGVyOwogICAgICAgICAgICAgYXJn
dW1lbnRSZWdpc3RlciA9IGV4cHJlc3Npb24tPmVtaXRCeXRlY29kZSgqdGhpcywgY2FsbEFyZ3Vt
ZW50cy5hcmd1bWVudFJlZ2lzdGVyKDApKTsKLSAgICAgICAgICAgIHJldHVybiBlbWl0Q29uc3Ry
dWN0VmFyYXJncyhkc3QsIGZ1bmMsIGNhbGxBcmd1bWVudHMudGhpc1JlZ2lzdGVyKCksIGFyZ3Vt
ZW50UmVnaXN0ZXIuZ2V0KCksIG5ld1RlbXBvcmFyeSgpLCAwLCBjYWxsQXJndW1lbnRzLnByb2Zp
bGVIb29rUmVnaXN0ZXIoKSwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKKyAgICAgICAg
ICAgIHJldHVybiBlbWl0Q29uc3RydWN0VmFyYXJncyhkc3QsIGZ1bmMsIGNhbGxBcmd1bWVudHMu
dGhpc1JlZ2lzdGVyKCksIGFyZ3VtZW50UmVnaXN0ZXIuZ2V0KCksIG5ld1RlbXBvcmFyeSgpLCAw
LCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOwogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICBmb3IgKEFyZ3VtZW50TGlzdE5vZGUqIG4gPSBhcmd1bWVudHNOb2RlLT5tX2xpc3ROb2Rl
OyBuOyBuID0gbi0+bV9uZXh0KQogICAgICAgICAgICAgZW1pdE5vZGUoY2FsbEFyZ3VtZW50cy5h
cmd1bWVudFJlZ2lzdGVyKGFyZ3VtZW50KyspLCBuKTsKICAgICB9CiAKLSAgICBpZiAobV9zaG91
bGRFbWl0UHJvZmlsZUhvb2tzKSB7Ci0gICAgICAgIGVtaXRPcGNvZGUob3BfcHJvZmlsZV93aWxs
X2NhbGwpOwotICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoY2FsbEFyZ3VtZW50cy5wcm9m
aWxlSG9va1JlZ2lzdGVyKCktPmluZGV4KCkpOwotICAgIH0KLQogICAgIC8vIFJlc2VydmUgc3Bh
Y2UgZm9yIGNhbGwgZnJhbWUuCiAgICAgVmVjdG9yPFJlZlB0cjxSZWdpc3RlcklEPiwgSlNTdGFj
azo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSwgVW5zYWZlVmVjdG9yT3ZlcmZsb3c+IGNhbGxGcmFtZTsK
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IEpTU3RhY2s6OkNhbGxGcmFtZUhlYWRlclNpemU7ICsr
aSkKQEAgLTMyOTgsMTEgKzMyNjMsNiBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdENvbnN0cnVjdChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsCiAgICAgaWYg
KGV4cGVjdGVkRnVuY3Rpb24gIT0gTm9FeHBlY3RlZEZ1bmN0aW9uKQogICAgICAgICBlbWl0TGFi
ZWwoZG9uZS5nZXQoKSk7CiAKLSAgICBpZiAobV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7Ci0g
ICAgICAgIGVtaXRPcGNvZGUob3BfcHJvZmlsZV9kaWRfY2FsbCk7Ci0gICAgICAgIGluc3RydWN0
aW9ucygpLmFwcGVuZChjYWxsQXJndW1lbnRzLnByb2ZpbGVIb29rUmVnaXN0ZXIoKS0+aW5kZXgo
KSk7Ci0gICAgfQotCiAgICAgcmV0dXJuIGRzdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IDk5YmM3
OTcuLjIyY2U0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTc1LDExICs3NSw5IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBSZWdpc3RlcklEKiBhcmd1bWVudFJlZ2lzdGVyKHVuc2lnbmVkIGkpIHsg
cmV0dXJuIG1fYXJndltpICsgMV0uZ2V0KCk7IH0KICAgICAgICAgdW5zaWduZWQgc3RhY2tPZmZz
ZXQoKSB7IHJldHVybiAtbV9hcmd2WzBdLT5pbmRleCgpICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVh
ZGVyU2l6ZTsgfQogICAgICAgICB1bnNpZ25lZCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcygp
IHsgcmV0dXJuIG1fYXJndi5zaXplKCkgLSBtX3BhZGRpbmc7IH0KLSAgICAgICAgUmVnaXN0ZXJJ
RCogcHJvZmlsZUhvb2tSZWdpc3RlcigpIHsgcmV0dXJuIG1fcHJvZmlsZUhvb2tSZWdpc3Rlci5n
ZXQoKTsgfQogICAgICAgICBBcmd1bWVudHNOb2RlKiBhcmd1bWVudHNOb2RlKCkgeyByZXR1cm4g
bV9hcmd1bWVudHNOb2RlOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWZQdHI8UmVnaXN0
ZXJJRD4gbV9wcm9maWxlSG9va1JlZ2lzdGVyOwogICAgICAgICBBcmd1bWVudHNOb2RlKiBtX2Fy
Z3VtZW50c05vZGU7CiAgICAgICAgIFZlY3RvcjxSZWZQdHI8UmVnaXN0ZXJJRD4sIDgsIFVuc2Fm
ZVZlY3Rvck92ZXJmbG93PiBtX2FyZ3Y7CiAgICAgICAgIHVuc2lnbmVkIG1fcGFkZGluZzsKQEAg
LTI2OSwxMCArMjY3LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAg
dHlwZWRlZiBEZWNsYXJhdGlvblN0YWNrczo6RnVuY3Rpb25TdGFjayBGdW5jdGlvblN0YWNrOwog
Ci0gICAgICAgIEJ5dGVjb2RlR2VuZXJhdG9yKFZNJiwgUHJvZ3JhbU5vZGUqLCBVbmxpbmtlZFBy
b2dyYW1Db2RlQmxvY2sqLCBEZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSwgY29uc3QgVmFyaWFi
bGVFbnZpcm9ubWVudCopOwotICAgICAgICBCeXRlY29kZUdlbmVyYXRvcihWTSYsIEZ1bmN0aW9u
Tm9kZSosIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqLCBEZWJ1Z2dlck1vZGUsIFByb2ZpbGVy
TW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOwotICAgICAgICBCeXRlY29kZUdlbmVy
YXRvcihWTSYsIEV2YWxOb2RlKiwgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiwgRGVidWdnZXJNb2Rl
LCBQcm9maWxlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKLSAgICAgICAgQnl0
ZWNvZGVHZW5lcmF0b3IoVk0mLCBNb2R1bGVQcm9ncmFtTm9kZSosIFVubGlua2VkTW9kdWxlUHJv
Z3JhbUNvZGVCbG9jayosIERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJs
ZUVudmlyb25tZW50Kik7CisgICAgICAgIEJ5dGVjb2RlR2VuZXJhdG9yKFZNJiwgUHJvZ3JhbU5v
ZGUqLCBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqLCBEZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlh
YmxlRW52aXJvbm1lbnQqKTsKKyAgICAgICAgQnl0ZWNvZGVHZW5lcmF0b3IoVk0mLCBGdW5jdGlv
bk5vZGUqLCBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiwgRGVidWdnZXJNb2RlLCBjb25zdCBW
YXJpYWJsZUVudmlyb25tZW50Kik7CisgICAgICAgIEJ5dGVjb2RlR2VuZXJhdG9yKFZNJiwgRXZh
bE5vZGUqLCBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqLCBEZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlh
YmxlRW52aXJvbm1lbnQqKTsKKyAgICAgICAgQnl0ZWNvZGVHZW5lcmF0b3IoVk0mLCBNb2R1bGVQ
cm9ncmFtTm9kZSosIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayosIERlYnVnZ2VyTW9k
ZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOwogCiAgICAgICAgIH5CeXRlY29kZUdlbmVy
YXRvcigpOwogICAgICAgICAKQEAgLTU3Nyw4ICs1NzUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdENhbGwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBm
dW5jLCBFeHBlY3RlZEZ1bmN0aW9uLCBDYWxsQXJndW1lbnRzJiwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90RW5kKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENhbGxJblRhaWxQ
b3NpdGlvbihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIEV4cGVjdGVkRnVuY3Rp
b24sIENhbGxBcmd1bWVudHMmLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQp
OwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2FsbEV2YWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBmdW5jLCBDYWxsQXJndW1lbnRzJiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90RW5kKTsKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENhbGxWYXJhcmdzKFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdp
c3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90
IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwotICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlvbihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQq
IGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBS
ZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwg
UmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tSZWdpc3RlciwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRp
b24mIGRpdm90RW5kKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENhbGxWYXJhcmdzKFJlZ2lz
dGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBS
ZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQz
Ml90IGZpcnN0VmFyQXJnT2Zmc2V0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RF
bmQpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlvbihS
ZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3Rl
ciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3Rlciwg
aW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90RW5kKTsKIAogICAgICAgICBlbnVtIFByb3BlcnR5RGVzY3JpcHRvck9wdGlvbiB7CiAgICAg
ICAgICAgICBQcm9wZXJ0eUNvbmZpZ3VyYWJsZSA9IDEsCkBAIC03MDQsNyArNzAyLDYgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICAgICAgQ29kZVR5cGUgY29kZVR5cGUoKSBjb25zdCB7IHJldHVy
biBtX2NvZGVUeXBlOyB9CiAKLSAgICAgICAgYm9vbCBzaG91bGRFbWl0UHJvZmlsZUhvb2tzKCkg
eyByZXR1cm4gbV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzOyB9CiAgICAgICAgIGJvb2wgc2hvdWxk
RW1pdERlYnVnSG9va3MoKSB7IHJldHVybiBtX3Nob3VsZEVtaXREZWJ1Z0hvb2tzOyB9CiAgICAg
ICAgIAogICAgICAgICBib29sIGlzU3RyaWN0TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZUJs
b2NrLT5pc1N0cmljdE1vZGUoKTsgfQpAQCAtODQ5LDggKzg0Niw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIHZvaWQgZ2V0VmFyaWFibGVzVW5kZXJURFooVmFyaWFibGVFbnZpcm9ubWVu
dCYpOwogCi0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRDb25zdHJ1Y3RWYXJhcmdzKFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdp
c3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90
IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwotICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Q2FsbFZhcmFyZ3MoT3Bjb2RlSUQsIFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVu
YywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lz
dGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdp
c3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3Qs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RFbmQpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q29uc3RydWN0VmFyYXJncyhSZWdp
c3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3Rlciwg
UmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50
MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
RW5kKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENhbGxWYXJhcmdzKE9wY29kZUlELCBSZWdp
c3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3Rlciwg
UmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50
MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
RW5kKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgZW1pdExvZ1NoYWRvd0NoaWNrZW5Qcm9sb2d1
ZUlmTmVjZXNzYXJ5KCk7CiAgICAgICAgIHZvaWQgZW1pdExvZ1NoYWRvd0NoaWNrZW5UYWlsSWZO
ZWNlc3NhcnkoKTsKQEAgLTg3Miw3ICs4NjksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
VmVjdG9yPFVubGlua2VkSW5zdHJ1Y3Rpb24sIDAsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiBtX2lu
c3RydWN0aW9uczsKIAogICAgICAgICBib29sIG1fc2hvdWxkRW1pdERlYnVnSG9va3M7Ci0gICAg
ICAgIGJvb2wgbV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzOwogCiAgICAgICAgIHN0cnVjdCBTeW1i
b2xUYWJsZVN0YWNrRW50cnkgewogICAgICAgICAgICAgU3ltYm9sVGFibGUqIG1fc3ltYm9sVGFi
bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAKaW5kZXggZjI1MzBlZS4uM2JiZDJmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcApAQCAtNzA3LDkgKzcwNyw2
IEBAIENhbGxBcmd1bWVudHM6OkNhbGxBcmd1bWVudHMoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVy
YXRvciwgQXJndW1lbnRzTm9kZSogYXJndW1lCiAgICAgOiBtX2FyZ3VtZW50c05vZGUoYXJndW1l
bnRzTm9kZSkKICAgICAsIG1fcGFkZGluZygwKQogewotICAgIGlmIChnZW5lcmF0b3Iuc2hvdWxk
RW1pdFByb2ZpbGVIb29rcygpKQotICAgICAgICBtX3Byb2ZpbGVIb29rUmVnaXN0ZXIgPSBnZW5l
cmF0b3IubmV3VGVtcG9yYXJ5KCk7Ci0KICAgICBzaXplX3QgYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMgPSAxICsgYWRkaXRpb25hbEFyZ3VtZW50czsgLy8gJ3RoaXMnIHJlZ2lzdGVyLgogICAg
IGlmIChhcmd1bWVudHNOb2RlKSB7CiAgICAgICAgIGZvciAoQXJndW1lbnRMaXN0Tm9kZSogbm9k
ZSA9IGFyZ3VtZW50c05vZGUtPm1fbGlzdE5vZGU7IG5vZGU7IG5vZGUgPSBub2RlLT5tX25leHQp
CkBAIC0xMDIxLDE2ICsxMDE4LDEzIEBAIFJlZ2lzdGVySUQqIENhbGxGdW5jdGlvbkNhbGxEb3RO
b2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwKICAgICBSZWZQ
dHI8UmVnaXN0ZXJJRD4gcmV0dXJuVmFsdWUgPSBnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihk
c3QpOwogICAgIHsKICAgICAgICAgaWYgKG1fYXJncy0+bV9saXN0Tm9kZSAmJiBtX2FyZ3MtPm1f
bGlzdE5vZGUtPm1fZXhwciAmJiBtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fZXhwci0+aXNTcHJlYWRF
eHByZXNzaW9uKCkpIHsKLSAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9maWxlSG9v
a1JlZ2lzdGVyOwotICAgICAgICAgICAgaWYgKGdlbmVyYXRvci5zaG91bGRFbWl0UHJvZmlsZUhv
b2tzKCkpCi0gICAgICAgICAgICAgICAgcHJvZmlsZUhvb2tSZWdpc3RlciA9IGdlbmVyYXRvci5u
ZXdUZW1wb3JhcnkoKTsKICAgICAgICAgICAgIFNwcmVhZEV4cHJlc3Npb25Ob2RlKiBzcHJlYWQg
PSBzdGF0aWNfY2FzdDxTcHJlYWRFeHByZXNzaW9uTm9kZSo+KG1fYXJncy0+bV9saXN0Tm9kZS0+
bV9leHByKTsKICAgICAgICAgICAgIEV4cHJlc3Npb25Ob2RlKiBzdWJqZWN0ID0gc3ByZWFkLT5l
eHByZXNzaW9uKCk7CiAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYXJndW1lbnRzUmVn
aXN0ZXI7CiAgICAgICAgICAgICBhcmd1bWVudHNSZWdpc3RlciA9IGdlbmVyYXRvci5lbWl0Tm9k
ZShzdWJqZWN0KTsKICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8oc3By
ZWFkLT5kaXZvdCgpLCBzcHJlYWQtPmRpdm90U3RhcnQoKSwgc3ByZWFkLT5kaXZvdEVuZCgpKTsK
ICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0aGlzUmVnaXN0ZXIgPSBnZW5lcmF0b3Iu
ZW1pdEdldEJ5VmFsKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgYXJndW1lbnRzUmVnaXN0ZXIu
Z2V0KCksIGdlbmVyYXRvci5lbWl0TG9hZCgwLCBqc051bWJlcigwKSkpOwotICAgICAgICAgICAg
Z2VuZXJhdG9yLmVtaXRDYWxsVmFyYXJnc0luVGFpbFBvc2l0aW9uKHJldHVyblZhbHVlLmdldCgp
LCBiYXNlLmdldCgpLCB0aGlzUmVnaXN0ZXIuZ2V0KCksIGFyZ3VtZW50c1JlZ2lzdGVyLmdldCgp
LCBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIDEsIHByb2ZpbGVIb29rUmVnaXN0ZXIuZ2V0KCks
IGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgICAgICAgICBnZW5lcmF0
b3IuZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRpb24ocmV0dXJuVmFsdWUuZ2V0KCksIGJhc2Uu
Z2V0KCksIHRoaXNSZWdpc3Rlci5nZXQoKSwgYXJndW1lbnRzUmVnaXN0ZXIuZ2V0KCksIGdlbmVy
YXRvci5uZXdUZW1wb3JhcnkoKSwgMSwgZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgp
KTsKICAgICAgICAgfSBlbHNlIGlmIChtX2FyZ3MtPm1fbGlzdE5vZGUgJiYgbV9hcmdzLT5tX2xp
c3ROb2RlLT5tX2V4cHIpIHsKICAgICAgICAgICAgIEFyZ3VtZW50TGlzdE5vZGUqIG9sZExpc3Qg
PSBtX2FyZ3MtPm1fbGlzdE5vZGU7CiAgICAgICAgICAgICBtX2FyZ3MtPm1fbGlzdE5vZGUgPSBt
X2FyZ3MtPm1fbGlzdE5vZGUtPm1fbmV4dDsKQEAgLTEwOTQsOSArMTA4OCw2IEBAIFJlZ2lzdGVy
SUQqIEFwcGx5RnVuY3Rpb25DYWxsRG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IsCiAgICAgICAgICAgICBBcmd1bWVudExpc3ROb2RlKiBvbGRMaXN0ID0g
bV9hcmdzLT5tX2xpc3ROb2RlOwogICAgICAgICAgICAgaWYgKG1fYXJncy0+bV9saXN0Tm9kZS0+
bV9leHByLT5pc1NwcmVhZEV4cHJlc3Npb24oKSkgewogICAgICAgICAgICAgICAgIFNwcmVhZEV4
cHJlc3Npb25Ob2RlKiBzcHJlYWQgPSBzdGF0aWNfY2FzdDxTcHJlYWRFeHByZXNzaW9uTm9kZSo+
KG1fYXJncy0+bV9saXN0Tm9kZS0+bV9leHByKTsKLSAgICAgICAgICAgICAgICBSZWZQdHI8UmVn
aXN0ZXJJRD4gcHJvZmlsZUhvb2tSZWdpc3RlcjsKLSAgICAgICAgICAgICAgICBpZiAoZ2VuZXJh
dG9yLnNob3VsZEVtaXRQcm9maWxlSG9va3MoKSkKLSAgICAgICAgICAgICAgICAgICAgcHJvZmls
ZUhvb2tSZWdpc3RlciA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKICAgICAgICAgICAgICAg
ICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVhbEZ1bmN0aW9uID0gZ2VuZXJhdG9yLmVtaXRNb3ZlKGdl
bmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgYmFzZS5nZXQoKSk7CiAgICAgICAgICAgICAgICAgUmVm
UHRyPFJlZ2lzdGVySUQ+IGluZGV4ID0gZ2VuZXJhdG9yLmVtaXRMb2FkKGdlbmVyYXRvci5uZXdU
ZW1wb3JhcnkoKSwganNOdW1iZXIoMCkpOwogICAgICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiB0aGlzUmVnaXN0ZXIgPSBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJhdG9yLm5ld1RlbXBv
cmFyeSgpLCBqc1VuZGVmaW5lZCgpKTsKQEAgLTExMjAsNyArMTExMSw3IEBAIFJlZ2lzdGVySUQq
IEFwcGx5RnVuY3Rpb25DYWxsRG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9y
JiBnZW5lcmF0b3IsCiAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoZW5k
LmdldCgpKTsKICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgIGdlbmVyYXRvci5l
bWl0RW51bWVyYXRpb24odGhpcywgc3ByZWFkLT5leHByZXNzaW9uKCksIGV4dHJhY3Rvcik7Ci0g
ICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRDYWxsVmFyYXJnc0luVGFpbFBvc2l0aW9uKHJl
dHVyblZhbHVlLmdldCgpLCByZWFsRnVuY3Rpb24uZ2V0KCksIHRoaXNSZWdpc3Rlci5nZXQoKSwg
YXJndW1lbnRzUmVnaXN0ZXIuZ2V0KCksIGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgMCwgcHJv
ZmlsZUhvb2tSZWdpc3Rlci5nZXQoKSwgZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgp
KTsKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRp
b24ocmV0dXJuVmFsdWUuZ2V0KCksIHJlYWxGdW5jdGlvbi5nZXQoKSwgdGhpc1JlZ2lzdGVyLmdl
dCgpLCBhcmd1bWVudHNSZWdpc3Rlci5nZXQoKSwgZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAw
LCBkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fbmV4dCkgewogICAgICAgICAgICAgICAgIEFTU0VS
VChtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fbmV4dC0+bV9leHByLT5pc1NpbXBsZUFycmF5KCkpOwog
ICAgICAgICAgICAgICAgIEFTU0VSVCghbV9hcmdzLT5tX2xpc3ROb2RlLT5tX25leHQtPm1fbmV4
dCk7CkBAIC0xMTQ1LDkgKzExMzYsNiBAQCBSZWdpc3RlcklEKiBBcHBseUZ1bmN0aW9uQ2FsbERv
dE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLAogICAgICAg
ICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKG1fYXJncy0+bV9saXN0Tm9kZSAmJiBt
X2FyZ3MtPm1fbGlzdE5vZGUtPm1fbmV4dCk7Ci0gICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBw
cm9maWxlSG9va1JlZ2lzdGVyOwotICAgICAgICBpZiAoZ2VuZXJhdG9yLnNob3VsZEVtaXRQcm9m
aWxlSG9va3MoKSkKLSAgICAgICAgICAgIHByb2ZpbGVIb29rUmVnaXN0ZXIgPSBnZW5lcmF0b3Iu
bmV3VGVtcG9yYXJ5KCk7CiAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZWFsRnVuY3Rpb24g
PSBnZW5lcmF0b3IuZW1pdE1vdmUoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3QpLCBiYXNl
LmdldCgpKTsKICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRoaXNSZWdpc3RlciA9IGdlbmVy
YXRvci5lbWl0Tm9kZShtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fZXhwcik7CiAgICAgICAgIFJlZlB0
cjxSZWdpc3RlcklEPiBhcmdzUmVnaXN0ZXI7CkBAIC0xMTU5LDcgKzExNDcsNyBAQCBSZWdpc3Rl
cklEKiBBcHBseUZ1bmN0aW9uQ2FsbERvdE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yLAogICAgICAgICB3aGlsZSAoKGFyZ3MgPSBhcmdzLT5tX25leHQpKQog
ICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGFyZ3MtPm1fZXhwcik7CiAKLSAgICAgICAg
Z2VuZXJhdG9yLmVtaXRDYWxsVmFyYXJnc0luVGFpbFBvc2l0aW9uKHJldHVyblZhbHVlLmdldCgp
LCByZWFsRnVuY3Rpb24uZ2V0KCksIHRoaXNSZWdpc3Rlci5nZXQoKSwgYXJnc1JlZ2lzdGVyLmdl
dCgpLCBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIDAsIHByb2ZpbGVIb29rUmVnaXN0ZXIuZ2V0
KCksIGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CisgICAgICAgIGdlbmVyYXRv
ci5lbWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlvbihyZXR1cm5WYWx1ZS5nZXQoKSwgcmVhbEZ1
bmN0aW9uLmdldCgpLCB0aGlzUmVnaXN0ZXIuZ2V0KCksIGFyZ3NSZWdpc3Rlci5nZXQoKSwgZ2Vu
ZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAwLCBkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5k
KCkpOwogICAgIH0KICAgICBpZiAoZW1pdENhbGxDaGVjaykgewogICAgICAgICBnZW5lcmF0b3Iu
ZW1pdEp1bXAoZW5kLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCAwOTA5MWVjLi5kMDgz
MmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0yODQ0LDggKzI4NDQsNiBAQCBib29sIEFic3Ry
YWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25l
ZCBjbG9iYmVyTGltaQogICAgIGNhc2UgTG9nU2hhZG93Q2hpY2tlblRhaWw6CiAgICAgICAgIGJy
ZWFrOwogCi0gICAgY2FzZSBQcm9maWxlV2lsbENhbGw6Ci0gICAgY2FzZSBQcm9maWxlRGlkQ2Fs
bDoKICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93Ogog
ICAgIGNhc2UgUGhhbnRvbToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKaW5kZXggNmQwNzlmNi4uODVkOGQyMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTM3OTksMTYgKzM3OTks
NiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAg
ICAgICAgICAgTkVYVF9PUENPREUob3BfZGVidWcpOwogICAgICAgICB9CiAKLSAgICAgICAgY2Fz
ZSBvcF9wcm9maWxlX3dpbGxfY2FsbDogewotICAgICAgICAgICAgYWRkVG9HcmFwaChQcm9maWxl
V2lsbENhbGwpOwotICAgICAgICAgICAgTkVYVF9PUENPREUob3BfcHJvZmlsZV93aWxsX2NhbGwp
OwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBvcF9wcm9maWxlX2RpZF9jYWxsOiB7Ci0gICAg
ICAgICAgICBhZGRUb0dyYXBoKFByb2ZpbGVEaWRDYWxsKTsKLSAgICAgICAgICAgIE5FWFRfT1BD
T0RFKG9wX3Byb2ZpbGVfZGlkX2NhbGwpOwotICAgICAgICB9Ci0KICAgICAgICAgY2FzZSBvcF9t
b3Y6IHsKICAgICAgICAgICAgIE5vZGUqIG9wID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CiAgICAgICAgICAgICBzZXQoVmlydHVhbFJlZ2lz
dGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpLCBvcCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKaW5kZXggY2MyZDQ3NC4uMDY2Njlk
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcApA
QCAtMTI0LDggKzEyNCw2IEBAIENhcGFiaWxpdHlMZXZlbCBjYXBhYmlsaXR5TGV2ZWwoT3Bjb2Rl
SUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBJbnN0cnVjCiAgICAgY2FzZSBvcF9t
b2Q6CiAgICAgY2FzZSBvcF9kaXY6CiAgICAgY2FzZSBvcF9kZWJ1ZzoKLSAgICBjYXNlIG9wX3By
b2ZpbGVfd2lsbF9jYWxsOgotICAgIGNhc2Ugb3BfcHJvZmlsZV9kaWRfY2FsbDoKICAgICBjYXNl
IG9wX3Byb2ZpbGVfdHlwZToKICAgICBjYXNlIG9wX3Byb2ZpbGVfY29udHJvbF9mbG93OgogICAg
IGNhc2Ugb3BfbW92OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
bG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApp
bmRleCBmNjM3NTQ5Li5mYzM1Y2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Ns
b2JiZXJpemUuaApAQCAtMzYxLDggKzM2MSw2IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3Jh
cGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAg
ICAgY2FzZSBDaGVja1RpZXJVcEF0UmV0dXJuOgogICAgIGNhc2UgQ2hlY2tUaWVyVXBBbmRPU1JF
bnRlcjoKICAgICBjYXNlIExvb3BIaW50OgotICAgIGNhc2UgUHJvZmlsZVdpbGxDYWxsOgotICAg
IGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgY2FzZSBQcm9maWxlVHlwZToKICAgICBjYXNlIFBy
b2ZpbGVDb250cm9sRmxvdzoKICAgICBjYXNlIFN0b3JlQmFycmllcjoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCA2Y2YwZDBiLi41ZmYyZWNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBAIC0xNTAsOCArMTUwLDYgQEAgYm9vbCBk
b2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgQ29uc3RydWN0Rm9yd2Fy
ZFZhcmFyZ3M6CiAgICAgY2FzZSBUYWlsQ2FsbEZvcndhcmRWYXJhcmdzOgogICAgIGNhc2UgVGFp
bENhbGxGb3J3YXJkVmFyYXJnc0lubGluZWRDYWxsZXI6Ci0gICAgY2FzZSBQcm9maWxlV2lsbENh
bGw6Ci0gICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAg
IGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgogICAgIGNhc2UgT3ZlcnJpZGVzSGFzSW5zdGFuY2U6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAppbmRleCAwMzk1
YTNmLi4xMzU5ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAKQEAgLTE1MzUsOCArMTUzNSw2IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgTmV3T2Jq
ZWN0OgogICAgICAgICBjYXNlIE5ld0FycmF5QnVmZmVyOgogICAgICAgICBjYXNlIE5ld1JlZ2V4
cDoKLSAgICAgICAgY2FzZSBQcm9maWxlV2lsbENhbGw6Ci0gICAgICAgIGNhc2UgUHJvZmlsZURp
ZENhbGw6CiAgICAgICAgIGNhc2UgRGVsZXRlQnlJZDoKICAgICAgICAgY2FzZSBEZWxldGVCeVZh
bDoKICAgICAgICAgY2FzZSBJc0FycmF5T2JqZWN0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdOb2RlVHlwZS5oCmluZGV4IDE4MWM3OTAuLjE5Nzg3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTMwMyw4ICszMDMsNiBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oTWF0ZXJpYWxpemVDcmVhdGVBY3RpdmF0aW9uLCBO
b2RlUmVzdWx0SlMgfCBOb2RlSGFzVmFyQXJncykgXAogICAgIFwKICAgICAvKiBOb2RlcyBmb3Ig
bWlzYyBvcGVyYXRpb25zLiAqL1wKLSAgICBtYWNybyhQcm9maWxlV2lsbENhbGwsIE5vZGVNdXN0
R2VuZXJhdGUpIFwKLSAgICBtYWNybyhQcm9maWxlRGlkQ2FsbCwgTm9kZU11c3RHZW5lcmF0ZSkg
XAogICAgIG1hY3JvKE92ZXJyaWRlc0hhc0luc3RhbmNlLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9k
ZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhJbnN0YW5jZU9mLCBOb2RlUmVzdWx0Qm9vbGVh
bikgXAogICAgIG1hY3JvKEluc3RhbmNlT2ZDdXN0b20sIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2Rl
UmVzdWx0Qm9vbGVhbikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCAxNjYxZTk0Li41MDY4
NGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Q
cm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1By
ZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtMTAzNSw4ICsxMDM1LDYgQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBERkc6Okp1bXA6CiAgICAgICAgIGNhc2UgQnJhbmNoOgogICAgICAg
ICBjYXNlIFN3aXRjaDoKLSAgICAgICAgY2FzZSBQcm9maWxlV2lsbENhbGw6Ci0gICAgICAgIGNh
c2UgUHJvZmlsZURpZENhbGw6CiAgICAgICAgIGNhc2UgUHJvZmlsZVR5cGU6CiAgICAgICAgIGNh
c2UgUHJvZmlsZUNvbnRyb2xGbG93OgogICAgICAgICBjYXNlIFRocm93UmVmZXJlbmNlRXJyb3I6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IGY5
YmRlYjkuLjYyOWUwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oCkBAIC0yNTAsOCArMjUwLDYgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0
U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgTmV3
QXJyYXlXaXRoU2l6ZToKICAgICBjYXNlIE5ld0FycmF5QnVmZmVyOgogICAgIGNhc2UgTmV3UmVn
ZXhwOgotICAgIGNhc2UgUHJvZmlsZVdpbGxDYWxsOgotICAgIGNhc2UgUHJvZmlsZURpZENhbGw6
CiAgICAgY2FzZSBQcm9maWxlVHlwZToKICAgICBjYXNlIFByb2ZpbGVDb250cm9sRmxvdzoKICAg
ICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IGQ3NDBkNzcuLjMzOGFiYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcApAQCAtNTE5Nyw4ICs1MTk3LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICBub1Jlc3VsdChub2RlKTsKICAgICAgICAgYnJlYWs7
CiAKLSAgICBjYXNlIFByb2ZpbGVXaWxsQ2FsbDoKLSAgICBjYXNlIFByb2ZpbGVEaWRDYWxsOgog
ICAgIGNhc2UgUGhhbnRvbUxvY2FsOgogICAgIGNhc2UgTG9vcEhpbnQ6CiAgICAgICAgIC8vIFRo
aXMgaXMgYSBuby1vcC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCmluZGV4IGQzYThiYTguLjYwZGUzMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAtNDgxMiw4ICs0
ODEyLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAg
ICBub1Jlc3VsdChub2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAgICAgIAotICAgIGNhc2UgUHJv
ZmlsZVdpbGxDYWxsOgotICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgY2FzZSBQaGFudG9t
TG9jYWw6CiAgICAgY2FzZSBMb29wSGludDoKICAgICAgICAgLy8gVGhpcyBpcyBhIG5vLW9wLgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dEJhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dEJhc2UuY3BwCmluZGV4IDE4NjRlODQuLjljYWE0ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAKQEAgLTM2LDcg
KzM2LDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJKU0NJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKLSNpbmNsdWRlICJMZWdhY3lQcm9m
aWxlci5oIgogI2luY2x1ZGUgIlNjcmlwdEZ1bmN0aW9uQ2FsbC5oIgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC03MiwxNyArNzEsOCBAQCBjb25zdCBEZXByZWNhdGVkOjpT
Y3JpcHRPYmplY3QmIEluamVjdGVkU2NyaXB0QmFzZTo6aW5qZWN0ZWRTY3JpcHRPYmplY3QoKSBj
b25zdAogSlNDOjpKU1ZhbHVlIEluamVjdGVkU2NyaXB0QmFzZTo6Y2FsbEZ1bmN0aW9uV2l0aEV2
YWxFbmFibGVkKERlcHJlY2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCYgZnVuY3Rpb24sIGJvb2wm
IGhhZEV4Y2VwdGlvbikgY29uc3QKIHsKICAgICBKU0M6OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUg
PSBtX2luamVjdGVkU2NyaXB0T2JqZWN0LnNjcmlwdFN0YXRlKCk7Ci0gICAgSlNDOjpMZWdhY3lQ
cm9maWxlcjo6cHJvZmlsZXIoKS0+c3VzcGVuZFByb2ZpbGluZyhzY3JpcHRTdGF0ZSk7Ci0KLSAg
ICBKU0M6OkpTVmFsdWUgcmVzdWx0VmFsdWU7Ci0gICAgewotICAgICAgICBKU0M6OkRlYnVnZ2Vy
RXZhbEVuYWJsZXIgZXZhbEVuYWJsZXIoc2NyaXB0U3RhdGUpOwotICAgICAgICByZXN1bHRWYWx1
ZSA9IGZ1bmN0aW9uLmNhbGwoaGFkRXhjZXB0aW9uKTsKLSAgICB9Ci0KLSAgICBKU0M6OkxlZ2Fj
eVByb2ZpbGVyOjpwcm9maWxlcigpLT51bnN1c3BlbmRQcm9maWxpbmcoc2NyaXB0U3RhdGUpOwot
Ci0gICAgcmV0dXJuIHJlc3VsdFZhbHVlOworICAgIEpTQzo6RGVidWdnZXJFdmFsRW5hYmxlciBl
dmFsRW5hYmxlcihzY3JpcHRTdGF0ZSk7CisgICAgcmV0dXJuIGZ1bmN0aW9uLmNhbGwoaGFkRXhj
ZXB0aW9uKTsKIH0KIAogdm9pZCBJbmplY3RlZFNjcmlwdEJhc2U6Om1ha2VDYWxsKERlcHJlY2F0
ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCYgZnVuY3Rpb24sIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4q
IHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJv
dG9jb2wvVGltZWxpbmUuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJv
dG9jb2wvVGltZWxpbmUuanNvbgppbmRleCA4MjJmZjg2Li42OTE2OWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL1RpbWVsaW5lLmpzb24KKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9UaW1lbGluZS5qc29u
CkBAIC01MSw0MCArNTEsNiBAQAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0
eXBlIjogIm9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJFdmVudCBkYXRhLiIgfSwKICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImNoaWxkcmVuIiwgInR5cGUiOiAiYXJyYXkiLCAib3B0aW9uYWwi
OiB0cnVlLCAiaXRlbXMiOiB7ICIkcmVmIjogIlRpbWVsaW5lRXZlbnQiIH0sICJkZXNjcmlwdGlv
biI6ICJOZXN0ZWQgcmVjb3Jkcy4iIH0KICAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICAgImlkIjogIkNQVVByb2ZpbGVOb2RlQWdncmVnYXRlQ2FsbEluZm8i
LAotICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJBZ2dyZWdhdGUgQ1BVIFByb2ZpbGUgY2FsbCBpbmZvLiBIb2xkcyB0aW1lIGluZm9ybWF0
aW9uIGZvciBhbGwgdGhlIGNhbGxzIHRoYXQgaGFwcGVuZWQgb24gYSBub2RlLiIsCi0gICAgICAg
ICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNhbGxDb3Vu
dCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJUb3RhbCBudW1iZXIgb2YgY2Fs
bHMuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3RhcnRUaW1lIiwgInR5cGUiOiAi
bnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0IHRpbWUgZm9yIHRoZSBmaXJzdCBjYWxsLiIg
fSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVuZFRpbWUiLCAidHlwZSI6ICJudW1iZXIi
LCAiZGVzY3JpcHRpb24iOiAiRW5kIHRpbWUgZm9yIHRoZSBsYXN0IGNhbGwuIiB9LAotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAidG90YWxUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2Ny
aXB0aW9uIjogIlRvdGFsIGV4ZWN1dGlvbiB0aW1lIGZvciBhbGwgY2FsbHMgY29tYmluZWQuIiB9
Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6
ICJDUFVQcm9maWxlTm9kZSIsCi0gICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIkNQVSBQcm9maWxlIG5vZGUuIEhvbGRzIGNhbGxzaXRlIGlu
Zm9ybWF0aW9uLCBleGVjdXRpb24gc3RhdGlzdGljcyBhbmQgY2hpbGQgbm9kZXMuIiwKLSAgICAg
ICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWQiLCAi
dHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0
aGlzIGNhbGwgc2l0ZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjYWxsSW5mbyIs
ICIkcmVmIjogIkNQVVByb2ZpbGVOb2RlQWdncmVnYXRlQ2FsbEluZm8iLCAiZGVzY3JpcHRpb24i
OiAiQWdncmVnYXRlIGluZm8gYWJvdXQgYWxsIHRoZSBjYWxscyB0aGF0IG1ha2luZyB1cCB0aGlz
IG5vZGUuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnVuY3Rpb25OYW1lIiwgInR5
cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9u
IG5hbWUuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3Ry
aW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlVSTC4iIH0sCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJsaW5lTnVtYmVyIiwgInR5cGUiOiAiaW50ZWdlciIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJMaW5lIG51bWJlci4iIH0sCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJjb2x1bW5OdW1iZXIiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNvbHVtbiBudW1iZXIuIiB9LAotICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiY2hpbGRyZW4iLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsg
IiRyZWYiOiAiQ1BVUHJvZmlsZU5vZGUiIH0sICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlv
biI6ICJDaGlsZCBub2Rlcy4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICAgImlkIjogIkNQVVByb2ZpbGUiLAotICAgICAgICAgICAgInR5cGUiOiAi
b2JqZWN0IiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQcm9maWxlLiIsCi0gICAgICAg
ICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJvb3ROb2Rl
cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDUFVQcm9maWxlTm9kZSIg
fSwgImRlc2NyaXB0aW9uIjogIlRvcCBsZXZlbCBub2RlcyBpbiB0aGUgc3RhY2suIiB9LAotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWRsZVRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0
aW9uYWwiOiB0cnVlIH0KLSAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImNv
bW1hbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRl
cnByZXRlci5jcHAKaW5kZXggODkzMGFjMy4uYmY2MmVkMCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCkBAIC01Myw3ICs1Myw2IEBA
CiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNsdWRlICJMTEludENMb29wLmgiCiAjaW5j
bHVkZSAiTExJbnRUaHVua3MuaCIKLSNpbmNsdWRlICJMZWdhY3lQcm9maWxlci5oIgogI2luY2x1
ZGUgIkxpdGVyYWxQYXJzZXIuaCIKICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKICNpbmNs
dWRlICJQYXJzZXIuaCIKQEAgLTY3NSw3ICs2NzQsNiBAQCBwdWJsaWM6CiAgICAgU3RhY2tWaXNp
dG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja1Zpc2l0b3ImIHZpc2l0b3IpIGNvbnN0CiAgICAg
ewogICAgICAgICB2aXNpdG9yLnVud2luZFRvTWFjaGluZUNvZGVCbG9ja0ZyYW1lKCk7Ci0gICAg
ICAgIFZNJiB2bSA9IG1fY2FsbEZyYW1lLT52bSgpOwogICAgICAgICBtX2NhbGxGcmFtZSA9IHZp
c2l0b3ItPmNhbGxGcmFtZSgpOwogICAgICAgICBtX2NvZGVCbG9jayA9IHZpc2l0b3ItPmNvZGVC
bG9jaygpOwogCkBAIC02OTIsOSArNjkwLDYgQEAgcHVibGljOgogCiAgICAgICAgIGJvb2wgc2hv
dWxkU3RvcFVud2luZGluZyA9IHZpc2l0b3ItPmNhbGxlcklzVk1FbnRyeUZyYW1lKCk7CiAgICAg
ICAgIGlmIChzaG91bGRTdG9wVW53aW5kaW5nKSB7Ci0gICAgICAgICAgICBpZiAoTGVnYWN5UHJv
ZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgICAgICAgICAg
cHJvZmlsZXItPmV4Y2VwdGlvblVud2luZChtX2NhbGxGcmFtZSk7Ci0KICAgICAgICAgICAgIGNv
cHlDYWxsZWVTYXZlc1RvVk1FbnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIodmlzaXRvcik7CiAK
ICAgICAgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkRvbmU7CkBAIC05NTQsMTUgKzk0OSw5
IEBAIGZhaWxlZEpTT05QOgogICAgIFByb3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1lOwogICAg
IHByb3RvQ2FsbEZyYW1lLmluaXQoY29kZUJsb2NrLCBKU0NhbGxlZTo6Y3JlYXRlKHZtLCBzY29w
ZS0+Z2xvYmFsT2JqZWN0KCksIHNjb3BlKSwgdGhpc09iaiwgMSk7CiAKLSAgICBpZiAoTGVnYWN5
UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2Zp
bGVyLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIHByb2dyYW0tPnNvdXJjZVVSTCgpLCBwcm9ncmFt
LT5maXJzdExpbmUoKSwgcHJvZ3JhbS0+c3RhcnRDb2x1bW4oKSk7Ci0KICAgICAvLyBFeGVjdXRl
IHRoZSBjb2RlOgogICAgIEpTVmFsdWUgcmVzdWx0ID0gcHJvZ3JhbS0+Z2VuZXJhdGVkSklUQ29k
ZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKIAotICAgIGlmIChMZWdhY3lQcm9m
aWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXIt
PmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBwcm9ncmFtLT5zb3VyY2VVUkwoKSwgcHJvZ3JhbS0+Zmly
c3RMaW5lKCksIHByb2dyYW0tPnN0YXJ0Q29sdW1uKCkpOwotCiAgICAgcmV0dXJuIGNoZWNrZWRS
ZXR1cm4ocmVzdWx0KTsKIH0KIApAQCAtMTAxMSw5ICsxMDAwLDYgQEAgSlNWYWx1ZSBJbnRlcnBy
ZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTT2JqZWN0KiBmdW5jdGlv
biwgQ2FsbFQKICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0Nh
bGxGcmFtZS5pbml0KG5ld0NvZGVCbG9jaywgZnVuY3Rpb24sIHRoaXNWYWx1ZSwgYXJnc0NvdW50
LCBhcmdzLmRhdGEoKSk7CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0u
ZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShjYWxsRnJh
bWUsIGZ1bmN0aW9uKTsKLQogICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKICAgICAgICAgLy8g
RXhlY3V0ZSB0aGUgY29kZToKQEAgLTEwMjYsOSArMTAxMiw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0
ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogZnVuY3Rpb24s
IENhbGxUCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2Zp
bGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRl
KGNhbGxGcmFtZSwgZnVuY3Rpb24pOwotCiAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0
KTsKIH0KIApAQCAtMTA3OSw5ICsxMDYyLDYgQEAgSlNPYmplY3QqIEludGVycHJldGVyOjpleGVj
dXRlQ29uc3RydWN0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBKU09iamVjdCogY29uc3RydWMKICAg
ICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0
KG5ld0NvZGVCbG9jaywgY29uc3RydWN0b3IsIG5ld1RhcmdldCwgYXJnc0NvdW50LCBhcmdzLmRh
dGEoKSk7CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFBy
b2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIGNvbnN0
cnVjdG9yKTsKLQogICAgIEpTVmFsdWUgcmVzdWx0OwogICAgIHsKICAgICAgICAgLy8gRXhlY3V0
ZSB0aGUgY29kZS4KQEAgLTEwOTUsOSArMTA3NSw2IEBAIEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6
ZXhlY3V0ZUNvbnN0cnVjdChDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNPYmplY3QqIGNvbnN0cnVj
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0g
dm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxG
cmFtZSwgY29uc3RydWN0b3IpOwotCiAgICAgaWYgKGNhbGxGcmFtZS0+aGFkRXhjZXB0aW9uKCkp
CiAgICAgICAgIHJldHVybiAwOwogICAgIEFTU0VSVChyZXN1bHQuaXNPYmplY3QoKSk7CkBAIC0x
MTQwLDE4ICsxMTE3LDEyIEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1l
Q2xvc3VyZSYgY2xvc3VyZSkKIAogICAgIFN0YWNrU3RhdHM6OkNoZWNrUG9pbnQgc3RhY2tDaGVj
a1BvaW50OwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQ
cm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+d2lsbEV4ZWN1dGUoY2xvc3VyZS5vbGRDYWxs
RnJhbWUsIGNsb3N1cmUuZnVuY3Rpb24pOwotCiAgICAgaWYgKFVOTElLRUxZKHZtLnNob3VsZFRy
aWdnZXJUZXJtaW5hdGlvbihjbG9zdXJlLm9sZENhbGxGcmFtZSkpKQogICAgICAgICByZXR1cm4g
dGhyb3dUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGNsb3N1cmUub2xkQ2FsbEZyYW1lKTsK
IAogICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGU6CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBjbG9zdXJl
LmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklUQ29kZUZvckNhbGwoKS0+ZXhlY3V0ZSgm
dm0sIGNsb3N1cmUucHJvdG9DYWxsRnJhbWUpOwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBw
cm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+ZGlkRXhl
Y3V0ZShjbG9zdXJlLm9sZENhbGxGcmFtZSwgY2xvc3VyZS5mdW5jdGlvbik7Ci0KICAgICByZXR1
cm4gY2hlY2tlZFJldHVybihyZXN1bHQpOwogfQogCkBAIC0xMjQ5LDE1ICsxMjIwLDkgQEAgSlNW
YWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhlY3V0YWJsZSogZXZhbCwgQ2FsbEZyYW1l
KiBjYWxsRnJhbWUsIEpTVmFsdWUKICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsK
ICAgICBwcm90b0NhbGxGcmFtZS5pbml0KGNvZGVCbG9jaywgSlNDYWxsZWU6OmNyZWF0ZSh2bSwg
c2NvcGUtPmdsb2JhbE9iamVjdCgpLCBzY29wZSksIHRoaXNWYWx1ZSwgMSk7CiAKLSAgICBpZiAo
TGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAg
IHByb2ZpbGVyLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIGV2YWwtPnNvdXJjZVVSTCgpLCBldmFs
LT5maXJzdExpbmUoKSwgZXZhbC0+c3RhcnRDb2x1bW4oKSk7Ci0KICAgICAvLyBFeGVjdXRlIHRo
ZSBjb2RlOgogICAgIEpTVmFsdWUgcmVzdWx0ID0gZXZhbC0+Z2VuZXJhdGVkSklUQ29kZSgpLT5l
eGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciog
cHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPmRpZEV4
ZWN1dGUoY2FsbEZyYW1lLCBldmFsLT5zb3VyY2VVUkwoKSwgZXZhbC0+Zmlyc3RMaW5lKCksIGV2
YWwtPnN0YXJ0Q29sdW1uKCkpOwotCiAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsK
IH0KIApAQCAtMTI5MiwxNSArMTI1Nyw5IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUo
TW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIENhbGxGcmFtZSogY2FsCiAgICAg
UHJvdG9DYWxsRnJhbWUgcHJvdG9DYWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChj
b2RlQmxvY2ssIEpTQ2FsbGVlOjpjcmVhdGUodm0sIHNjb3BlLT5nbG9iYWxPYmplY3QoKSwgc2Nv
cGUpLCBqc1VuZGVmaW5lZCgpLCAxKTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmls
ZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRl
KGNhbGxGcmFtZSwgZXhlY3V0YWJsZS0+c291cmNlVVJMKCksIGV4ZWN1dGFibGUtPmZpcnN0TGlu
ZSgpLCBleGVjdXRhYmxlLT5zdGFydENvbHVtbigpKTsKLQogICAgIC8vIEV4ZWN1dGUgdGhlIGNv
ZGU6CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBleGVjdXRhYmxlLT5nZW5lcmF0ZWRKSVRDb2RlKCkt
PmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVy
KiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+ZGlk
RXhlY3V0ZShjYWxsRnJhbWUsIGV4ZWN1dGFibGUtPnNvdXJjZVVSTCgpLCBleGVjdXRhYmxlLT5m
aXJzdExpbmUoKSwgZXhlY3V0YWJsZS0+c3RhcnRDb2x1bW4oKSk7Ci0KICAgICByZXR1cm4gY2hl
Y2tlZFJldHVybihyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKaW5kZXgg
MWQ1MGFiYS4uYWRhYTg2MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcApAQCAtMjkwLDgg
KzI5MCw2IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgREVG
SU5FX09QKG9wX25zdHJpY3RlcSkKICAgICAgICAgREVGSU5FX09QKG9wX2RlYykKICAgICAgICAg
REVGSU5FX09QKG9wX2luYykKLSAgICAgICAgREVGSU5FX09QKG9wX3Byb2ZpbGVfZGlkX2NhbGwp
Ci0gICAgICAgIERFRklORV9PUChvcF9wcm9maWxlX3dpbGxfY2FsbCkKICAgICAgICAgREVGSU5F
X09QKG9wX3Byb2ZpbGVfdHlwZSkKICAgICAgICAgREVGSU5FX09QKG9wX3Byb2ZpbGVfY29udHJv
bF9mbG93KQogICAgICAgICBERUZJTkVfT1Aob3BfcHVzaF93aXRoX3Njb3BlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKaW5kZXggNTExNDAwNi4uNDNmYmViZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oCkBAIC01NjAsOCArNTYwLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZW1p
dF9vcF9uc3RyaWN0ZXEoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2RlYyhJ
bnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfaW5jKEluc3RydWN0aW9uKik7Ci0g
ICAgICAgIHZvaWQgZW1pdF9vcF9wcm9maWxlX2RpZF9jYWxsKEluc3RydWN0aW9uKik7Ci0gICAg
ICAgIHZvaWQgZW1pdF9vcF9wcm9maWxlX3dpbGxfY2FsbChJbnN0cnVjdGlvbiopOwogICAgICAg
ICB2b2lkIGVtaXRfb3BfcHJvZmlsZV90eXBlKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQg
ZW1pdF9vcF9wcm9maWxlX2NvbnRyb2xfZmxvdyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lk
IGVtaXRfb3BfcHVzaF93aXRoX3Njb3BlKEluc3RydWN0aW9uKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCBmMGE3NTE5Li42ZDQ1YmIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTc3NCwyMiArNzc0LDYgQEAgdm9p
ZCBKSVQ6OmVtaXRTbG93X29wX2NoZWNrX3RkeihJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uLCBWZWN0b3I8U2xvd0Nhc2UKICAgICBzbG93UGF0aENhbGwuY2FsbCgpOwogfQogCi12b2lk
IEpJVDo6ZW1pdF9vcF9wcm9maWxlX3dpbGxfY2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQotewotICAgIEp1bXAgcHJvZmlsZXJEb25lID0gYnJhbmNoVGVzdFB0cihaZXJvLCBB
YnNvbHV0ZUFkZHJlc3MobV92bS0+ZW5hYmxlZFByb2ZpbGVyQWRkcmVzcygpKSk7Ci0gICAgZW1p
dEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdU
MCk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Qcm9maWxlV2lsbENhbGwsIHJlZ1QwKTsK
LSAgICBwcm9maWxlckRvbmUubGluayh0aGlzKTsKLX0KLQotdm9pZCBKSVQ6OmVtaXRfb3BfcHJv
ZmlsZV9kaWRfY2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQotewotICAgIEp1
bXAgcHJvZmlsZXJEb25lID0gYnJhbmNoVGVzdFB0cihaZXJvLCBBYnNvbHV0ZUFkZHJlc3MobV92
bS0+ZW5hYmxlZFByb2ZpbGVyQWRkcmVzcygpKSk7Ci0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rl
cihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMCk7Ci0gICAgY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25Qcm9maWxlRGlkQ2FsbCwgcmVnVDApOwotICAgIHByb2ZpbGVyRG9uZS5s
aW5rKHRoaXMpOwotfQotCiAKIC8vIFNsb3cgY2FzZXMKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IGNmMDRjYTkuLjY0YWIwNjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTEwNjAs
MjQgKzEwNjAsNiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfY2hlY2tfdGR6KEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZQogICAgIHNsb3dQYXRoQ2FsbC5j
YWxsKCk7CiB9CiAKLXZvaWQgSklUOjplbWl0X29wX3Byb2ZpbGVfd2lsbF9jYWxsKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCi17Ci0gICAgbG9hZDMyKG1fdm0tPmVuYWJsZWRQcm9m
aWxlckFkZHJlc3MoKSwgcmVnVDApOwotICAgIEp1bXAgcHJvZmlsZXJEb25lID0gYnJhbmNoVGVz
dFB0cihaZXJvLCByZWdUMCk7Ci0gICAgZW1pdExvYWQoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCwgcmVnVDEsIHJlZ1QwKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblByb2Zp
bGVXaWxsQ2FsbCwgcmVnVDEsIHJlZ1QwKTsKLSAgICBwcm9maWxlckRvbmUubGluayh0aGlzKTsK
LX0KLQotdm9pZCBKSVQ6OmVtaXRfb3BfcHJvZmlsZV9kaWRfY2FsbChJbnN0cnVjdGlvbiogY3Vy
cmVudEluc3RydWN0aW9uKQotewotICAgIGxvYWQzMihtX3ZtLT5lbmFibGVkUHJvZmlsZXJBZGRy
ZXNzKCksIHJlZ1QwKTsKLSAgICBKdW1wIHByb2ZpbGVyRG9uZSA9IGJyYW5jaFRlc3RQdHIoWmVy
bywgcmVnVDApOwotICAgIGVtaXRMb2FkKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQs
IHJlZ1QxLCByZWdUMCk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Qcm9maWxlRGlkQ2Fs
bCwgcmVnVDEsIHJlZ1QwKTsKLSAgICBwcm9maWxlckRvbmUubGluayh0aGlzKTsKLX0KLQogdm9p
ZCBKSVQ6OmVtaXRfb3BfaGFzX3N0cnVjdHVyZV9wcm9wZXJ0eShJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogewogICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5v
cGVyYW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5k
ZXggYmM4MWM1Yy4uMzkzMDRiZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCkBAIC01Myw3ICs1Myw2IEBACiAjaW5jbHVkZSAiSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNTdGFja0lubGluZXMuaCIKICNpbmNsdWRlICJKU1dp
dGhTY29wZS5oIgotI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0
Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJQb2x5bW9ycGhpY0FjY2Vzcy5oIgogI2luY2x1ZGUg
IlByb3BlcnR5TmFtZS5oIgpAQCAtMTI0MiwxMiArMTI0MSw2IEBAIFNsb3dQYXRoUmV0dXJuVHlw
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgaW50MzJf
dCBieXRlCiAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7CiAgICAgfQogICAgIAot
ICAgIGlmICh2bS5lbmFibGVkUHJvZmlsZXIoKSkgewotICAgICAgICBDT0RFQkxPQ0tfTE9HX0VW
RU5UKGNvZGVCbG9jaywgImRlbGF5T3B0aW1pemVUb0RGRyIsICgicHJvZmlsZXIgaXMgZW5hYmxl
ZCIpKTsKLSAgICAgICAgdXBkYXRlQWxsUHJlZGljdGlvbnNBbmRPcHRpbWl6ZUFmdGVyV2FybVVw
KGNvZGVCbG9jayk7Ci0gICAgICAgIHJldHVybiBlbmNvZGVSZXN1bHQoMCwgMCk7Ci0gICAgfQot
CiAgICAgRGVidWdnZXIqIGRlYnVnZ2VyID0gY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKS0+ZGVi
dWdnZXIoKTsKICAgICBpZiAoZGVidWdnZXIgJiYgKGRlYnVnZ2VyLT5pc1N0ZXBwaW5nKCkgfHwg
Y29kZUJsb2NrLT5iYXNlbGluZUFsdGVybmF0aXZlKCktPmhhc0RlYnVnZ2VyUmVxdWVzdHMoKSkp
IHsKICAgICAgICAgQ09ERUJMT0NLX0xPR19FVkVOVChjb2RlQmxvY2ssICJkZWxheU9wdGltaXpl
VG9ERkciLCAoImRlYnVnZ2VyIGlzIHN0ZXBwaW5nIG9yIGhhcyByZXF1ZXN0cyIpKTsKQEAgLTE1
NTksMjQgKzE1NTIsNiBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUG9wU2NvcGUoRXhl
Y1N0YXRlKiBleGVjLCBpbnQzMl90IHNjb3BlUmVnKQogICAgIGV4ZWMtPnVuY2hlY2tlZFIoc2Nv
cGVSZWcpID0gc2NvcGUtPm5leHQoKTsKIH0KIAotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blByb2ZpbGVEaWRDYWxsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJh
Y2VyIHRyYWNlcigmdm0sIGV4ZWMpOwotCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxl
ciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShl
eGVjLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7Ci19Ci0KLXZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Qcm9maWxlV2lsbENhbGwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBOYXRp
dmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7Ci0KLSAgICBpZiAoTGVnYWN5UHJv
ZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVy
LT53aWxsRXhlY3V0ZShleGVjLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7Ci19Ci0K
IGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbnN0YW5jZU9mQ3VzdG9tKEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU09iamVjdCogY29uc3RydWN0
b3IsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRIYXNJbnN0YW5jZSkKIHsKICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwpAQCAtMjM1OCw5ICsyMzMzLDYgQEAgaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvbkNoZWNrSWZFeGNlcHRpb25Jc1VuY2F0Y2hhYmxlQW5kTm90aWZ5UHJvZmlsZXIoRXgK
ICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CiAgICAgUkVMRUFT
RV9BU1NFUlQoISF2bS5leGNlcHRpb24oKSk7CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHBy
b2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT5leGNlcHRp
b25VbndpbmQoZXhlYyk7Ci0KICAgICBpZiAoaXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9u
KHZtLmV4Y2VwdGlvbigpKSkgewogICAgICAgICBnZW5lcmljVW53aW5kKCZ2bSwgZXhlYyk7CiAg
ICAgICAgIHJldHVybiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
aAppbmRleCAyMTI5NzAzLi41N2Y3OGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaApAQCAtMzcwLDggKzM3MCw2IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwgSlNDZWxsKiwgVW5pcXVlZFN0cmluZ0lt
CiAjZW5kaWYKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXNoRnVuY3Rpb25OYW1lU2Nv
cGUoRXhlY1N0YXRlKiwgaW50MzJfdCwgU3ltYm9sVGFibGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RG
X0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBvcFNjb3BlKEV4ZWNTdGF0
ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
cm9maWxlRGlkQ2FsbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwot
dm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVXaWxsQ2FsbChFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElP
TiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBX
VEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5
VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwogRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbFN0cmluZyhFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1
YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRl
eCAzYzA3OTgxLi5lN2VkZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNj
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtODY0LDcgKzg2NCw3
IEBAIHByb3RlY3RlZDoKIH07CiAKIGNvbnN0IENsYXNzSW5mbyBHbG9iYWxPYmplY3Q6OnNfaW5m
byA9IHsgImdsb2JhbCIsICZKU0dsb2JhbE9iamVjdDo6c19pbmZvLCBudWxscHRyLCBDUkVBVEVf
TUVUSE9EX1RBQkxFKEdsb2JhbE9iamVjdCkgfTsKLWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRh
YmxlIEdsb2JhbE9iamVjdDo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJmFsbG93c0Fj
Y2Vzc0Zyb20sICZzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZywgJnN1cHBvcnRzUmljaFNvdXJjZUlu
Zm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAwLCAm
c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgJm1vZHVsZUxvYWRlclJlc29sdmUs
ICZtb2R1bGVMb2FkZXJGZXRjaCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9
OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9i
amVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNjZXNzRnJvbSwgJnN1cHBvcnRzUmljaFNvdXJj
ZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCAw
LCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgJm1vZHVsZUxvYWRlclJlc29s
dmUsICZtb2R1bGVMb2FkZXJGZXRjaCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciB9OwogCiAKIEdsb2JhbE9iamVjdDo6R2xvYmFsT2JqZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRT
bG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhz
LmNwcAppbmRleCBjY2M1OGQxLi44YmZhN2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTUwLDcgKzUwLDYgQEAKICNpbmNsdWRlICJK
U1dpdGhTY29wZS5oIgogI2luY2x1ZGUgIkxMSW50Q29tbW9uLmgiCiAjaW5jbHVkZSAiTExJbnRF
eGNlcHRpb25zLmgiCi0jaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKICNpbmNsdWRlICJMb3dM
ZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNs
dWRlICJQcm90b0NhbGxGcmFtZS5oIgpAQCAtMTQyNiwyMiArMTQyNSw2IEBAIExMSU5UX1NMT1df
UEFUSF9ERUNMKHNsb3dfcGF0aF9kZWJ1ZykKICAgICBMTElOVF9FTkQoKTsKIH0KIAotTExJTlRf
U0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3Byb2ZpbGVfd2lsbF9jYWxsKQotewotICAgIExMSU5U
X0JFR0lOKCk7Ci0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQ
cm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+d2lsbEV4ZWN1dGUoZXhlYywgTExJTlRfT1Ao
MSkuanNWYWx1ZSgpKTsKLSAgICBMTElOVF9FTkQoKTsKLX0KLQotTExJTlRfU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwpCi17Ci0gICAgTExJTlRfQkVHSU4oKTsKLSAg
ICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0g
ICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGV4ZWMsIExMSU5UX09QKDEpLmpzVmFsdWUoKSk7
Ci0gICAgTExJTlRfRU5EKCk7Ci19Ci0KIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9o
YW5kbGVfZXhjZXB0aW9uKQogewogICAgIExMSU5UX0JFR0lOX05PX1NFVF9QQygpOwpAQCAtMTUz
MCw5ICsxNTEzLDYgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2NoZWNrX2lmX2V4
Y2VwdGlvbl9pc191bmNhdGNoYWJsZV9hbmRfbm90aWZ5X3Byb2YKICAgICBMTElOVF9CRUdJTigp
OwogICAgIFJFTEVBU0VfQVNTRVJUKCEhdm0uZXhjZXB0aW9uKCkpOwogCi0gICAgaWYgKExlZ2Fj
eVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9m
aWxlci0+ZXhjZXB0aW9uVW53aW5kKGV4ZWMpOwotCiAgICAgaWYgKGlzVGVybWluYXRlZEV4ZWN1
dGlvbkV4Y2VwdGlvbih2bS5leGNlcHRpb24oKSkpCiAgICAgICAgIExMSU5UX1JFVFVSTl9UV08o
cGMsIGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8dWludHB0cl90PigxKSkpOwogICAg
IExMSU5UX1JFVFVSTl9UV08ocGMsIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuaAppbmRleCBlM2Q0MWU0Li4yNDk5NTQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaApAQCAtMTE3LDggKzExNyw2IEBAIExM
SU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfdGhyb3cpOwogTExJTlRfU0xPV19Q
QVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90aHJvd19zdGF0aWNfZXJyb3IpOwogTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9oYW5kbGVfd2F0Y2hkb2dfdGltZXIpOwogTExJ
TlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9kZWJ1Zyk7Ci1MTElOVF9TTE9XX1BB
VEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3Byb2ZpbGVfd2lsbF9jYWxsKTsKLUxMSU5UX1NMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHJvZmlsZV9kaWRfY2FsbCk7CiBMTElOVF9TTE9X
X1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2hhbmRsZV9leGNlcHRpb24pOwogTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfZnJvbV9zY29wZSk7CiBMTElOVF9TTE9X
X1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF90b19zY29wZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggNDNi
Zjc3ZS4uYTA4NzhmOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
b3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTY2MiwyOCArMTY2Miw2IEBAIF9sbGludF9vcF90
aHJvd19zdGF0aWNfZXJyb3I6CiAgICAgZGlzcGF0Y2goMykKIAogCi1fbGxpbnRfb3BfcHJvZmls
ZV93aWxsX2NhbGw6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRwIENvZGVCbG9ja1tj
ZnJdLCB0MAotICAgIGxvYWRwIENvZGVCbG9jazo6bV92bVt0MF0sIHQwCi0gICAgbG9hZGkgVk06
Om1fZW5hYmxlZFByb2ZpbGVyW3QwXSwgdDAKLSAgICBidHB6IHQwLCAub3BQcm9maWxlcldpbGxD
YWxsRG9uZQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfd2lsbF9j
YWxsKQotLm9wUHJvZmlsZXJXaWxsQ2FsbERvbmU6Ci0gICAgZGlzcGF0Y2goMikKLQotCi1fbGxp
bnRfb3BfcHJvZmlsZV9kaWRfY2FsbDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZHAg
Q29kZUJsb2NrW2Nmcl0sIHQwCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX3ZtW3QwXSwgdDAKLSAg
ICBsb2FkaSBWTTo6bV9lbmFibGVkUHJvZmlsZXJbdDBdLCB0MAotICAgIGJ0cHogdDAsIC5vcFBy
b2ZpbGVyRGlkQ2FsbERvbmUKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wcm9m
aWxlX2RpZF9jYWxsKQotLm9wUHJvZmlsZXJEaWRDYWxsRG9uZToKLSAgICBkaXNwYXRjaCgyKQot
Ci0KIF9sbGludF9vcF9kZWJ1ZzoKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZHAgQ29k
ZUJsb2NrW2Nmcl0sIHQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L1BhcnNlck1vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVz
LmgKaW5kZXggZjBjM2EyMi4uMmI3OTUzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJz
ZXIvUGFyc2VyTW9kZXMuaApAQCAtMzksNyArMzksNiBAQCBlbnVtIGNsYXNzIENvbnN0cnVjdG9y
S2luZCB7IE5vbmUsIEJhc2UsIERlcml2ZWQgfTsKIGVudW0gY2xhc3MgU3VwZXJCaW5kaW5nIHsg
TmVlZGVkLCBOb3ROZWVkZWQgfTsKIGVudW0gY2xhc3MgVGhpc1REWk1vZGUgeyBBbHdheXNDaGVj
aywgQ2hlY2tJZk5lZWRlZCB9OwogCi1lbnVtIFByb2ZpbGVyTW9kZSB7IFByb2ZpbGVyT2ZmLCBQ
cm9maWxlck9uIH07CiBlbnVtIERlYnVnZ2VyTW9kZSB7IERlYnVnZ2VyT2ZmLCBEZWJ1Z2dlck9u
IH07CiAKIGVudW0gY2xhc3MgRnVuY3Rpb25Nb2RlIHsgRnVuY3Rpb25FeHByZXNzaW9uLCBGdW5j
dGlvbkRlY2xhcmF0aW9uLCBNZXRob2REZWZpbml0aW9uIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvQ2FsbElkZW50aWZpZXIuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9DYWxsSWRlbnRpZmllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2OTFmYzYyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9DYWxsSWRlbnRpZmllci5oCisrKyAvZGV2L251bGwKQEAgLTEsMTEyICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTQgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0KLSNpZm5k
ZWYgQ2FsbElkZW50aWZpZXJfaAotI2RlZmluZSBDYWxsSWRlbnRpZmllcl9oCi0KLSNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotICAg
IHN0cnVjdCBDYWxsSWRlbnRpZmllciB7Ci0gICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotICAgIHB1YmxpYzoKLSAgICAgICAgQ2FsbElkZW50aWZpZXIoKQotICAgICAgICAgICAgOiBt
X2xpbmVOdW1iZXIoMCkKLSAgICAgICAgICAgICwgbV9jb2x1bW5OdW1iZXIoMCkKLSAgICAgICAg
ewotICAgICAgICB9Ci0KLSAgICAgICAgQ2FsbElkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBmdW5j
dGlvbk5hbWUsIGNvbnN0IFN0cmluZyYgdXJsLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBjb2x1bW5OdW1iZXIpCi0gICAgICAgICAgICA6IG1fZnVuY3Rpb25OYW1lKGZ1bmN0aW9uTmFt
ZSkKLSAgICAgICAgICAgICwgbV91cmwoIXVybC5pc051bGwoKSA/IHVybCA6ICIiKQotICAgICAg
ICAgICAgLCBtX2xpbmVOdW1iZXIobGluZU51bWJlcikKLSAgICAgICAgICAgICwgbV9jb2x1bW5O
dW1iZXIoY29sdW1uTnVtYmVyKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25z
dCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25OYW1lOyB9
Ci0KLSAgICAgICAgY29uc3QgU3RyaW5nJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQot
ICAgICAgICB1bnNpZ25lZCBsaW5lTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9saW5lTnVtYmVy
OyB9Ci0gICAgICAgIHVuc2lnbmVkIGNvbHVtbk51bWJlcigpIGNvbnN0IHsgcmV0dXJuIG1fY29s
dW1uTnVtYmVyOyB9Ci0KLSAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDYWxs
SWRlbnRpZmllciYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG90aGVyLm1fbGluZU51bWJlciA9PSBt
X2xpbmVOdW1iZXIgJiYgb3RoZXIubV9jb2x1bW5OdW1iZXIgPT0gbV9jb2x1bW5OdW1iZXIgJiYg
b3RoZXIubV9mdW5jdGlvbk5hbWUgPT0gbV9mdW5jdGlvbk5hbWUgJiYgb3RoZXIubV91cmwgPT0g
bV91cmw7IH0KLSAgICAgICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBDYWxsSWRlbnRp
ZmllciYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9Ci0KLSAgICAg
ICAgc3RydWN0IEhhc2ggewotICAgICAgICAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3Qg
Q2FsbElkZW50aWZpZXImIGtleSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB1bnNp
Z25lZCBoYXNoQ29kZXNbNF0gPSB7Ci0gICAgICAgICAgICAgICAgICAgIGtleS5tX2Z1bmN0aW9u
TmFtZS5pbXBsKCktPmhhc2goKSwKLSAgICAgICAgICAgICAgICAgICAga2V5Lm1fdXJsLmltcGwo
KS0+aGFzaCgpLAotICAgICAgICAgICAgICAgICAgICBrZXkubV9saW5lTnVtYmVyLAotICAgICAg
ICAgICAgICAgICAgICBrZXkubV9jb2x1bW5OdW1iZXIKLSAgICAgICAgICAgICAgICB9OwotICAg
ICAgICAgICAgICAgIHJldHVybiBTdHJpbmdIYXNoZXI6Omhhc2hNZW1vcnk8c2l6ZW9mKGhhc2hD
b2Rlcyk+KGhhc2hDb2Rlcyk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHN0YXRpYyBi
b29sIGVxdWFsKGNvbnN0IENhbGxJZGVudGlmaWVyJiBhLCBjb25zdCBDYWxsSWRlbnRpZmllciYg
YikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCBzYWZl
VG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Ci0gICAgICAgIH07Ci0KLSAgICAgICAg
dW5zaWduZWQgaGFzaCgpIGNvbnN0IHsgcmV0dXJuIEhhc2g6Omhhc2goKnRoaXMpOyB9Ci0KLSNp
Zm5kZWYgTkRFQlVHCi0gICAgICAgIG9wZXJhdG9yIGNvbnN0IGNoYXIqKCkgY29uc3QgeyByZXR1
cm4gY19zdHIoKTsgfQotICAgICAgICBjb25zdCBjaGFyKiBjX3N0cigpIGNvbnN0IHsgcmV0dXJu
IG1fZnVuY3Rpb25OYW1lLnV0ZjgoKS5kYXRhKCk7IH0KLSNlbmRpZgotCi0gICAgcHJpdmF0ZToK
LSAgICAgICAgU3RyaW5nIG1fZnVuY3Rpb25OYW1lOwotICAgICAgICBTdHJpbmcgbV91cmw7Ci0g
ICAgICAgIHVuc2lnbmVkIG1fbGluZU51bWJlcjsKLSAgICAgICAgdW5zaWduZWQgbV9jb2x1bW5O
dW1iZXI7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLW5hbWVzcGFjZSBXVEYgewot
Ci0gICAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8SlNDOjpDYWxsSWRlbnRpZmllcj4g
eyB0eXBlZGVmIEpTQzo6Q2FsbElkZW50aWZpZXI6Okhhc2ggSGFzaDsgfTsKLQotICAgIHRlbXBs
YXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpDYWxsSWRlbnRpZmllcj4gOiBHZW5lcmljSGFz
aFRyYWl0czxKU0M6OkNhbGxJZGVudGlmaWVyPiB7Ci0gICAgICAgIHN0YXRpYyB2b2lkIGNvbnN0
cnVjdERlbGV0ZWRWYWx1ZShKU0M6OkNhbGxJZGVudGlmaWVyJiBzbG90KQotICAgICAgICB7Ci0g
ICAgICAgICAgICBuZXcgKE5vdE51bGwsICZzbG90KSBKU0M6OkNhbGxJZGVudGlmaWVyKFN0cmlu
ZygpLCBTdHJpbmcoKSwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpLCBzdGQ6
Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpOwotICAgICAgICB9Ci0KLSAgICAgICAg
c3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgSlNDOjpDYWxsSWRlbnRpZmllciYgdmFs
dWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB2YWx1ZS5mdW5jdGlvbk5hbWUoKS5p
c051bGwoKSAmJiB2YWx1ZS51cmwoKS5pc051bGwoKSAmJiB2YWx1ZS5saW5lTnVtYmVyKCkgPT0g
c3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpICYmIHZhbHVlLmNvbHVtbk51bWJl
cigpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKLSAgICAgICAgfQot
ICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi0jZW5kaWYgIC8vIENhbGxJZGVudGlmaWVy
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9MZWdhY3lQcm9m
aWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ODdkMzYyLi4wMDAwMDAwCi0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAx
MiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiTGVnYWN5UHJvZmlsZXIuaCIKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUg
IkNvZGVCbG9jay5oIgotI2luY2x1ZGUgIkNvbW1vbklkZW50aWZpZXJzLmgiCi0jaW5jbHVkZSAi
SW50ZXJuYWxGdW5jdGlvbi5oIgotI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKLSNpbmNsdWRlICJK
U0dsb2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIk5vZGVzLmgiCi0jaW5jbHVkZSAiSlNDSW5saW5l
cy5oIgotI2luY2x1ZGUgIlByb2ZpbGUuaCIKLSNpbmNsdWRlICJQcm9maWxlR2VuZXJhdG9yLmgi
Ci0jaW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLXN0YXRpYyBj
b25zdCBjaGFyKiBHbG9iYWxDb2RlRXhlY3V0aW9uID0gIihwcm9ncmFtKSI7Ci1zdGF0aWMgY29u
c3QgY2hhciogQW5vbnltb3VzRnVuY3Rpb24gPSAiKGFub255bW91cyBmdW5jdGlvbikiOwotc3Rh
dGljIHVuc2lnbmVkIFByb2ZpbGVzVUlEID0gMDsKLQotc3RhdGljIENhbGxJZGVudGlmaWVyIGNy
ZWF0ZUNhbGxJZGVudGlmaWVyRnJvbUZ1bmN0aW9uSW1wKEV4ZWNTdGF0ZSosIEpTT2JqZWN0Kiwg
Y29uc3QgU3RyaW5nJiBkZWZhdWx0U291cmNlVVJMLCB1bnNpZ25lZCBkZWZhdWx0TGluZU51bWJl
ciwgdW5zaWduZWQgZGVmYXVsdENvbHVtbk51bWJlcik7Ci0KLUxlZ2FjeVByb2ZpbGVyKiBMZWdh
Y3lQcm9maWxlcjo6c19zaGFyZWRMZWdhY3lQcm9maWxlciA9IG51bGxwdHI7Ci0KLUxlZ2FjeVBy
b2ZpbGVyKiBMZWdhY3lQcm9maWxlcjo6cHJvZmlsZXIoKQotewotICAgIGlmICghc19zaGFyZWRM
ZWdhY3lQcm9maWxlcikKLSAgICAgICAgc19zaGFyZWRMZWdhY3lQcm9maWxlciA9IG5ldyBMZWdh
Y3lQcm9maWxlcigpOwotICAgIHJldHVybiBzX3NoYXJlZExlZ2FjeVByb2ZpbGVyOwotfQotCi12
b2lkIExlZ2FjeVByb2ZpbGVyOjpzdGFydFByb2ZpbGluZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IFN0cmluZyYgdGl0bGUsIFBhc3NSZWZQdHI8U3RvcHdhdGNoPiBzdG9wd2F0Y2gpCi17Ci0gICAg
aWYgKCFleGVjKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBDaGVjayBpZiB3ZSBjdXJyZW50
bHkgaGF2ZSBhIFByb2ZpbGUgZm9yIHRoaXMgZ2xvYmFsIEV4ZWNTdGF0ZSBhbmQgdGl0bGUuCi0g
ICAgLy8gSWYgc28gcmV0dXJuIGVhcmx5IGFuZCBkb24ndCBjcmVhdGUgYSBuZXcgUHJvZmlsZS4K
LSAgICBKU0dsb2JhbE9iamVjdCogb3JpZ2luID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
OwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2N1cnJlbnRQcm9maWxlcy5zaXplKCk7
ICsraSkgewotICAgICAgICBQcm9maWxlR2VuZXJhdG9yKiBwcm9maWxlR2VuZXJhdG9yID0gbV9j
dXJyZW50UHJvZmlsZXNbaV0uZ2V0KCk7Ci0gICAgICAgIGlmIChwcm9maWxlR2VuZXJhdG9yLT5v
cmlnaW4oKSA9PSBvcmlnaW4gJiYgcHJvZmlsZUdlbmVyYXRvci0+dGl0bGUoKSA9PSB0aXRsZSkK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBleGVjLT52bSgpLnNldEVuYWJsZWRQ
cm9maWxlcih0aGlzKTsKLSAgICBSZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4gcHJvZmlsZUdlbmVy
YXRvciA9IFByb2ZpbGVHZW5lcmF0b3I6OmNyZWF0ZShleGVjLCB0aXRsZSwgKytQcm9maWxlc1VJ
RCwgc3RvcHdhdGNoKTsKLSAgICBtX2N1cnJlbnRQcm9maWxlcy5hcHBlbmQocHJvZmlsZUdlbmVy
YXRvcik7Ci19Ci0KLVJlZlB0cjxQcm9maWxlPiBMZWdhY3lQcm9maWxlcjo6c3RvcFByb2ZpbGlu
ZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUpCi17Ci0gICAgaWYgKCFleGVj
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIEpTR2xvYmFsT2JqZWN0KiBvcmlnaW4g
PSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7Ci0gICAgZm9yIChwdHJkaWZmX3QgaSA9IG1f
Y3VycmVudFByb2ZpbGVzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgIFByb2Zp
bGVHZW5lcmF0b3IqIHByb2ZpbGVHZW5lcmF0b3IgPSBtX2N1cnJlbnRQcm9maWxlc1tpXS5nZXQo
KTsKLSAgICAgICAgaWYgKHByb2ZpbGVHZW5lcmF0b3ItPm9yaWdpbigpID09IG9yaWdpbiAmJiAo
dGl0bGUuaXNOdWxsKCkgfHwgcHJvZmlsZUdlbmVyYXRvci0+dGl0bGUoKSA9PSB0aXRsZSkpIHsK
LSAgICAgICAgICAgIHByb2ZpbGVHZW5lcmF0b3ItPnN0b3BQcm9maWxpbmcoKTsKLSAgICAgICAg
ICAgIFJlZlB0cjxQcm9maWxlPiByZXR1cm5Qcm9maWxlID0gcHJvZmlsZUdlbmVyYXRvci0+cHJv
ZmlsZSgpOwotCi0gICAgICAgICAgICBtX2N1cnJlbnRQcm9maWxlcy5yZW1vdmUoaSk7Ci0gICAg
ICAgICAgICBpZiAoIW1fY3VycmVudFByb2ZpbGVzLnNpemUoKSkKLSAgICAgICAgICAgICAgICBl
eGVjLT52bSgpLnNldEVuYWJsZWRQcm9maWxlcihudWxscHRyKTsKLQotICAgICAgICAgICAgcmV0
dXJuIHJldHVyblByb2ZpbGU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gbnVsbHB0
cjsKLX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6c3RvcFByb2ZpbGluZyhKU0dsb2JhbE9iamVj
dCogb3JpZ2luKQotewotICAgIGZvciAocHRyZGlmZl90IGkgPSBtX2N1cnJlbnRQcm9maWxlcy5z
aXplKCkgLSAxOyBpID49IDA7IC0taSkgewotICAgICAgICBQcm9maWxlR2VuZXJhdG9yKiBwcm9m
aWxlR2VuZXJhdG9yID0gbV9jdXJyZW50UHJvZmlsZXNbaV0uZ2V0KCk7Ci0gICAgICAgIGlmIChw
cm9maWxlR2VuZXJhdG9yLT5vcmlnaW4oKSA9PSBvcmlnaW4pIHsKLSAgICAgICAgICAgIHByb2Zp
bGVHZW5lcmF0b3ItPnN0b3BQcm9maWxpbmcoKTsKLSAgICAgICAgICAgIG1fY3VycmVudFByb2Zp
bGVzLnJlbW92ZShpKTsKLSAgICAgICAgICAgIGlmICghbV9jdXJyZW50UHJvZmlsZXMuc2l6ZSgp
KQotICAgICAgICAgICAgICAgIG9yaWdpbi0+dm0oKS5zZXRFbmFibGVkUHJvZmlsZXIobnVsbHB0
cik7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBjYWxsRnVuY3Rp
b25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmZ1bmN0aW9uPHZvaWQoUHJvZmlsZUdlbmVyYXRv
ciopPiBjYWxsYmFjaywgY29uc3QgVmVjdG9yPFJlZlB0cjxQcm9maWxlR2VuZXJhdG9yPj4mIHBy
b2ZpbGVzLCB1bnNpZ25lZCB0YXJnZXRQcm9maWxlR3JvdXApCi17Ci0gICAgZm9yIChjb25zdCBS
ZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4mIHByb2ZpbGUgOiBwcm9maWxlcykgewotICAgICAgICBp
ZiAocHJvZmlsZS0+cHJvZmlsZUdyb3VwKCkgPT0gdGFyZ2V0UHJvZmlsZUdyb3VwIHx8ICFwcm9m
aWxlLT5vcmlnaW4oKSkKLSAgICAgICAgICAgIGNhbGxiYWNrKHByb2ZpbGUuZ2V0KCkpOwotICAg
IH0KLX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6c3VzcGVuZFByb2ZpbGluZyhKU0M6OkV4ZWNT
dGF0ZSogZXhlYykKLXsKLSAgICBpZiAoIWV4ZWMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNh
bGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdyb3VwKHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRv
cjo6c2V0SXNTdXNwZW5kZWQsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgdHJ1ZSksIG1fY3VycmVu
dFByb2ZpbGVzLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsK
LX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6dW5zdXNwZW5kUHJvZmlsaW5nKEpTQzo6RXhlY1N0
YXRlKiBleGVjKQotewotICAgIGlmICghZXhlYykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY2Fs
bEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3RkOjpiaW5kKCZQcm9maWxlR2VuZXJhdG9y
OjpzZXRJc1N1c3BlbmRlZCwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBmYWxzZSksIG1fY3VycmVu
dFByb2ZpbGVzLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsK
LX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6d2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJD
YWxsRnJhbWUsIEpTVmFsdWUgZnVuY3Rpb24pCi17Ci0gICAgQVNTRVJUKCFtX2N1cnJlbnRQcm9m
aWxlcy5pc0VtcHR5KCkpOwotCi0gICAgQ2FsbElkZW50aWZpZXIgY2FsbElkZW50aWZpZXIgPSBj
cmVhdGVDYWxsSWRlbnRpZmllcihjYWxsZXJDYWxsRnJhbWUsIGZ1bmN0aW9uLCBTdHJpbmdJbXBs
OjplbXB0eSgpLCAwLCAwKTsKLQotICAgIGNhbGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdyb3Vw
KHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRvcjo6d2lsbEV4ZWN1dGUsIHN0ZDo6cGxhY2Vob2xk
ZXJzOjpfMSwgY2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciksIG1fY3VycmVudFByb2Zp
bGVzLCBjYWxsZXJDYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJvZmlsZUdyb3Vw
KCkpOwotfQotCi12b2lkIExlZ2FjeVByb2ZpbGVyOjp3aWxsRXhlY3V0ZShFeGVjU3RhdGUqIGNh
bGxlckNhbGxGcmFtZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIHN0YXJ0aW5n
TGluZU51bWJlciwgdW5zaWduZWQgc3RhcnRpbmdDb2x1bW5OdW1iZXIpCi17Ci0gICAgQVNTRVJU
KCFtX2N1cnJlbnRQcm9maWxlcy5pc0VtcHR5KCkpOwotCi0gICAgQ2FsbElkZW50aWZpZXIgY2Fs
bElkZW50aWZpZXIgPSBjcmVhdGVDYWxsSWRlbnRpZmllcihjYWxsZXJDYWxsRnJhbWUsIEpTVmFs
dWUoKSwgc291cmNlVVJMLCBzdGFydGluZ0xpbmVOdW1iZXIsIHN0YXJ0aW5nQ29sdW1uTnVtYmVy
KTsKLQotICAgIGNhbGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdyb3VwKHN0ZDo6YmluZCgmUHJv
ZmlsZUdlbmVyYXRvcjo6d2lsbEV4ZWN1dGUsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgY2FsbGVy
Q2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciksIG1fY3VycmVudFByb2ZpbGVzLCBjYWxsZXJDYWxs
RnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkpOwotfQotCi12b2lk
IExlZ2FjeVByb2ZpbGVyOjpkaWRFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBK
U1ZhbHVlIGZ1bmN0aW9uKQotewotICAgIEFTU0VSVCghbV9jdXJyZW50UHJvZmlsZXMuaXNFbXB0
eSgpKTsKLQotICAgIENhbGxJZGVudGlmaWVyIGNhbGxJZGVudGlmaWVyID0gY3JlYXRlQ2FsbElk
ZW50aWZpZXIoY2FsbGVyQ2FsbEZyYW1lLCBmdW5jdGlvbiwgU3RyaW5nSW1wbDo6ZW1wdHkoKSwg
MCwgMCk7Ci0KLSAgICBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmJpbmQo
JlByb2ZpbGVHZW5lcmF0b3I6OmRpZEV4ZWN1dGUsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgY2Fs
bGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciksIG1fY3VycmVudFByb2ZpbGVzLCBjYWxsZXJD
YWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkpOwotfQotCi12
b2lkIExlZ2FjeVByb2ZpbGVyOjpkaWRFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1l
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgc3RhcnRpbmdMaW5lTnVtYmVyLCB1
bnNpZ25lZCBzdGFydGluZ0NvbHVtbk51bWJlcikKLXsKLSAgICBBU1NFUlQoIW1fY3VycmVudFBy
b2ZpbGVzLmlzRW1wdHkoKSk7Ci0KLSAgICBDYWxsSWRlbnRpZmllciBjYWxsSWRlbnRpZmllciA9
IGNyZWF0ZUNhbGxJZGVudGlmaWVyKGNhbGxlckNhbGxGcmFtZSwgSlNWYWx1ZSgpLCBzb3VyY2VV
UkwsIHN0YXJ0aW5nTGluZU51bWJlciwgc3RhcnRpbmdDb2x1bW5OdW1iZXIpOwotCi0gICAgY2Fs
bEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3RkOjpiaW5kKCZQcm9maWxlR2VuZXJhdG9y
OjpkaWRFeGVjdXRlLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEsIGNhbGxlckNhbGxGcmFtZSwgY2Fs
bElkZW50aWZpZXIpLCBtX2N1cnJlbnRQcm9maWxlcywgY2FsbGVyQ2FsbEZyYW1lLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKLX0KLQotdm9pZCBMZWdhY3lQcm9maWxl
cjo6ZXhjZXB0aW9uVW53aW5kKEV4ZWNTdGF0ZSogaGFuZGxlckNhbGxGcmFtZSkKLXsKLSAgICBB
U1NFUlQoIW1fY3VycmVudFByb2ZpbGVzLmlzRW1wdHkoKSk7Ci0KLSAgICBDYWxsSWRlbnRpZmll
ciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJZGVudGlmaWVyKGhhbmRsZXJDYWxsRnJhbWUs
IEpTVmFsdWUoKSwgU3RyaW5nSW1wbDo6ZW1wdHkoKSwgMCwgMCk7Ci0KLSAgICBjYWxsRnVuY3Rp
b25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmJpbmQoJlByb2ZpbGVHZW5lcmF0b3I6OmV4Y2Vw
dGlvblVud2luZCwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBoYW5kbGVyQ2FsbEZyYW1lLCBjYWxs
SWRlbnRpZmllciksIG1fY3VycmVudFByb2ZpbGVzLCBoYW5kbGVyQ2FsbEZyYW1lLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKLX0KLQotQ2FsbElkZW50aWZpZXIgTGVn
YWN5UHJvZmlsZXI6OmNyZWF0ZUNhbGxJZGVudGlmaWVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSBmdW5jdGlvblZhbHVlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRTb3VyY2VVUkwsIHVuc2lnbmVk
IGRlZmF1bHRMaW5lTnVtYmVyLCB1bnNpZ25lZCBkZWZhdWx0Q29sdW1uTnVtYmVyKQotewotICAg
IGlmICghZnVuY3Rpb25WYWx1ZSkKLSAgICAgICAgcmV0dXJuIENhbGxJZGVudGlmaWVyKEFTQ0lJ
TGl0ZXJhbChHbG9iYWxDb2RlRXhlY3V0aW9uKSwgZGVmYXVsdFNvdXJjZVVSTCwgZGVmYXVsdExp
bmVOdW1iZXIsIGRlZmF1bHRDb2x1bW5OdW1iZXIpOwotICAgIGlmICghZnVuY3Rpb25WYWx1ZS5p
c09iamVjdCgpKQotICAgICAgICByZXR1cm4gQ2FsbElkZW50aWZpZXIoQVNDSUlMaXRlcmFsKCIo
dW5rbm93bikiKSwgZGVmYXVsdFNvdXJjZVVSTCwgZGVmYXVsdExpbmVOdW1iZXIsIGRlZmF1bHRD
b2x1bW5OdW1iZXIpOwotICAgIGlmIChhc09iamVjdChmdW5jdGlvblZhbHVlKS0+aW5oZXJpdHMo
SlNGdW5jdGlvbjo6aW5mbygpKSB8fCBhc09iamVjdChmdW5jdGlvblZhbHVlKS0+aW5oZXJpdHMo
SW50ZXJuYWxGdW5jdGlvbjo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUNhbGxJZGVu
dGlmaWVyRnJvbUZ1bmN0aW9uSW1wKGV4ZWMsIGFzT2JqZWN0KGZ1bmN0aW9uVmFsdWUpLCBkZWZh
dWx0U291cmNlVVJMLCBkZWZhdWx0TGluZU51bWJlciwgZGVmYXVsdENvbHVtbk51bWJlcik7Ci0g
ICAgaWYgKGFzT2JqZWN0KGZ1bmN0aW9uVmFsdWUpLT5pbmhlcml0cyhKU0NhbGxlZTo6aW5mbygp
KSkKLSAgICAgICAgcmV0dXJuIENhbGxJZGVudGlmaWVyKEFTQ0lJTGl0ZXJhbChHbG9iYWxDb2Rl
RXhlY3V0aW9uKSwgZGVmYXVsdFNvdXJjZVVSTCwgZGVmYXVsdExpbmVOdW1iZXIsIGRlZmF1bHRD
b2x1bW5OdW1iZXIpOwotICAgIHJldHVybiBDYWxsSWRlbnRpZmllcihhc09iamVjdChmdW5jdGlv
blZhbHVlKS0+bWV0aG9kVGFibGUoKS0+Y2xhc3NOYW1lKGFzT2JqZWN0KGZ1bmN0aW9uVmFsdWUp
KSwgZGVmYXVsdFNvdXJjZVVSTCwgZGVmYXVsdExpbmVOdW1iZXIsIGRlZmF1bHRDb2x1bW5OdW1i
ZXIpOwotfQotCi1DYWxsSWRlbnRpZmllciBjcmVhdGVDYWxsSWRlbnRpZmllckZyb21GdW5jdGlv
bkltcChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBmdW5jdGlvbiwgY29uc3QgU3RyaW5nJiBk
ZWZhdWx0U291cmNlVVJMLCB1bnNpZ25lZCBkZWZhdWx0TGluZU51bWJlciwgdW5zaWduZWQgZGVm
YXVsdENvbHVtbk51bWJlcikKLXsKLSAgICBjb25zdCBTdHJpbmcmIG5hbWUgPSBnZXRDYWxjdWxh
dGVkRGlzcGxheU5hbWUoZXhlYywgZnVuY3Rpb24pOwotICAgIEpTRnVuY3Rpb24qIGpzRnVuY3Rp
b24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24qPihmdW5jdGlvbik7Ci0gICAgaWYgKGpzRnVu
Y3Rpb24gJiYgIWpzRnVuY3Rpb24tPmlzSG9zdE9yQnVpbHRpbkZ1bmN0aW9uKCkpCi0gICAgICAg
IHJldHVybiBDYWxsSWRlbnRpZmllcihuYW1lLmlzRW1wdHkoKSA/IEFTQ0lJTGl0ZXJhbChBbm9u
eW1vdXNGdW5jdGlvbikgOiBuYW1lLCBqc0Z1bmN0aW9uLT5qc0V4ZWN1dGFibGUoKS0+c291cmNl
VVJMKCksIGpzRnVuY3Rpb24tPmpzRXhlY3V0YWJsZSgpLT5maXJzdExpbmUoKSwganNGdW5jdGlv
bi0+anNFeGVjdXRhYmxlKCktPnN0YXJ0Q29sdW1uKCkpOwotICAgIHJldHVybiBDYWxsSWRlbnRp
ZmllcihuYW1lLmlzRW1wdHkoKSA/IEFTQ0lJTGl0ZXJhbChBbm9ueW1vdXNGdW5jdGlvbikgOiBu
YW1lLCBkZWZhdWx0U291cmNlVVJMLCBkZWZhdWx0TGluZU51bWJlciwgZGVmYXVsdENvbHVtbk51
bWJlcik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWYwYWI0MS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
TGVnYWN5UHJvZmlsZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
SW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAg
ICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBMZWdhY3lQcm9maWxlcl9oCi0jZGVmaW5lIExlZ2FjeVByb2ZpbGVyX2gKLQotI2luY2x1ZGUg
IlByb2ZpbGUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvU3RvcHdhdGNoLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3MgRXhlY1N0YXRlOwotY2xhc3MgSlNHbG9i
YWxPYmplY3Q7Ci1jbGFzcyBKU09iamVjdDsKLWNsYXNzIEpTVmFsdWU7Ci1jbGFzcyBQcm9maWxl
R2VuZXJhdG9yOwotc3RydWN0IENhbGxJZGVudGlmaWVyOwotCi1jbGFzcyBMZWdhY3lQcm9maWxl
ciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgSlNfRVhQT1JU
X1BSSVZBVEUgc3RhdGljIExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlcigpOwotICAgIHN0YXRpYyBD
YWxsSWRlbnRpZmllciBjcmVhdGVDYWxsSWRlbnRpZmllcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBj
b25zdCBXVEY6OlN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBkZWZhdWx0TGluZU51bWJlciwg
dW5zaWduZWQgZGVmYXVsdENvbHVtbk51bWJlcik7Ci0KLSAgICBKU19FWFBPUlRfUFJJVkFURSB2
b2lkIHN0YXJ0UHJvZmlsaW5nKEV4ZWNTdGF0ZSosIGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSwg
UGFzc1JlZlB0cjxTdG9wd2F0Y2g+KTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBSZWZQdHI8UHJv
ZmlsZT4gc3RvcFByb2ZpbGluZyhFeGVjU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUp
OwotICAgIHZvaWQgc3RvcFByb2ZpbGluZyhKU0dsb2JhbE9iamVjdCopOwotCi0gICAgLy8gVXNl
ZCB0byBpZ25vcmUgcHJvZmlsZSBub2RlIHN1YnRyZWVzIHJvb3RlZCBhdCBJbmplY3RlZFNjcmlw
dCBjYWxscy4KLSAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHN1c3BlbmRQcm9maWxpbmcoRXhl
Y1N0YXRlKik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCB1bnN1c3BlbmRQcm9maWxpbmco
RXhlY1N0YXRlKik7Ci0KLSAgICB2b2lkIHdpbGxFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2Fs
bEZyYW1lLCBKU1ZhbHVlIGZ1bmN0aW9uKTsKLSAgICB2b2lkIHdpbGxFeGVjdXRlKEV4ZWNTdGF0
ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25l
ZCBzdGFydGluZ0xpbmVOdW1iZXIsIHVuc2lnbmVkIHN0YXJ0aW5nQ29sdW1uTnVtYmVyKTsKLSAg
ICB2b2lkIGRpZEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIEpTVmFsdWUgZnVu
Y3Rpb24pOwotICAgIHZvaWQgZGlkRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwg
Y29uc3QgV1RGOjpTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgc3RhcnRpbmdMaW5lTnVtYmVy
LCB1bnNpZ25lZCBzdGFydGluZ0NvbHVtbk51bWJlcik7Ci0KLSAgICB2b2lkIGV4Y2VwdGlvblVu
d2luZChFeGVjU3RhdGUqIGhhbmRsZXJDYWxsRnJhbWUpOwotCi0gICAgY29uc3QgVmVjdG9yPFJl
ZlB0cjxQcm9maWxlR2VuZXJhdG9yPj4mIGN1cnJlbnRQcm9maWxlcygpIHsgcmV0dXJuIG1fY3Vy
cmVudFByb2ZpbGVzOyB9OwotCi1wcml2YXRlOgotICAgIFZlY3RvcjxSZWZQdHI8UHJvZmlsZUdl
bmVyYXRvcj4+IG1fY3VycmVudFByb2ZpbGVzOwotICAgIHN0YXRpYyBMZWdhY3lQcm9maWxlciog
c19zaGFyZWRMZWdhY3lQcm9maWxlcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5k
aWYgLy8gTGVnYWN5UHJvZmlsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmM2Q0NTBhLi4wMDAwMDAw
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTQg
QXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUHJvZmls
ZS5oIgotCi0jaW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIKLSNpbmNsdWRlIDx3dGYvRGF0YUxvZy5o
PgotCi1uYW1lc3BhY2UgSlNDIHsKLQotUmVmPFByb2ZpbGU+IFByb2ZpbGU6OmNyZWF0ZShjb25z
dCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSBzdGFydFRpbWUpCi17Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUHJvZmlsZSh0aXRsZSwgdWlkLCBzdGFydFRpbWUpKTsKLX0K
LQotUHJvZmlsZTo6UHJvZmlsZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRv
dWJsZSBzdGFydFRpbWUpCi0gICAgOiBtX3RpdGxlKHRpdGxlKQotICAgICwgbV91aWQodWlkKQot
ewotICAgIC8vIEZJWE1FOiBXaGVuIG11bHRpLXRocmVhZGluZyBpcyBzdXBwb3J0ZWQgdGhpcyB3
aWxsIGJlIGEgdmVjdG9yIGFuZCBjYWxscwotICAgIC8vIGludG8gdGhlIHByb2ZpbGVyIHdpbGwg
bmVlZCB0byBrbm93IHdoaWNoIHRocmVhZCBpdCBpcyBleGVjdXRpbmcgb24uCi0gICAgbV9yb290
Tm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUobnVsbHB0ciwgQ2FsbElkZW50aWZpZXIoQVNDSUlM
aXRlcmFsKCJUaHJlYWRfMSIpLCBTdHJpbmcoKSwgMCwgMCksIG51bGxwdHIpOwotICAgIG1fcm9v
dE5vZGUtPmFwcGVuZENhbGwoUHJvZmlsZU5vZGU6OkNhbGwoc3RhcnRUaW1lKSk7Ci19Ci0KLVBy
b2ZpbGU6On5Qcm9maWxlKCkKLXsKLX0KLQotI2lmbmRlZiBOREVCVUcKLXZvaWQgUHJvZmlsZTo6
ZGVidWdQcmludCgpCi17Ci0gICAgQ2FsY3VsYXRlUHJvZmlsZVN1YnRyZWVEYXRhRnVuY3RvciBm
dW5jdG9yOwotICAgIG1fcm9vdE5vZGUtPmZvckVhY2hOb2RlUG9zdG9yZGVyKGZ1bmN0b3IpOwot
ICAgIFByb2ZpbGVOb2RlOjpQcm9maWxlU3VidHJlZURhdGEgZGF0YSA9IGZ1bmN0b3IucmV0dXJu
VmFsdWUoKTsKLQotICAgIGRhdGFMb2dGKCJDYWxsIGdyYXBoOlxuIik7Ci0gICAgbV9yb290Tm9k
ZS0+ZGVidWdQcmludFJlY3Vyc2l2ZWx5KDAsIGRhdGEpOwotfQotCi10eXBlZGVmIFdURjo6S2V5
VmFsdWVQYWlyPEZ1bmN0aW9uQ2FsbEhhc2hDb3VudDo6VmFsdWVUeXBlLCB1bnNpZ25lZD4gTmFt
ZUNvdW50UGFpcjsKLQotc3RhdGljIGlubGluZSBib29sIGZ1bmN0aW9uTmFtZUNvdW50UGFpckNv
bXBhcmF0b3IoY29uc3QgTmFtZUNvdW50UGFpciYgYSwgY29uc3QgTmFtZUNvdW50UGFpciYgYikK
LXsKLSAgICByZXR1cm4gYS52YWx1ZSA+IGIudmFsdWU7Ci19Ci0KLXZvaWQgUHJvZmlsZTo6ZGVi
dWdQcmludFNhbXBsZVN0eWxlKCkKLXsKLSAgICB0eXBlZGVmIFZlY3RvcjxOYW1lQ291bnRQYWly
PiBOYW1lQ291bnRQYWlyVmVjdG9yOwotCi0gICAgQ2FsY3VsYXRlUHJvZmlsZVN1YnRyZWVEYXRh
RnVuY3RvciBmdW5jdG9yOwotICAgIG1fcm9vdE5vZGUtPmZvckVhY2hOb2RlUG9zdG9yZGVyKGZ1
bmN0b3IpOwotICAgIFByb2ZpbGVOb2RlOjpQcm9maWxlU3VidHJlZURhdGEgZGF0YSA9IGZ1bmN0
b3IucmV0dXJuVmFsdWUoKTsKLQotICAgIEZ1bmN0aW9uQ2FsbEhhc2hDb3VudCBjb3VudGVkRnVu
Y3Rpb25zOwotICAgIGRhdGFMb2dGKCJDYWxsIGdyYXBoOlxuIik7Ci0gICAgbV9yb290Tm9kZS0+
ZGVidWdQcmludFNhbXBsZVN0eWxlUmVjdXJzaXZlbHkoMCwgY291bnRlZEZ1bmN0aW9ucywgZGF0
YSk7Ci0KLSAgICBkYXRhTG9nRigiXG5Ub3RhbCBudW1iZXIgaW4gc3RhY2s6XG4iKTsKLSAgICBO
YW1lQ291bnRQYWlyVmVjdG9yIHNvcnRlZEZ1bmN0aW9ucyhjb3VudGVkRnVuY3Rpb25zLnNpemUo
KSk7Ci0gICAgY29weVRvVmVjdG9yKGNvdW50ZWRGdW5jdGlvbnMsIHNvcnRlZEZ1bmN0aW9ucyk7
Ci0KLSAgICBzdGQ6OnNvcnQoc29ydGVkRnVuY3Rpb25zLmJlZ2luKCksIHNvcnRlZEZ1bmN0aW9u
cy5lbmQoKSwgZnVuY3Rpb25OYW1lQ291bnRQYWlyQ29tcGFyYXRvcik7Ci0gICAgZm9yIChOYW1l
Q291bnRQYWlyVmVjdG9yOjppdGVyYXRvciBpdCA9IHNvcnRlZEZ1bmN0aW9ucy5iZWdpbigpOyBp
dCAhPSBzb3J0ZWRGdW5jdGlvbnMuZW5kKCk7ICsraXQpCi0gICAgICAgIGRhdGFMb2dGKCIgICAg
ICAgICUtMTJkJXNcbiIsICgqaXQpLnZhbHVlLCBTdHJpbmcoKCppdCkua2V5KS51dGY4KCkuZGF0
YSgpKTsKLQotICAgIGRhdGFMb2dGKCJcblNvcnQgYnkgdG9wIG9mIHN0YWNrLCBzYW1lIGNvbGxh
cHNlZCAod2hlbiA+PSA1KTpcbiIpOwotfQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQxY2I2NzAuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDY2ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTQgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotIAotI2lmbmRlZiBQ
cm9maWxlX2gKLSNkZWZpbmUgUHJvZmlsZV9oCi0KLSNpbmNsdWRlICJQcm9maWxlTm9kZS5oIgot
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3Mg
SlNfRVhQT1JUX1BSSVZBVEUgUHJvZmlsZSA6IHB1YmxpYyBSZWZDb3VudGVkPFByb2ZpbGU+IHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFByb2ZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRp
dGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSk7Ci0gICAgdmlydHVhbCB+UHJvZmlsZSgpOwotCi0g
ICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGl0bGU7IH0KLSAgICB1
bnNpZ25lZCB1aWQoKSBjb25zdCB7IHJldHVybiBtX3VpZDsgfQotCi0gICAgUHJvZmlsZU5vZGUq
IHJvb3ROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9yb290Tm9kZS5nZXQoKTsgfQotICAgIHZvaWQg
c2V0Um9vdE5vZGUoUGFzc1JlZlB0cjxQcm9maWxlTm9kZT4gcm9vdE5vZGUpIHsgbV9yb290Tm9k
ZSA9IHJvb3ROb2RlOyB9Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgdm9pZCBkZWJ1Z1ByaW50KCk7
Ci0gICAgdm9pZCBkZWJ1Z1ByaW50U2FtcGxlU3R5bGUoKTsKLSNlbmRpZgotCi1wcm90ZWN0ZWQ6
Ci0gICAgUHJvZmlsZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSBz
dGFydFRpbWUpOwotCi1wcml2YXRlOgotICAgIHZvaWQgcmVtb3ZlUHJvZmlsZVN0YXJ0KCk7Ci0g
ICAgdm9pZCByZW1vdmVQcm9maWxlRW5kKCk7Ci0KLSAgICBTdHJpbmcgbV90aXRsZTsKLSAgICBS
ZWZQdHI8UHJvZmlsZU5vZGU+IG1fcm9vdE5vZGU7Ci0gICAgdW5zaWduZWQgbV91aWQ7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2VuZGlmIC8vIFByb2ZpbGVfaApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNWY4YTQzLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDI0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDE0LCAyMDE2IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlByb2ZpbGVH
ZW5lcmF0b3IuaCIKLQotI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgotI2luY2x1ZGUgIkNvZGVCbG9j
ay5oIgotI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCi0jaW5jbHVkZSAiSlNTdHJpbmdSZWYu
aCIKLSNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCi0jaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIK
LSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0jaW5jbHVkZSAiUHJvZmlsZS5oIgotI2luY2x1ZGUg
IlN0YWNrVmlzaXRvci5oIgotCi1uYW1lc3BhY2UgSlNDIHsKLQotUmVmPFByb2ZpbGVHZW5lcmF0
b3I+IFByb2ZpbGVHZW5lcmF0b3I6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+IHN0b3B3YXRjaCkK
LXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm9maWxlR2VuZXJhdG9yKGV4ZWMsIHRpdGxl
LCB1aWQsIHN0b3B3YXRjaCkpOwotfQotCi1Qcm9maWxlR2VuZXJhdG9yOjpQcm9maWxlR2VuZXJh
dG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBQ
YXNzUmVmUHRyPFN0b3B3YXRjaD4gc3RvcHdhdGNoKQotICAgIDogbV9vcmlnaW4oZXhlYyA/IGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSA6IG51bGxwdHIpCi0gICAgLCBtX3Byb2ZpbGVHcm91
cChleGVjID8gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAoKSA6IDAp
Ci0gICAgLCBtX3N0b3B3YXRjaChzdG9wd2F0Y2gpCi0gICAgLCBtX2ZvdW5kQ29uc29sZVN0YXJ0
UGFyZW50KGZhbHNlKQotICAgICwgbV9zdXNwZW5kZWQoZmFsc2UpCi17Ci0gICAgZG91YmxlIHN0
YXJ0VGltZSA9IG1fc3RvcHdhdGNoLT5lbGFwc2VkVGltZSgpOwotICAgIG1fcHJvZmlsZSA9IFBy
b2ZpbGU6OmNyZWF0ZSh0aXRsZSwgdWlkLCBzdGFydFRpbWUpOwotICAgIG1fY3VycmVudE5vZGUg
PSBtX3Jvb3ROb2RlID0gbV9wcm9maWxlLT5yb290Tm9kZSgpOwotICAgIGlmIChleGVjKQotICAg
ICAgICBhZGRQYXJlbnRGb3JDb25zb2xlU3RhcnQoZXhlYywgc3RhcnRUaW1lKTsKLX0KLQotY2xh
c3MgQWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0RnVuY3RvciB7Ci1wdWJsaWM6Ci0gICAgQWRkUGFy
ZW50Rm9yQ29uc29sZVN0YXJ0RnVuY3RvcihFeGVjU3RhdGUqIGV4ZWMsIFJlZlB0cjxQcm9maWxl
Tm9kZT4mIHJvb3ROb2RlLCBSZWZQdHI8UHJvZmlsZU5vZGU+JiBjdXJyZW50Tm9kZSwgZG91Ymxl
IHN0YXJ0VGltZSkKLSAgICAgICAgOiBtX2V4ZWMoZXhlYykKLSAgICAgICAgLCBtX2hhc1NraXBw
ZWRGaXJzdEZyYW1lKGZhbHNlKQotICAgICAgICAsIG1fZm91bmRQYXJlbnQoZmFsc2UpCi0gICAg
ICAgICwgbV9yb290Tm9kZShyb290Tm9kZSkKLSAgICAgICAgLCBtX2N1cnJlbnROb2RlKGN1cnJl
bnROb2RlKQotICAgICAgICAsIG1fc3RhcnRUaW1lKHN0YXJ0VGltZSkKLSAgICB7Ci0gICAgfQot
Ci0gICAgYm9vbCBmb3VuZFBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZm91bmRQYXJlbnQ7IH0K
LQotICAgIFN0YWNrVmlzaXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3RhY2tWaXNpdG9yJiB2aXNp
dG9yKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKCFtX2hhc1NraXBwZWRGaXJzdEZyYW1lKSB7
Ci0gICAgICAgICAgICBtX2hhc1NraXBwZWRGaXJzdEZyYW1lID0gdHJ1ZTsKLSAgICAgICAgICAg
IHJldHVybiBTdGFja1Zpc2l0b3I6OkNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgdW5z
aWduZWQgbGluZSA9IDA7Ci0gICAgICAgIHVuc2lnbmVkIGNvbHVtbiA9IDA7Ci0gICAgICAgIHZp
c2l0b3ItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUsIGNvbHVtbik7Ci0gICAgICAgIG1fY3Vy
cmVudE5vZGUgPSBQcm9maWxlTm9kZTo6Y3JlYXRlKG1fZXhlYywgTGVnYWN5UHJvZmlsZXI6OmNy
ZWF0ZUNhbGxJZGVudGlmaWVyKG1fZXhlYywgdmlzaXRvci0+Y2FsbGVlKCksIHZpc2l0b3ItPnNv
dXJjZVVSTCgpLCBsaW5lLCBjb2x1bW4pLCBtX3Jvb3ROb2RlLmdldCgpKTsKLSAgICAgICAgbV9j
dXJyZW50Tm9kZS0+YXBwZW5kQ2FsbChQcm9maWxlTm9kZTo6Q2FsbChtX3N0YXJ0VGltZSkpOwot
ICAgICAgICBtX3Jvb3ROb2RlLT5zcGxpY2VOb2RlKG1fY3VycmVudE5vZGUuZ2V0KCkpOwotCi0g
ICAgICAgIG1fZm91bmRQYXJlbnQgPSB0cnVlOwotICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9y
OjpEb25lOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBFeGVjU3RhdGUqIG1fZXhlYzsKLSAgICBt
dXRhYmxlIGJvb2wgbV9oYXNTa2lwcGVkRmlyc3RGcmFtZTsKLSAgICBtdXRhYmxlIGJvb2wgbV9m
b3VuZFBhcmVudDsKLSAgICBSZWZQdHI8UHJvZmlsZU5vZGU+JiBtX3Jvb3ROb2RlOwotICAgIFJl
ZlB0cjxQcm9maWxlTm9kZT4mIG1fY3VycmVudE5vZGU7Ci0gICAgZG91YmxlIG1fc3RhcnRUaW1l
OwotfTsKLQotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjphZGRQYXJlbnRGb3JDb25zb2xlU3RhcnQo
RXhlY1N0YXRlKiBleGVjLCBkb3VibGUgc3RhcnRUaW1lKQotewotICAgIEFkZFBhcmVudEZvckNv
bnNvbGVTdGFydEZ1bmN0b3IgZnVuY3RvcihleGVjLCBtX3Jvb3ROb2RlLCBtX2N1cnJlbnROb2Rl
LCBzdGFydFRpbWUpOwotICAgIGV4ZWMtPml0ZXJhdGUoZnVuY3Rvcik7Ci0KLSAgICBtX2ZvdW5k
Q29uc29sZVN0YXJ0UGFyZW50ID0gZnVuY3Rvci5mb3VuZFBhcmVudCgpOwotfQotCi1jb25zdCBT
dHJpbmcmIFByb2ZpbGVHZW5lcmF0b3I6OnRpdGxlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9w
cm9maWxlLT50aXRsZSgpOwotfQotCi12b2lkIFByb2ZpbGVHZW5lcmF0b3I6OmJlZ2luQ2FsbEVu
dHJ5KFByb2ZpbGVOb2RlKiBub2RlLCBkb3VibGUgc3RhcnRUaW1lKQotewotICAgIEFTU0VSVF9B
Ukcobm9kZSwgbm9kZSk7Ci0KLSAgICBpZiAoc3RkOjppc25hbihzdGFydFRpbWUpKQotICAgICAg
ICBzdGFydFRpbWUgPSBtX3N0b3B3YXRjaC0+ZWxhcHNlZFRpbWUoKTsKLQotICAgIG5vZGUtPmFw
cGVuZENhbGwoUHJvZmlsZU5vZGU6OkNhbGwoc3RhcnRUaW1lKSk7Ci19Ci0KLXZvaWQgUHJvZmls
ZUdlbmVyYXRvcjo6ZW5kQ2FsbEVudHJ5KFByb2ZpbGVOb2RlKiBub2RlKQotewotICAgIEFTU0VS
VF9BUkcobm9kZSwgbm9kZSk7Ci0KLSAgICBQcm9maWxlTm9kZTo6Q2FsbCYgbGFzdCA9IG5vZGUt
Pmxhc3RDYWxsKCk7Ci0KLSAgICBkb3VibGUgcHJldmlvdXNFbGFwc2VkVGltZSA9IHN0ZDo6aXNu
YW4obGFzdC5lbGFwc2VkVGltZSgpKSA/IDAuMCA6IGxhc3QuZWxhcHNlZFRpbWUoKTsKLSAgICBk
b3VibGUgbmV3bHlFbGFwc2VkVGltZSA9IG1fc3RvcHdhdGNoLT5lbGFwc2VkVGltZSgpIC0gbGFz
dC5zdGFydFRpbWUoKTsKLSAgICBsYXN0LnNldEVsYXBzZWRUaW1lKHByZXZpb3VzRWxhcHNlZFRp
bWUgKyBuZXdseUVsYXBzZWRUaW1lKTsKLX0KLQotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjp3aWxs
RXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXIm
IGNhbGxJZGVudGlmaWVyKQotewotICAgIGlmICghbV9vcmlnaW4pCi0gICAgICAgIHJldHVybjsK
LQotICAgIGlmIChtX3N1c3BlbmRlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVmUHRyPFBy
b2ZpbGVOb2RlPiBjYWxsZWVOb2RlID0gbnVsbHB0cjsKLQotICAgIC8vIEZpbmQgb3IgY3JlYXRl
IGEgbm9kZSBmb3IgdGhlIGNhbGxlZSBjYWxsIGZyYW1lLgotICAgIGZvciAoY29uc3QgUmVmUHRy
PFByb2ZpbGVOb2RlPiYgY2hpbGQgOiBtX2N1cnJlbnROb2RlLT5jaGlsZHJlbigpKSB7Ci0gICAg
ICAgIGlmIChjaGlsZC0+Y2FsbElkZW50aWZpZXIoKSA9PSBjYWxsSWRlbnRpZmllcikKLSAgICAg
ICAgICAgIGNhbGxlZU5vZGUgPSBjaGlsZDsKLSAgICB9Ci0KLSAgICBpZiAoIWNhbGxlZU5vZGUp
IHsKLSAgICAgICAgY2FsbGVlTm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUoY2FsbGVyQ2FsbEZy
YW1lLCBjYWxsSWRlbnRpZmllciwgbV9jdXJyZW50Tm9kZS5nZXQoKSk7Ci0gICAgICAgIG1fY3Vy
cmVudE5vZGUtPmFkZENoaWxkKGNhbGxlZU5vZGUpOwotICAgIH0KLQotICAgIG1fY3VycmVudE5v
ZGUgPSBjYWxsZWVOb2RlOwotICAgIGJlZ2luQ2FsbEVudHJ5KGNhbGxlZU5vZGUuZ2V0KCksIG1f
c3RvcHdhdGNoLT5lbGFwc2VkVGltZSgpKTsKLX0KLQotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjpk
aWRFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmll
ciYgY2FsbElkZW50aWZpZXIpCi17Ci0gICAgaWYgKCFtX29yaWdpbikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaWYgKG1fc3VzcGVuZGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBNYWtl
IGEgbmV3IG5vZGUgaWYgdGhlIGNhbGxlciBub2RlIGhhcyBuZXZlciBzZWVuIHRoaXMgY2FsbGVl
IGNhbGwgZnJhbWUgYmVmb3JlLgotICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpZiB8Y29uc29sZS5w
cm9maWxlKCl8IGlzIGNhbGxlZCBzZXZlcmFsIGZyYW1lcyBkZWVwIGluIHRoZSBjYWxsIHN0YWNr
LgotICAgIEFTU0VSVChtX2N1cnJlbnROb2RlKTsKLSAgICBpZiAobV9jdXJyZW50Tm9kZS0+Y2Fs
bElkZW50aWZpZXIoKSAhPSBjYWxsSWRlbnRpZmllcikgewotICAgICAgICBSZWZQdHI8UHJvZmls
ZU5vZGU+IGNhbGxlZU5vZGUgPSBQcm9maWxlTm9kZTo6Y3JlYXRlKGNhbGxlckNhbGxGcmFtZSwg
Y2FsbElkZW50aWZpZXIsIG1fY3VycmVudE5vZGUuZ2V0KCkpOwotICAgICAgICBiZWdpbkNhbGxF
bnRyeShjYWxsZWVOb2RlLmdldCgpLCBtX2N1cnJlbnROb2RlLT5sYXN0Q2FsbCgpLnN0YXJ0VGlt
ZSgpKTsKLSAgICAgICAgZW5kQ2FsbEVudHJ5KGNhbGxlZU5vZGUuZ2V0KCkpOwotICAgICAgICBt
X2N1cnJlbnROb2RlLT5zcGxpY2VOb2RlKGNhbGxlZU5vZGUucmVsZWFzZSgpKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIGVuZENhbGxFbnRyeShtX2N1cnJlbnROb2RlLmdldCgpKTsK
LSAgICBtX2N1cnJlbnROb2RlID0gbV9jdXJyZW50Tm9kZS0+cGFyZW50KCk7Ci19Ci0KLXZvaWQg
UHJvZmlsZUdlbmVyYXRvcjo6ZXhjZXB0aW9uVW53aW5kKEV4ZWNTdGF0ZSogaGFuZGxlckNhbGxG
cmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImKQotewotICAgIGlmIChtX3N1c3BlbmRlZCkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgLy8gSWYgdGhlIGN1cnJlbnQgbm9kZSB3YXMgY2FsbGVkIGJ5
IHRoZSBoYW5kbGVyICg9PSkgb3IgYW55Ci0gICAgLy8gbW9yZSBuZXN0ZWQgZnVuY3Rpb24gKD4p
IHRoZSB3ZSBoYXZlIGV4aXRlZCBlYXJseSBmcm9tIGl0LgotICAgIEFTU0VSVChtX2N1cnJlbnRO
b2RlKTsKLSAgICB3aGlsZSAobV9jdXJyZW50Tm9kZS0+Y2FsbGVyQ2FsbEZyYW1lKCkgPj0gaGFu
ZGxlckNhbGxGcmFtZSkgewotICAgICAgICBkaWRFeGVjdXRlKG1fY3VycmVudE5vZGUtPmNhbGxl
ckNhbGxGcmFtZSgpLCBtX2N1cnJlbnROb2RlLT5jYWxsSWRlbnRpZmllcigpKTsKLSAgICAgICAg
QVNTRVJUKG1fY3VycmVudE5vZGUpOwotICAgIH0KLX0KLQotdm9pZCBQcm9maWxlR2VuZXJhdG9y
OjpzdG9wUHJvZmlsaW5nKCkKLXsKLSAgICBmb3IgKFByb2ZpbGVOb2RlKiBub2RlID0gbV9jdXJy
ZW50Tm9kZS5nZXQoKTsgbm9kZSAhPSBtX3Byb2ZpbGUtPnJvb3ROb2RlKCk7IG5vZGUgPSBub2Rl
LT5wYXJlbnQoKSkKLSAgICAgICAgZW5kQ2FsbEVudHJ5KG5vZGUpOwotCi0gICAgaWYgKG1fZm91
bmRDb25zb2xlU3RhcnRQYXJlbnQpIHsKLSAgICAgICAgcmVtb3ZlUHJvZmlsZVN0YXJ0KCk7Ci0g
ICAgICAgIHJlbW92ZVByb2ZpbGVFbmQoKTsKLSAgICB9Ci0KLSAgICBBU1NFUlQobV9jdXJyZW50
Tm9kZSk7Ci0KLSAgICAvLyBTZXQgdGhlIGN1cnJlbnQgbm9kZSB0byB0aGUgcGFyZW50LCBiZWNh
dXNlIHdlIGFyZSBpbiBhIGNhbGwgdGhhdAotICAgIC8vIHdpbGwgbm90IGdldCBkaWRFeGVjdXRl
IGNhbGwuCi0gICAgbV9jdXJyZW50Tm9kZSA9IG1fY3VycmVudE5vZGUtPnBhcmVudCgpOwotfQot
Ci0vLyBUaGUgY29uc29sZS5wcm9maWxlIHRoYXQgc3RhcnRlZCB0aGlzIFByb2ZpbGVHZW5lcmF0
b3Igd2lsbCBiZSB0aGUgZmlyc3QgY2hpbGQuCi12b2lkIFByb2ZpbGVHZW5lcmF0b3I6OnJlbW92
ZVByb2ZpbGVTdGFydCgpCi17Ci0gICAgUHJvZmlsZU5vZGUqIGN1cnJlbnROb2RlID0gbnVsbHB0
cjsKLSAgICBmb3IgKFByb2ZpbGVOb2RlKiBuZXh0ID0gbV9yb290Tm9kZS5nZXQoKTsgbmV4dDsg
bmV4dCA9IG5leHQtPmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgY3VycmVudE5vZGUgPSBuZXh0Owot
Ci0gICAgaWYgKGN1cnJlbnROb2RlLT5jYWxsSWRlbnRpZmllcigpLmZ1bmN0aW9uTmFtZSgpICE9
ICJwcm9maWxlIikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY3VycmVudE5vZGUtPnBhcmVudCgp
LT5yZW1vdmVDaGlsZChjdXJyZW50Tm9kZSk7Ci19Ci0KLS8vIFRoZSBjb25zb2xlLnByb2ZpbGVF
bmQgdGhhdCBzdG9wcGVkIHRoaXMgUHJvZmlsZUdlbmVyYXRvciB3aWxsIGJlIHRoZSBsYXN0IGNo
aWxkLgotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjpyZW1vdmVQcm9maWxlRW5kKCkKLXsKLSAgICBQ
cm9maWxlTm9kZSogY3VycmVudE5vZGUgPSBudWxscHRyOwotICAgIGZvciAoUHJvZmlsZU5vZGUq
IG5leHQgPSBtX3Jvb3ROb2RlLmdldCgpOyBuZXh0OyBuZXh0ID0gbmV4dC0+bGFzdENoaWxkKCkp
Ci0gICAgICAgIGN1cnJlbnROb2RlID0gbmV4dDsKLQotICAgIGlmIChjdXJyZW50Tm9kZS0+Y2Fs
bElkZW50aWZpZXIoKS5mdW5jdGlvbk5hbWUoKSAhPSAicHJvZmlsZUVuZCIpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIEFTU0VSVChjdXJyZW50Tm9kZS0+Y2FsbElkZW50aWZpZXIoKSA9PSAoY3Vy
cmVudE5vZGUtPnBhcmVudCgpLT5jaGlsZHJlbigpW2N1cnJlbnROb2RlLT5wYXJlbnQoKS0+Y2hp
bGRyZW4oKS5zaXplKCkgLSAxXSktPmNhbGxJZGVudGlmaWVyKCkpOwotICAgIGN1cnJlbnROb2Rl
LT5wYXJlbnQoKS0+cmVtb3ZlQ2hpbGQoY3VycmVudE5vZGUpOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxl
R2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVy
YXRvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODdlZDVmLi4wMDAwMDAwCi0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQcm9maWxlR2VuZXJhdG9yX2gKLSNkZWZpbmUgUHJv
ZmlsZUdlbmVyYXRvcl9oCi0KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9TdG9wd2F0Y2guaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNw
YWNlIEpTQyB7Ci0KLSAgICBjbGFzcyBEZWJ1Z2dlckNhbGxGcmFtZTsKLSAgICBjbGFzcyBFeGVj
U3RhdGU7Ci0gICAgY2xhc3MgSlNHbG9iYWxPYmplY3Q7Ci0gICAgY2xhc3MgUHJvZmlsZTsKLSAg
ICBjbGFzcyBQcm9maWxlTm9kZTsKLSAgICBzdHJ1Y3QgQ2FsbElkZW50aWZpZXI7Ci0KLSAgICBj
bGFzcyBQcm9maWxlR2VuZXJhdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8UHJvZmlsZUdlbmVyYXRv
cj4gIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8UHJvZmlsZUdlbmVyYXRvcj4g
Y3JlYXRlKEV4ZWNTdGF0ZSosIGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlk
LCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4pOwotCi0gICAgICAgIC8vIE1lbWJlcnMKLSAgICAgICAg
Y29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlKCkgY29uc3Q7Ci0gICAgICAgIFBhc3NSZWZQdHI8UHJv
ZmlsZT4gcHJvZmlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvZmlsZTsgfQotICAgICAgICBKU0ds
b2JhbE9iamVjdCogb3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KLSAgICAgICAg
dW5zaWduZWQgcHJvZmlsZUdyb3VwKCkgY29uc3QgeyByZXR1cm4gbV9wcm9maWxlR3JvdXA7IH0K
LQotICAgICAgICB2b2lkIHdpbGxFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBj
b25zdCBDYWxsSWRlbnRpZmllciYpOwotICAgICAgICB2b2lkIGRpZEV4ZWN1dGUoRXhlY1N0YXRl
KiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJik7Ci0gICAgICAgIHZvaWQg
ZXhjZXB0aW9uVW53aW5kKEV4ZWNTdGF0ZSogaGFuZGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElk
ZW50aWZpZXImKTsKLQotICAgICAgICB2b2lkIHNldElzU3VzcGVuZGVkKGJvb2wgc3VzcGVuZGVk
KSB7IEFTU0VSVChtX3N1c3BlbmRlZCAhPSBzdXNwZW5kZWQpOyBtX3N1c3BlbmRlZCA9IHN1c3Bl
bmRlZDsgfQotCi0gICAgICAgIHZvaWQgc3RvcFByb2ZpbGluZygpOwotCi0gICAgcHJpdmF0ZToK
LSAgICAgICAgUHJvZmlsZUdlbmVyYXRvcihFeGVjU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYg
dGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+KTsKLSAgICAgICAgdm9p
ZCBhZGRQYXJlbnRGb3JDb25zb2xlU3RhcnQoRXhlY1N0YXRlKiwgZG91YmxlKTsKLQotICAgICAg
ICB2b2lkIHJlbW92ZVByb2ZpbGVTdGFydCgpOwotICAgICAgICB2b2lkIHJlbW92ZVByb2ZpbGVF
bmQoKTsKLQotICAgICAgICB2b2lkIGJlZ2luQ2FsbEVudHJ5KFByb2ZpbGVOb2RlKiwgZG91Ymxl
IHN0YXJ0VGltZSk7Ci0gICAgICAgIHZvaWQgZW5kQ2FsbEVudHJ5KFByb2ZpbGVOb2RlKik7Ci0K
LSAgICAgICAgUmVmUHRyPFByb2ZpbGU+IG1fcHJvZmlsZTsKLSAgICAgICAgSlNHbG9iYWxPYmpl
Y3QqIG1fb3JpZ2luOwotICAgICAgICB1bnNpZ25lZCBtX3Byb2ZpbGVHcm91cDsKLSAgICAgICAg
UmVmUHRyPFN0b3B3YXRjaD4gbV9zdG9wd2F0Y2g7Ci0gICAgICAgIFJlZlB0cjxQcm9maWxlTm9k
ZT4gbV9yb290Tm9kZTsKLSAgICAgICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBtX2N1cnJlbnROb2Rl
OwotICAgICAgICBib29sIG1fZm91bmRDb25zb2xlU3RhcnRQYXJlbnQ7Ci0gICAgICAgIGJvb2wg
bV9zdXNwZW5kZWQ7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBQ
cm9maWxlR2VuZXJhdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlTm9kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZU5vZGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YmNmMzc1Li4wMDAw
MDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwxOTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiUHJvZmlsZU5vZGUuaCIKLQotI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCi0jaW5jbHVk
ZSA8d3RmL0RhdGVNYXRoLmg+Ci0jaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXVEY7Ci0KLW5hbWVzcGFj
ZSBKU0MgewotCi1Qcm9maWxlTm9kZTo6UHJvZmlsZU5vZGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxs
RnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllciwgUHJvZmlsZU5vZGUq
IHBhcmVudE5vZGUpCi0gICAgOiBtX2NhbGxlckNhbGxGcmFtZShjYWxsZXJDYWxsRnJhbWUpCi0g
ICAgLCBtX2NhbGxJZGVudGlmaWVyKGNhbGxJZGVudGlmaWVyKQotICAgICwgbV9wYXJlbnQocGFy
ZW50Tm9kZSkKLSNpZm5kZWYgTkRFQlVHCi0gICAgLCBtX25leHRTaWJsaW5nKG51bGxwdHIpCi0j
ZW5kaWYKLXsKLX0KLQotUHJvZmlsZU5vZGU6OlByb2ZpbGVOb2RlKEV4ZWNTdGF0ZSogY2FsbGVy
Q2FsbEZyYW1lLCBQcm9maWxlTm9kZSogbm9kZVRvQ29weSkKLSAgICA6IG1fY2FsbGVyQ2FsbEZy
YW1lKGNhbGxlckNhbGxGcmFtZSkKLSAgICAsIG1fY2FsbElkZW50aWZpZXIobm9kZVRvQ29weS0+
Y2FsbElkZW50aWZpZXIoKSkKLSAgICAsIG1fcGFyZW50KG5vZGVUb0NvcHktPnBhcmVudCgpKQot
ICAgICwgbV9jYWxscyhub2RlVG9Db3B5LT5jYWxscygpKQotI2lmbmRlZiBOREVCVUcKLSAgICAs
IG1fbmV4dFNpYmxpbmcobnVsbHB0cikKLSNlbmRpZgotewotfQotCi12b2lkIFByb2ZpbGVOb2Rl
OjphZGRDaGlsZChQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPiBwcnBDaGlsZCkKLXsKLSAgICBSZWZQ
dHI8UHJvZmlsZU5vZGU+IGNoaWxkID0gcHJwQ2hpbGQ7Ci0gICAgY2hpbGQtPnNldFBhcmVudCh0
aGlzKTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgaWYgKG1fY2hpbGRyZW4uc2l6ZSgpKQotICAgICAg
ICBtX2NoaWxkcmVuLmxhc3QoKS0+c2V0TmV4dFNpYmxpbmcoY2hpbGQuZ2V0KCkpOwotI2VuZGlm
Ci0gICAgbV9jaGlsZHJlbi5hcHBlbmQoY2hpbGQucmVsZWFzZSgpKTsKLX0KLQotdm9pZCBQcm9m
aWxlTm9kZTo6cmVtb3ZlQ2hpbGQoUHJvZmlsZU5vZGUqIG5vZGUpCi17Ci0gICAgaWYgKCFub2Rl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NoaWxkcmVuLnJlbW92ZUZpcnN0TWF0Y2hpbmco
W25vZGVdIChjb25zdCBSZWZQdHI8UHJvZmlsZU5vZGU+JiBjdXJyZW50KSB7Ci0gICAgICAgIHJl
dHVybiAqbm9kZSA9PSBjdXJyZW50LmdldCgpOwotICAgIH0pOwotCi0jaWZuZGVmIE5ERUJVRwot
ICAgIHNpemVfdCBzaXplID0gbV9jaGlsZHJlbi5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fY2hpbGRyZW5baV0tPnNldE5leHRTaWJsaW5n
KGkgKyAxID09IHNpemUgPyBudWxscHRyIDogbV9jaGlsZHJlbltpICsgMV0uZ2V0KCkpOwotI2Vu
ZGlmCi19Ci0KLXZvaWQgUHJvZmlsZU5vZGU6OnNwbGljZU5vZGUoUGFzc1JlZlB0cjxQcm9maWxl
Tm9kZT4gcHJwTm9kZSkKLXsKLSAgICBSZWZQdHI8UHJvZmlsZU5vZGU+IG5vZGUgPSBwcnBOb2Rl
OwotCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hpbGRyZW4uc2l6ZSgpOyArK2kp
Ci0gICAgICAgIG5vZGUtPmFkZENoaWxkKG1fY2hpbGRyZW5baV0ucmVsZWFzZSgpKTsKLQotICAg
IG1fY2hpbGRyZW4uY2xlYXIoKTsKLSAgICBtX2NoaWxkcmVuLmFwcGVuZChub2RlLnJlbGVhc2Uo
KSk7Ci19Ci0KLSNpZm5kZWYgTkRFQlVHCi1Qcm9maWxlTm9kZSogUHJvZmlsZU5vZGU6OnRyYXZl
cnNlTmV4dE5vZGVQb3N0T3JkZXIoKSBjb25zdAotewotICAgIFByb2ZpbGVOb2RlKiBuZXh0ID0g
bV9uZXh0U2libGluZzsKLSAgICBpZiAoIW5leHQpCi0gICAgICAgIHJldHVybiBtX3BhcmVudDsK
LSAgICB3aGlsZSAoUHJvZmlsZU5vZGUqIGZpcnN0Q2hpbGQgPSBuZXh0LT5maXJzdENoaWxkKCkp
Ci0gICAgICAgIG5leHQgPSBmaXJzdENoaWxkOwotICAgIHJldHVybiBuZXh0OwotfQotCi12b2lk
IFByb2ZpbGVOb2RlOjpkZWJ1Z1ByaW50KCkKLXsKLSAgICBDYWxjdWxhdGVQcm9maWxlU3VidHJl
ZURhdGFGdW5jdG9yIGZ1bmN0b3I7Ci0gICAgZm9yRWFjaE5vZGVQb3N0b3JkZXIoZnVuY3Rvcik7
Ci0gICAgUHJvZmlsZU5vZGU6OlByb2ZpbGVTdWJ0cmVlRGF0YSBkYXRhID0gZnVuY3Rvci5yZXR1
cm5WYWx1ZSgpOwotCi0gICAgZGVidWdQcmludFJlY3Vyc2l2ZWx5KDAsIGRhdGEpOwotfQotCi12
b2lkIFByb2ZpbGVOb2RlOjpkZWJ1Z1ByaW50U2FtcGxlU3R5bGUoKQotewotICAgIEZ1bmN0aW9u
Q2FsbEhhc2hDb3VudCBjb3VudGVkRnVuY3Rpb25zOwotCi0gICAgQ2FsY3VsYXRlUHJvZmlsZVN1
YnRyZWVEYXRhRnVuY3RvciBmdW5jdG9yOwotICAgIGZvckVhY2hOb2RlUG9zdG9yZGVyKGZ1bmN0
b3IpOwotICAgIFByb2ZpbGVOb2RlOjpQcm9maWxlU3VidHJlZURhdGEgZGF0YSA9IGZ1bmN0b3Iu
cmV0dXJuVmFsdWUoKTsKLQotICAgIGRlYnVnUHJpbnRTYW1wbGVTdHlsZVJlY3Vyc2l2ZWx5KDAs
IGNvdW50ZWRGdW5jdGlvbnMsIGRhdGEpOwotfQotCi12b2lkIFByb2ZpbGVOb2RlOjpkZWJ1Z1By
aW50UmVjdXJzaXZlbHkoaW50IGluZGVudExldmVsLCBjb25zdCBQcm9maWxlU3VidHJlZURhdGEm
IGRhdGEpCi17Ci0gICAgLy8gUHJpbnQgZnVuY3Rpb24gbmFtZXMKLSAgICBmb3IgKGludCBpID0g
MDsgaSA8IGluZGVudExldmVsOyArK2kpCi0gICAgICAgIGRhdGFMb2dGKCIgICIpOwotCi0gICAg
YXV0byBpdCA9IGRhdGEuc2VsZkFuZFRvdGFsVGltZXMuZmluZCh0aGlzKTsKLSAgICBBU1NFUlQo
aXQgIT0gZGF0YS5zZWxmQW5kVG90YWxUaW1lcy5lbmQoKSk7Ci0KLSAgICBkb3VibGUgbm9kZVNl
bGZUaW1lID0gaXQtPnZhbHVlLmZpcnN0OwotICAgIGRvdWJsZSBub2RlVG90YWxUaW1lID0gaXQt
PnZhbHVlLnNlY29uZDsKLSAgICBkb3VibGUgcm9vdFRvdGFsVGltZSA9IGRhdGEucm9vdFRvdGFs
VGltZTsKLQotICAgIGRhdGFMb2dGKCJGdW5jdGlvbiBOYW1lICVzICV6dSBTZWxmVGltZSAlLjNm
bXMvJS4zZiUlIFRvdGFsVGltZSAlLjNmbXMvJS4zZiUlIE5leHQgU2libGluZyAlc1xuIiwKLSAg
ICAgICAgZnVuY3Rpb25OYW1lKCkudXRmOCgpLmRhdGEoKSwKLSAgICAgICAgbV9jYWxscy5zaXpl
KCksIG5vZGVTZWxmVGltZSwgbm9kZVNlbGZUaW1lIC8gcm9vdFRvdGFsVGltZSAqIDEwMC4wLCBu
b2RlVG90YWxUaW1lLCBub2RlVG90YWxUaW1lIC8gcm9vdFRvdGFsVGltZSAqIDEwMC4wLAotICAg
ICAgICBtX25leHRTaWJsaW5nID8gbV9uZXh0U2libGluZy0+ZnVuY3Rpb25OYW1lKCkudXRmOCgp
LmRhdGEoKSA6ICIiKTsKLQotICAgICsraW5kZW50TGV2ZWw7Ci0KLSAgICAvLyBQcmludCBjaGls
ZHJlbidzIG5hbWVzIGFuZCBpbmZvcm1hdGlvbgotICAgIGZvciAoU3RhY2tJdGVyYXRvciBjdXJy
ZW50Q2hpbGQgPSBtX2NoaWxkcmVuLmJlZ2luKCk7IGN1cnJlbnRDaGlsZCAhPSBtX2NoaWxkcmVu
LmVuZCgpOyArK2N1cnJlbnRDaGlsZCkKLSAgICAgICAgKCpjdXJyZW50Q2hpbGQpLT5kZWJ1Z1By
aW50UmVjdXJzaXZlbHkoaW5kZW50TGV2ZWwsIGRhdGEpOwotfQotCi0vLyBwcmludCB0aGUgcHJv
ZmlsZWQgZGF0YSBpbiBhIGZvcm1hdCB0aGF0IG1hdGNoZXMgdGhlIHRvb2wgc2FtcGxlJ3Mgb3V0
cHV0LgotZG91YmxlIFByb2ZpbGVOb2RlOjpkZWJ1Z1ByaW50U2FtcGxlU3R5bGVSZWN1cnNpdmVs
eShpbnQgaW5kZW50TGV2ZWwsIEZ1bmN0aW9uQ2FsbEhhc2hDb3VudCYgY291bnRlZEZ1bmN0aW9u
cywgY29uc3QgUHJvZmlsZVN1YnRyZWVEYXRhJiBkYXRhKQotewotICAgIGRhdGFMb2dGKCIgICAg
Iik7Ci0KLSAgICBhdXRvIGl0ID0gZGF0YS5zZWxmQW5kVG90YWxUaW1lcy5maW5kKHRoaXMpOwot
ICAgIEFTU0VSVChpdCAhPSBkYXRhLnNlbGZBbmRUb3RhbFRpbWVzLmVuZCgpKTsKLSAgICBkb3Vi
bGUgbm9kZVRvdGFsVGltZSA9IGl0LT52YWx1ZS5zZWNvbmQ7Ci0KLSAgICAvLyBQcmludCBmdW5j
dGlvbiBuYW1lcwotICAgIGNvbnN0IGNoYXIqIG5hbWUgPSBmdW5jdGlvbk5hbWUoKS51dGY4KCku
ZGF0YSgpOwotICAgIGRvdWJsZSBzYW1wbGVDb3VudCA9IG5vZGVUb3RhbFRpbWUgKiAxMDAwOwot
ICAgIGlmIChpbmRlbnRMZXZlbCkgewotICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGVu
dExldmVsOyArK2kpCi0gICAgICAgICAgICBkYXRhTG9nRigiICAiKTsKLQotICAgICAgICAgY291
bnRlZEZ1bmN0aW9ucy5hZGQoZnVuY3Rpb25OYW1lKCkuaW1wbCgpKTsKLQotICAgICAgICBkYXRh
TG9nRigiJS4wZiAlc1xuIiwgc2FtcGxlQ291bnQgPyBzYW1wbGVDb3VudCA6IDEsIG5hbWUpOwot
ICAgIH0gZWxzZQotICAgICAgICBkYXRhTG9nRigiJXNcbiIsIG5hbWUpOwotCi0gICAgKytpbmRl
bnRMZXZlbDsKLQotICAgIC8vIFByaW50IGNoaWxkcmVuJ3MgbmFtZXMgYW5kIGluZm9ybWF0aW9u
Ci0gICAgZG91YmxlIHN1bU9mQ2hpbGRyZW5zQ291bnQgPSAwLjA7Ci0gICAgZm9yIChTdGFja0l0
ZXJhdG9yIGN1cnJlbnRDaGlsZCA9IG1fY2hpbGRyZW4uYmVnaW4oKTsgY3VycmVudENoaWxkICE9
IG1fY2hpbGRyZW4uZW5kKCk7ICsrY3VycmVudENoaWxkKQotICAgICAgICBzdW1PZkNoaWxkcmVu
c0NvdW50ICs9ICgqY3VycmVudENoaWxkKS0+ZGVidWdQcmludFNhbXBsZVN0eWxlUmVjdXJzaXZl
bHkoaW5kZW50TGV2ZWwsIGNvdW50ZWRGdW5jdGlvbnMsIGRhdGEpOwotCi0gICAgc3VtT2ZDaGls
ZHJlbnNDb3VudCAqPSAxMDAwOyAgICAvLwotICAgIC8vIFByaW50IHJlbWFpbmRlciBvZiBzYW1w
bGVzIHRvIG1hdGNoIHNhbXBsZSdzIG91dHB1dAotICAgIGlmIChzdW1PZkNoaWxkcmVuc0NvdW50
IDwgc2FtcGxlQ291bnQpIHsKLSAgICAgICAgZGF0YUxvZ0YoIiAgICAiKTsKLSAgICAgICAgd2hp
bGUgKGluZGVudExldmVsLS0pCi0gICAgICAgICAgICBkYXRhTG9nRigiICAiKTsKLQotICAgICAg
ICBkYXRhTG9nRigiJS4wZiAlc1xuIiwgc2FtcGxlQ291bnQgLSBzdW1PZkNoaWxkcmVuc0NvdW50
LCBmdW5jdGlvbk5hbWUoKS51dGY4KCkuZGF0YSgpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gbm9k
ZVRvdGFsVGltZTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDdhZDE0OWUuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVOb2RlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxOTQgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJ
bmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAg
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IFByb2ZpbGVOb2RlX2gKLSNkZWZpbmUgUHJvZmlsZU5vZGVfaAotCi0jaW5jbHVkZSAiQ2FsbElk
ZW50aWZpZXIuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotCi0gICAgY2xhc3MgRXhlY1N0YXRlOwotICAg
IGNsYXNzIFByb2ZpbGVOb2RlOwotCi0gICAgdHlwZWRlZiBIYXNoQ291bnRlZFNldDxTdHJpbmdJ
bXBsKj4gRnVuY3Rpb25DYWxsSGFzaENvdW50OwotCi0gICAgY2xhc3MgUHJvZmlsZU5vZGUgOiBw
dWJsaWMgUmVmQ291bnRlZDxQcm9maWxlTm9kZT4gewotICAgIHB1YmxpYzoKLSAgICAgICAgc3Rh
dGljIFJlZjxQcm9maWxlTm9kZT4gY3JlYXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBj
b25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIsIFByb2ZpbGVOb2RlKiBwYXJlbnRO
b2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm9maWxl
Tm9kZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyLCBwYXJlbnROb2RlKSk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBzdGF0aWMgUmVmPFByb2ZpbGVOb2RlPiBjcmVhdGUoRXhlY1N0YXRl
KiBjYWxsZXJDYWxsRnJhbWUsIFByb2ZpbGVOb2RlKiBub2RlKQotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm9maWxlTm9kZShjYWxsZXJDYWxsRnJhbWUsIG5v
ZGUpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0cnVjdCBDYWxsIHsKLSAgICAgICAgcHVibGlj
OgotICAgICAgICAgICAgQ2FsbChkb3VibGUgc3RhcnRUaW1lLCBkb3VibGUgZWxhcHNlZFRpbWUg
PSBOQU4pCi0gICAgICAgICAgICAgICAgOiBtX3N0YXJ0VGltZShzdGFydFRpbWUpCi0gICAgICAg
ICAgICAgICAgLCBtX2VsYXBzZWRUaW1lKGVsYXBzZWRUaW1lKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBkb3VibGUgc3RhcnRUaW1lKCkgY29uc3QgeyByZXR1
cm4gbV9zdGFydFRpbWU7IH0KLSAgICAgICAgICAgIHZvaWQgc2V0U3RhcnRUaW1lKGRvdWJsZSB0
aW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEFTU0VSVF9BUkcodGltZSwgdGlt
ZSA+PSAwLjAgfHwgc3RkOjppc25hbih0aW1lKSk7Ci0gICAgICAgICAgICAgICAgbV9zdGFydFRp
bWUgPSB0aW1lOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBkb3VibGUgZWxhcHNlZFRp
bWUoKSBjb25zdCB7IHJldHVybiBtX2VsYXBzZWRUaW1lOyB9Ci0gICAgICAgICAgICB2b2lkIHNl
dEVsYXBzZWRUaW1lKGRvdWJsZSB0aW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IEFTU0VSVF9BUkcodGltZSwgdGltZSA+PSAwLjAgfHwgc3RkOjppc25hbih0aW1lKSk7Ci0gICAg
ICAgICAgICAgICAgbV9lbGFwc2VkVGltZSA9IHRpbWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgcHJpdmF0ZToKLSAgICAgICAgICAgIGRvdWJsZSBtX3N0YXJ0VGltZTsKLSAgICAgICAgICAg
IGRvdWJsZSBtX2VsYXBzZWRUaW1lOwotICAgICAgICB9OwotCi0gICAgICAgIGJvb2wgb3BlcmF0
b3I9PShQcm9maWxlTm9kZSogbm9kZSkgeyByZXR1cm4gbV9jYWxsSWRlbnRpZmllciA9PSBub2Rl
LT5jYWxsSWRlbnRpZmllcigpOyB9Ci0KLSAgICAgICAgRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJh
bWUoKSBjb25zdCB7IHJldHVybiBtX2NhbGxlckNhbGxGcmFtZTsgfQotICAgICAgICBjb25zdCBD
YWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVu
dGlmaWVyOyB9Ci0gICAgICAgIHVuc2lnbmVkIGlkKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsSWRl
bnRpZmllci5oYXNoKCk7IH0KLSAgICAgICAgY29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUoKSBj
b25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyLmZ1bmN0aW9uTmFtZSgpOyB9Ci0gICAgICAg
IGNvbnN0IFN0cmluZyYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsSWRlbnRpZmllci51cmwo
KTsgfQotICAgICAgICB1bnNpZ25lZCBsaW5lTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9jYWxs
SWRlbnRpZmllci5saW5lTnVtYmVyKCk7IH0KLSAgICAgICAgdW5zaWduZWQgY29sdW1uTnVtYmVy
KCkgY29uc3QgeyByZXR1cm4gbV9jYWxsSWRlbnRpZmllci5jb2x1bW5OdW1iZXIoKTsgfQotCi0g
ICAgICAgIFByb2ZpbGVOb2RlKiBwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQot
ICAgICAgICB2b2lkIHNldFBhcmVudChQcm9maWxlTm9kZSogcGFyZW50KSB7IG1fcGFyZW50ID0g
cGFyZW50OyB9Ci0KLSAgICAgICAgY29uc3QgVmVjdG9yPENhbGw+JiBjYWxscygpIGNvbnN0IHsg
cmV0dXJuIG1fY2FsbHM7IH0KLSAgICAgICAgQ2FsbCYgbGFzdENhbGwoKSB7IEFTU0VSVCghbV9j
YWxscy5pc0VtcHR5KCkpOyByZXR1cm4gbV9jYWxscy5sYXN0KCk7IH0KLSAgICAgICAgdm9pZCBh
cHBlbmRDYWxsKENhbGwgY2FsbCkgeyBtX2NhbGxzLmFwcGVuZChjYWxsKTsgfQotCi0gICAgICAg
IGNvbnN0IFZlY3RvcjxSZWZQdHI8UHJvZmlsZU5vZGU+PiYgY2hpbGRyZW4oKSBjb25zdCB7IHJl
dHVybiBtX2NoaWxkcmVuOyB9Ci0gICAgICAgIFByb2ZpbGVOb2RlKiBmaXJzdENoaWxkKCkgY29u
c3QgeyByZXR1cm4gbV9jaGlsZHJlbi5zaXplKCkgPyBtX2NoaWxkcmVuLmZpcnN0KCkuZ2V0KCkg
OiBudWxscHRyOyB9Ci0gICAgICAgIFByb2ZpbGVOb2RlKiBsYXN0Q2hpbGQoKSBjb25zdCB7IHJl
dHVybiBtX2NoaWxkcmVuLnNpemUoKSA/IG1fY2hpbGRyZW4ubGFzdCgpLmdldCgpIDogbnVsbHB0
cjsgfQotCi0gICAgICAgIHZvaWQgcmVtb3ZlQ2hpbGQoUHJvZmlsZU5vZGUqKTsKLSAgICAgICAg
dm9pZCBhZGRDaGlsZChQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPik7Ci0gICAgICAgIC8vIFJlcGFy
ZW50IG91ciBjaGlsZCBub2RlcyB0byB0aGUgcGFzc2VkIG5vZGUsIGFuZCBtYWtlIGl0IGEgY2hp
bGQgbm9kZSBvZiB8dGhpc3wuCi0gICAgICAgIHZvaWQgc3BsaWNlTm9kZShQYXNzUmVmUHRyPFBy
b2ZpbGVOb2RlPik7Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgIHN0cnVjdCBQcm9maWxlU3Vi
dHJlZURhdGEgewotICAgICAgICAgICAgSGFzaE1hcDxQcm9maWxlTm9kZSosIHN0ZDo6cGFpcjxk
b3VibGUsIGRvdWJsZT4+IHNlbGZBbmRUb3RhbFRpbWVzOwotICAgICAgICAgICAgZG91YmxlIHJv
b3RUb3RhbFRpbWU7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgLy8gVXNlIHRoZXNlIGZ1bmN0aW9u
cyB0byBkdW1wIHRoZSBzdWJ0cmVlIHJvb3RlZCBhdCB0aGlzIG5vZGUuCi0gICAgICAgIHZvaWQg
ZGVidWdQcmludCgpOwotICAgICAgICB2b2lkIGRlYnVnUHJpbnRTYW1wbGVTdHlsZSgpOwotCi0g
ICAgICAgIC8vIFRoZXNlIGFyZSB1c2VkIHRvIHJlY3Vyc2l2ZWx5IHByaW50IGVudGlyZSBzdWJ0
cmVlcyB1c2luZyBwcmVjb21wdXRlZCBzZWxmIGFuZCB0b3RhbCB0aW1lcy4KLSAgICAgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIEZ1bmN0b3I+IHZvaWQgZm9yRWFjaE5vZGVQb3N0b3JkZXIoRnVuY3Rv
ciYpOwotCi0gICAgICAgIHZvaWQgZGVidWdQcmludFJlY3Vyc2l2ZWx5KGludCBpbmRlbnRMZXZl
bCwgY29uc3QgUHJvZmlsZVN1YnRyZWVEYXRhJik7Ci0gICAgICAgIGRvdWJsZSBkZWJ1Z1ByaW50
U2FtcGxlU3R5bGVSZWN1cnNpdmVseShpbnQgaW5kZW50TGV2ZWwsIEZ1bmN0aW9uQ2FsbEhhc2hD
b3VudCYsIGNvbnN0IFByb2ZpbGVTdWJ0cmVlRGF0YSYpOwotI2VuZGlmCi0KLSAgICBwcml2YXRl
OgotICAgICAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8UHJvZmlsZU5vZGU+Pjo6Y29uc3RfaXRl
cmF0b3IgU3RhY2tJdGVyYXRvcjsKLQotICAgICAgICBQcm9maWxlTm9kZShFeGVjU3RhdGUqIGNh
bGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImLCBQcm9maWxlTm9kZSogcGFyZW50
Tm9kZSk7Ci0gICAgICAgIFByb2ZpbGVOb2RlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBQ
cm9maWxlTm9kZSogbm9kZVRvQ29weSk7Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgIFByb2Zp
bGVOb2RlKiBuZXh0U2libGluZygpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dFNpYmxpbmc7IH0KLSAg
ICAgICAgdm9pZCBzZXROZXh0U2libGluZyhQcm9maWxlTm9kZSogbmV4dFNpYmxpbmcpIHsgbV9u
ZXh0U2libGluZyA9IG5leHRTaWJsaW5nOyB9Ci0KLSAgICAgICAgUHJvZmlsZU5vZGUqIHRyYXZl
cnNlTmV4dE5vZGVQb3N0T3JkZXIoKSBjb25zdDsKLSNlbmRpZgotCi0gICAgICAgIEV4ZWNTdGF0
ZSogbV9jYWxsZXJDYWxsRnJhbWU7Ci0gICAgICAgIENhbGxJZGVudGlmaWVyIG1fY2FsbElkZW50
aWZpZXI7Ci0gICAgICAgIFByb2ZpbGVOb2RlKiBtX3BhcmVudDsKLSAgICAgICAgVmVjdG9yPENh
bGw+IG1fY2FsbHM7Ci0gICAgICAgIFZlY3RvcjxSZWZQdHI8UHJvZmlsZU5vZGU+PiBtX2NoaWxk
cmVuOwotCi0jaWZuZGVmIE5ERUJVRwotICAgICAgICBQcm9maWxlTm9kZSogbV9uZXh0U2libGlu
ZzsKLSNlbmRpZgotICAgIH07Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgdGVtcGxhdGUgPHR5cGVu
YW1lIEZ1bmN0b3I+IGlubGluZSB2b2lkIFByb2ZpbGVOb2RlOjpmb3JFYWNoTm9kZVBvc3RvcmRl
cihGdW5jdG9yJiBmdW5jdG9yKQotICAgIHsKLSAgICAgICAgUHJvZmlsZU5vZGUqIGN1cnJlbnRO
b2RlID0gdGhpczsKLSAgICAgICAgLy8gR28gZG93biB0byB0aGUgZmlyc3Qgbm9kZSBvZiB0aGUg
dHJhdmVyc2FsLCBhbmQgc2xvd2x5IHdhbGsgYmFjayB1cC4KLSAgICAgICAgZm9yIChQcm9maWxl
Tm9kZSogbmV4dE5vZGUgPSBjdXJyZW50Tm9kZTsgbmV4dE5vZGU7IG5leHROb2RlID0gbmV4dE5v
ZGUtPmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgICAgIGN1cnJlbnROb2RlID0gbmV4dE5vZGU7Ci0K
LSAgICAgICAgUHJvZmlsZU5vZGUqIGVuZE5vZGUgPSB0aGlzOwotICAgICAgICB3aGlsZSAoY3Vy
cmVudE5vZGUgJiYgY3VycmVudE5vZGUgIT0gZW5kTm9kZSkgewotICAgICAgICAgICAgZnVuY3Rv
cihjdXJyZW50Tm9kZSk7Ci0gICAgICAgICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLT50
cmF2ZXJzZU5leHROb2RlUG9zdE9yZGVyKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdG9y
KGVuZE5vZGUpOwotICAgIH0KLQotICAgIHN0cnVjdCBDYWxjdWxhdGVQcm9maWxlU3VidHJlZURh
dGFGdW5jdG9yIHsKLSAgICAgICAgdm9pZCBvcGVyYXRvcigpKFByb2ZpbGVOb2RlKiBub2RlKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBkb3VibGUgc2VsZlRpbWUgPSAwLjA7Ci0gICAgICAgICAg
ICBmb3IgKGNvbnN0IFByb2ZpbGVOb2RlOjpDYWxsJiBjYWxsIDogbm9kZS0+Y2FsbHMoKSkKLSAg
ICAgICAgICAgICAgICBzZWxmVGltZSArPSBjYWxsLmVsYXBzZWRUaW1lKCk7Ci0KLSAgICAgICAg
ICAgIGRvdWJsZSB0b3RhbFRpbWUgPSBzZWxmVGltZTsKLSAgICAgICAgICAgIGZvciAoUmVmUHRy
PFByb2ZpbGVOb2RlPiBjaGlsZCA6IG5vZGUtPmNoaWxkcmVuKCkpIHsKLSAgICAgICAgICAgICAg
ICBhdXRvIGl0ID0gbV9kYXRhLnNlbGZBbmRUb3RhbFRpbWVzLmZpbmQoY2hpbGQuZ2V0KCkpOwot
ICAgICAgICAgICAgICAgIGlmIChpdCAhPSBtX2RhdGEuc2VsZkFuZFRvdGFsVGltZXMuZW5kKCkp
Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsVGltZSArPSBpdC0+dmFsdWUuc2Vjb25kOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBBU1NFUlQobm9kZSk7Ci0gICAgICAgICAgICBtX2Rh
dGEuc2VsZkFuZFRvdGFsVGltZXMuc2V0KG5vZGUsIHN0ZDo6bWFrZV9wYWlyKHNlbGZUaW1lLCB0
b3RhbFRpbWUpKTsKLSAgICAgICAgfQotCi0gICAgICAgIFByb2ZpbGVOb2RlOjpQcm9maWxlU3Vi
dHJlZURhdGEgcmV0dXJuVmFsdWUoKSB7IHJldHVybiBXVEZNb3ZlKG1fZGF0YSk7IH0KLQotICAg
ICAgICBQcm9maWxlTm9kZTo6UHJvZmlsZVN1YnRyZWVEYXRhIG1fZGF0YTsKLSAgICB9OwotI2Vu
ZGlmCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gUHJvZmlsZU5vZGVfaApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVySmV0dGlzb25S
ZWFzb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVySmV0dGlz
b25SZWFzb24uY3BwCmluZGV4IDMwNjhmZjMuLjM3NTFmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5jcHAK
QEAgLTQ3LDkgKzQ3LDYgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIEpl
dHRpc29uUmVhc29uIHJlYXNvbikKICAgICBjYXNlIEpldHRpc29uRHVlVG9EZWJ1Z2dlclN0ZXBw
aW5nOgogICAgICAgICBvdXQucHJpbnQoIkRlYnVnZ2VyU3RlcHBpbmciKTsKICAgICAgICAgcmV0
dXJuOwotICAgIGNhc2UgSmV0dGlzb25EdWVUb0xlZ2FjeVByb2ZpbGVyOgotICAgICAgICBvdXQu
cHJpbnQoIkxlZ2FjeVByb2ZpbGVyIik7Ci0gICAgICAgIHJldHVybjsKICAgICBjYXNlIEpldHRp
c29uRHVlVG9CYXNlbGluZUxvb3BSZW9wdGltaXphdGlvblRyaWdnZXI6CiAgICAgICAgIG91dC5w
cmludCgiQmFzZWxpbmVMb29wUmVvcHRpbWl6YXRpb25UcmlnZ2VyIik7CiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckpl
dHRpc29uUmVhc29uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJK
ZXR0aXNvblJlYXNvbi5oCmluZGV4IDZhNzkzMjYuLjUzMDBhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24uaApA
QCAtMzMsNyArMzMsNiBAQCBlbnVtIEpldHRpc29uUmVhc29uIHsKICAgICBKZXR0aXNvbkR1ZVRv
V2Vha1JlZmVyZW5jZSwKICAgICBKZXR0aXNvbkR1ZVRvRGVidWdnZXJCcmVha3BvaW50LAogICAg
IEpldHRpc29uRHVlVG9EZWJ1Z2dlclN0ZXBwaW5nLAotICAgIEpldHRpc29uRHVlVG9MZWdhY3lQ
cm9maWxlciwKICAgICBKZXR0aXNvbkR1ZVRvQmFzZWxpbmVMb29wUmVvcHRpbWl6YXRpb25Ucmln
Z2VyLAogICAgIEpldHRpc29uRHVlVG9CYXNlbGluZUxvb3BSZW9wdGltaXphdGlvblRyaWdnZXJP
bk9TUkVudHJ5RmFpbCwKICAgICBKZXR0aXNvbkR1ZVRvT1NSRXhpdCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCmluZGV4IDI4MTI3M2UuLjNiNzdkMzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmNwcApAQCAtODEsMTMg
KzgxLDEzIEBAIHRlbXBsYXRlIDw+IHN0cnVjdCBDYWNoZVR5cGVzPFVubGlua2VkTW9kdWxlUHJv
Z3JhbUNvZGVCbG9jaz4gewogfTsKIAogdGVtcGxhdGUgPGNsYXNzIFVubGlua2VkQ29kZUJsb2Nr
VHlwZSwgY2xhc3MgRXhlY3V0YWJsZVR5cGU+Ci1VbmxpbmtlZENvZGVCbG9ja1R5cGUqIENvZGVD
YWNoZTo6Z2V0R2xvYmFsQ29kZUJsb2NrKFZNJiB2bSwgRXhlY3V0YWJsZVR5cGUqIGV4ZWN1dGFi
bGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGlu
TW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIFRoaXNURFpNb2RlIHRoaXNURFpN
b2RlLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2Rl
LCBQYXJzZXJFcnJvciYgZXJyb3IsIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUsIGNv
bnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHZhcmlhYmxlc1VuZGVyVERaKQorVW5saW5rZWRDb2Rl
QmxvY2tUeXBlKiBDb2RlQ2FjaGU6OmdldEdsb2JhbENvZGVCbG9jayhWTSYgdm0sIEV4ZWN1dGFi
bGVUeXBlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVp
bHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBUaGlz
VERaTW9kZSB0aGlzVERaTW9kZSwgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUGFyc2VyRXJy
b3ImIGVycm9yLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlLCBjb25zdCBWYXJpYWJs
ZUVudmlyb25tZW50KiB2YXJpYWJsZXNVbmRlclREWikKIHsKICAgICBTb3VyY2VDb2RlS2V5IGtl
eSA9IFNvdXJjZUNvZGVLZXkoc291cmNlLCBTdHJpbmcoKSwgQ2FjaGVUeXBlczxVbmxpbmtlZENv
ZGVCbG9ja1R5cGU+Ojpjb2RlVHlwZSwgYnVpbHRpbk1vZGUsIHN0cmljdE1vZGUsIHRoaXNURFpN
b2RlKTsKICAgICBTb3VyY2VDb2RlVmFsdWUqIGNhY2hlID0gbV9zb3VyY2VDb2RlLmZpbmRDYWNo
ZUFuZFVwZGF0ZUFnZShrZXkpOwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZG8gc29tZXRoaW5n
IHNtYXJ0IGZvciBURFogaW5zdGVhZCBvZiBqdXN0IGRpc2FibGluZyBjYWNoaW5nLgogICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQwMTAKLSAgICBib29s
IGNhbkNhY2hlID0gZGVidWdnZXJNb2RlID09IERlYnVnZ2VyT2ZmICYmIHByb2ZpbGVyTW9kZSA9
PSBQcm9maWxlck9mZiAmJiAhdm0udHlwZVByb2ZpbGVyKCkgJiYgIXZtLmNvbnRyb2xGbG93UHJv
ZmlsZXIoKSAmJiAhdmFyaWFibGVzVW5kZXJURFotPnNpemUoKTsKKyAgICBib29sIGNhbkNhY2hl
ID0gZGVidWdnZXJNb2RlID09IERlYnVnZ2VyT2ZmICYmICF2bS50eXBlUHJvZmlsZXIoKSAmJiAh
dm0uY29udHJvbEZsb3dQcm9maWxlcigpICYmICF2YXJpYWJsZXNVbmRlclREWi0+c2l6ZSgpOwog
ICAgIGlmIChjYWNoZSAmJiBjYW5DYWNoZSkgewogICAgICAgICBVbmxpbmtlZENvZGVCbG9ja1R5
cGUqIHVubGlua2VkQ29kZUJsb2NrID0ganNDYXN0PFVubGlua2VkQ29kZUJsb2NrVHlwZSo+KGNh
Y2hlLT5jZWxsLmdldCgpKTsKICAgICAgICAgdW5zaWduZWQgZmlyc3RMaW5lID0gc291cmNlLmZp
cnN0TGluZSgpICsgdW5saW5rZWRDb2RlQmxvY2stPmZpcnN0TGluZSgpOwpAQCAtMTIwLDcgKzEy
MCw3IEBAIFVubGlua2VkQ29kZUJsb2NrVHlwZSogQ29kZUNhY2hlOjpnZXRHbG9iYWxDb2RlQmxv
Y2soVk0mIHZtLCBFeGVjdXRhYmxlVHlwZSogZXhlCiAgICAgdW5saW5rZWRDb2RlQmxvY2stPnNl
dFNvdXJjZVVSTERpcmVjdGl2ZShzb3VyY2UucHJvdmlkZXIoKS0+c291cmNlVVJMKCkpOwogICAg
IHVubGlua2VkQ29kZUJsb2NrLT5zZXRTb3VyY2VNYXBwaW5nVVJMRGlyZWN0aXZlKHNvdXJjZS5w
cm92aWRlcigpLT5zb3VyY2VNYXBwaW5nVVJMKCkpOwogCi0gICAgZXJyb3IgPSBCeXRlY29kZUdl
bmVyYXRvcjo6Z2VuZXJhdGUodm0sIHJvb3ROb2RlLmdldCgpLCB1bmxpbmtlZENvZGVCbG9jaywg
ZGVidWdnZXJNb2RlLCBwcm9maWxlck1vZGUsIHZhcmlhYmxlc1VuZGVyVERaKTsKKyAgICBlcnJv
ciA9IEJ5dGVjb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZSh2bSwgcm9vdE5vZGUuZ2V0KCksIHVubGlu
a2VkQ29kZUJsb2NrLCBkZWJ1Z2dlck1vZGUsIHZhcmlhYmxlc1VuZGVyVERaKTsKIAogICAgIGlm
IChlcnJvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTMyLDIxICsx
MzIsMjEgQEAgVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBDb2RlQ2FjaGU6OmdldEdsb2JhbENvZGVC
bG9jayhWTSYgdm0sIEV4ZWN1dGFibGVUeXBlKiBleGUKICAgICByZXR1cm4gdW5saW5rZWRDb2Rl
QmxvY2s7CiB9CiAKLVVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogQ29kZUNhY2hlOjpnZXRQcm9n
cmFtQ29kZUJsb2NrKFZNJiB2bSwgUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0
IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgSlNQ
YXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFBy
b2ZpbGVyTW9kZSBwcm9maWxlck1vZGUsIFBhcnNlckVycm9yJiBlcnJvcikKK1VubGlua2VkUHJv
Z3JhbUNvZGVCbG9jayogQ29kZUNhY2hlOjpnZXRQcm9ncmFtQ29kZUJsb2NrKFZNJiB2bSwgUHJv
Z3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQ
YXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1v
ZGUsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJiBlcnJvcikKIHsKICAg
ICBWYXJpYWJsZUVudmlyb25tZW50IGVtcHR5UGFyZW50VERaVmFyaWFibGVzOwotICAgIHJldHVy
biBnZXRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrPih2bSwgZXhlY3V0
YWJsZSwgc291cmNlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9kZSwgVGhpc1REWk1vZGU6OkNoZWNr
SWZOZWVkZWQsIGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJNb2RlLCBlcnJvciwgRXZhbENvbnRleHRU
eXBlOjpOb25lLCAmZW1wdHlQYXJlbnRURFpWYXJpYWJsZXMpOworICAgIHJldHVybiBnZXRHbG9i
YWxDb2RlQmxvY2s8VW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrPih2bSwgZXhlY3V0YWJsZSwgc291
cmNlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9kZSwgVGhpc1REWk1vZGU6OkNoZWNrSWZOZWVkZWQs
IGRlYnVnZ2VyTW9kZSwgZXJyb3IsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSwgJmVtcHR5UGFyZW50
VERaVmFyaWFibGVzKTsKIH0KIAotVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBDb2RlQ2FjaGU6Omdl
dEV2YWxDb2RlQmxvY2soVk0mIHZtLCBFdmFsRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlLCBKU1BhcnNlckJ1aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBKU1Bh
cnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSwgVGhpc1REWk1vZGUgdGhpc1REWk1vZGUsIERlYnVn
Z2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUsIFBhcnNlckVy
cm9yJiBlcnJvciwgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSwgY29uc3QgVmFyaWFi
bGVFbnZpcm9ubWVudCogdmFyaWFibGVzVW5kZXJURFopCitVbmxpbmtlZEV2YWxDb2RlQmxvY2sq
IENvZGVDYWNoZTo6Z2V0RXZhbENvZGVCbG9jayhWTSYgdm0sIEV2YWxFeGVjdXRhYmxlKiBleGVj
dXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVp
bHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBUaGlzVERaTW9kZSB0aGlz
VERaTW9kZSwgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBF
dmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50
KiB2YXJpYWJsZXNVbmRlclREWikKIHsKLSAgICByZXR1cm4gZ2V0R2xvYmFsQ29kZUJsb2NrPFVu
bGlua2VkRXZhbENvZGVCbG9jaz4odm0sIGV4ZWN1dGFibGUsIHNvdXJjZSwgYnVpbHRpbk1vZGUs
IHN0cmljdE1vZGUsIHRoaXNURFpNb2RlLCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwgZXJy
b3IsIGV2YWxDb250ZXh0VHlwZSwgdmFyaWFibGVzVW5kZXJURFopOworICAgIHJldHVybiBnZXRH
bG9iYWxDb2RlQmxvY2s8VW5saW5rZWRFdmFsQ29kZUJsb2NrPih2bSwgZXhlY3V0YWJsZSwgc291
cmNlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9kZSwgdGhpc1REWk1vZGUsIGRlYnVnZ2VyTW9kZSwg
ZXJyb3IsIGV2YWxDb250ZXh0VHlwZSwgdmFyaWFibGVzVW5kZXJURFopOwogfQogCi1Vbmxpbmtl
ZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIENvZGVDYWNoZTo6Z2V0TW9kdWxlUHJvZ3JhbUNvZGVC
bG9jayhWTSYgdm0sIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25zdCBT
b3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIERlYnVn
Z2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUsIFBhcnNlckVy
cm9yJiBlcnJvcikKK1VubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayogQ29kZUNhY2hlOjpn
ZXRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKFZNJiB2bSwgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUq
IGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJCdWlsdGluTW9k
ZSBidWlsdGluTW9kZSwgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImIGVy
cm9yKQogewogICAgIFZhcmlhYmxlRW52aXJvbm1lbnQgZW1wdHlQYXJlbnRURFpWYXJpYWJsZXM7
Ci0gICAgcmV0dXJuIGdldEdsb2JhbENvZGVCbG9jazxVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2Rl
QmxvY2s+KHZtLCBleGVjdXRhYmxlLCBzb3VyY2UsIGJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmlj
dE1vZGU6OlN0cmljdCwgVGhpc1REWk1vZGU6OkNoZWNrSWZOZWVkZWQsIGRlYnVnZ2VyTW9kZSwg
cHJvZmlsZXJNb2RlLCBlcnJvciwgRXZhbENvbnRleHRUeXBlOjpOb25lLCAmZW1wdHlQYXJlbnRU
RFpWYXJpYWJsZXMpOworICAgIHJldHVybiBnZXRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRNb2R1
bGVQcm9ncmFtQ29kZUJsb2NrPih2bSwgZXhlY3V0YWJsZSwgc291cmNlLCBidWlsdGluTW9kZSwg
SlNQYXJzZXJTdHJpY3RNb2RlOjpTdHJpY3QsIFRoaXNURFpNb2RlOjpDaGVja0lmTmVlZGVkLCBk
ZWJ1Z2dlck1vZGUsIGVycm9yLCBFdmFsQ29udGV4dFR5cGU6Ok5vbmUsICZlbXB0eVBhcmVudFRE
WlZhcmlhYmxlcyk7CiB9CiAKIC8vIEZJWE1FOiBUaGVyZSdzIG5vIG5lZWQgdG8gYWRkIHRoZSBm
dW5jdGlvbidzIG5hbWUgdG8gdGhlIGtleSBoZXJlLiBJdCdzIGFscmVhZHkgaW4gdGhlIHNvdXJj
ZSBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNh
Y2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaAppbmRleCBl
NWUyMTFiLi4wMDcwZDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db2RlQ2FjaGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2Fj
aGUuaApAQCAtMTg3LDkgKzE4Nyw5IEBAIHB1YmxpYzoKICAgICBDb2RlQ2FjaGUoKTsKICAgICB+
Q29kZUNhY2hlKCk7CiAKLSAgICBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqIGdldFByb2dyYW1D
b2RlQmxvY2soVk0mLCBQcm9ncmFtRXhlY3V0YWJsZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU1Bh
cnNlckJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1vZGUsIERlYnVnZ2VyTW9kZSwgUHJvZmls
ZXJNb2RlLCBQYXJzZXJFcnJvciYpOwotICAgIFVubGlua2VkRXZhbENvZGVCbG9jayogZ2V0RXZh
bENvZGVCbG9jayhWTSYsIEV2YWxFeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFy
c2VyQnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSwgVGhpc1REWk1vZGUsIERlYnVnZ2Vy
TW9kZSwgUHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYsIEV2YWxDb250ZXh0VHlwZSwgY29uc3Qg
VmFyaWFibGVFbnZpcm9ubWVudCopOwotICAgIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9j
ayogZ2V0TW9kdWxlUHJvZ3JhbUNvZGVCbG9jayhWTSYsIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxl
KiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIERlYnVnZ2VyTW9kZSwg
UHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYpOworICAgIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9j
ayogZ2V0UHJvZ3JhbUNvZGVCbG9jayhWTSYsIFByb2dyYW1FeGVjdXRhYmxlKiwgY29uc3QgU291
cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSwgRGVidWdn
ZXJNb2RlLCBQYXJzZXJFcnJvciYpOworICAgIFVubGlua2VkRXZhbENvZGVCbG9jayogZ2V0RXZh
bENvZGVCbG9jayhWTSYsIEV2YWxFeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFy
c2VyQnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSwgVGhpc1REWk1vZGUsIERlYnVnZ2Vy
TW9kZSwgUGFyc2VyRXJyb3ImLCBFdmFsQ29udGV4dFR5cGUsIGNvbnN0IFZhcmlhYmxlRW52aXJv
bm1lbnQqKTsKKyAgICBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIGdldE1vZHVsZVBy
b2dyYW1Db2RlQmxvY2soVk0mLCBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSosIGNvbnN0IFNvdXJj
ZUNvZGUmLCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBEZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJik7
CiAgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGdldEZ1bmN0aW9uRXhlY3V0YWJsZUZy
b21HbG9iYWxDb2RlKFZNJiwgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFNvdXJjZUNvZGUmLCBQ
YXJzZXJFcnJvciYpOwogCiAgICAgdm9pZCBjbGVhcigpCkBAIC0xOTksNyArMTk5LDcgQEAgcHVi
bGljOgogCiBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxjbGFzcyBVbmxpbmtlZENvZGVCbG9ja1R5
cGUsIGNsYXNzIEV4ZWN1dGFibGVUeXBlPiAKLSAgICBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIGdl
dEdsb2JhbENvZGVCbG9jayhWTSYsIEV4ZWN1dGFibGVUeXBlKiwgY29uc3QgU291cmNlQ29kZSYs
IEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSwgVGhpc1REWk1vZGUsIERl
YnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYsIEV2YWxDb250ZXh0VHlwZSwg
Y29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOworICAgIFVubGlua2VkQ29kZUJsb2NrVHlwZSog
Z2V0R2xvYmFsQ29kZUJsb2NrKFZNJiwgRXhlY3V0YWJsZVR5cGUqLCBjb25zdCBTb3VyY2VDb2Rl
JiwgSlNQYXJzZXJCdWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlLCBUaGlzVERaTW9kZSwg
RGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYsIEV2YWxDb250ZXh0VHlwZSwgY29uc3QgVmFyaWFi
bGVFbnZpcm9ubWVudCopOwogCiAgICAgQ29kZUNhY2hlTWFwIG1fc291cmNlQ29kZTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IDkxOTVk
NTUuLjlmY2RkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFi
bGUuY3BwCkBAIC0zMTIsMTAgKzMxMiw5IEBAIENvZGVCbG9jayogU2NyaXB0RXhlY3V0YWJsZTo6
bmV3Q29kZUJsb2NrRm9yKAogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzY29w
ZS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgUGFyc2VyRXJyb3IgZXJyb3I7CiAgICAgRGVidWdnZXJN
b2RlIGRlYnVnZ2VyTW9kZSA9IGdsb2JhbE9iamVjdC0+aGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigp
ID8gRGVidWdnZXJPbiA6IERlYnVnZ2VyT2ZmOwotICAgIFByb2ZpbGVyTW9kZSBwcm9maWxlck1v
ZGUgPSBnbG9iYWxPYmplY3QtPmhhc0xlZ2FjeVByb2ZpbGVyKCkgPyBQcm9maWxlck9uIDogUHJv
ZmlsZXJPZmY7CiAgICAgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogdW5saW5rZWRDb2RlQmxv
Y2sgPSAKICAgICAgICAgZXhlY3V0YWJsZS0+bV91bmxpbmtlZEV4ZWN1dGFibGUtPnVubGlua2Vk
Q29kZUJsb2NrRm9yKAotICAgICAgICAgICAgKnZtLCBleGVjdXRhYmxlLT5tX3NvdXJjZSwga2lu
ZCwgZGVidWdnZXJNb2RlLCBwcm9maWxlck1vZGUsIGVycm9yLCAKKyAgICAgICAgICAgICp2bSwg
ZXhlY3V0YWJsZS0+bV9zb3VyY2UsIGtpbmQsIGRlYnVnZ2VyTW9kZSwgZXJyb3IsIAogICAgICAg
ICAgICAgZXhlY3V0YWJsZS0+cGFyc2VNb2RlKCkpOwogICAgIHJlY29yZFBhcnNlKAogICAgICAg
ICBleGVjdXRhYmxlLT5tX3VubGlua2VkRXhlY3V0YWJsZS0+ZmVhdHVyZXMoKSwgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKaW5kZXggZDc3
MDU0OS4uNmMxNDczMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcApAQCAtMTEyLDcgKzExMiw2IEBACiAjaW5jbHVkZSAiSlNXaXRoU2Nv
cGUuaCIKICNpbmNsdWRlICJMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmgiCiAjaW5jbHVkZSAi
TGF6eVByb3BlcnR5SW5saW5lcy5oIgotI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5j
bHVkZSAiTG9va3VwLmgiCiAjaW5jbHVkZSAiTWFwQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJN
YXBJdGVyYXRvclByb3RvdHlwZS5oIgpAQCAtMjA4LDcgKzIwNyw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiBjb25zdCBDbGFzc0luZm8gSlNHbG9iYWxPYmplY3Q6OnNfaW5mbyA9IHsgIkdsb2JhbE9i
amVjdCIsICZCYXNlOjpzX2luZm8sICZnbG9iYWxPYmplY3RUYWJsZSwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU0dsb2JhbE9iamVjdCkgfTsKIAotY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUg
SlNHbG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nl
c3NGcm9tLCAmc3VwcG9ydHNMZWdhY3lQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZv
LCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgbnVsbHB0
ciwgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIs
IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKK2NvbnN0IEdsb2JhbE9iamVj
dE1ldGhvZFRhYmxlIEpTR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0g
eyAmYWxsb3dzQWNjZXNzRnJvbSwgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRl
cnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZsYWdzLCBudWxscHRyLCAmc2hvdWxkSW50
ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OwogCiAvKiBTb3VyY2UgZm9yIEpTR2xvYmFsT2JqZWN0
Lmx1dC5oCiBAYmVnaW4gZ2xvYmFsT2JqZWN0VGFibGUKQEAgLTI5Nyw5ICsyOTYsNiBAQCBKU0ds
b2JhbE9iamVjdDo6fkpTR2xvYmFsT2JqZWN0KCkKIAogICAgIGlmIChtX2RlYnVnZ2VyKQogICAg
ICAgICBtX2RlYnVnZ2VyLT5kZXRhY2godGhpcywgRGVidWdnZXI6Okdsb2JhbE9iamVjdElzRGVz
dHJ1Y3RpbmcpOwotCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtKCkuZW5h
YmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT5zdG9wUHJvZmlsaW5nKHRoaXMpOwog
fQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKQEAgLTgzNywx
MSArODMzLDYgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFt
ZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1Y3QKICAgICByZXNldFByb3RvdHlwZSh2
bSwgZ2V0UHJvdG90eXBlRGlyZWN0KCkpOwogfQogCi1ib29sIEpTR2xvYmFsT2JqZWN0OjpoYXNM
ZWdhY3lQcm9maWxlcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGdsb2JhbE9iamVjdE1ldGhvZFRh
YmxlKCktPnN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nKHRoaXMpOwotfQotCiBib29sIEpTR2xvYmFs
T2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAg
ICBKU0dsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGNl
bGwpOwpAQCAtMTIzMSwxMCArMTIyMiw5IEBAIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogSlNH
bG9iYWxPYmplY3Q6OmNyZWF0ZVByb2dyYW1Db2RlQmxvY2soQ2FsbEZyYW1lKiBjYWxsCiAgICAg
UGFyc2VyRXJyb3IgZXJyb3I7CiAgICAgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUgPSBl
eGVjdXRhYmxlLT5pc1N0cmljdE1vZGUoKSA/IEpTUGFyc2VyU3RyaWN0TW9kZTo6U3RyaWN0IDog
SlNQYXJzZXJTdHJpY3RNb2RlOjpOb3RTdHJpY3Q7CiAgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2Vy
TW9kZSA9IGhhc0ludGVyYWN0aXZlRGVidWdnZXIoKSA/IERlYnVnZ2VyT24gOiBEZWJ1Z2dlck9m
ZjsKLSAgICBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlID0gaGFzTGVnYWN5UHJvZmlsZXIoKSA/
IFByb2ZpbGVyT24gOiBQcm9maWxlck9mZjsKICAgICBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sq
IHVubGlua2VkQ29kZUJsb2NrID0gdm0oKS5jb2RlQ2FjaGUoKS0+Z2V0UHJvZ3JhbUNvZGVCbG9j
aygKICAgICAgICAgdm0oKSwgZXhlY3V0YWJsZSwgZXhlY3V0YWJsZS0+c291cmNlKCksIEpTUGFy
c2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIHN0cmljdE1vZGUsIAotICAgICAgICBkZWJ1Z2dl
ck1vZGUsIHByb2ZpbGVyTW9kZSwgZXJyb3IpOworICAgICAgICBkZWJ1Z2dlck1vZGUsIGVycm9y
KTsKIAogICAgIGlmIChoYXNEZWJ1Z2dlcigpKQogICAgICAgICBkZWJ1Z2dlcigpLT5zb3VyY2VQ
YXJzZWQoY2FsbEZyYW1lLCBleGVjdXRhYmxlLT5zb3VyY2UoKS5wcm92aWRlcigpLCBlcnJvci5s
aW5lKCksIGVycm9yLm1lc3NhZ2UoKSk7CkBAIC0xMjU0LDkgKzEyNDQsOCBAQCBVbmxpbmtlZEV2
YWxDb2RlQmxvY2sqIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVFdmFsQ29kZUJsb2NrKENhbGxGcmFt
ZSogY2FsbEZyYW1lLAogICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUgPSBoYXNJbnRlcmFj
dGl2ZURlYnVnZ2VyKCkgPyBEZWJ1Z2dlck9uIDogRGVidWdnZXJPZmY7CiAgICAgRXZhbENvbnRl
eHRUeXBlIGV2YWxDb250ZXh0VHlwZSA9IGV4ZWN1dGFibGUtPmV4ZWN1dGFibGVJbmZvKCkuZXZh
bENvbnRleHRUeXBlKCk7CiAgICAgCi0gICAgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSA9IGhh
c0xlZ2FjeVByb2ZpbGVyKCkgPyBQcm9maWxlck9uIDogUHJvZmlsZXJPZmY7CiAgICAgVW5saW5r
ZWRFdmFsQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IHZtKCkuY29kZUNhY2hlKCktPmdl
dEV2YWxDb2RlQmxvY2soCi0gICAgICAgIHZtKCksIGV4ZWN1dGFibGUsIGV4ZWN1dGFibGUtPnNv
dXJjZSgpLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RCdWlsdGluLCBzdHJpY3RNb2RlLCB0aGlz
VERaTW9kZSwgZGVidWdnZXJNb2RlLCBwcm9maWxlck1vZGUsIGVycm9yLCBldmFsQ29udGV4dFR5
cGUsIHZhcmlhYmxlc1VuZGVyVERaKTsKKyAgICAgICAgdm0oKSwgZXhlY3V0YWJsZSwgZXhlY3V0
YWJsZS0+c291cmNlKCksIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIHN0cmljdE1v
ZGUsIHRoaXNURFpNb2RlLCBkZWJ1Z2dlck1vZGUsIGVycm9yLCBldmFsQ29udGV4dFR5cGUsIHZh
cmlhYmxlc1VuZGVyVERaKTsKIAogICAgIGlmIChoYXNEZWJ1Z2dlcigpKQogICAgICAgICBkZWJ1
Z2dlcigpLT5zb3VyY2VQYXJzZWQoY2FsbEZyYW1lLCBleGVjdXRhYmxlLT5zb3VyY2UoKS5wcm92
aWRlcigpLCBlcnJvci5saW5lKCksIGVycm9yLm1lc3NhZ2UoKSk7CkBAIC0xMjczLDkgKzEyNjIs
OCBAQCBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIEpTR2xvYmFsT2JqZWN0OjpjcmVh
dGVNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKENhbAogewogICAgIFBhcnNlckVycm9yIGVycm9yOwog
ICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUgPSBoYXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkg
PyBEZWJ1Z2dlck9uIDogRGVidWdnZXJPZmY7Ci0gICAgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9k
ZSA9IGhhc0xlZ2FjeVByb2ZpbGVyKCkgPyBQcm9maWxlck9uIDogUHJvZmlsZXJPZmY7CiAgICAg
VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IHZtKCku
Y29kZUNhY2hlKCktPmdldE1vZHVsZVByb2dyYW1Db2RlQmxvY2soCi0gICAgICAgIHZtKCksIGV4
ZWN1dGFibGUsIGV4ZWN1dGFibGUtPnNvdXJjZSgpLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RC
dWlsdGluLCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwgZXJyb3IpOworICAgICAgICB2bSgp
LCBleGVjdXRhYmxlLCBleGVjdXRhYmxlLT5zb3VyY2UoKSwgSlNQYXJzZXJCdWlsdGluTW9kZTo6
Tm90QnVpbHRpbiwgZGVidWdnZXJNb2RlLCBlcnJvcik7CiAKICAgICBpZiAoaGFzRGVidWdnZXIo
KSkKICAgICAgICAgZGVidWdnZXIoKS0+c291cmNlUGFyc2VkKGNhbGxGcmFtZSwgZXhlY3V0YWJs
ZS0+c291cmNlKCkucHJvdmlkZXIoKSwgZXJyb3IubGluZSgpLCBlcnJvci5tZXNzYWdlKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXgg
ZjU4MDQ3Ni4uOTZhZWNlYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdC5oCkBAIC0xNTEsOSArMTUxLDYgQEAgc3RydWN0IEdsb2JhbE9iamVjdE1l
dGhvZFRhYmxlIHsKICAgICB0eXBlZGVmIGJvb2wgKCpBbGxvd3NBY2Nlc3NGcm9tRnVuY3Rpb25Q
dHIpKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKik7CiAgICAgQWxsb3dzQWNjZXNz
RnJvbUZ1bmN0aW9uUHRyIGFsbG93c0FjY2Vzc0Zyb207CiAKLSAgICB0eXBlZGVmIGJvb2wgKCpT
dXBwb3J0c0xlZ2FjeVByb2ZpbGluZ0Z1bmN0aW9uUHRyKShjb25zdCBKU0dsb2JhbE9iamVjdCop
OwotICAgIFN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nRnVuY3Rpb25QdHIgc3VwcG9ydHNMZWdhY3lQ
cm9maWxpbmc7Ci0KICAgICB0eXBlZGVmIGJvb2wgKCpTdXBwb3J0c1JpY2hTb3VyY2VJbmZvRnVu
Y3Rpb25QdHIpKGNvbnN0IEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgU3VwcG9ydHNSaWNoU291cmNl
SW5mb0Z1bmN0aW9uUHRyIHN1cHBvcnRzUmljaFNvdXJjZUluZm87CiAKQEAgLTQwNyw3ICs0MDQs
NiBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0RlYnVnZ2VyKCkgY29uc3Q7CiAgICAgYm9vbCBo
YXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkgY29uc3Q7Ci0gICAgYm9vbCBoYXNMZWdhY3lQcm9maWxl
cigpIGNvbnN0OwogICAgIGNvbnN0IFJ1bnRpbWVGbGFncyYgcnVudGltZUZsYWdzKCkgY29uc3Qg
eyByZXR1cm4gbV9ydW50aW1lRmxhZ3M7IH0KIAogcHJvdGVjdGVkOgpAQCAtNzE3LDcgKzcxMyw2
IEBAIHB1YmxpYzoKICAgICBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSogZ2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGUoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxl
OyB9CiAKICAgICBzdGF0aWMgYm9vbCBhbGxvd3NBY2Nlc3NGcm9tKGNvbnN0IEpTR2xvYmFsT2Jq
ZWN0KiwgRXhlY1N0YXRlKikgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzTGVnYWN5UHJvZmlsaW5nKGNvbnN0IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gZmFsc2U7
IH0KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpTR2xvYmFs
T2JqZWN0KikgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgRXhlY1N0
YXRlKiBnbG9iYWxFeGVjKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgK
aW5kZXggMWQwZTU2NC4uMjVkZTIwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnMuaApAQCAtMTMxLDcgKzEzMSw2IEBAIHR5cGVkZWYgY29uc3QgY2hhciogb3B0aW9uU3Ry
aW5nOwogICAgIHYoYm9vbCwgZHVtcEJ5dGVjb2RlTGl2ZW5lc3NSZXN1bHRzLCBmYWxzZSwgTm9y
bWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCB2YWxpZGF0ZUJ5dGVjb2RlLCBmYWxzZSwgTm9y
bWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCBmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0
aW9uLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCi0gICAgdihib29sLCBmb3JjZVByb2ZpbGVy
Qnl0ZWNvZGVHZW5lcmF0aW9uLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgXAogICAg
IHYoYm9vbCwgdXNlRnVuY3Rpb25Eb3RBcmd1bWVudHMsIHRydWUsIE5vcm1hbCwgbnVsbHB0cikg
XAogICAgIHYoYm9vbCwgdXNlVGFpbENhbGxzLCB0cnVlLCBOb3JtYWwsIG51bGxwdHIpIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCBjYjZiYjM5Li4zOGMxZjQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBAIC0xOTQsNyArMTk0LDYgQEAgVk06OlZN
KFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogI2VuZGlmCiAgICAgLCBtX2luRGVm
aW5lT3duUHJvcGVydHkoZmFsc2UpCiAgICAgLCBtX2NvZGVDYWNoZShzdGQ6Om1ha2VfdW5pcXVl
PENvZGVDYWNoZT4oKSkKLSAgICAsIG1fZW5hYmxlZFByb2ZpbGVyKG51bGxwdHIpCiAgICAgLCBt
X2J1aWx0aW5FeGVjdXRhYmxlcyhzdGQ6Om1ha2VfdW5pcXVlPEJ1aWx0aW5FeGVjdXRhYmxlcz4o
KnRoaXMpKQogICAgICwgbV90eXBlUHJvZmlsZXJFbmFibGVkQ291bnQoMCkKICAgICAsIG1fY29u
dHJvbEZsb3dQcm9maWxlckVuYWJsZWRDb3VudCgwKQpAQCAtNzc2LDI1ICs3NzUsNiBAQCB2b2lk
IFZNOjphZGRJbXB1cmVQcm9wZXJ0eShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkKICAgICAg
ICAgd2F0Y2hwb2ludFNldC0+ZmlyZUFsbCgiSW1wdXJlIHByb3BlcnR5IGFkZGVkIik7CiB9CiAK
LWNsYXNzIFNldEVuYWJsZWRQcm9maWxlckZ1bmN0b3IgewotcHVibGljOgotICAgIGJvb2wgb3Bl
cmF0b3IoKShDb2RlQmxvY2sqIGNvZGVCbG9jaykgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChK
SVRDb2RlOjppc09wdGltaXppbmdKSVQoY29kZUJsb2NrLT5qaXRUeXBlKCkpKQotICAgICAgICAg
ICAgY29kZUJsb2NrLT5qZXR0aXNvbihQcm9maWxlcjo6SmV0dGlzb25EdWVUb0xlZ2FjeVByb2Zp
bGVyKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLX07Ci0KLXZvaWQgVk06OnNldEVu
YWJsZWRQcm9maWxlcihMZWdhY3lQcm9maWxlciogcHJvZmlsZXIpCi17Ci0gICAgbV9lbmFibGVk
UHJvZmlsZXIgPSBwcm9maWxlcjsKLSAgICBpZiAobV9lbmFibGVkUHJvZmlsZXIpIHsKLSAgICAg
ICAgU2V0RW5hYmxlZFByb2ZpbGVyRnVuY3RvciBmdW5jdG9yOwotICAgICAgICBoZWFwLmZvckVh
Y2hDb2RlQmxvY2soZnVuY3Rvcik7Ci0gICAgfQotfQotCiBzdGF0aWMgYm9vbCBlbmFibGVQcm9m
aWxlcldpdGhSZXNwZWN0VG9Db3VudCh1bnNpZ25lZCYgY291bnRlciwgc3RkOjpmdW5jdGlvbjx2
b2lkKCk+IGRvRW5hYmxlV29yaykKIHsKICAgICBib29sIG5lZWRzVG9SZWNvbXBpbGUgPSBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmluZGV4IGI0M2FmZmIuLmJkNWNiNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtOTIsNyArOTIsNiBAQCBjbGFzcyBKU0Jv
dW5kU2xvdEJhc2VGdW5jdGlvbjsKIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwogY2xhc3MgSlNPYmpl
Y3Q7CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7Ci1jbGFzcyBMZWdhY3lQcm9maWxlcjsK
IGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGU7CiBjbGFzcyBSZWdFeHBDYWNoZTsKIGNsYXNzIFJlZ2lz
dGVyQXRPZmZzZXRMaXN0OwpAQCAtMzU1LDExICszNTQsNiBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBtX2luRGVmaW5lT3duUHJvcGVydHk7CiAgICAgfQogCi0gICAgTGVnYWN5UHJvZmlsZXIq
IGVuYWJsZWRQcm9maWxlcigpIHsgcmV0dXJuIG1fZW5hYmxlZFByb2ZpbGVyOyB9Ci0gICAgdm9p
ZCBzZXRFbmFibGVkUHJvZmlsZXIoTGVnYWN5UHJvZmlsZXIqKTsKLQotICAgIHZvaWQqIGVuYWJs
ZWRQcm9maWxlckFkZHJlc3MoKSB7IHJldHVybiAmbV9lbmFibGVkUHJvZmlsZXI7IH0KLQogI2lm
IEVOQUJMRShKSVQpCiAgICAgYm9vbCBjYW5Vc2VKSVQoKSB7IHJldHVybiBtX2NhblVzZUpJVDsg
fQogI2Vsc2UKQEAgLTY1Nyw3ICs2NTEsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9nbG9iYWxD
b25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdyB7IHRydWUgfTsKICAgICBib29sIG1fc2hvdWxk
QnVpbGRQQ1RvQ29kZU9yaWdpbk1hcHBpbmcgeyBmYWxzZSB9OwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxDb2RlQ2FjaGU+IG1fY29kZUNhY2hlOwotICAgIExlZ2FjeVByb2ZpbGVyKiBtX2VuYWJsZWRQ
cm9maWxlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QnVpbHRpbkV4ZWN1dGFibGVzPiBtX2J1aWx0
aW5FeGVjdXRhYmxlczsKICAgICBIYXNoTWFwPFN0cmluZywgUmVmUHRyPFdhdGNocG9pbnRTZXQ+
PiBtX2ltcHVyZVByb3BlcnR5V2F0Y2hwb2ludFNldHM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFR5
cGVQcm9maWxlcj4gbV90eXBlUHJvZmlsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGZjOTc3
OTUuLjU3ODQ5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01OTEsOCArNTkxLDYgQEAgc2V0
KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKIAogICAgIGluc3BlY3Rvci9Db21tYW5kTGluZUFQ
SUhvc3QuaWRsCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKLSAgICBp
bnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwKLSAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5v
ZGUuaWRsCiAKICAgICBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDJjODZkMmUuLmYxYTRkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NSBA
QAorMjAxNi0wNS0xMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbW92ZSBMZWdhY3lQcm9maWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBG
b3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9MZWdhY3lQcm9maWxlci5oOiBSZW1vdmVkLgorICAg
ICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL1Byb2ZpbGUuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9Qcm9maWxlTm9kZS5oOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93QmFzZTo6c3VwcG9ydHNMZWdhY3lQcm9maWxpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dCYXNlOjpzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKTogRGVsZXRlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNMZWdhY3lQcm9maWxpbmcpOiBEZWxldGVk
LgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dENvbnRyb2xsZXI6OmNsZWFyV2luZG93U2hlbGwpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRp
bmdzL2pzL1NjcmlwdFByb2ZpbGUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9T
Y3JpcHRQcm9maWxlTm9kZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDoKKyAgICAgICAg
KiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BQcm9maWxpbmcpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6bGVnYWN5UHJvZmlsZXJFbmFibGVkKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnNldExlZ2FjeVBy
b2ZpbGVyRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFBy
b2ZpbGluZ0ltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdGFydEZyb21Db25zb2xl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0b3BGcm9tQ29u
c29sZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAqIGluc3Bl
Y3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0UHJv
ZmlsZS5pZGw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2Rl
LmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQWdncmVnYXRlQ2FsbEluZm9JbnNwZWN0b3JP
YmplY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRJbnNwZWN0b3JPYmplY3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRQcm9maWxlSW5zcGVjdG9yT2JqZWN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6YXBw
ZW5kUHJvZmlsZSk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6cHJvZmlsZUVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6Y2xlYXJQcm9maWxlcyk6IERlbGV0
ZWQuCisgICAgICAgICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRUb0Nv
bnNpc3RlbnRTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNv
bnNvbGVQcm9maWxlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAg
ICAgICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHA6CisgICAgICAgICogeG1s
L1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcDoKKyAgICAgICAgKiB4bWwvWFNMVFByb2Nlc3Nvckxp
YnhzbHQuY3BwOgorCiAyMDE2LTA1LTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIGNyb3NzLWZhZGUoKSByZW5kZXJpbmcgZG9lc24ndCBtYXRjaCBl
eHBlY3RhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDYwYjg1NTYuLjU4MGJi
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTQyMiw4ICs0MjIsNiBAQAogI2lu
Y2x1ZGUgIkpTUlRDVHJhY2tFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNTY3JlZW4uY3BwIgogI2lu
Y2x1ZGUgIkpTU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAiCi0jaW5jbHVkZSAiSlNTY3JpcHRQcm9m
aWxlLmNwcCIKLSNpbmNsdWRlICJKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcCIKICNpZiBFTkFCTEUo
Q1NQX05FWFQpCiAjaW5jbHVkZSAiSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNwcCIK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzNhMTJlNC4uYmQ3NmE3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC01MDUsOCArNTA1LDYgQEAgTk9O
X1NWR19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9odG1sL3RyYWNrL1ZUVEN1ZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5pZGwgXAog
ICAgICQoV2ViQ29yZSkvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwgXAotICAg
ICQoV2ViQ29yZSkvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKLSAgICAkKFdlYkNvcmUp
L2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvbG9hZGVy
L2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2Uv
QWJzdHJhY3RWaWV3LmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0JhclByb3AuaWRsIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL0xlZ2Fj
eVByb2ZpbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9M
ZWdhY3lQcm9maWxlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzBlOWJmLi4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL0xl
Z2FjeVByb2ZpbGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLSNpZm5kZWYgV2Vi
Q29yZV9GV0RfTGVnYWN5UHJvZmlsZXJfaAotI2RlZmluZSBXZWJDb3JlX0ZXRF9MZWdhY3lQcm9m
aWxlcl9oCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTGVnYWN5UHJvZmlsZXIuaD4KLSNlbmRp
ZgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxl
ci9Qcm9maWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9Q
cm9maWxlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyNmJhZmQuLjAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcHJvZmlsZXIvUHJvZmlsZS5o
CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0jaWZuZGVmIFdlYkNvcmVfRldEX1Byb2Zp
bGVfaAotI2RlZmluZSBXZWJDb3JlX0ZXRF9Qcm9maWxlX2gKLSNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Qcm9maWxlLmg+Ci0jZW5kaWYKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMvcHJvZmlsZXIvUHJvZmlsZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL0Zv
cndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGExOWEwN2UuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvRm9yd2Fy
ZGluZ0hlYWRlcnMvcHJvZmlsZXIvUHJvZmlsZU5vZGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDUg
KzAsMCBAQAotI2lmbmRlZiBXZWJDb3JlX0ZXRF9Qcm9maWxlTm9kZV9oCi0jZGVmaW5lIFdlYkNv
cmVfRldEX1Byb2ZpbGVOb2RlX2gKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlTm9k
ZS5oPgotI2VuZGlmCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyNmE3MjViLi44NjQ1OTZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MDU1LDEyICs0MDU1
LDYgQEAKIAkJOURBQzdDNTQxQUYyQ0FBMTAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRp
b25WYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5REFDN0M1MjFBRjJDQUExMDA0MzdDNDQgLyogQ1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVl
LmNwcCAqLzsgfTsKIAkJOURBQzdDNTUxQUYyQ0FBMjAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0
cmlidXRpb25WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOURBQzdDNTMxQUYyQ0FBMTAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25W
YWx1ZS5oICovOyB9OwogCQk5REFDN0M1NzFBRjJDQjY0MDA0MzdDNDQgLyogU3R5bGVDb250ZW50
QWxpZ25tZW50RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOURBQzdDNTYxQUYyQ0I2NDAwNDM3QzQ0IC8qIFN0eWxlQ29udGVudEFsaWdubWVudERh
dGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5
RjcyMzA0RjExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUY3MjMwNEMxMTE4NEI0MTAwQUQwMTI2
IC8qIFNjcmlwdFByb2ZpbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQk5RkEzN0VFNDExNzJGQzgwMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGQTM3
RUUzMTE3MkZDODAwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTlGQTM3RUZBMTE3MkZEQTYwMEM0
Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUZBMzdFRjYxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJv
ZmlsZS5jcHAgKi87IH07Ci0JCTlGQTM3RUZCMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFBy
b2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlG
QTM3RUY3MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCAqLzsgfTsKLQkJOUZB
MzdFRkMxMTcyRkRBNjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZBMzdFRjgxMTcyRkQ5MzAw
QzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwICovOyB9OwotCQk5RkEzN0VGRDExNzJG
REE2MDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8qIEpT
U2NyaXB0UHJvZmlsZU5vZGUuaCAqLzsgfTsKIAkJQTA3RDMzNTUxNTJCNjMwRTAwMUI2MzkzIC8q
IEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMzNTMxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2Vi
R0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwICovOyB9OwogCQlBMDdEMzM1NjE1MkI2MzBFMDAx
QjYzOTMgLyogSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTA3RDMzNTQxNTJCNjMwRTAwMUI2MzkzIC8q
IEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCAqLzsgfTsKIAkJQTA3RDMzNTgxNTJCNjMy
RDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMDdEMzM1NzE1MkI2MzJEMDAxQjYzOTMg
LyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCAqLzsgfTsKQEAgLTExNzc3LDE0ICsxMTc3
MSw2IEBACiAJCTlEQUM3QzUyMUFGMkNBQTEwMDQzN0M0NCAvKiBDU1NDb250ZW50RGlzdHJpYnV0
aW9uVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQ29u
dGVudERpc3RyaWJ1dGlvblZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OURBQzdDNTMxQUYyQ0FBMTAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NDb250ZW50RGlzdHJpYnV0aW9u
VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOURBQzdDNTYxQUYyQ0I2NDAw
NDM3QzQ0IC8qIFN0eWxlQ29udGVudEFsaWdubWVudERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3R5bGVDb250ZW50QWxpZ25tZW50RGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk5RjcyMzA0QzExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmls
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRQcm9maWxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlGQTM3RUUzMTE3MkZDODAwMEM0Q0Q1NSAvKiBT
Y3JpcHRQcm9maWxlTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3Jp
cHRQcm9maWxlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VFRjEx
NzJGRDQxMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gU2NyaXB0UHJvZmlsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlGQTM3
RUYwMTE3MkZENDEwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU2NyaXB0UHJvZmlsZU5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk5RkEzN0VGNjExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2NyaXB0UHJvZmlsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlGQTM3RUY3MTE3MkZEOTMwMEM0Q0Q1NSAv
KiBKU1NjcmlwdFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNT
Y3JpcHRQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlGQTM3RUY4MTE3
MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VGOTExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQ
cm9maWxlTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NjcmlwdFBy
b2ZpbGVOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEwN0QzMzUzMTUyQjYz
MEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMDdEMzM1NDE1MkI2MzBFMDAxQjYz
OTMgLyogSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUEwN0QzMzU3MTUyQjYzMkQwMDFCNjM5MyAvKiBXZWJHTFNoYWRl
clByZWNpc2lvbkZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJH
TFNoYWRlclByZWNpc2lvbkZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTYyOTgsMTAgKzE2Mjg0LDYgQEAKIAkJCQlBNTg0RkUzQTE4NjRFMkQ4MDA4NDNCMTAgLyogSlND
b21tYW5kTGluZUFQSUhvc3QuaCAqLywKIAkJCQk3QTBFNzcxQzEwQzAwREIxMDBBMDI3NkUgLyog
SlNJbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwICovLAogCQkJCTdBMEU3NzFEMTBDMDBEQjEwMEEw
Mjc2RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdC5oICovLAotCQkJCTlGQTM3RUY2MTE3MkZE
OTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuY3BwICovLAotCQkJCTlGQTM3RUY3MTE3MkZE
OTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCAqLywKLQkJCQk5RkEzN0VGODExNzJGRDkz
MDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAgKi8sCi0JCQkJOUZBMzdFRjkxMTcy
RkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuaCAqLywKIAkJCSk7CiAJCQluYW1l
ID0gSW5zcGVjdG9yOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2Mzg2LDggKzE2
MzY4LDYgQEAKIAkJCQlGMzgyMDg4RDE0N0QzNUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRpbWVBZ2Vu
dC5oICovLAogCQkJCUE1RjM2RDM4MThGNzU4NzIwMDU0QzAyNCAvKiBQYWdlU2NyaXB0RGVidWdT
ZXJ2ZXIuY3BwICovLAogCQkJCUE1RjM2RDM5MThGNzU4NzIwMDU0QzAyNCAvKiBQYWdlU2NyaXB0
RGVidWdTZXJ2ZXIuaCAqLywKLQkJCQk5RkEzN0VFRjExNzJGRDQxMDBDNENENTUgLyogU2NyaXB0
UHJvZmlsZS5pZGwgKi8sCi0JCQkJOUZBMzdFRjAxMTcyRkQ0MTAwQzRDRDU1IC8qIFNjcmlwdFBy
b2ZpbGVOb2RlLmlkbCAqLywKIAkJCQk3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmNwcCAqLywKIAkJCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyog
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi8sCiAJCQkJQTU2QzVCOTgxODlGMzQ1NzAwODJEMTND
IC8qIFdlYkNvbnNvbGVBZ2VudC5jcHAgKi8sCkBAIC0yMjM3NCw4ICsyMjM1NCw2IEBACiAJCQkJ
QTgzRTFDNzIwRTQ5MDQyQjAwMTQwQjlDIC8qIFNjcmlwdENvbnRyb2xsZXJNYWMubW0gKi8sCiAJ
CQkJNDFGMDY2RTMwRjY0QkNGNjAwQTA3RUFDIC8qIFNjcmlwdEdsb2JhbE9iamVjdC5jcHAgKi8s
CiAJCQkJNDFGMDY2RTIwRjY0QkNGNjAwQTA3RUFDIC8qIFNjcmlwdEdsb2JhbE9iamVjdC5oICov
LAotCQkJCTlGNzIzMDRDMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlLmggKi8sCi0J
CQkJOUZBMzdFRTMxMTcyRkM4MDAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmggKi8sCiAJ
CQkJOTM0Q0MxMDkwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLywKIAkJ
CQk0MTI3RDUzNjBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwICovLAogCQkJCTQx
Qzc2MEIwMEVERTAzRDMwMEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5oICovLApAQCAtMjY4NTQsOCAr
MjY4MzIsNiBAQAogCQkJCTVFMkM0MzZDMUJDRjA3MUUwMDAxRTJCQyAvKiBKU1JUQ1RyYWNrRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUMwMUMzMEMyNzREREQwMDlGNEVDOSAvKiBKU1Nj
cmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFQ0UxMkIwM0Y2MTAwM0E1ODNBIC8qIEpT
U2NyaXB0UHJvY2Vzc29yTm9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUZBMzdFRkIxMTcyRkRB
NjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUZBMzdF
RkQxMTcyRkRBNjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNFRDA2QUQxMUM3Nzc1NDgwMEZERkFGMSAvKiBKU1NlY3VyaXR5UG9saWN5VmlvbGF0
aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCREE2NEQ4MUI5NzVDRjIwMDlDNDM4NyAv
KiBKU1NoYWRvd1Jvb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEOURFMTdCMTdBQUM3NUIwMEVB
Mzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzg0Nyw4ICsyNzgy
Myw2IEBACiAJCQkJRTExQzlEOUIwRUIzNjgxMjAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRjA2NkU0MEY2NEJDRjYwMEEwN0VBQyAvKiBT
Y3JpcHRHbG9iYWxPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDM2MTJCMDI2NzYw
MEMxQTM1OSAvKiBTY3JpcHRQcm9jZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5Rjcy
MzA0RjExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJOUZBMzdFRTQxMTcyRkM4MDAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291
cmNlQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFDNzYwQjEwRURFMDNEMzAwQzE2NTVGIC8q
IFNjcmlwdFN0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTMwNjIwLDggKzMwNTk0LDYgQEAKIAkJ
CQk1RTJDNDM2QjFCQ0YwNzFFMDAwMUUyQkMgLyogSlNSVENUcmFja0V2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDRUMwMUMyMEMyNzREREQwMDlGNEVDOSAvKiBKU1NjcmVlbi5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGREExNUVDRDEyQjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQcm9j
ZXNzb3JOb2RlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTlGQTM3RUZBMTE3MkZEQTYwMEM0Q0Q1
NSAvKiBKU1NjcmlwdFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOUZBMzdFRkMxMTcy
RkRBNjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0VEMDZBRDAxQzc3NzU0ODAwRkRGQUYxIC8qIEpTU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5QkRBNjRENzFCOTc1Q0U1MDA5QzQzODcgLyog
SlNTaGFkb3dSb290LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEOURFMTdBMTdBQUM3NUIwMEVB
Mzg2RCAvKiBKU1NvdXJjZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAppbmRl
eCBlZTlmOTY4Li5lMDkxNWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKLSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IDA0YWU4YTMuLmEw
M2IwY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmNwcApAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd0FjY2Vzc0Zyb20o
Y29uc3QgSlNHbG9iYWxPYmplY3QqIHRoaXNPYmplY3QsIEV4ZWNTdGF0ZSogZQogCiBjb25zdCBD
bGFzc0luZm8gSlNET01XaW5kb3dCYXNlOjpzX2luZm8gPSB7ICJXaW5kb3ciLCAmSlNET01HbG9i
YWxPYmplY3Q6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RPTVdpbmRvd0Jhc2Up
IH07CiAKLWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19n
bG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJnNob3VsZEFsbG93QWNjZXNzRnJvbSwgJnN1cHBv
cnRzTGVnYWN5UHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVy
cnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9v
cCwgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNv
bHZlLCAmbW9kdWxlTG9hZGVyRmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsICZtb2R1bGVMb2FkZXJF
dmFsdWF0ZSwgJmRlZmF1bHRMYW5ndWFnZSB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxk
QWxsb3dBY2Nlc3NGcm9tLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVw
dFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwg
JnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZl
LCAmbW9kdWxlTG9hZGVyRmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsICZtb2R1bGVMb2FkZXJFdmFs
dWF0ZSwgJmRlZmF1bHRMYW5ndWFnZSB9OwogCiBKU0RPTVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93
QmFzZShWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4g
d2luZG93LCBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCkKICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0
KHZtLCBzdHJ1Y3R1cmUsICZzaGVsbC0+d29ybGQoKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUpCkBAIC0xMjUsMjAgKzEyNSw2IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpwcmludEVycm9y
TWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiAgICAgcHJpbnRFcnJvck1lc3Nh
Z2VGb3JGcmFtZSh3cmFwcGVkKCkuZnJhbWUoKSwgbWVzc2FnZSk7CiB9CiAKLWJvb2wgSlNET01X
aW5kb3dCYXNlOjpzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZyhjb25zdCBKU0dsb2JhbE9iamVjdCog
b2JqZWN0KQotewotICAgIGNvbnN0IEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PGNvbnN0IEpTRE9NV2luZG93QmFzZSo+KG9iamVjdCk7Ci0gICAgRnJhbWUqIGZyYW1l
ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAg
aWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gcGFnZS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLmxlZ2FjeVByb2ZpbGVyRW5hYmxlZCgpOwotfQotCiBib29sIEpT
RE9NV2luZG93QmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2JhbE9iamVj
dCogb2JqZWN0KQogewogICAgIGNvbnN0IEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IHN0
YXRpY19jYXN0PGNvbnN0IEpTRE9NV2luZG93QmFzZSo+KG9iamVjdCk7CkBAIC0xNTIsNyArMTM4
LDYgQEAgYm9vbCBKU0RPTVdpbmRvd0Jhc2U6OnN1cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3Qg
SlNHbG9iYWxPYmplY3QqIG9iamVjdCkKIAogICAgIGJvb2wgZW5hYmxlZCA9IHBhZ2UtPmluc3Bl
Y3RvckNvbnRyb2xsZXIoKS5lbmFibGVkKCk7CiAgICAgQVNTRVJUKGVuYWJsZWQgfHwgIXRoaXNP
YmplY3QtPmRlYnVnZ2VyKCkpOwotICAgIEFTU0VSVChlbmFibGVkIHx8ICFzdXBwb3J0c0xlZ2Fj
eVByb2ZpbGluZyh0aGlzT2JqZWN0KSk7CiAgICAgcmV0dXJuIGVuYWJsZWQ7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggNTY2OWRlNS4u
MTZmYzM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmgKQEAgLTYwLDcgKzYwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRp
YyBjb25zdCBKU0M6Okdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHNfZ2xvYmFsT2JqZWN0TWV0aG9k
VGFibGU7CiAKLSAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNMZWdhY3lQcm9maWxpbmcoY29u
c3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1Jp
Y2hTb3VyY2VJbmZvKGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGlj
IGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0KGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsK
ICAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChj
b25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggM2Q0NzZkZS4uM2Iw
YjMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlLmNwcApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNvbnN0IENsYXNzSW5mbyBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19pbmZvID0geyAi
V29ya2VyR2xvYmFsU2NvcGUiLCAmSlNET01HbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShKU1dvcmtlckdsb2JhbFNjb3BlQmFzZSkgfTsKIAotY29uc3QgR2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0
TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nlc3NGcm9tLCAmc3VwcG9ydHNMZWdhY3lQcm9maWxp
bmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2
YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJy
dXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciwgbnVsbHB0ciwgJmRlZmF1bHRMYW5ndWFnZSB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUg
PSB7ICZhbGxvd3NBY2Nlc3NGcm9tLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZElu
dGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50
TG9vcCwgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsICZkZWZhdWx0TGFuZ3VhZ2UgfTsKIAogSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2U6OkpTV29ya2VyR2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZt
LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPFdvcmtlckdsb2JhbFNjb3Bl
PiBpbXBsKQogICAgIDogSlNET01HbG9iYWxPYmplY3Qodm0sIHN0cnVjdHVyZSwgJm5vcm1hbFdv
cmxkKHZtKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCkBAIC03MywxMSArNzMsNiBAQCBi
b29sIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjphbGxvd3NBY2Nlc3NGcm9tKGNvbnN0IEpTR2xv
YmFsT2JqZWN0KiBvYmplY3QsIEV4ZQogICAgIHJldHVybiBKU0dsb2JhbE9iamVjdDo6YWxsb3dz
QWNjZXNzRnJvbShvYmplY3QsIGV4ZWMpOwogfQogCi1ib29sIEpTV29ya2VyR2xvYmFsU2NvcGVC
YXNlOjpzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZyhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0
KQotewotICAgIHJldHVybiBKU0dsb2JhbE9iamVjdDo6c3VwcG9ydHNMZWdhY3lQcm9maWxpbmco
b2JqZWN0KTsKLX0KLQogYm9vbCBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNo
U291cmNlSW5mbyhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQogewogICAgIHJldHVybiBK
U0dsb2JhbE9iamVjdDo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyhvYmplY3QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmgKaW5k
ZXggMWJkMmIxMC4uMDA2ZmYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5oCkBAIC01Myw3ICs1Myw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6R2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZTsKIAogICAgICAgICBzdGF0aWMgYm9vbCBh
bGxvd3NBY2Nlc3NGcm9tKGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0
ZSopOwotICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZyhjb25zdCBK
U0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBib29sIHN1cHBvcnRzUmljaFNv
dXJjZUluZm8oY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgICAgICBzdGF0aWMgYm9v
bCBzaG91bGRJbnRlcnJ1cHRTY3JpcHQoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAg
ICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0KGNvbnN0
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwCmluZGV4IDFjY2NmOGEuLjU2MTZiM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVE
YXRhLmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4K
LSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2su
aD4KICNpbmNsdWRlIDxydW50aW1lL1dlYWtHQ01hcElubGluZXMuaD4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAyZmMwNDEyLi5k
MmYyZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9s
bGVyLmNwcApAQCAtNTIsNyArNTIsNiBAQAogI2luY2x1ZGUgPGRlYnVnZ2VyL0RlYnVnZ2VyLmg+
CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1Nj
cmlwdENhbGxTdGFjay5oPgotI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRl
IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTIxNSwxMyArMjE0LDYgQEAgdm9p
ZCBTY3JpcHRDb250cm9sbGVyOjpjbGVhcldpbmRvd1NoZWxsKERPTVdpbmRvdyogbmV3RE9NV2lu
ZG93LCBib29sIGdvaW5nSW50b1AKICAgICAgICAgYXR0YWNoRGVidWdnZXIod2luZG93U2hlbGws
IG51bGxwdHIpOwogICAgICAgICB3aW5kb3dTaGVsbC0+d2luZG93KCktPnNldENvbnNvbGVDbGll
bnQobnVsbHB0cik7CiAKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjbGVhciBjb25zb2xl
IHByb2ZpbGVzIGZvciBlYWNoIGZyYW1lIGFzIHNvb24gYXMgdGhlIGZyYW1lIGlzIGRlc3Ryb3ll
ZC4KLSAgICAgICAgLy8gSW5zdGVhZCBvZiBjbGVhcmluZyBhbGwgb2YgdGhlbSB3aGVuIHRoZSBt
YWluIGZyYW1lIGlzIGRlc3Ryb3llZC4KLSAgICAgICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUo
KSkgewotICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkKLSAgICAg
ICAgICAgICAgICBwYWdlLT5jb25zb2xlKCkuY2xlYXJQcm9maWxlcygpOwotICAgICAgICB9Ci0K
ICAgICAgICAgd2luZG93U2hlbGwtPndpbmRvdygpLT53aWxsUmVtb3ZlRnJvbVdpbmRvd1NoZWxs
KCk7CiAgICAgICAgIHdpbmRvd1NoZWxsLT5zZXRXaW5kb3cobmV3RE9NV2luZG93KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3YjQzZjgyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdFByb2ZpbGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
U2NyaXB0UHJvZmlsZV9oCi0jZGVmaW5lIFNjcmlwdFByb2ZpbGVfaAotCi0jaW5jbHVkZSA8cHJv
ZmlsZXIvUHJvZmlsZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXR5cGVkZWYgSlNDOjpQ
cm9maWxlIFNjcmlwdFByb2ZpbGU7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIFNjcmlwdFByb2ZpbGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0UHJvZmlsZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dFByb2ZpbGVOb2RlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkMTI4M2QuLjAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZU5vZGUu
aAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU2NyaXB0UHJvZmlsZU5vZGVfaAotI2RlZmlu
ZSBTY3JpcHRQcm9maWxlTm9kZV9oCi0KLSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlTm9kZS5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXR5cGVkZWYgSlNDOjpQcm9maWxlTm9kZSBTY3Jp
cHRQcm9maWxlTm9kZTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gU2Ny
aXB0UHJvZmlsZU5vZGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA1ZjY1ZDFlLi5mMjhiM2MzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMjY0
LDEyICsyNjQsNiBAQCBzdWIgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQKIHsKICAgICBteSAkaW50
ZXJmYWNlTmFtZSA9IHNoaWZ0OwogCi0gICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJTY3JpcHRQ
cm9maWxlTm9kZSIpIHsKLSAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8cHJvZmlsZXIvUHJvZmls
ZU5vZGUuaD4ifSA9IDE7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ0eXBlZGVmIEpT
Qzo6UHJvZmlsZU5vZGUgU2NyaXB0UHJvZmlsZU5vZGU7XG5cbiIpOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCiAgICAgIyBTVkdBbmltYXRlZExlbmd0aC9OdW1iZXIvZXRjLiBhcmUgdHlwZWRl
ZnMgYW5kIHNob3VsZCBub3QgYmUgZm9yd2FyZC1kZWNsYXJlZCBhcyBjbGFzc2VzLgogICAgIHJl
dHVybiBpZiAkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJGludGVyZmFjZU5hbWUp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCmluZGV4IDlhMjRmMTUuLmU2NDZmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC00Miw3
ICs0Miw2IEBACiAjaW5jbHVkZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiSlNTVkdEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkpTU1ZHUG9pbnQuaCIKLSNpbmNsdWRlICJKU1NjcmlwdFByb2ZpbGUuaCIK
ICNpbmNsdWRlICJKU1Rlc3RDYWxsYmFjay5oIgogI2luY2x1ZGUgIkpTVGVzdENhbGxiYWNrRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJKU1Rlc3ROb2RlLmgiCkBAIC01NCw3ICs1Myw2IEBACiAjaW5j
bHVkZSAiU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdQb2ludC5oIgogI2luY2x1ZGUgIlNW
R1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oIgotI2luY2x1ZGUgIlNjcmlwdFByb2ZpbGUuaCIKICNp
bmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlRlc3RPYmouaCIKQEAgLTUzNyw4ICs1MzUsNiBAQCBKU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBh
dGhOU1JlcwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdNZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9u
TnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxl
U3RyaW5nU3BlY2lhbE1ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVl
bmNlQXJnKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShKU0M6
OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcoSlNDOjpFeGVjU3RhdGUqKTsKIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmcoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUoSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTEx
MDksOCArMTEwNSw2IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90
b3R5cGVUYWJsZVZhbHVlc1tdID0KICAgICB7ICJtZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFy
YW1ldGVyIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhY
UGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIpLCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAibnVs
bGFibGVTdHJpbmdNZXRob2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TnVsbGFibGVTdHJpbmdNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAibnVsbGFi
bGVTdHJpbmdTcGVjaWFsTWV0aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvbk51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAg
ICB7ICJtZXRob2RXaXRoU2VxdWVuY2VBcmciLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlw
ZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAg
IHsgIm1ldGhvZFJldHVybmluZ1NlcXVlbmNlIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMs
IHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFJldHVybmluZ1NlcXVlbmNlKSwgKGludHB0cl90KSAoMSkgfSB9LAog
ICAgIHsgIm1ldGhvZFdpdGhFbnVtQXJnIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVG
dW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJnKSwgKGludHB0cl90KSAoMSkgfSB9LAogICAgIHsgIm1l
dGhvZFdpdGhPcHRpb25hbEVudW1BcmciLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZyksIChpbnRwdHJfdCkgKDApIH0gfSwKICAg
ICB7ICJtZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlIiwgSlNDOjpGdW5j
dGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmRE
ZWZhdWx0VmFsdWUpLCAoaW50cHRyX3QpICgwKSB9IH0sCkBAIC00MTQwLDQwICs0MTM0LDYgQEAg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51
bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcoRXhlY1N0YXRlKiBzdGF0ZSkKLXsKLSAgICBK
U1ZhbHVlIHRoaXNWYWx1ZSA9IHN0YXRlLT50aGlzVmFsdWUoKTsKLSAgICBhdXRvIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7Ci0gICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93VGhpc1R5cGVFcnJvcigqc3Rh
dGUsICJUZXN0T2JqIiwgIm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyIpOwotICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwotICAgIGF1dG8m
IGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAgaWYgKFVOTElLRUxZKHN0YXRlLT5h
cmd1bWVudENvdW50KCkgPCAxKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihzdGF0ZSwg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Ioc3RhdGUpKTsKLSAgICBhdXRvIHNlcXVlbmNl
QXJnID0gKHRvUmVmUHRyTmF0aXZlQXJyYXk8U2NyaXB0UHJvZmlsZSwgSlNTY3JpcHRQcm9maWxl
PihzdGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDApLCAmSlNTY3JpcHRQcm9maWxlOjp0b1dyYXBwZWQp
KTsKLSAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLm1ldGhvZFdpdGhT
ZXF1ZW5jZUFyZyhXVEZNb3ZlKHNlcXVlbmNlQXJnKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFJldHVybmluZ1NlcXVlbmNlKEV4ZWNTdGF0
ZSogc3RhdGUpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBzdGF0ZS0+dGhpc1ZhbHVlKCk7
Ci0gICAgYXV0byBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFs
dWUpOwotICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJv
d1RoaXNUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJtZXRob2RSZXR1cm5pbmdTZXF1ZW5j
ZSIpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2Jq
OjppbmZvKCkpOwotICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAg
aWYgKFVOTElLRUxZKHN0YXRlLT5hcmd1bWVudENvdW50KCkgPCAxKSkKLSAgICAgICAgcmV0dXJu
IHRocm93Vk1FcnJvcihzdGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Ioc3RhdGUp
KTsKLSAgICBhdXRvIGxvbmdBcmcgPSBjb252ZXJ0PGludDMyX3Q+KCpzdGF0ZSwgc3RhdGUtPmFy
Z3VtZW50KDApLCBOb3JtYWxDb252ZXJzaW9uKTsKLSAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhh
ZEV4Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQXJyYXkoc3RhdGUsIGNhc3RlZFRoaXMtPmds
b2JhbE9iamVjdCgpLCBpbXBsLm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKFdURk1vdmUobG9uZ0Fy
ZykpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Ci19Ci0KIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
RW51bUFyZyhFeGVjU3RhdGUqIHN0YXRlKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gc3Rh
dGUtPnRoaXNWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDlmYWUzNmUuLjkzZWU0NjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTExNyw5ICsxMTcs
NiBAQCBlbnVtIFRlc3RDb25maWRlbmNlIHsgImhpZ2giLCAia2luZGEtbG93IiB9OwogICAgIHN0
YXRpYyBET01TdHJpbmc/IG51bGxhYmxlU3RyaW5nU3RhdGljTWV0aG9kKCk7CiAgICAgZ2V0dGVy
IERPTVN0cmluZz8gbnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kKHVuc2lnbmVkIGxvbmcgaW5k
ZXgpOwogCi0gICAgdm9pZCBtZXRob2RXaXRoU2VxdWVuY2VBcmcoc2VxdWVuY2U8U2NyaXB0UHJv
ZmlsZT4gc2VxdWVuY2VBcmcpOwotICAgIHNlcXVlbmNlPFNjcmlwdFByb2ZpbGU+IG1ldGhvZFJl
dHVybmluZ1NlcXVlbmNlKGxvbmcgbG9uZ0FyZyk7Ci0KICAgICB2b2lkIG1ldGhvZFdpdGhFbnVt
QXJnKFRlc3RFbnVtVHlwZSBlbnVtQXJnKTsKICAgICB2b2lkIG1ldGhvZFdpdGhPcHRpb25hbEVu
dW1Bcmcob3B0aW9uYWwgVGVzdEVudW1UeXBlIGVudW1BcmcpOwogICAgIHZvaWQgbWV0aG9kV2l0
aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZShvcHRpb25hbCBUZXN0RW51bVR5cGUgZW51
bUFyZyA9ICJFbnVtVmFsdWUxIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDk0OGZi
MTIuLjI2NGZiNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC05Nyw3ICs5Nyw2IEBA
CiAjaW5jbHVkZSAiV2ViS2l0Q1NTRmlsdGVyVmFsdWUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NS
ZWdpb25SdWxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIKLSNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8Yml0c2V0PgogI2luY2x1
ZGUgPGxpbWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDVmNzcwYWUuLjI1Y2JhOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMTgyLDcgKzE4Miw2IEBACiAjaW5jbHVkZSAiWFBhdGhOU1Jlc29sdmVyLmgiCiAjaW5jbHVk
ZSAiWFBhdGhSZXN1bHQuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgotI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxjdGltZT4KICNpbmNsdWRlIDxpbnNw
ZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3Ry
dW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJ
bnN0cnVtZW50YXRpb24uaAppbmRleCA0ODQ5MjM1Li5hMDE3MGU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0
aW9uLmgKQEAgLTMzLDcgKzMzLDYgQEAKICNkZWZpbmUgSW5zcGVjdG9yQ29uc29sZUluc3RydW1l
bnRhdGlvbl9oCiAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKLSNpbmNs
dWRlICJTY3JpcHRQcm9maWxlLmgiCiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50
cy5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KIApAQCAtODUsOSAr
ODQsOSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0UHJvZmls
aW5nKFBhZ2UmIHBhZ2UsIEpTQzo6RXhlY1N0YXRlKgogICAgIHN0YXJ0UHJvZmlsaW5nSW1wbChp
bnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdlKSwgZXhlYywgdGl0bGUpOwogfQogCi1pbmxp
bmUgUmVmUHRyPEpTQzo6UHJvZmlsZT4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wUHJv
ZmlsaW5nKFBhZ2UmIHBhZ2UsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcgJnRp
dGxlKQoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wUHJvZmlsaW5n
KFBhZ2UmIHBhZ2UsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcgJnRpdGxlKQog
ewotICAgIHJldHVybiBzdG9wUHJvZmlsaW5nSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFn
ZShwYWdlKSwgZXhlYywgdGl0bGUpOworICAgIHN0b3BQcm9maWxpbmdJbXBsKGluc3RydW1lbnRp
bmdBZ2VudHNGb3JQYWdlKHBhZ2UpLCBleGVjLCB0aXRsZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAppbmRleCBkYjFjZmFkLi4wNDM4NWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC03Miw3ICs3Miw2IEBACiAjaW5j
bHVkZSA8aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBZ2VudC5oPgogI2luY2x1ZGUgPGluc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9ySGVhcEFnZW50Lmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50Lmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIv
TGVnYWN5UHJvZmlsZXIuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9TdG9wd2F0Y2guaD4KIApAQCAtMTcxLDE0ICsxNzAsMTEgQEAgSW5zcGVjdG9yQ29udHJv
bGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlJiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGlu
c3BlY3RvckMKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFdlYkNvbnNvbGVBZ2VudChj
b25zb2xlQWdlbnRQdHIuZ2V0KCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChXVEZNb3ZlKGNvbnNv
bGVBZ2VudFB0cikpOwogCi0gICAgYXV0byB0aW1lbGluZUFnZW50UHRyID0gc3RkOjptYWtlX3Vu
aXF1ZTxJbnNwZWN0b3JUaW1lbGluZUFnZW50PihwYWdlQ29udGV4dCwgc2NyaXB0UHJvZmlsZXJB
Z2VudCwgaGVhcEFnZW50LCBwYWdlQWdlbnQpOwotICAgIG1fdGltZWxpbmVBZ2VudCA9IHRpbWVs
aW5lQWdlbnRQdHIuZ2V0KCk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKFdURk1vdmUodGltZWxpbmVB
Z2VudFB0cikpOwotCiAgICAgYXV0byBkZWJ1Z2dlckFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1
ZTxQYWdlRGVidWdnZXJBZ2VudD4ocGFnZUNvbnRleHQsIHBhZ2VBZ2VudCwgbV9vdmVybGF5Lmdl
dCgpKTsKICAgICBQYWdlRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IGRlYnVnZ2VyQWdl
bnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKFdURk1vdmUoZGVidWdnZXJBZ2VudFB0
cikpOwogCisgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudD4ocGFnZUNvbnRleHQsIHNjcmlwdFByb2ZpbGVyQWdlbnQsIGhlYXBBZ2VudCwg
cGFnZUFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVj
dG9yRE9NRGVidWdnZXJBZ2VudD4ocGFnZUNvbnRleHQsIG1fZG9tQWdlbnQsIGRlYnVnZ2VyQWdl
bnQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JBcHBs
aWNhdGlvbkNhY2hlQWdlbnQ+KHBhZ2VDb250ZXh0LCBwYWdlQWdlbnQpKTsKICAgICBtX2FnZW50
cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JMYXllclRyZWVBZ2VudD4ocGFnZUNv
bnRleHQpKTsKQEAgLTQxNCwyNyArNDEwLDYgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpz
ZXRJbmRpY2F0aW5nKGJvb2wgaW5kaWNhdGluZykKICNlbmRpZgogfQogCi1ib29sIEluc3BlY3Rv
ckNvbnRyb2xsZXI6OmxlZ2FjeVByb2ZpbGVyRW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fbGVnYWN5UHJvZmlsZXJFbmFibGVkOwotfQotCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OnNldExlZ2FjeVByb2ZpbGVyRW5hYmxlZChib29sIGVuYWJsZSkKLXsKLSAgICBtX2xlZ2FjeVBy
b2ZpbGVyRW5hYmxlZCA9IGVuYWJsZTsKLQotICAgIEVycm9yU3RyaW5nIHVudXNlZDsKLSAgICBp
ZiAoZW5hYmxlKSB7Ci0gICAgICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0UGVyc2lzdGVu
dEluc3BlY3RvclRpbWVsaW5lQWdlbnQobV90aW1lbGluZUFnZW50KTsKLSAgICAgICAgbV9zY3Jp
cHREZWJ1Z1NlcnZlci5yZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygpOwotICAgICAgICBtX3RpbWVs
aW5lQWdlbnQtPnN0YXJ0KHVudXNlZCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbV9pbnN0cnVt
ZW50aW5nQWdlbnRzLT5zZXRQZXJzaXN0ZW50SW5zcGVjdG9yVGltZWxpbmVBZ2VudChudWxscHRy
KTsKLSAgICAgICAgbV9zY3JpcHREZWJ1Z1NlcnZlci5yZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucygp
OwotICAgICAgICBtX3RpbWVsaW5lQWdlbnQtPnN0b3AodW51c2VkKTsKLSAgICB9Ci19Ci0KIGJv
b2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fcGFnZS5zZXR0aW5ncygpLmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCmluZGV4
IGNiZjVjMTkuLmE1ODk2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaApAQCAtNjMsNyArNjMsNiBAQCBjbGFzcyBJbnNwZWN0b3JET01BZ2Vu
dDsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kQ2xpZW50OwogY2xhc3MgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOwogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50OwotY2xhc3MgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDsKIGNsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBOb2RlOwogY2xh
c3MgUGFnZTsKQEAgLTExMSw5ICsxMTAsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJc1VuZGVy
VGVzdChib29sIGlzVW5kZXJUZXN0KSB7IG1faXNVbmRlclRlc3QgPSBpc1VuZGVyVGVzdDsgfQog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChjb25zdCBT
dHJpbmcmIHNjcmlwdCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGxlZ2FjeVByb2ZpbGVy
RW5hYmxlZCgpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TGVnYWN5UHJvZmls
ZXJFbmFibGVkKGJvb2wpOwotCiAgICAgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDbGllbnQo
KSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckNsaWVudDsgfQogICAgIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50KiBpbnNwZWN0b3JGcm9udGVuZENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5z
cGVjdG9yRnJvbnRlbmRDbGllbnQ7IH0KICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2Vu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUFnZW50OyB9CkBAIC0xNDgsMTEgKzE0NCw5IEBAIHBy
aXZhdGU6CiAgICAgSW5zcGVjdG9yOjpJbnNwZWN0b3JBZ2VudCogbV9pbnNwZWN0b3JBZ2VudCB7
IG51bGxwdHIgfTsKICAgICBJbnNwZWN0b3JET01BZ2VudCogbV9kb21BZ2VudCB7IG51bGxwdHIg
fTsKICAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIG1fcGFnZUFnZW50IHsgbnVsbHB0ciB9OwotICAg
IEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIG1fdGltZWxpbmVBZ2VudCB7IG51bGxwdHIgfTsKIAog
ICAgIGJvb2wgbV9pc1VuZGVyVGVzdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzQXV0b21hdGlj
SW5zcGVjdGlvbiB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2xlZ2FjeVByb2ZpbGVyRW5hYmxlZCB7
IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDk5
MDA3ZTAuLmE5MzM4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC02Nyw3ICs2Nyw2IEBACiAjaW5jbHVkZSA8
aW5zcGVjdG9yL1NjcmlwdEFyZ3VtZW50cy5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRD
YWxsU3RhY2suaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2Vy
QWdlbnQuaD4KLSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtODk0LDExICs4OTMsMTAgQEAgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0UHJvZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
JiBpbnN0cnVtZW4KICAgICAgICAgdGltZWxpbmVBZ2VudC0+c3RhcnRGcm9tQ29uc29sZShleGVj
LCB0aXRsZSk7CiB9CiAKLVJlZlB0cjxKU0M6OlByb2ZpbGU+IEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6c3RvcFByb2ZpbGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGlu
Z0FnZW50cywgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUpCit2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFByb2ZpbGluZ0ltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVs
aW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLnBlcnNpc3RlbnRJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50KCkpCi0gICAgICAgIHJldHVybiB0aW1lbGluZUFnZW50LT5zdG9wRnJvbUNvbnNvbGUo
ZXhlYywgdGl0bGUpOwotICAgIHJldHVybiBudWxscHRyOworICAgICAgICB0aW1lbGluZUFnZW50
LT5zdG9wRnJvbUNvbnNvbGUoZXhlYywgdGl0bGUpOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkT3BlbkRhdGFiYXNlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0
cnVtZW50aW5nQWdlbnRzLCBSZWZQdHI8RGF0YWJhc2U+JiYgZGF0YWJhc2UsIGNvbnN0IFN0cmlu
ZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aAppbmRleCBkOWQxNDQ4Li5lNGZlZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0yMTgsNyArMjE4LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIGRpZEZpcmVBbmltYXRpb25GcmFtZShjb25zdCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKIAogICAgIHN0YXRpYyB2b2lkIHN0YXJ0UHJvZmls
aW5nKFBhZ2UmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHN0
YXRpYyBSZWZQdHI8SlNDOjpQcm9maWxlPiBzdG9wUHJvZmlsaW5nKFBhZ2UmLCBKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOworICAgIHN0YXRpYyB2b2lkIHN0b3BQcm9maWxp
bmcoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAKICAgICBz
dGF0aWMgdm9pZCBkaWRPcGVuRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFJlZlB0
cjxEYXRhYmFzZT4mJiwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKIApAQCAtMzg3LDcgKzM4Nyw3IEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIHZvaWQgZGlkRmlyZUFuaW1hdGlvbkZyYW1lSW1wbChjb25zdCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb25Db29raWUmKTsKIAogICAgIHN0YXRpYyB2b2lkIHN0YXJ0UHJvZmlsaW5n
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IHRpdGxlKTsKLSAgICBzdGF0aWMgUmVmUHRyPEpTQzo6UHJvZmlsZT4gc3RvcFByb2ZpbGluZ0lt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0
aXRsZSk7CisgICAgc3RhdGljIHZvaWQgc3RvcFByb2ZpbGluZ0ltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAKICAgICBzdGF0
aWMgdm9pZCBkaWRPcGVuRGF0YWJhc2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBSZWZQdHI8
RGF0YWJhc2U+JiYsIGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmVyc2lvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCA3MDFiYTdiLi4yYzhlMThlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwCkBAIC00Nyw3ICs0Nyw2IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JEZWJ1Z2dlckFnZW50Lmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JI
ZWFwQWdlbnQuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNjcmlwdFBy
b2ZpbGVyQWdlbnQuaD4KLSNpbmNsdWRlIDxwcm9maWxlci9MZWdhY3lQcm9maWxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9TdG9wd2F0Y2guaD4KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTI0Miw1OCAr
MjQxLDE0IEBAIGRvdWJsZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp0aW1lc3RhbXAoKQogICAg
IHJldHVybiBtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpLT5lbGFwc2VkVGltZSgp
OwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0YXJ0RnJvbUNvbnNvbGUoSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyAmdGl0bGUpCit2b2lkIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OnN0YXJ0RnJvbUNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJp
bmcmKQogewogICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTUzNDk5PiBXZWIg
SW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUgc2hvdWxkIHVzZSB0aGUgbmV3IFNhbXBsaW5nIFBy
b2ZpbGVyCi0KLSAgICAvLyBPbmx5IGFsbG93IHJlY29yZGluZyBvZiBhIHByb2ZpbGUgaWYgaXQg
aXMgYW5vbnltb3VzIChlbXB0eSB0aXRsZSkgb3IgZG9lcyBub3QgbWF0Y2gKLSAgICAvLyB0aGUg
dGl0bGUgb2YgYW4gYWxyZWFkeSByZWNvcmRpbmcgcHJvZmlsZS4KLSAgICBpZiAoIXRpdGxlLmlz
RW1wdHkoKSkgewotICAgICAgICBmb3IgKGNvbnN0IFRpbWVsaW5lUmVjb3JkRW50cnkmIHJlY29y
ZCA6IG1fcGVuZGluZ0NvbnNvbGVQcm9maWxlUmVjb3JkcykgewotICAgICAgICAgICAgU3RyaW5n
IHJlY29yZFRpdGxlOwotICAgICAgICAgICAgcmVjb3JkLmRhdGEtPmdldFN0cmluZyhBU0NJSUxp
dGVyYWwoInRpdGxlIiksIHJlY29yZFRpdGxlKTsKLSAgICAgICAgICAgIGlmIChyZWNvcmRUaXRs
ZSA9PSB0aXRsZSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0K
LSAgICBpZiAoIW1fZW5hYmxlZCAmJiBtX3BlbmRpbmdDb25zb2xlUHJvZmlsZVJlY29yZHMuaXNF
bXB0eSgpKQotICAgICAgICBpbnRlcm5hbFN0YXJ0KCk7Ci0KLSAgICBKU0M6OkxlZ2FjeVByb2Zp
bGVyOjpwcm9maWxlcigpLT5zdGFydFByb2ZpbGluZyhleGVjLCB0aXRsZSwgbV9lbnZpcm9ubWVu
dC5leGVjdXRpb25TdG9wd2F0Y2goKSk7Ci0KLSAgICBtX3BlbmRpbmdDb25zb2xlUHJvZmlsZVJl
Y29yZHMuYXBwZW5kKGNyZWF0ZVJlY29yZEVudHJ5KFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6Y3Jl
YXRlQ29uc29sZVByb2ZpbGVEYXRhKHRpdGxlKSwgVGltZWxpbmVSZWNvcmRUeXBlOjpDb25zb2xl
UHJvZmlsZSwgdHJ1ZSwgZnJhbWVGcm9tRXhlY1N0YXRlKGV4ZWMpKSk7CiB9CiAKLVJlZlB0cjxK
U0M6OlByb2ZpbGU+IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0b3BGcm9tQ29uc29sZShKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3ZvaWQgSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudDo6c3RvcEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JikKIHsKICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1MzQ5OT4gV2ViIElu
c3BlY3RvcjogY29uc29sZS5wcm9maWxlIHNob3VsZCB1c2UgdGhlIG5ldyBTYW1wbGluZyBQcm9m
aWxlcgotCi0gICAgLy8gU3RvcCBwcm9maWxlcyBpbiByZXZlcnNlIG9yZGVyLiBJZiB0aGUgdGl0
bGUgaXMgZW1wdHksIHRoZW4gc3RvcCB0aGUgbGFzdCBwcm9maWxlLgotICAgIC8vIE90aGVyd2lz
ZSwgbWF0Y2ggdGhlIHRpdGxlIG9mIHRoZSBwcm9maWxlIHRvIHN0b3AuCi0gICAgZm9yIChwdHJk
aWZmX3QgaSA9IG1fcGVuZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jkcy5zaXplKCkgLSAxOyBpID49
IDA7IC0taSkgewotICAgICAgICBjb25zdCBUaW1lbGluZVJlY29yZEVudHJ5JiByZWNvcmQgPSBt
X3BlbmRpbmdDb25zb2xlUHJvZmlsZVJlY29yZHNbaV07Ci0KLSAgICAgICAgU3RyaW5nIHJlY29y
ZFRpdGxlOwotICAgICAgICByZWNvcmQuZGF0YS0+Z2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgidGl0
bGUiKSwgcmVjb3JkVGl0bGUpOwotCi0gICAgICAgIGlmICh0aXRsZS5pc0VtcHR5KCkgfHwgcmVj
b3JkVGl0bGUgPT0gdGl0bGUpIHsKLSAgICAgICAgICAgIFJlZlB0cjxKU0M6OlByb2ZpbGU+IHBy
b2ZpbGUgPSBKU0M6OkxlZ2FjeVByb2ZpbGVyOjpwcm9maWxlcigpLT5zdG9wUHJvZmlsaW5nKGV4
ZWMsIHRpdGxlKTsKLSAgICAgICAgICAgIGlmIChwcm9maWxlKQotICAgICAgICAgICAgICAgIFRp
bWVsaW5lUmVjb3JkRmFjdG9yeTo6YXBwZW5kUHJvZmlsZShyZWNvcmQuZGF0YS5nZXQoKSwgcHJv
ZmlsZS5jb3B5UmVmKCkpOwotCi0gICAgICAgICAgICBkaWRDb21wbGV0ZVJlY29yZEVudHJ5KHJl
Y29yZCk7Ci0KLSAgICAgICAgICAgIG1fcGVuZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jkcy5yZW1v
dmUoaSk7Ci0KLSAgICAgICAgICAgIGlmICghbV9lbmFibGVkRnJvbUZyb250ZW5kICYmIG1fcGVu
ZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jkcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgaW50
ZXJuYWxTdG9wKCk7Ci0KLSAgICAgICAgICAgIHJldHVybiBwcm9maWxlOwotICAgICAgICB9Ci0g
ICAgfQotCi0gICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIHZvaWQgSW5zcGVjdG9yVGltZWxpbmVB
Z2VudDo6d2lsbENhbGxGdW5jdGlvbihjb25zdCBTdHJpbmcmIHNjcmlwdE5hbWUsIGludCBzY3Jp
cHRMaW5lLCBGcmFtZSogZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCA4ODM4OGZjLi44Yjc4YTFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmgKQEAgLTEx
NCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9tIFdlYkNv
cmUuCiAgICAgdm9pZCBzdGFydEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nICZ0aXRsZSk7Ci0gICAgUmVmUHRyPEpTQzo6UHJvZmlsZT4gc3RvcEZyb21Db25zb2xlKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CisgICAgdm9pZCBzdG9wRnJvbUNv
bnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKIAogICAgIC8vIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbiBjYWxsYmFja3MuCiAgICAgdm9pZCBkaWRJbnN0YWxsVGlt
ZXIoaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwgYm9vbCBz
aW5nbGVTaG90LCBGcmFtZSopOwpAQCAtMjA3LDggKzIwNyw2IEBAIHByaXZhdGU6CiAgICAgaW50
IG1faWQgeyAxIH07CiAgICAgaW50IG1fbWF4Q2FsbFN0YWNrRGVwdGggeyA1IH07CiAKLSAgICBW
ZWN0b3I8VGltZWxpbmVSZWNvcmRFbnRyeT4gbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRz
OwotCiAgICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVkRnJv
bUZyb250ZW5kIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdl
RGVidWdnZXJBZ2VudC5jcHAKaW5kZXggMTk3ZDJlMS4uYTg2ZWQxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCkBAIC00NSw3ICs0NSw2IEBA
CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oPgogI2luY2x1ZGUg
PGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0
Q2FsbFN0YWNrRmFjdG9yeS5oPgotI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAppbmRleCBh
NWZhZTRjLi40ZjRmYTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFn
ZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50
aW1lQWdlbnQuY3BwCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaD4KICNpbmNsdWRlIDxpbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmls
ZS5oPgogCiB1c2luZyBJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpFeGVjdXRpb25Db250
ZXh0RGVzY3JpcHRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9T
Y3JpcHRQcm9maWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxl
LmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTE4NGE1YS4uMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwKKysrIC9kZXYvbnVs
bApAQCAtMSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgU2tpcFZUYWJsZVZhbGlkYXRp
b24sCi0gICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi1dIGludGVyZmFjZSBTY3JpcHRQ
cm9maWxlIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRpdGxlOwotICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHVpZDsKLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgU2NyaXB0UHJvZmlsZU5vZGUgcm9vdE5vZGU7Ci19OwotCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDBlNTNkYi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2Ny
aXB0UHJvZmlsZU5vZGUuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIE5vSW50ZXJmYWNl
T2JqZWN0LAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi0gICAgRXhwb3J0TWFjcm89
V0VCQ09SRV9FWFBPUlQsCi1dIGludGVyZmFjZSBTY3JpcHRQcm9maWxlTm9kZSB7Ci0gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgaWQ7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGZ1bmN0aW9uTmFtZTsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01T
dHJpbmcgdXJsOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxpbmVOdW1i
ZXI7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgY29sdW1uTnVtYmVyOwot
Ci0gICAgc2VxdWVuY2U8U2NyaXB0UHJvZmlsZU5vZGU+IGNoaWxkcmVuKCk7Ci19OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAppbmRl
eCBmNGM2N2MzLi42OGY3NTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgPGlu
c3BlY3Rvci9TY3JpcHRCcmVha3BvaW50Lmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENh
bGxTdGFjay5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+
Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVj
dG9yOwogCkBAIC0xNTIsNjMgKzE1MSw0IEBAIHZvaWQgVGltZWxpbmVSZWNvcmRGYWN0b3J5Ojph
cHBlbmRMYXlvdXRSb290KEluc3BlY3Rvck9iamVjdCogZGF0YSwgY29uc3QgRmxvYXRRCiAgICAg
ZGF0YS0+c2V0QXJyYXkoQVNDSUlMaXRlcmFsKCJyb290IiksIGNyZWF0ZVF1YWQocXVhZCkpOwog
fQogCi1zdGF0aWMgUmVmPFByb3RvY29sOjpUaW1lbGluZTo6Q1BVUHJvZmlsZU5vZGVBZ2dyZWdh
dGVDYWxsSW5mbz4gYnVpbGRBZ2dyZWdhdGVDYWxsSW5mb0luc3BlY3Rvck9iamVjdChjb25zdCBK
U0M6OlByb2ZpbGVOb2RlKiBub2RlKQotewotICAgIGRvdWJsZSBzdGFydFRpbWUgPSBub2RlLT5j
YWxscygpWzBdLnN0YXJ0VGltZSgpOwotICAgIGRvdWJsZSBlbmRUaW1lID0gbm9kZS0+Y2FsbHMo
KS5sYXN0KCkuc3RhcnRUaW1lKCkgKyBub2RlLT5jYWxscygpLmxhc3QoKS5lbGFwc2VkVGltZSgp
OwotCi0gICAgZG91YmxlIHRvdGFsVGltZSA9IDA7Ci0gICAgZm9yIChjb25zdCBKU0M6OlByb2Zp
bGVOb2RlOjpDYWxsJiBjYWxsIDogbm9kZS0+Y2FsbHMoKSkKLSAgICAgICAgdG90YWxUaW1lICs9
IGNhbGwuZWxhcHNlZFRpbWUoKTsKLQotICAgIHJldHVybiBQcm90b2NvbDo6VGltZWxpbmU6OkNQ
VVByb2ZpbGVOb2RlQWdncmVnYXRlQ2FsbEluZm86OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRDYWxs
Q291bnQobm9kZS0+Y2FsbHMoKS5zaXplKCkpCi0gICAgICAgIC5zZXRTdGFydFRpbWUoc3RhcnRU
aW1lKQotICAgICAgICAuc2V0RW5kVGltZShlbmRUaW1lKQotICAgICAgICAuc2V0VG90YWxUaW1l
KHRvdGFsVGltZSkKLSAgICAgICAgLnJlbGVhc2UoKTsKLX0KLQotc3RhdGljIFJlZjxQcm90b2Nv
bDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlPiBidWlsZEluc3BlY3Rvck9iamVjdChjb25zdCBK
U0M6OlByb2ZpbGVOb2RlKiBub2RlKQotewotICAgIGF1dG8gcmVzdWx0ID0gUHJvdG9jb2w6OlRp
bWVsaW5lOjpDUFVQcm9maWxlTm9kZTo6Y3JlYXRlKCkKLSAgICAgICAgLnNldElkKG5vZGUtPmlk
KCkpCi0gICAgICAgIC5zZXRDYWxsSW5mbyhidWlsZEFnZ3JlZ2F0ZUNhbGxJbmZvSW5zcGVjdG9y
T2JqZWN0KG5vZGUpKQotICAgICAgICAucmVsZWFzZSgpOwotCi0gICAgaWYgKCFub2RlLT5mdW5j
dGlvbk5hbWUoKS5pc0VtcHR5KCkpCi0gICAgICAgIHJlc3VsdC0+c2V0RnVuY3Rpb25OYW1lKG5v
ZGUtPmZ1bmN0aW9uTmFtZSgpKTsKLQotICAgIGlmICghbm9kZS0+dXJsKCkuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIHJlc3VsdC0+c2V0VXJsKG5vZGUtPnVybCgpKTsKLSAgICAgICAgcmVzdWx0LT5z
ZXRMaW5lTnVtYmVyKG5vZGUtPmxpbmVOdW1iZXIoKSk7Ci0gICAgICAgIHJlc3VsdC0+c2V0Q29s
dW1uTnVtYmVyKG5vZGUtPmNvbHVtbk51bWJlcigpKTsKLSAgICB9Ci0KLSAgICBpZiAoIW5vZGUt
PmNoaWxkcmVuKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGF1dG8gY2hpbGRyZW4gPSBQcm90b2Nv
bDo6QXJyYXk8UHJvdG9jb2w6OlRpbWVsaW5lOjpDUFVQcm9maWxlTm9kZT46OmNyZWF0ZSgpOwot
ICAgICAgICBmb3IgKFJlZlB0cjxKU0M6OlByb2ZpbGVOb2RlPiBwcm9maWxlTm9kZSA6IG5vZGUt
PmNoaWxkcmVuKCkpCi0gICAgICAgICAgICBjaGlsZHJlbi0+YWRkSXRlbShidWlsZEluc3BlY3Rv
ck9iamVjdChwcm9maWxlTm9kZS5nZXQoKSkpOwotICAgICAgICByZXN1bHQtPnNldENoaWxkcmVu
KFdURk1vdmUoY2hpbGRyZW4pKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1z
dGF0aWMgUmVmPFByb3RvY29sOjpUaW1lbGluZTo6Q1BVUHJvZmlsZT4gYnVpbGRQcm9maWxlSW5z
cGVjdG9yT2JqZWN0KGNvbnN0IEpTQzo6UHJvZmlsZSogcHJvZmlsZSkKLXsKLSAgICBhdXRvIHJv
b3ROb2RlcyA9IFByb3RvY29sOjpBcnJheTxQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVO
b2RlPjo6Y3JlYXRlKCk7Ci0gICAgZm9yIChSZWZQdHI8SlNDOjpQcm9maWxlTm9kZT4gcHJvZmls
ZU5vZGUgOiBwcm9maWxlLT5yb290Tm9kZSgpLT5jaGlsZHJlbigpKQotICAgICAgICByb290Tm9k
ZXMtPmFkZEl0ZW0oYnVpbGRJbnNwZWN0b3JPYmplY3QocHJvZmlsZU5vZGUuZ2V0KCkpKTsKLQot
ICAgIHJldHVybiBQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGU6OmNyZWF0ZSgpCi0gICAg
ICAgIC5zZXRSb290Tm9kZXMoV1RGTW92ZShyb290Tm9kZXMpKQotICAgICAgICAucmVsZWFzZSgp
OwotfQotCi12b2lkIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6YXBwZW5kUHJvZmlsZShJbnNwZWN0
b3JPYmplY3QqIGRhdGEsIFJlZlB0cjxKU0M6OlByb2ZpbGU+JiYgcHJvZmlsZSkKLXsKLSAgICBk
YXRhLT5zZXRWYWx1ZShBU0NJSUxpdGVyYWwoInByb2ZpbGUiKSwgYnVpbGRQcm9maWxlSW5zcGVj
dG9yT2JqZWN0KHByb2ZpbGUuZ2V0KCkpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDJiNTlhMzMuLmUyOGUxZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTEwMCw3ICsxMDAsNiBAQAogI2luY2x1ZGUgIldlYktp
dFBvaW50LmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJXaW5kb3dG
b2N1c0FsbG93ZWRJbmRpY2F0b3IuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxl
Lmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxs
U3RhY2suaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKaW5kZXggMzIwZjgyOC4uNDYzZmJhYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CkBAIC05Niw3ICs5Niw2IEBACiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdG9yZS5oIgogI2luY2x1
ZGUgIlZvaWRDYWxsYmFjay5oIgogI2luY2x1ZGUgIldpZGdldC5oIgotI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCmluZGV4IDVjZmE5
N2IuLjlkMGUwYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3Bw
CkBAIC0xOTEsOCArMTkxLDcgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6cHJvZmlsZShKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHZvaWQgUGFnZUNvbnNvbGVD
bGllbnQ6OnByb2ZpbGVFbmQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0
bGUpCiB7CiAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNTM0OTk+IFdlYiBJ
bnNwZWN0b3I6IGNvbnNvbGUucHJvZmlsZSBzaG91bGQgdXNlIHRoZSBuZXcgU2FtcGxpbmcgUHJv
ZmlsZXIKLSAgICBpZiAoUmVmUHRyPEpTQzo6UHJvZmlsZT4gcHJvZmlsZSA9IEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6c3RvcFByb2ZpbGluZyhtX3BhZ2UsIGV4ZWMsIHRpdGxlKSkKLSAgICAg
ICAgbV9wcm9maWxlcy5hcHBlbmQoV1RGTW92ZShwcm9maWxlKSk7CisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpzdG9wUHJvZmlsaW5nKG1fcGFnZSwgZXhlYywgdGl0bGUpOwogfQogCiB2
b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSkKQEAgLTIxNiw5ICsyMTUsNCBAQCB2b2lkIFBhZ2VDb25zb2xl
Q2xpZW50Ojp0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRz
PiYmIGFyZwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcCht
X3BhZ2UubWFpbkZyYW1lKCksIFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CiAKLXZvaWQgUGFnZUNv
bnNvbGVDbGllbnQ6OmNsZWFyUHJvZmlsZXMoKQotewotICAgIG1fcHJvZmlsZXMuY2xlYXIoKTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlQ29uc29sZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29s
ZUNsaWVudC5oCmluZGV4IGNlNWM1MTguLmVhZWYzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25zb2xlQ2xpZW50LmgKQEAgLTMwLDcgKzMwLDYgQEAKICNkZWZpbmUgUGFnZUNvbnNvbGVD
bGllbnRfaAogCiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgotI2luY2x1
ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0NvbnNvbGVDbGllbnQu
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC00Myw4ICs0Miw2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgUGFnZTsKIAotdHlwZWRlZiBWZWN0
b3I8UmVmUHRyPEpTQzo6UHJvZmlsZT4+IFByb2ZpbGVzQXJyYXk7Ci0KIGNsYXNzIFdFQkNPUkVf
RVhQT1JUIFBhZ2VDb25zb2xlQ2xpZW50IGZpbmFsIDogcHVibGljIEpTQzo6Q29uc29sZUNsaWVu
dCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC02MSw5ICs1OCw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxT
dGFjaz4mJik7CiAgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVy
ID0gMCwgRG9jdW1lbnQqID0gbnVsbHB0cik7CiAKLSAgICBjb25zdCBQcm9maWxlc0FycmF5JiBw
cm9maWxlcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvZmlsZXM7IH0KLSAgICB2b2lkIGNsZWFyUHJv
ZmlsZXMoKTsKLQogcHJvdGVjdGVkOgogICAgIHZvaWQgbWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwo
TWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVj
dG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY291bnQoSlNDOjpF
eGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRl
OwpAQCAtNzYsNyArNzAsNiBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgUGFnZSYgbV9w
YWdlOwotICAgIFByb2ZpbGVzQXJyYXkgbV9wcm9maWxlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAzMjQzODNlLi4z
NzkyYzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMjQsNyArMTI0
LDYgQEAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAiV29ya2Vy
VGhyZWFkLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKLSNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8Ynl0ZWNvZGUvQ29kZUJsb2NrLmg+CiAjaW5j
bHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50QmFzZS5oPgogI2luY2x1ZGUgPGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaD4KQEAgLTM4OCw3ICszODcsNiBAQCB2b2lkIElu
dGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlJiBwYWdlKQogICAgIFdlYkNvcmU6
Om92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8U3RyaW5nPigpKTsKICAgICBX
ZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGZhbHNlKTsKICAgICBX
ZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc01vY2tTY3JvbGxBbmltYXRvcihmYWxzZSk7Ci0gICAg
cGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuc2V0TGVnYWN5UHJvZmlsZXJFbmFibGVkKGZhbHNl
KTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgcGFnZS5ncm91cCgpLmNhcHRpb25QcmVm
ZXJlbmNlcygpLnNldENhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKGVtcHR5U3RyaW5nKCkpOwog
ICAgIHBhZ2UuZ3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKS5zZXRUZXN0aW5nTW9kZShmYWxz
ZSk7CkBAIC0xNzMzLDExICsxNzMxLDYgQEAgdW5zaWduZWQgSW50ZXJuYWxzOjpjb3VudE1hdGNo
ZXNGb3JUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgZmluZE9wdGlvbnMKICAgICBy
ZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPmVkaXRvcigpLmNvdW50TWF0Y2hlc0ZvclRleHQodGV4
dCwgbnVsbHB0ciwgZmluZE9wdGlvbnMsIDEwMDAsIG1hcmssIG51bGxwdHIpOwogfQogCi1jb25z
dCBQcm9maWxlc0FycmF5JiBJbnRlcm5hbHM6OmNvbnNvbGVQcm9maWxlcygpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIGNvbnRleHREb2N1bWVudCgpLT5wYWdlKCktPmNvbnNvbGUoKS5wcm9maWxlcygp
OwotfQotCiB1bnNpZ25lZCBJbnRlcm5hbHM6Om51bWJlck9mTGl2ZU5vZGVzKCkgY29uc3QKIHsK
ICAgICB1bnNpZ25lZCBub2RlQ291bnQgPSAwOwpAQCAtMTc2NiwxNyArMTc1OSw2IEBAIHZvaWQg
SW50ZXJuYWxzOjpjbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQoKQogICAgIG1faW5zcGVjdG9y
RnJvbnRlbmQgPSBudWxscHRyOwogfQogCi12b2lkIEludGVybmFsczo6c2V0TGVnYWN5SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKLXsK
LSAgICBQYWdlKiBwYWdlID0gY29udGV4dERvY3VtZW50KCktPmZyYW1lKCktPnBhZ2UoKTsKLSAg
ICBpZiAoIXBhZ2UpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuc2V0TGVn
YWN5UHJvZmlsZXJFbmFibGVkKGVuYWJsZWQpOwotfQotCiB2b2lkIEludGVybmFsczo6c2V0SW5z
cGVjdG9ySXNVbmRlclRlc3QoYm9vbCBpc1VuZGVyVGVzdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgUGFnZSogcGFnZSA9IGNvbnRleHREb2N1bWVudCgpLT5mcmFtZSgpLT5wYWdlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA1ZjJhYmIzLi43ZmMwNmY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTI2NywxNCArMjY3LDExIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGluc2VydEF1dGhvckNTUyhjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgY29u
c3Q7CiAgICAgdm9pZCBpbnNlcnRVc2VyQ1NTKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KSBjb25zdDsKIAotICAgIGNvbnN0IFByb2ZpbGVzQXJyYXkmIGNvbnNvbGVQcm9maWxlcygpIGNv
bnN0OwotCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZMaXZlTm9kZXMoKSBjb25zdDsKICAgICB1bnNp
Z25lZCBudW1iZXJPZkxpdmVEb2N1bWVudHMoKSBjb25zdDsKIAogICAgIFJlZlB0cjxET01XaW5k
b3c+IG9wZW5EdW1teUluc3BlY3RvckZyb250ZW5kKGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2
b2lkIGNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOwotICAgIHZvaWQgc2V0TGVnYWN5SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBzZXRJbnNwZWN0b3JJc1VuZGVyVGVzdChib29sIGlzVW5kZXJUZXN0LCBFeGNlcHRp
b25Db2RlJik7CiAKICAgICBTdHJpbmcgY291bnRlclZhbHVlKEVsZW1lbnQmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA0ZGM0MDMxLi4zMmRhMmNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0yNjAsMTYgKzI2MCwxMCBAQCBlbnVtIEF1dG9G
aWxsQnV0dG9uVHlwZSB7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXREZXZpY2VQcm94
aW1pdHkoRE9NU3RyaW5nIGV2ZW50VHlwZSwgdW5yZXN0cmljdGVkIGRvdWJsZSB2YWx1ZSwgdW5y
ZXN0cmljdGVkIGRvdWJsZSBtaW4sIHVucmVzdHJpY3RlZCBkb3VibGUgbWF4KTsKICNlbmRpZgog
Ci0gICAgLy8gQXMgcGVyIHNwZWM6IGh0dHA6Ly93d3cudzMub3JnL1RSL1dlYklETC8jaWRsLXNl
cXVlbmNlCi0gICAgLy8gIlNlcXVlbmNlcyBtdXN0IG5vdCBiZSB1c2VkIGFzIHRoZSB0eXBlIG9m
IGFuIGF0dHJpYnV0ZSwgY29uc3RhbnQgb3IgZXhjZXB0aW9uIGZpZWxkLiIKLSAgICAvLyBGSVhN
RTogdGhpcyB3aWxsIGxlYWQgdG8gQlVHIGludGVybmFscy5jb25zb2xlUHJvZmlsZXMgIT09IGlu
dGVybmFscy5jb25zb2xlUHJvZmlsZXMgYXMgcHJvZmlsZSB3aWxsIGFsd2F5cyByZXR1cm5zIG5l
dyBhcnJheS4KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU2NyaXB0UHJvZmlsZVtdIGNvbnNvbGVQ
cm9maWxlczsKLQogICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlTm9kZXMoKTsKICAgICB1
bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZURvY3VtZW50cygpOwogICAgIERPTVdpbmRvdyBvcGVu
RHVtbXlJbnNwZWN0b3JGcm9udGVuZChET01TdHJpbmcgdXJsKTsKICAgICB2b2lkIGNsb3NlRHVt
bXlJbnNwZWN0b3JGcm9udGVuZCgpOwotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0TGVn
YWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKICAgICBbUmFp
c2VzRXhjZXB0aW9uXSB2b2lkIHNldEluc3BlY3RvcklzVW5kZXJUZXN0KGJvb2xlYW4gaXNVbmRl
clRlc3QpOwogCiAgICAgRE9NU3RyaW5nIGNvdW50ZXJWYWx1ZShFbGVtZW50IGVsZW1lbnQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCmlu
ZGV4IDQ4MjEwMTQuLmJlMTU2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pz
L1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJXaGVl
bEV2ZW50VGVzdFRyaWdnZXIuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNWYWx1ZVJlZi5oPgotI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxpbnRlcnByZXRlci9DYWxsRnJhbWUuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0lkZW50aWZpZXJJbmxpbmVzLmg+CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWFNMU3R5bGVTaGVldExpYnhzbHQuY3BwCmluZGV4IDk2NzcwYTYuLjRiMjQ2YzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcApAQCAtMzMsNyAr
MzMsNiBAQAogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyU2NvcGUuaCIKICNpbmNsdWRlICJY
U0xJbXBvcnRSdWxlLmgiCiAjaW5jbHVkZSAiWFNMVFByb2Nlc3Nvci5oIgotI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxsaWJ4bWwvdXJpLmg+CiAjaW5jbHVk
ZSA8bGlieHNsdC94c2x0dXRpbHMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1s
L1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vz
c29yTGlieHNsdC5jcHAKaW5kZXggOGExODRjMy4uZTRhMzNkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVk
ZSAiWFNMVEV4dGVuc2lvbnMuaCIKICNpbmNsdWRlICJYU0xUVW5pY29kZVNvcnQuaCIKICNpbmNs
dWRlICJtYXJrdXAuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5j
bHVkZSA8bGlieHNsdC9pbXBvcnRzLmg+CiAjaW5jbHVkZSA8bGlieHNsdC9zZWN1cml0eS5oPgog
I2luY2x1ZGUgPGxpYnhzbHQvdmFyaWFibGVzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggOWM0M2Iw
NC4uOGQ1YTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA1LTEz
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3Zl
IExlZ2FjeVByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTM1NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAqIFdlYkluc3BlY3Rvci5jcHA6CisgICAg
ICAgIChXZWJJbnNwZWN0b3I6OmlzSmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViSW5zcGVjdG9yOjpzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6
IERlbGV0ZWQuCisgICAgICAgICogV2ViSW5zcGVjdG9yLmg6CisKIDIwMTYtMDUtMTIgIEtvbnN0
YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAgICAgICAgIFVzZSByZWZlcmVu
Y2UgaW5zdGVhZCBvZiBwb2ludGVyIGluIEZyYW1lTG9hZGVyQ2xpZW50OjpzYXZlVmlld1N0YXRl
VG9JdGVtLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggOTFhNzhiMy4uZjYyMTlh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuY3BwCkBAIC0yMDIsMzggKzIwMiw2IEBAIEhS
RVNVTFQgV2ViSW5zcGVjdG9yOjp0b2dnbGVQcm9maWxpbmdKYXZhU2NyaXB0KCkKICAgICByZXR1
cm4gU19PSzsKIH0KIAotSFJFU1VMVCBXZWJJbnNwZWN0b3I6OmlzSmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQoX091dF8gQk9PTCogaXNQcm9maWxpbmdFbmFibGVkKQotewotICAgIGlmICghaXNQ
cm9maWxpbmdFbmFibGVkKQotICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwotCi0gICAgKmlzUHJv
ZmlsaW5nRW5hYmxlZCA9IEZBTFNFOwotCi0gICAgaWYgKCFtX2luc3BlY3RlZFdlYlZpZXcpCi0g
ICAgICAgIHJldHVybiBTX09LOwotCi0gICAgUGFnZSogaW5zcGVjdGVkUGFnZSA9IG1faW5zcGVj
dGVkV2ViVmlldy0+cGFnZSgpOwotICAgIGlmICghaW5zcGVjdGVkUGFnZSkKLSAgICAgICAgcmV0
dXJuIFNfT0s7Ci0KLSAgICAqaXNQcm9maWxpbmdFbmFibGVkID0gaW5zcGVjdGVkUGFnZS0+aW5z
cGVjdG9yQ29udHJvbGxlcigpLmxlZ2FjeVByb2ZpbGVyRW5hYmxlZCgpOwotICAgIHJldHVybiBT
X09LOwotfQotCi1IUkVTVUxUIFdlYkluc3BlY3Rvcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQoQk9PTCBlbmFibGVkKQotewotICAgIGlmICghbV9pbnNwZWN0ZWRXZWJWaWV3KQotICAg
ICAgICByZXR1cm4gU19PSzsKLQotICAgIFBhZ2UqIGluc3BlY3RlZFBhZ2UgPSBtX2luc3BlY3Rl
ZFdlYlZpZXctPnBhZ2UoKTsKLSAgICBpZiAoIWluc3BlY3RlZFBhZ2UpCi0gICAgICAgIHJldHVy
biBTX09LOwotCi0gICAgaW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLnNldExl
Z2FjeVByb2ZpbGVyRW5hYmxlZChlbmFibGVkKTsKLQotICAgIHJldHVybiBTX09LOwotfQotCiBI
UkVTVUxUIFdlYkluc3BlY3Rvcjo6ZXZhbHVhdGVJbkZyb250ZW5kKF9Jbl8gQlNUUiBiU2NyaXB0
KQogewogICAgIGlmICghbV9pbnNwZWN0ZWRXZWJWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vV2ViSW5zcGVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3Iu
aAppbmRleCBkZjcwN2NmLi4yNzk0ZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuaApAQCAt
NjAsOSArNjAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIGlzUHJvZmlsaW5nSmF2YVNjcmlwdChfT3V0XyBCT09MKik7CiAgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIHRvZ2dsZVByb2ZpbGluZ0phdmFTY3JpcHQoKTsKIAotICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBpc0phdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKF9PdXRfIEJPT0wqKTsKLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoQk9PTCk7Ci0KICAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZXZhbHVhdGVJbkZyb250ZW5kKF9Jbl8gQlNUUiBzY3Jp
cHQpOwogCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGlzVGltZWxpbmVQ
cm9maWxpbmdFbmFibGVkKF9PdXRfIEJPT0wqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggNjcx
ZGRlMy4uM2I1NWIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTEyMSw3ICsxMjEsNiBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50
UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNFbGVtZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9KU1NjcmlwdFByb2ZpbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBl
UmVnaXN0cnkuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278923</attachid>
            <date>2016-05-13 22:04:18 -0700</date>
            <delta_ts>2016-05-20 18:18:48 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>rm-LegacyProfiler-5.patch</filename>
            <type>text/plain</type>
            <size>348186</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBkNzI3NmVlLi4zY2VhMjIz
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTYtMDUtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW1vdmUgTGVnYWN5UHJvZmlsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MzU2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTWFudWFsVGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyLXRlc3Qt
Y2FsbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIE1hbnVhbFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci10ZXN0LW1hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbDogUmVtb3ZlZC4KKwog
MjAxNi0wNS0xMyAgWW9hdiBXZWlzcyAgPHlvYXZAeW9hdi53cz4KIAogICAgICAgICBUdXJuIG9u
IFdFQl9USU1JTkcgZm9yIGFsbCBwb3J0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk5ZjRjNzEuLmNjNDdlYzEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMDMgQEAKKzIwMTYtMDUtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgTGVnYWN5UHJvZmlsZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzU2NQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9u
eW1vdXMtZXZlbnQtaGFuZGxlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFuZGxlci5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGZhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVu
dC1jb250ZXh0cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxl
ci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2Fs
bHMtYnVpbHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlv
bi1jYWxscy1ldmFsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMt
ZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvcHJvZmlsZXIvYXBwbHktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvYXBwbHkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2J1
aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9u
LWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQt
ZnVuY3Rpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGwtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rl
ci1sZWFrLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Nh
bGwtcmVnaXN0ZXItbGVhay5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
Y2FsbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUt
ZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUt
ZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJv
ZmlsZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY29t
cGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL2RlYWQtdGltZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9m
aWxlci9kZWFkLXRpbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Rv
Y3VtZW50LWRvdC13cml0ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGZhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250
ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1p
bi10aGUtc2FtZS1zY29wZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
bXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFu
ZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQt
ZnVuY3Rpb24tY2FsbHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255bW91cy1mdW5j
dGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1j
YWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvcHJvZmlsZXIvbXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGZhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlv
bnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9m
aWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmls
ZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbmVzdGVk
LXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGZhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0LWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4
dC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1p
bi1pbmNsdWRlZC1maWxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3By
b2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4taW5jbHVkZWQtZmlsZS5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1u
ZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmctZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZy
b20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3Rp
bmcuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9t
LWEtbmVzdGVkLWxvY2F0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogZmFzdC9wcm9maWxlci9yZXNvdXJjZXMvb3RoZXItZnJhbWUuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci13aW5kb3cuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Np
bXBsZS1ldmVudC1jYWxsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3By
b2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBmYXN0L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRp
cGxlLXRpbWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVy
L3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNh
bWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmls
ZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2Zp
bGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdGFy
dC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRlci1zZXRU
aW1lb3V0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdG9wLXRoZW4t
ZnVuY3Rpb24tY2FsbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9m
aWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0
bWwtZGlzYWJsZWQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci90d28tZXhlY3V0
aW9uLWNvbnRleHRzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL3R3by1leGVjdXRpb24tY29udGV4dHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L3Byb2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvdXNlci1kZWZp
bmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvcHJvZmlsZXIvd2luZG93LWRvdC1ldmFsLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11
bGF0b3IvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNi0wNS0xMyAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSBzaG91bGQgcHJvcGFnYXRlIGFjcm9zcyBwb3N0TWVzc2FnZSBib3VuZGFyaWVzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50
LWhhbmRsZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NDhi
ZjM4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2
ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAot
VGhpcyBwYWdlIGhhcyBhbiBhbm9ueW1vdXMgZXZlbnQgaGFuZGxlci4gCi0KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEl0IHNob3VsZCBzaG93IHRoZSBhbm9u
eW1vdXMgZnVuY3Rpb24gYXQgdGhlIHNhbWUgbGV2ZWwgYXMgdGhlIG9ubG9hZCBoYW5kbGVyLiAK
LQotUHJvZmlsZSB0aXRsZTogQW5vbnltb3VzIGV2ZW50IGhhbmRsZXIKLVRocmVhZF8xIChubyBm
aWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgYW5vbnltb3VzLWV2ZW50LWhhbmRsZXIuaHRt
bCAobGluZSAxMDoxOSkKLSAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICBjbGljayAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgb25jbGljayBhbm9u
eW1vdXMtZXZlbnQtaGFuZGxlci5odG1sIChsaW5lIDE1OjUxKQotICAgICAgICAgICAgaW5zZXJ0
TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAg
ICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBh
cHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgZ2V0RWxlbWVu
dEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDJiY2ZmYTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFuZGxlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUo
IkFub255bW91cyBldmVudCBoYW5kbGVyIik7Ci0KLSAgICB2YXIgYnV0dG9uV2l0aEFub255bW91
c0hhbmRsZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnV0dG9uV2l0aEFuQW5vbnltb3Vz
RXZlbnRIYW5kbGVyIikKLSAgICBidXR0b25XaXRoQW5vbnltb3VzSGFuZGxlci5vbmNsaWNrID0g
ZnVuY3Rpb24gKCkgewotICAgICAgICBpbnNlcnROZXdUZXh0KCk7Ci0gICAgfQotCi0gICAgYnV0
dG9uV2l0aEFub255bW91c0hhbmRsZXIuY2xpY2soKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFn
ZSBoYXMgYW4gYW5vbnltb3VzIGV2ZW50IGhhbmRsZXIuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhp
cyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2Vi
SW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEl0IHNob3VsZCBzaG93IHRoZSBh
bm9ueW1vdXMgZnVuY3Rpb24gYXQgdGhlIHNhbWUgbGV2ZWwgYXMgdGhlIG9ubG9hZAotaGFuZGxl
ci4KLTxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJidXR0b25XaXRoQW5Bbm9ueW1vdXNFdmVudEhh
bmRsZXIiIHZhbHVlPSJCdXR0b24gd2l0aCBhbiBhbm9ueW1vdXMgZXZlbnQgaGFuZGxlciI+Ci08
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlm
ZmVyZW50LWNvbnRleHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
YW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNjYmJmMDQuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZy
b20tZGlmZmVyZW50LWNvbnRleHRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI0
ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIGZ1bmN0
aW9uIGZyb20gZGlmZmVyZW50IGNvbnRleHRzLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdCB0aGUgcHJvZmlsZS4gQmVuZWF0aCBvbmxvYWQgYW5kIHN0YXJ0VGVzdCBpdCBzaG91
bGQgc2hvdyB0aHJlZSBjaGlsZHJlbiwgYW4gYW5vbnltb3VzIGZ1bmN0aW9uLCBzY3JpcHQgY29u
dGV4dCwgYW5kIHRoZSBlbmRUZXN0IGNhbGwuCi0KLVByb2ZpbGUgdGl0bGU6IFNhbWUgYW5vbnlt
b3VzIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGRpZmZlcmVudCBjb250ZXh0cwotVGhyZWFkXzEgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBhbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVk
LWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9ueW1v
dXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAg
ICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
MTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1l
bnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBldmFsIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAocHJvZ3JhbSkgKG5vIGZpbGUpIChsaW5lIDE6MSkKLSAgICAgICAgICAg
IGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5
OjM0KQotICAgICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255
bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZl
cmVudC1jb250ZXh0cy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYWI4MzE3
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0
aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2Zp
bGUoIlNhbWUgYW5vbnltb3VzIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGRpZmZlcmVudCBjb250ZXh0
cyIpOwotCi0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBldmFsKCJhbm9ueW1vdXNGdW5j
dGlvbigpIik7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGFu
IGFub255bW91cyBmdW5jdGlvbiBmcm9tIGRpZmZlcmVudCBjb250ZXh0cy4KLTxicj4KLTxicj4K
LVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBs
b2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgQmVuZWF0aCBv
bmxvYWQgYW5kIHN0YXJ0VGVzdCBpdCBzaG91bGQgc2hvdyB0aHJlZSBjaGlsZHJlbiwgYW4KLWFu
b255bW91cyBmdW5jdGlvbiwgc2NyaXB0IGNvbnRleHQsIGFuZCB0aGUgZW5kVGVzdCBjYWxsLgot
PGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWlu
LWZ1bmN0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255
bW91cy1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTIwNjAwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0
aW9ucy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UaGlzIHBh
Z2UgaGFzIGFuIGFub255bW91cyBKYXZhU2NyaXB0IGZ1bmN0aW9uIHRoYXQgY2FsbHMgYnVpbHQt
aW4gZnVuY3Rpb25zLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0
aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJv
ZmlsZS4gQmVuZWF0aCBvbmxvYWQgYW5kIHN0YXJ0VGVzdCBpdCBzaG91bGQgc2hvdyB0aHJlZSBj
aGlsZHJlbiwgYW4gYW5vbnltb3VzIGZ1bmN0aW9uLCBzY3JpcHQgY29udGV4dCwgYW5kIHRoZSBl
bmRUZXN0IGNhbGwuCi0KLVByb2ZpbGUgdGl0bGU6IEFub255bW91cyBmdW5jdGlvbiBjYWxscyBi
dWlsdC1pbiBmdW5jdGlvbnMKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFy
dFRlc3QgYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIChs
aW5lIDEwOjE5KQotICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVu
dCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9u
LWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDViYzczYjUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rp
b25zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExl
Z2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRl
c3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGZ1bmN0aW9uIGNhbGxzIGJ1
aWx0LWluIGZ1bmN0aW9ucyIpOwotICAgIGFub255bW91c0Z1bmN0aW9uKCk7Ci0gICAgZW5kVGVz
dCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCki
PgotVGhpcyBwYWdlIGhhcyBhbiBhbm9ueW1vdXMgSmF2YVNjcmlwdCBmdW5jdGlvbiB0aGF0IGNh
bGxzIGJ1aWx0LWluIGZ1bmN0aW9ucy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgQmVuZWF0aCBvbmxvYWQgYW5kIHN0YXJ0VGVzdCBp
dCBzaG91bGQgc2hvdyB0aHJlZSBjaGlsZHJlbiwgYW4KLWFub255bW91cyBmdW5jdGlvbiwgc2Ny
aXB0IGNvbnRleHQsIGFuZCB0aGUgZW5kVGVzdCBjYWxsLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhMGZkNGIuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGlzIHBhZ2UncyBK
YXZhU2NyaXB0IGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlvbiB3aGljaCBjYWxscyBldmFsKCku
IAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRo
ZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBCZW5lYXRo
IG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNob3VsZCBzaG93IGFuIChhbm9ueW1vdXMgZnVuY3Rp
b24pIHdoaWNoIGhhcyBhIChwcm9ncmFtKSBjaGlsZC4KLQotUHJvZmlsZSB0aXRsZTogQW5vbnlt
b3VzIGZ1bmN0aW9uIGNhbGxlcyBldmFsCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgc3RhcnRUZXN0IGFub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwgKGxpbmUgMTA6
MTkpCi0gICAgICB2YXJpYWJsZVRoYXRQb2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24gYW5vbnlt
b3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwuaHRtbCAobGluZSAxNDo1OSkKLSAgICAgICAgIGV2YWwg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIChwcm9ncmFtKSAobm8gZmlsZSkgKGxp
bmUgMToxKQotICAgICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fu
b255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDE5Zjc2NjYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2Zp
bGUoIkFub255bW91cyBmdW5jdGlvbiBjYWxsZXMgZXZhbCIpOwotCi0gICAgdmFyIHZhcmlhYmxl
VGhhdFBvaW50c1RvQW5Bbm9ueW1vdXNGdW5jdGlvbiA9IGZ1bmN0aW9uKCkgewotICAgICAgICBl
dmFsKCJpbnNlcnROZXdUZXh0KCkiKTsKLSAgICB9Ci0KLSAgICB2YXJpYWJsZVRoYXRQb2ludHNU
b0FuQW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2Ny
aXB0IGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlvbiB3aGljaCBjYWxscyBldmFsKCkuCi08YnI+
Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2Vy
IHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEJl
bmVhdGggb25sb2FkIGFuZCBzdGFydFRlc3QgaXQgc2hvdWxkIHNob3cgYW4gKGFub255bW91cyBm
dW5jdGlvbikKLXdoaWNoIGhhcyBhIChwcm9ncmFtKSBjaGlsZC4KLTxkaXYgaWQ9Im91dHB1dCI+
PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRp
c3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
YjhkODA3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3Vz
LWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBhbm9ueW1vdXMg
ZnVuY3Rpb25zIHdpdGggZGlzcGxheSBuYW1lcy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQgdGhlIHByb2ZpbGUuIFlvdSBzaG91bGQgc2VlIGZ1bmN0aW9ucyBuYW1lZCAiW3hd
IGl0ZXJhdGlvbnMgZnVuY3Rpb24iLCBhbmQgbm8gYW5vbnltb3VzIGZ1bmN0aW9ucy4KLQotUHJv
ZmlsZSB0aXRsZTogQW5vbnltb3VzIGZ1bmN0aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMKLVRocmVh
ZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgYW5vbnltb3VzLWZ1bmN0aW9u
cy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAyMjoxOSkKLSAgICAgIGFub255bW91c0Z1
bmN0aW9uR2VuZXJhdG9yIGFub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0
bWwgKGxpbmUgMTA6MzYpCi0gICAgICAwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnltb3VzLWZ1
bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMjo1OSkKLSAgICAgIDEgaXRl
cmF0aW9ucyBmdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5o
dG1sIChsaW5lIDEyOjU5KQotICAgICAgMiBpdGVyYXRpb25zIGZ1bmN0aW9uIGFub255bW91cy1m
dW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMTI6NTkpCi0gICAgICAyMCBp
dGVyYXRpb25zIGZ1bmN0aW9uIGFub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVz
Lmh0bWwgKGxpbmUgMTI6NTkpCi0gICAgICAxMDAwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnlt
b3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMjo1OSkKLSAgICAg
IGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMt
d2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255
bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDdiOWZjMzQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNDUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4K
LWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlm
ICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJv
ZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0
b3IoaXRlcmF0aW9ucykKLXsKLSAgICB2YXIgdmFyaWFibGVUaGF0UG9pbnRzVG9BbkFub255bW91
c0Z1bmN0aW9uID0gZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBpdGVyYXRpb25zOyArK2kpIDsKLSAgICB9Ci0gICAgCi0gICAgdmFyaWFibGVUaGF0UG9pbnRz
VG9BbkFub255bW91c0Z1bmN0aW9uLmRpc3BsYXlOYW1lID0gaXRlcmF0aW9ucyArICIgaXRlcmF0
aW9ucyBmdW5jdGlvbiI7Ci0gICAgCi0gICAgcmV0dXJuIHZhcmlhYmxlVGhhdFBvaW50c1RvQW5B
bm9ueW1vdXNGdW5jdGlvbjsKLX0KLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25z
b2xlLnByb2ZpbGUoIkFub255bW91cyBmdW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzIik7Ci0K
LSAgICBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcigwKSgpOwotICAgIGFub255bW91c0Z1bmN0
aW9uR2VuZXJhdG9yKDEpKCk7Ci0gICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IoMikoKTsK
LSAgICBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcigyMCkoKTsKLSAgICBhbm9ueW1vdXNGdW5j
dGlvbkdlbmVyYXRvcigxMDAwKSgpOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNj
cmlwdCBjYWxscyBhbm9ueW1vdXMgZnVuY3Rpb25zIHdpdGggZGlzcGxheSBuYW1lcy4KLTxicj4K
LTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgWW91
IHNob3VsZCBzZWUgZnVuY3Rpb25zIG5hbWVkICJbeF0gaXRlcmF0aW9ucyBmdW5jdGlvbiIsIGFu
ZCBubyBhbm9ueW1vdXMgZnVuY3Rpb25zLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwOGJkMDYuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxMiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBhIGNhbGwgdG8g
YXBwbHkoKSBpbiBpdC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4g
dGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHBy
b2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZmFrZUludGVy
aW9yRnVuY3Rpb24oKSBhbmQgYSBjYWxsIHRvIGFwcGx5KCkuCi0KLVByb2ZpbGUgdGl0bGU6IFVz
aW5nIHRoZSBhcHBseSgpIG1ldGhvZAotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
IHN0YXJ0VGVzdCBhcHBseS5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZmFrZU9iamVjdCBhcHBs
eS5odG1sIChsaW5lIDE3OjIxKQotICAgICAgICAgZmFrZUludGVyaW9yRnVuY3Rpb24gYXBwbHku
aHRtbCAobGluZSAyMzozMCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2FwcGx5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2FwcGx5Lmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4ZDQxYWIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxz
KQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVl
KTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIlVzaW5n
IHRoZSBhcHBseSgpIG1ldGhvZCIpOwotICAgIHZhciBteU9iamVjdCA9IG5ldyBmYWtlT2JqZWN0
KDEsIDIpOwotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gZmFrZU9iamVjdCAoeCwgeSkK
LXsKLSAgICB0aGlzLnggPSB4OwotICAgIGZha2VJbnRlcmlvckZ1bmN0aW9uLmFwcGx5KHRoaXMs
IGFyZ3VtZW50cyk7Ci19Ci0KLWZ1bmN0aW9uIGZha2VJbnRlcmlvckZ1bmN0aW9uKHgsIHkpCi17
Ci0gICAgdGhpcy55ID0geTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9h
ZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgYSBjYWxsIHRvIGFw
cGx5KCkgaW4gaXQuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2Fk
IGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0
Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8g
ZmFrZUludGVyaW9yRnVuY3Rpb24oKSBhbmQKLWEgY2FsbCB0byBhcHBseSgpLgotPGRpdiBpZD0i
b3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMt
YW5vbnltb3VzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmE2
YmFmMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1
bmN0aW9uLWNhbGxzLWFub255bW91cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwy
MyArMCwwIEBACi1UaGlzIHBhZ2UgdXNlcyBhIGJ1aWx0LWluIGZ1bmN0aW9uIHRvIGNhbGwgYW4g
YW5vbnltb3VzIGZ1bmN0aW9uLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBp
dCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0
aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgbWFwKCkgc2hvdWxkIGJlIHRoZSBzaWJsaW5nIG9m
IGFuIChhbm9ueW1vdXMgZnVuY3Rpb24pIHdoaWNoIGhhcyBhcnJheU9wZXJhdG9yRnVuY3Rpb24o
KSBhcyBhIGNoaWxkLgotCi1Qcm9maWxlIHRpdGxlOiBCdWlsdC1pbiBmdW5jdGlvbiBjYWxscyBh
biBhbm9ueW1vdXMgZnVuY3Rpb24KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBz
dGFydFRlc3QgYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWwgKGxpbmUgMTA6
MTkpCi0gICAgICBBcnJheSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgbWFwIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICBPYmplY3QgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgIHRvTGVuZ3RoIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICB0b0ludGVnZXIg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIE51bWJlciAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgIGlzQXJyYXkgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
IChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBzcGVj
aWVzR2V0dGVyIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBBcnJheSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgbXlGdW5jdGlvbiBidWlsdC1pbi1mdW5jdGlvbi1jYWxscy1h
bm9ueW1vdXMuaHRtbCAobGluZSAxNDozMCkKLSAgICAgICAgICAgIGFycmF5T3BlcmF0b3JGdW5j
dGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyNTozMSkKLSAgICAgIGVu
ZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxz
LWFub255bW91cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5j
dGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDVhZWQ0OC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWlu
LWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxz
KQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVl
KTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkJ1aWx0
LWluIGZ1bmN0aW9uIGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlvbiIpOwotCi0gICAgdmFyIG15
RnVuY3Rpb24gPSBmdW5jdGlvbihhcnJheUVsZW1lbnQpIHsKLSAgICAgICAgcmV0dXJuIGFycmF5
T3BlcmF0b3JGdW5jdGlvbihhcnJheUVsZW1lbnQpOwotICAgIH0KLQotICAgIHZhciBteUFycmF5
ID0gbmV3IEFycmF5ICgwLCAxLCAyKTsKLSAgICBteUFycmF5Lm1hcChteUZ1bmN0aW9uKTsKLQot
ICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0
YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSB1c2VzIGEgYnVpbHQtaW4gZnVuY3Rpb24gdG8gY2FsbCBh
biBhbm9ueW1vdXMgZnVuY3Rpb24uCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVh
bGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFu
ZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIG1hcCgpIHNob3VsZCBiZSB0
aGUgc2libGluZyBvZiBhbiAoYW5vbnltb3VzIGZ1bmN0aW9uKQotd2hpY2ggaGFzIGFycmF5T3Bl
cmF0b3JGdW5jdGlvbigpIGFzIGEgY2hpbGQuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWls
dC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rpb24tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRl
ZmluZWQtZnVuY3Rpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA1NzE1NWU3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQt
aW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgcGFnZSB1c2VzIGEgYnVpbHQtaW4gZnVu
Y3Rpb24gdG8gY2FsbCBhIHVzZXIgZGVmaW5lZCBmdW5jdGlvbi4gCi0KLVRvIHJ1biB0aGlzIHRl
c3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNw
ZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIG1hcCgpIHNob3Vs
ZCBoYXZlIGFycmF5T3BlcmF0b3JGdW5jdGlvbigpIGFzIGEgY2hpbGQuCi0KLVByb2ZpbGUgdGl0
bGU6IEJ1aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGEgdXNlciBkZWZpbmVkIGZ1bmN0aW9uCi1UaHJl
YWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGJ1aWx0LWluLWZ1bmN0aW9u
LWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sIChsaW5lIDEwOjE5KQotICAgICAgQXJy
YXkgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIG1hcCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgT2JqZWN0IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICB0b0xlbmd0aCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgdG9JbnRlZ2VyIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICBOdW1iZXIgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICAgICBpc0FycmF5IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAoYW5vbnltb3VzIGZ1
bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgc3BlY2llc0dldHRlciAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgQXJyYXkgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgIGFycmF5T3BlcmF0b3JGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAyNTozMSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmlu
ZWQtZnVuY3Rpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY2M2I2OS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9u
LWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJu
YWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkJ1
aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGEgdXNlciBkZWZpbmVkIGZ1bmN0aW9uIik7Ci0KLSAgICB2
YXIgbXlBcnJheSA9IG5ldyBBcnJheSAoMCwgMSwgMik7Ci0gICAgbXlBcnJheS5tYXAoYXJyYXlP
cGVyYXRvckZ1bmN0aW9uKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSB1c2VzIGEgYnVpbHQt
aW4gZnVuY3Rpb24gdG8gY2FsbCBhIHVzZXIgZGVmaW5lZCBmdW5jdGlvbi4KLTxicj4KLTxicj4K
LVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBs
b2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHBy
b2ZpbGUgbWFwKCkgc2hvdWxkIGhhdmUgYXJyYXlPcGVyYXRvckZ1bmN0aW9uKCkgYXMgYSBjaGls
ZC4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9jYWxsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZmM4NmZkOS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2NhbGwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotVGhpcyBw
YWdlJ3MgSmF2YVNjcmlwdCBoYXMgYSBjYWxsIHRvIGNhbGwoKSBpbiBpdC4gCi0KLVRvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBX
ZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJl
IHNob3VsZCBiZSBhIGNhbGwgdG8gZmFrZU9iamVjdCgpIHdpdGggY2FsbCgpIGFzIGl0cyBjaGls
ZCBhbmQgYSBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFzIGNhbGwoKSdzIGNoaWxkLgotCi1Qcm9m
aWxlIHRpdGxlOiBVc2luZyB0aGUgY2FsbCgpIG1ldGhvZAotVGhyZWFkXzEgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBjYWxsLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBmYWtl
T2JqZWN0IGNhbGwuaHRtbCAobGluZSAxOToyMSkKLSAgICAgICAgIGZha2VJbnRlcmlvckZ1bmN0
aW9uIGNhbGwuaHRtbCAobGluZSAyNTozMCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzNjQ3YmYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWstZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhpcyBwYWdlIHRlc3RzIHRoYXQgdGhlIGdlbmVyYXRpb24g
b2YgYnl0ZWNvZGUgYWxsb2NhdGVzIHJlZ2lzdGVycyBjb3JyZWN0bHkgd2hlbiBwcm9maWxpbmcg
aXMgZW5hYmxlZC4gVG8gcnVuIHRoZSB0ZXN0IG1hbnVhbGx5LCBlbmFibGUgcHJvZmlsaW5nIGlu
IHRoZSB3ZWIgaW5zcGVjdG9yIGFuZCByZWxvYWQgdGhpcyBwYWdlLgotCi1QQVNTOiBsb2NhbENh
bGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQotUEFTUzogZ2xvYmFsQ2FsbFRlc3Qo
MSwgMikgc2hvdWxkIGJlIDIgYW5kIGlzLgotCi1QQVNTOiBzY29wZWRDYWxsVGVzdCgxLCAyKSBz
aG91bGQgYmUgMiBhbmQgaXMuCi0KLVBBU1M6IHJlc29sdmVDYWxsVGVzdCgxLCAyKSBzaG91bGQg
YmUgMiBhbmQgaXMuCi0KLVBBU1M6IGJyYWNrZXRDYWxsVGVzdCgxLCAyKSBzaG91bGQgYmUgMiBh
bmQgaXMuCi0KLVBBU1M6IGRvdENhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQot
UEFTUzogbmV3VGVzdCgxLCAyKSBzaG91bGQgYmUgMiBhbmQgaXMuCi0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDM2NmI0NDEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9jYWxsLXJlZ2lzdGVyLWxlYWsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEw
NSArMCwwIEBACi08Ym9keT4KLTxoZWFkPgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
LQotZnVuY3Rpb24gbG9nKHMpCi17Ci0gICAgaWYgKHRoaXMuZG9jdW1lbnQpCi0gICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUocyArICJcbiIpKTsKLSAgICBlbHNlCi0gICAgICAgIHByaW50KHMgKyAiXG4i
KTsKLX0KLQotZnVuY3Rpb24gc2hvdWxkQmUoYSwgYURlc2NyaXB0aW9uLCBiKQotewotICAgIGlm
IChhID09PSBiKQotICAgICAgICBsb2coIlBBU1M6ICIgKyBhRGVzY3JpcHRpb24gKyAiIHNob3Vs
ZCBiZSAiICsgYiArICIgYW5kIGlzLlxuIik7Ci0gICAgZWxzZQotICAgICAgICBsb2coIkZBSUw6
ICIgKyBhRGVzY3JpcHRpb24gKyAiIHNob3VsZCBiZSAiICsgYiArICIgYnV0IGluc3RlYWQgaXMg
IiArIGEgKyAiLlxuIik7Ci19Ci0KLWZ1bmN0aW9uIGxvY2FsQ2FsbFRlc3QoYSwgYikKLXsKLSAg
ICBmdW5jdGlvbiBsb2NhbENhbGwobykKLSAgICB7Ci0gICAgICAgIHJldHVybiBvLnRvU3RyaW5n
KCk7Ci0gICAgfQotICAgIHJldHVybiBbbG9jYWxDYWxsKGEpLCBiXVsxXTsKLX0KLQotZnVuY3Rp
b24gZ2xvYmFsQ2FsbChvKQotewotICAgIHJldHVybiBvLnRvU3RyaW5nKCk7Ci19Ci0KLWZ1bmN0
aW9uIGdsb2JhbENhbGxUZXN0KGEsIGIpCi17Ci0gICAgcmV0dXJuIFtnbG9iYWxDYWxsKGEpLCBi
XVsxXTsKLX0KLQotZnVuY3Rpb24gc2NvcGVkQ2FsbFRlc3QoYSwgYikKLXsKLSAgICBmdW5jdGlv
biBzY29wZWRDYWxsKG8pCi0gICAgewotICAgICAgICByZXR1cm4gby50b1N0cmluZygpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIGYoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFtzY29wZWRDYWxs
KGEpLCBiXVsxXTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZigpOwotfQotCi1mdW5jdGlvbiByZXNv
bHZlQ2FsbFRlc3QoYSwgYikKLXsKLSAgICBvID0geyByZXNvbHZlZENhbGw6IGZ1bmN0aW9uKG8p
IHsgcmV0dXJuIG8udG9TdHJpbmcoKTsgfX07Ci0gICAgd2l0aCAobykgewotICAgICAgICByZXR1
cm4gW3Jlc29sdmVkQ2FsbChvKSwgYl1bMV07Ci0gICAgfQotfQotCi1mdW5jdGlvbiBicmFja2V0
Q2FsbFRlc3QoYSwgYikKLXsKLSAgICByZXR1cm4gW2FbInRvU3RyaW5nIl0oKSwgYl1bMV07Ci19
Ci0KLWZ1bmN0aW9uIGRvdENhbGxUZXN0KGEsIGIpCi17Ci0gICAgcmV0dXJuIFthLnRvU3RyaW5n
KCksIGJdWzFdOwotfQotCi1mdW5jdGlvbiB0ZXN0Q29uc3RydWN0b3IobykKLXsKLSAgICByZXR1
cm4gby50b1N0cmluZygpOwotfQotCi1mdW5jdGlvbiBuZXdUZXN0KGEsIGIpCi17Ci0gICAgcmV0
dXJuIFtuZXcgdGVzdENvbnN0cnVjdG9yKGEpLCBiXVsxXTsKLX0KLQotZnVuY3Rpb24gc3RhcnRU
ZXN0KCkKLXsKLSAgICBzaG91bGRCZShsb2NhbENhbGxUZXN0KDEsIDIpLCAibG9jYWxDYWxsVGVz
dCgxLCAyKSIsIDIpOwotICAgIHNob3VsZEJlKGdsb2JhbENhbGxUZXN0KDEsIDIpLCAiZ2xvYmFs
Q2FsbFRlc3QoMSwgMikiLCAyKTsKLSAgICBzaG91bGRCZShzY29wZWRDYWxsVGVzdCgxLCAyKSwg
InNjb3BlZENhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxkQmUocmVzb2x2ZUNhbGxUZXN0
KDEsIDIpLCAicmVzb2x2ZUNhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxkQmUoYnJhY2tl
dENhbGxUZXN0KDEsIDIpLCAiYnJhY2tldENhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxk
QmUoZG90Q2FsbFRlc3QoMSwgMiksICJkb3RDYWxsVGVzdCgxLCAyKSIsIDIpOwotICAgIHNob3Vs
ZEJlKG5ld1Rlc3QoMSwgMiksICJuZXdUZXN0KDEsIDIpIiwgMik7Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotPHA+Ci1UaGlzIHBhZ2UgdGVzdHMg
dGhhdCB0aGUgZ2VuZXJhdGlvbiBvZiBieXRlY29kZSBhbGxvY2F0ZXMgcmVnaXN0ZXJzIGNvcnJl
Y3RseSB3aGVuIHByb2ZpbGluZyBpcyBlbmFibGVkLiBUbyBydW4gdGhlIHRlc3QgbWFudWFsbHks
IGVuYWJsZSBwcm9maWxpbmcgaW4gdGhlIHdlYiBpbnNwZWN0b3IgYW5kIHJlbG9hZCB0aGlzIHBh
Z2UuCi08L3A+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9jYWxsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDIxMDVjN2EuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQot
ewotICAgIGNvbnNvbGUucHJvZmlsZSgiVXNpbmcgdGhlIGNhbGwoKSBtZXRob2QiKTsKLQotICAg
IHZhciBteU9iamVjdCA9IG5ldyBmYWtlT2JqZWN0KDEsIDIpOwotCi0gICAgZW5kVGVzdCgpOwot
fQotCi1mdW5jdGlvbiBmYWtlT2JqZWN0ICh4LCB5KQotewotICAgIHRoaXMueCA9IHg7Ci0gICAg
ZmFrZUludGVyaW9yRnVuY3Rpb24uY2FsbCh0aGlzLCB5KTsKLX0KLQotZnVuY3Rpb24gZmFrZUlu
dGVyaW9yRnVuY3Rpb24oeSkKLXsKLSAgICB0aGlzLnkgPSB5OwotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlw
dCBoYXMgYSBjYWxsIHRvIGNhbGwoKSBpbiBpdC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRl
c3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNw
ZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hv
dWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0KCkgd2l0aCBjYWxsKCkgYXMKLWl0cyBjaGlsZCBh
bmQgYSBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFzIGNhbGwoKSdzIGNoaWxkLgotPGRpdiBpZD0i
b3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9m
aWxlci1mcm9tLWFub3RoZXItc2NvcGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9jYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZy
b20tYW5vdGhlci1zY29wZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZjMmJiMTguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxs
aW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1z
Y29wZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UaGlzIHBh
Z2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJvbSB3aXRoaW4gYSBmdW5jdGlvbiB3
aGljaCBpcyB0aGVuIGNhbGxlZCBsYXRlciBmcm9tIGFub3RoZXIgY29udGV4dC4gCi0KLVRvIHJ1
biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRo
ZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlciB5
b3Ugc2hvdWxkIHNlZSBhIGNhbGwgdG8gaW5kaXJlY3Rpb24oKSBhbmQgZnVuY3Rpb25XaWNoU3Rh
cnRzQW5kU3RvcHNUaGVQcm9maWxlcigpCi0KLVByb2ZpbGUgdGl0bGU6IENhbGxpbmcgdGhlIHNh
bWUgZnVuY3Rpb24gd2hlcmUgdGhlIHByb2ZpbGUgc3RhcnRlZCBmcm9tIGFub3RoZXIgZnVuY3Rp
b24KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBpbmRpcmVjdGlvbiBjYWxsaW5n
LXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29w
ZS5odG1sIChsaW5lIDE3OjIxKQotICAgICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQ
cm9maWxlciBjYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZy
b20tYW5vdGhlci1zY29wZS5odG1sIChsaW5lIDIzOjQ3KQotICAgZnVuY3Rpb25XaWNoU3RhcnRz
QW5kU3RvcHNUaGVQcm9maWxlciBjYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhl
LXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS5odG1sIChsaW5lIDIzOjQ3KQotICAgZW5kVGVz
dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1z
dGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1wcm9m
aWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNTc1NjdmMi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGxp
bmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNj
b3BlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExl
Z2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRl
c3QoKQotewotICAgIGluZGlyZWN0aW9uKCk7Ci0gICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3Rv
cHNUaGVQcm9maWxlcigpOwotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gaW5kaXJlY3Rp
b24oKQotewotICAgIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKTsKLX0K
LQotdmFyIGZpcnN0VGltZSA9IHRydWU7Ci1mdW5jdGlvbiBmdW5jdGlvbldpY2hTdGFydHNBbmRT
dG9wc1RoZVByb2ZpbGVyKCkKLXsKLSAgICBpZiAoZmlyc3RUaW1lKSB7Ci0gICAgICAgIGNvbnNv
bGUucHJvZmlsZSgiQ2FsbGluZyB0aGUgc2FtZSBmdW5jdGlvbiB3aGVyZSB0aGUgcHJvZmlsZSBz
dGFydGVkIGZyb20gYW5vdGhlciBmdW5jdGlvbiIpOwotICAgICAgICBmaXJzdFRpbWUgPSBmYWxz
ZTsKLSAgICB9Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwMDAwOyBpKyspCi0gICAg
ICAgIHZhciBiID0gaSArIDI7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgc3RhcnRzIHByb2ZpbGlu
ZyBmcm9tIHdpdGhpbiBhIGZ1bmN0aW9uIHdoaWNoIGlzIHRoZW4gY2FsbGVkCi1sYXRlciBmcm9t
IGFub3RoZXIgY29udGV4dC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGVyIHlvdSBzaG91bGQgc2VlIGEgY2Fs
bCB0byBpbmRpcmVjdGlvbigpIGFuZAotZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQcm9m
aWxlcigpCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29tcGFyZS1tdWx0aXBs
ZS1wcm9maWxlcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMz
YmJlMjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11
bHRpcGxlLXByb2ZpbGVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAg
QEAKLVRoaXMgcGFnZSBoYXMgbXVsdGlwbGUgcHJvZmlsZXMgd2l0aCB0aGUgc2FtZSBuYW1lLiAK
LQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSXQgc2hvdWxk
IG5vdCBjcmFzaCBvciBoYW5nIGFuZCB0aGVyZSBzaG91bGQgYmUgbXVsdGlwbGUgcnVucyBvZiB0
aGUgc2FtZSBuYW1lZCBwcm9maWxlLgotCi1Qcm9maWxlIHRpdGxlOiBUZXN0Ci1UaHJlYWRfMSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGNvbXBhcmUtbXVsdGlwbGUtcHJvZmls
ZXMuaHRtbCAobGluZSAyMjoxOSkKLSAgICAgIHRlc3QgY29tcGFyZS1tdWx0aXBsZS1wcm9maWxl
cy5odG1sIChsaW5lIDExOjE0KQotICAgICAgICAgdGVzdDIgY29tcGFyZS1tdWx0aXBsZS1wcm9m
aWxlcy5odG1sIChsaW5lIDE3OjE1KQotCi1Qcm9maWxlIHRpdGxlOiBUZXN0Ci1UaHJlYWRfMSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGNvbXBhcmUtbXVsdGlwbGUtcHJvZmls
ZXMuaHRtbCAobGluZSAyMjoxOSkKLSAgICAgIHRlc3QgY29tcGFyZS1tdWx0aXBsZS1wcm9maWxl
cy5odG1sIChsaW5lIDExOjE0KQotICAgICAgICAgdGVzdDIgY29tcGFyZS1tdWx0aXBsZS1wcm9m
aWxlcy5odG1sIChsaW5lIDE3OjE1KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvY29tcGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGE2MDJiNDQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw0NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKHRydWUpOwotCi12YXIgaiA9IDA7Ci1mdW5jdGlvbiB0ZXN0KGxlbikgewotICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpCi0gICAgICAgICsrajsKLSAgICB0ZXN0MigyMDAwIC0g
bGVuKTsKLX0KLQotZnVuY3Rpb24gdGVzdDIobGVuKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBsZW47ICsraSkKLSAgICAgICAgLS1qOwotfQotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewot
ICAgIGNvbnNvbGUucHJvZmlsZSgiVGVzdCIpOwotICAgIHRlc3QoMTAwKTsKLSAgICBjb25zb2xl
LnByb2ZpbGVFbmQoIlRlc3QiKTsKLQotICAgIGNvbnNvbGUucHJvZmlsZSgiVGVzdCIpOwotICAg
IHRlc3QoMTAwMCk7Ci0gICAgY29uc29sZS5wcm9maWxlRW5kKCJUZXN0Iik7Ci0KLSAgICBwcmlu
dFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIG11bHRpcGxlIHByb2ZpbGVz
IHdpdGggdGhlIHNhbWUgbmFtZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSXQgc2hvdWxkIG5vdCBjcmFzaCBvciBoYW5nIGFuZCB0
aGVyZSBzaG91bGQgYmUgbXVsdGlwbGUgcnVucyBvZiB0aGUKLXNhbWUgbmFtZWQgcHJvZmlsZS4K
LTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5M2Q4OTYzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvY29uc3RydWN0b3ItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTIgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgYSBjYWxsIHRvIG5ldygpIGlu
IGl0LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3Nl
ciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4g
dGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0KCkgYW5kIEFy
cmF5KCkgaW4gaXQuCi0KLVByb2ZpbGUgdGl0bGU6IFVzaW5nIGEgY29uc3RydWN0b3IuCi1UaHJl
YWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGNvbnN0cnVjdG9yLmh0bWwg
KGxpbmUgMTA6MTkpCi0gICAgICBmYWtlT2JqZWN0IGNvbnN0cnVjdG9yLmh0bWwgKGxpbmUgMTk6
MjEpCi0gICAgICAgICBBcnJheSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBw
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYmM2MzkwOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Nv
bnN0cnVjdG9yLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxz
LnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVXNpbmcgYSBjb25zdHJ1Y3Rvci4i
KTsKLQotICAgIHZhciBteU9iamVjdCA9IG5ldyBmYWtlT2JqZWN0KDEsIDIpOwotCi0gICAgZW5k
VGVzdCgpOwotfQotCi1mdW5jdGlvbiBmYWtlT2JqZWN0ICh4LCB5KQotewotICAgIHZhciBteUFy
cmF5ID0gbmV3IEFycmF5KCkKLSAgICBteUFycmF5WzBdID0gNTsKLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3Jp
cHQgaGFzIGEgY2FsbCB0byBuZXcoKSBpbiBpdC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRl
c3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNw
ZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hv
dWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0KCkgYW5kIEFycmF5KCkKLWluIGl0LgotPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvZGVhZC10aW1lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMWRlNjRmNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2RlYWQtdGltZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1U
aGlzIHBhZ2UncyBKYXZhU2NyaXB0IEhhcyBzb21lIGRlYWQgdGltZSBpbiB0aGUgcHJvZmlsZS4g
Ci0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBw
cm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGxhcmdlIGFtb3VudCBvZiB0aGUgJSBzcGVudCBpbiAo
bm9uLUphdmFTY3JpcHQpLgotCi1Qcm9maWxlIHRpdGxlOiBEZWFkIHRpbWUgaW4gcHJvZmlsZS4K
LVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBvbmxvYWQgZGVhZC10aW1lLmh0bWwg
KGxpbmUgMjE6NDQpCi0gICAgICBzdGFydFRlc3QgZGVhZC10aW1lLmh0bWwgKGxpbmUgMTI6MTkp
Ci0gICAgICAgICBzZXRUaW1lb3V0IChubyBmaWxlKSAobGluZSAwOjApCi0gICAocHJvZ3JhbSkg
ZGVhZC10aW1lLmh0bWwgKGxpbmUgMToxKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Rl
YWQtdGltZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjY0Y2UwLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci19Ci1pZiAod2luZG93LmludGVybmFs
cykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJEZWFk
IHRpbWUgaW4gcHJvZmlsZS4iKTsKLSAgICBzZXRUaW1lb3V0KCJlbmRUZXN0KCkiLCAxMjM0KTsK
LX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgot
VGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBIYXMgc29tZSBkZWFkIHRpbWUgaW4gdGhlIHByb2ZpbGUu
Ci08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBi
cm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmls
ZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGxhcmdlIGFtb3VudCBvZiB0aGUg
JSBzcGVudCBpbiAKLShub24tSmF2YVNjcmlwdCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pgot
PC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2RvY3VtZW50LWRvdC13cml0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2RvY3VtZW50LWRvdC13cml0ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDg0OWYxYmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9kb2N1bWVudC1kb3Qtd3JpdGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCAr
MCwwIEBACi0KLVByb2ZpbGUgdGl0bGU6IENhbGwgRG9jdW1lbnQud3JpdGUoKQotVGhyZWFkXzEg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBkb2N1bWVudC1kb3Qtd3JpdGUuaHRt
bCAobGluZSAxMDoxOSkKLSAgICAgIHdyaXRlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBl
bmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmNTRmNDAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDI4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2lu
ZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5w
cm9maWxlKCJDYWxsIERvY3VtZW50LndyaXRlKCkiKTsKLQotICAgIGRvY3VtZW50LndyaXRlKCI8
ZGl2IGlkPVwib3V0cHV0XCI+PC9kaXY+Iik7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgY2Fs
bHMgZG9jdW1lbnQud3JpdGUoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSWYgdGhlcmUgaXMgYSBwcm9maWxlIGl0IHNob3VsZCBz
aG93IHdyaXRlKCkuCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9ldmVudC1oYW5kbGVyLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMTVjNDhjZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2V2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAs
MCBAQAotVGhpcyBwYWdlIGhhcyBhbiBldmVudCBoYW5kbGVyLiAKLQotVG8gcnVuIHRoaXMgdGVz
dCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3Bl
Y3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgaW5zZXJ0bmV3VGV4
dCgpIHNob3VsZCBiZSBhIHNpYmxpbmcgdG8gb25sb2FkKCkuIAotCi1Qcm9maWxlIHRpdGxlOiBF
dmVudCBoYW5kbGVyCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0
IGV2ZW50LWhhbmRsZXIuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGdldEVsZW1lbnRCeUlkIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICBhZGRFdmVudExpc3RlbmVyIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICBjbGljayAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgaW5zZXJ0
TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAg
ICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNy
ZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGls
ZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2V2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFu
ZGxlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNmE0NjFkLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsgICAgCi0g
ICAgY29uc29sZS5wcm9maWxlKCJFdmVudCBoYW5kbGVyIik7Ci0KLSAgICB2YXIgbXlCdXR0b24g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnV0dG9uV2l0aEFuRXZlbnRMaXN0ZW5lciIpOwot
ICAgIG15QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgaW5zZXJ0TmV3VGV4dCwgZmFs
c2UpOwotICAgIG15QnV0dG9uLmNsaWNrKCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFz
IGFuIGV2ZW50IGhhbmRsZXIuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5
LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBs
b29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIGluc2VydG5ld1RleHQoKSBzaG91
bGQgYmUgYSBzaWJsaW5nIHRvIG9ubG9hZCgpLgotPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9ImJ1
dHRvbldpdGhBbkV2ZW50TGlzdGVuZXIiIHZhbHVlPSJCdXR0b24gd2l0aCBhbiBldmVudCBsaXN0
ZW5lciI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9leGVjdXRpb24tY29udGV4dC1hbmQtZXZh
bC1vbi1zYW1lLWxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9l
eGVjdXRpb24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTVjMjYxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5l
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRoaXMgcGFnZSBo
YXMgYSBjYWxsIHRvIGV2YWwgYW5kIGEgc2NyaXB0IHRhZyBvbiB0aGUgc2FtZSBsaW5lLiAKLQot
VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxv
YWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2Zp
bGUgdGhlcmUgc2hvdWxkIGJlIG11bHRpcGxlIChwcm9ncmFtKSBlbGVtZW50cyBhbmQgb25lIHRo
YXQgcmVwcmVzZW50cyB0aGUgZXZhbCgpLgotCi1Qcm9maWxlIHRpdGxlOiBUd28gRXhlY3V0aW9u
IENvbnRleHRzIG9uIHRoZSBzYW1lIGxpbmUKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICBzdGFydFRlc3QgZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0
bWwgKGxpbmUgMTA6MTkpCi0gICAgICBldmFsRnVuY3Rpb24gKG5vIGZpbGUpIChsaW5lIDE6MjIp
Ci0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChs
aW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRF
bGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1l
dmFsLW9uLXNhbWUtbGluZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNzVi
MjlhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXhlY3V0aW9uLWNv
bnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVHdv
IEV4ZWN1dGlvbiBDb250ZXh0cyBvbiB0aGUgc2FtZSBsaW5lIik7Ci0KLSAgICBldmFsRnVuY3Rp
b24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLWV2YWwoImZ1
bmN0aW9uIGV2YWxGdW5jdGlvbigpIHsgaW5zZXJ0TmV3VGV4dCgpOyB9Iik7Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIGEg
Y2FsbCB0byBldmFsIGFuZCBhIHNjcmlwdCB0YWcgb24gdGhlIHNhbWUgbGluZS4KLTxicj4KLTxi
cj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhl
IHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIG11bHRpcGxlIChwcm9ncmFtKSBlbGVtZW50cyBhbmQK
LW9uZSB0aGF0IHJlcHJlc2VudHMgdGhlIGV2YWwoKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2lubGluZS1ldmVudC1oYW5kbGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhMDIzZTVmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMjAgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhbiBpbmxpbmUgZXZlbnQgaGFuZGxlci4gCi0K
LVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBs
b2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9m
aWxlIG9uY2xpY2soKSBzaG91bGQgYmUgYSBzaWJsaW5nIHRvIG9ubG9hZCgpIGFuZCBvbmNsaWNr
KCkgc2hvdWxkIGhhdmUgZXZlbnRMaXN0ZW5lcigpIGFzIGEgY2hpbGQuIAotCi1Qcm9maWxlIHRp
dGxlOiBJbmxpbmUgZXZlbnQgaGFuZGxlcgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgIHN0YXJ0VGVzdCBpbmxpbmUtZXZlbnQtaGFuZGxlci5odG1sIChsaW5lIDEwOjE5KQotICAg
ICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGNsaWNrIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICBvbmNsaWNrIGlubGluZS1ldmVudC1oYW5kbGVyLmh0
bWwgKGxpbmUgMzE6MTI3KQotICAgICAgICAgICAgZXZlbnRMaXN0ZW5lciBpbmxpbmUtZXZlbnQt
aGFuZGxlci5odG1sIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgICAgYW5vbnltb3VzRnVuY3Rp
b24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICAg
ICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDE3OjIzKQotICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
aW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTAwMTQ2My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2lubGluZS1l
dmVudC1oYW5kbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJu
YWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlv
biBzdGFydFRlc3QoKQoteyAgICAKLSAgICBjb25zb2xlLnByb2ZpbGUoIklubGluZSBldmVudCBo
YW5kbGVyIik7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZXZlbnRMaXN0ZW5lclNl
dElubGluZSIpLmNsaWNrKCk7Ci19Ci0KLWZ1bmN0aW9uIGV2ZW50TGlzdGVuZXIoKSB7ICAgIAot
ICAgIGFub255bW91c0Z1bmN0aW9uKCk7Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIGhhcyBhbiBp
bmxpbmUgZXZlbnQgaGFuZGxlci4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgb25jbGljaygpIHNob3VsZCBi
ZSBhIHNpYmxpbmcgdG8gb25sb2FkKCkgYW5kIG9uY2xpY2soKQotc2hvdWxkIGhhdmUgZXZlbnRM
aXN0ZW5lcigpIGFzIGEgY2hpbGQuCi08aW5wdXQgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJldmVu
dExpc3RlbmVyKCkiIGlkPSJldmVudExpc3RlbmVyU2V0SW5saW5lIiB2YWx1ZT0iRXZlbnQgTGlz
dGVuZXIgU2V0IElubGluZSI+Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNhbGxzLWlu
LXRoZS1zYW1lLXNjb3BlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDBjZDQ1ZDEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9tYW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDM2ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgaGFzIG1hbnkg
ZnVuY3Rpb24gY2FsbHMgaW4gdGhlIHNhbWUgc2NvcGUuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1h
bnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9y
IGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSBtYW55IGZ1bmN0aW9ucyBz
aG91bGQgYmUgdGhlIGNoaWxkcmVuIG9mIHN0YXJ0VGVzdC4gVXNlIHRoZSBzb3J0aW5nIGNhcGFi
aWxpdGVzIHRvIG1ha2Ugc3VyZSB0aGUgc2ltaWxhcmx5IG5hbWVkIGZ1bmN0aW9ucyBhcmUgc29y
dGVkIGNvcnJlY3RseS4KLQotUHJvZmlsZSB0aXRsZTogTWFueSBDYWxscyBJbiBUaGUgU2FtZSBT
Y29wZQotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBtYW55LWNh
bGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBpbnNlcnROZXdU
ZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAg
Y3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgY3JlYXRlVGV4dE5v
ZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgaW5zZXJ0R2l2ZW5UZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDk6MjUpCi0gICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgYXBwZW5k
Q2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICBhcnJheU9wZXJhdG9yRnVuY3Rpb24gcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjU6MzEpCi0gICAgICBpbnRlcm1lZGlhcnlGdW5jdGlv
biBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAzMjozMCkKLSAgICAgICAgIGFu
b255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0
KQotICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGFu
b255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0
KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAo
bGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0
RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZCBtYW55LWNhbGxzLWlu
LXRoZS1zYW1lLXNjb3BlLmh0bWwgKGxpbmUgMjY6MTMpCi0gICAgICBlbmRUIG1hbnktY2FsbHMt
aW4tdGhlLXNhbWUtc2NvcGUuaHRtbCAobGluZSAzMToxNCkKLSAgICAgIGVuZFRlc3QgcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzE5YmNlLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lK
YXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkK
LXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIk1hbnkgQ2FsbHMgSW4gVGhlIFNhbWUgU2NvcGUiKTsK
LQotICAgIGluc2VydE5ld1RleHQoKTsKLSAgICBpbnNlcnRHaXZlblRleHQoIlRoaXMgd2FzIGEg
dHJpdW1waC4iKTsKLSAgICBhcnJheU9wZXJhdG9yRnVuY3Rpb24oNyk7Ci0gICAgaW50ZXJtZWRp
YXJ5RnVuY3Rpb24oKTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGVuZCgpCi0gICAg
ZW5kVCgpOwotICAgIGVuZFQoKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gZW5k
KCkKLXsKLSAgICB2YXIgeCA9IDA7Ci19Ci0KLWZ1bmN0aW9uIGVuZFQoKQotewotICAgIHZhciB5
ID0gMTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0
KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgbWFueSBmdW5jdGlvbiBjYWxscyBpbiB0
aGUgc2FtZSBzY29wZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxv
YWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sg
YXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgbWFueSBmdW5jdGlvbnMgc2hvdWxkIGJl
IHRoZSBjaGlsZHJlbiBvZiBzdGFydFRlc3QuCi1Vc2UgdGhlIHNvcnRpbmcgY2FwYWJpbGl0ZXMg
dG8gbWFrZSBzdXJlIHRoZSBzaW1pbGFybHkgbmFtZWQgZnVuY3Rpb25zIGFyZSBzb3J0ZWQKLWNv
cnJlY3RseS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQt
c2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1m
dW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDA1MWVjODEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBs
ZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlw
dCBjYWxscyB0aGUgc2FtZSBhbm9ueW1vdXMgZnVuY3Rpb24gZnJvbSBtdWx0aXBsZSBhbmQgZGlm
ZmVyZW50bHkgc2NvcGVkIGxvY2F0aW9ucy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwg
dG8gZmFrZU9iamVjdCB3aXRoIGZha2VJbnRlcmlvckZ1bmN0aW9uIGFzIGl0cyBjaGlsZCwgYnV0
IGNhbGwoKSBzaG91bGQgbm90IGJlIHNob3duLgotCi1Qcm9maWxlIHRpdGxlOiBNdWx0aXBsZSBh
bmQgZGlmZmVyZW50IHNjb3BlZCBjYWxscyB0byB0aGUgc2FtZSBhbm9ueW1vdXMgZnVuY3Rpb24K
LVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbXVsdGlwbGUtYW5k
LWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLmh0bWwgKGxpbmUgMTA6
MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBpbnRl
cm1lZGlhcnlGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAzMjoz
MCkKLSAgICAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1l
bnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
MToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxl
LWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9u
eW1vdXMtZnVuY3Rpb24tY2FsbHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YzJkMDA1YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxl
LWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBj
b25zb2xlLnByb2ZpbGUoIk11bHRpcGxlIGFuZCBkaWZmZXJlbnQgc2NvcGVkIGNhbGxzIHRvIHRo
ZSBzYW1lIGFub255bW91cyBmdW5jdGlvbiIpOwotCi0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsK
LSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotCi0gICAgaW50ZXJtZWRpYXJ5RnVuY3Rpb24oKTsK
LQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9
InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgdGhlIHNhbWUgYW5v
bnltb3VzIGZ1bmN0aW9uIGZyb20gbXVsdGlwbGUgYW5kIGRpZmZlcmVudGx5IHNjb3BlZCBsb2Nh
dGlvbnMuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGlu
IHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUg
cHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZmFrZU9i
amVjdCB3aXRoCi1mYWtlSW50ZXJpb3JGdW5jdGlvbiBhcyBpdHMgY2hpbGQsIGJ1dCBjYWxsKCkg
c2hvdWxkIG5vdCBiZSBzaG93bi4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFu
ZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24t
Y2FsbHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOWZkY2Vk
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRp
ZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMjIgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyB0aGUgc2FtZSBm
dW5jdGlvbiBmcm9tIG11bHRpcGxlIGFuZCBkaWZmZXJlbnRseSBzY29wZWQgbG9jYXRpb25zLiAK
LQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHBy
b2ZpbGUgdGhlcmUgc2hvdWxkIGJlIHR3byBjYWxscyB0byBpbnNlcnROZXdUZXh0IHVuZGVyIHN0
YXJ0VGVzdCgpIGFuZCBvbmUgdW5kZXIgYW4gKGFub255bW91cyBmdW5jdGlvbikgdW5kZXIgaW50
ZXJtZWRpYXJ5RnVuY3Rpb24oKS4KLQotUHJvZmlsZSB0aXRsZTogTXVsdGlwbGUgYW5kIGRpZmZl
cmVudCBzY29wZWQgY2FsbHMgdG8gdGhlIHNhbWUgZnVuY3Rpb24KLVRocmVhZF8xIChubyBmaWxl
KSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQt
ZnVuY3Rpb24tY2FsbHMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGluc2VydE5ld1RleHQgcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICBjcmVhdGVF
bGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBp
bnRlcm1lZGlhcnlGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAz
MjozMCkKLSAgICAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgIGNyZWF0ZUVs
ZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2Rl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRp
cGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNh
bGxzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZjMmUyMjEuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNj
b3BlZC1mdW5jdGlvbi1jYWxscy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
IGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQot
ZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIk11bHRpcGxlIGFu
ZCBkaWZmZXJlbnQgc2NvcGVkIGNhbGxzIHRvIHRoZSBzYW1lIGZ1bmN0aW9uIik7Ci0KLSAgICBp
bnNlcnROZXdUZXh0KCk7Ci0gICAgaW5zZXJ0TmV3VGV4dCgpOwotCi0gICAgaW50ZXJtZWRpYXJ5
RnVuY3Rpb24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08
Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMg
dGhlIHNhbWUgZnVuY3Rpb24gZnJvbSBtdWx0aXBsZSBhbmQgZGlmZmVyZW50bHkgc2NvcGVkIGxv
Y2F0aW9ucy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQg
aW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRo
ZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIHR3byBjYWxscyB0byBp
bnNlcnROZXdUZXh0IHVuZGVyCi1zdGFydFRlc3QoKSBhbmQgb25lIHVuZGVyIGFuIChhbm9ueW1v
dXMgZnVuY3Rpb24pIHVuZGVyIGludGVybWVkaWFyeUZ1bmN0aW9uKCkuCi08ZGl2IGlkPSJvdXRw
dXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1z
YW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVs
dGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0MDE0MDQuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVu
Y3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgdGhl
IGRpZmZlcmVudCBhbm9ueW1vdXMgZnVuY3Rpb25zIHRoZSBzYW1lIHNjb3BlLiAKLQotVG8gcnVu
IHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhl
IFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhl
cmUgc2hvdWxkIGJlIGEgY2FsbCB0d28gZW50cmllcyBuYW1lZCB0byAoYW5vbnltb3VzIGZ1bmN0
aW9uKSwgYXMgb3Bwb3NlZCB0byBvbmUgZW50cnkgY2FsbGVkIHR3aWNlLgotCi1Qcm9maWxlIHRp
dGxlOiBNdWx0aXBsZSBjYWxscyB0byBkaWZmZXJlbnQgYW5vbnltb3VzIGZ1bmN0aW9ucwotVGhy
ZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBtdWx0aXBsZS1hbm9ueW1v
dXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwgKGxpbmUgMTA6
MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBhbm90
aGVyQW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
MzA6NDEpCi0gICAgICAgICBpbnNlcnRHaXZlblRleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgOToyNSkKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2Fs
bGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5j
dGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjFjZjJkLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0
aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMzEgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cu
aW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2Zp
bGUoIk11bHRpcGxlIGNhbGxzIHRvIGRpZmZlcmVudCBhbm9ueW1vdXMgZnVuY3Rpb25zIik7Ci0K
LSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGFub3RoZXJBbm9ueW1vdXNGdW5jdGlvbigp
OwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9h
ZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyB0aGUgZGlmZmVy
ZW50IGFub255bW91cyBmdW5jdGlvbnMgdGhlIHNhbWUgc2NvcGUuCi08YnI+Ci08YnI+Ci1UbyBy
dW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0
aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxl
IHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdHdvIGVudHJpZXMgbmFtZWQgdG8gKGFub255bW91cyBm
dW5jdGlvbiksCi1hcyBvcHBvc2VkIHRvIG9uZSBlbnRyeSBjYWxsZWQgdHdpY2UuCi08ZGl2IGlk
PSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyZTIzZjRjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvbXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDE4ICswLDAgQEAKLVRoaXMgdGVzdCBoYXMgSlMgZXhlY3V0aW5nIGluIGFub3RoZXIgd2lu
ZG93LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3Nl
ciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4g
dGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmdW5jdGlvbkluT3RoZXJGcmFt
ZSgpLgotCi1Qcm9maWxlIHRpdGxlOiBPdGhlciB3aW5kb3cgZXhlY3V0aW5nIEphdmFTY3JpcHQK
LVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbXVsdGlwbGUtZnJh
bWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgZnVuY3Rpb25Jbk90aGVyRnJhbWUgb3RoZXItZnJhbWUuaHRtbCAobGlu
ZSA0OjMwKQotICAgICAgICAgZnVuY3Rpb25JblBhcmVudEZyYW1lIG11bHRpcGxlLWZyYW1lcy5o
dG1sIChsaW5lIDIxOjMxKQotICAgICAgaW5zZXJ0R2l2ZW5UZXh0IHByb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIChsaW5lIDk6MjUpCi0gICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGdl
dEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvbXVsdGlwbGUtZnJhbWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGQxYjRmZjYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9t
dWx0aXBsZS1mcmFtZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRl
cm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0
aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJPdGhlciB3aW5kb3cgZXhl
Y3V0aW5nIEphdmFTY3JpcHQiKTsKLQotICAgIHZhciBteUZyYW1lID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoIm15U3ViRnJhbWUiKTsKLSAgICB2YXIgc2VjcmV0ID0gbXlGcmFtZS5jb250ZW50
V2luZG93LmZ1bmN0aW9uSW5PdGhlckZyYW1lKCk7Ci0gICAgaW5zZXJ0R2l2ZW5UZXh0KHNlY3Jl
dCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGZ1bmN0aW9uSW5QYXJlbnRGcmFt
ZSgpIHsKLSAgICByZXR1cm4gIlBpIjsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgdGVzdCBoYXMgSlMgZXhlY3V0aW5nIGluIGFub3Ro
ZXIgd2luZG93LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBp
dCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAot
dGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZ1
bmN0aW9uSW5PdGhlckZyYW1lKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPGlmcmFtZSBz
cmM9InJlc291cmNlcy9vdGhlci1mcmFtZS5odG1sIiBpZD0ibXlTdWJGcmFtZSI+PC9pZnJhbWU+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L25hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTkwYTY0Yy4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9ucy13aXRoLWRp
c3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAot
VGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBuYW1lZCBmdW5jdGlvbnMgYW5kIGNoYW5nZXMg
dGhlaXIgZGlzcGxheSBuYW1lcy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQg
aXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQg
dGhlIHByb2ZpbGUuIFlvdSBzaG91bGQgc2VlIGZ1bmN0aW9ucyBuYW1lZCAiW3hdIGl0ZXJhdGlv
bltzXSBmdW5jdGlvbiIsIGFuZCBub3QgImZ1bmN0aW9uW3hdIgotCi1Qcm9maWxlIHRpdGxlOiBO
YW1lZCBmdW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgc3RhcnRUZXN0IG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMu
aHRtbCAobGluZSA1MzoxOSkKLSAgICAgIDAgaXRlcmF0aW9ucyBmdW5jdGlvbiBuYW1lZC1mdW5j
dGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICAxIGl0ZXJh
dGlvbiBmdW5jdGlvbiBuYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxp
bmUgMTc6MTkpCi0gICAgICAyIGl0ZXJhdGlvbnMgZnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25zLXdp
dGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDI0OjE5KQotICAgICAgMjAgaXRlcmF0aW9ucyBm
dW5jdGlvbiBuYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMzE6
MjApCi0gICAgICAxMDAwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25zLXdpdGgt
ZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDM4OjIyKQotICAgICAgYm9ndXNEaXNwbGF5TmFtZUZ1
bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSA0Njoz
NCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTox
NykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0
aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3YWYyZWMwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNzcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3
aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmls
aW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gZnVuY3Rpb24wKCkKLXsKLSAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IDA7ICsraSkgOwotfQotCi1mdW5jdGlvbjAuZGlzcGxheU5hbWUgPSAiMCBp
dGVyYXRpb25zIGZ1bmN0aW9uIjsKLQotZnVuY3Rpb24gZnVuY3Rpb24xKCkKLXsKLSAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDE7ICsraSkgOwotfQotCi1mdW5jdGlvbjEuZGlzcGxheU5hbWUgPSAi
MSBpdGVyYXRpb24gZnVuY3Rpb24iOwotCi1mdW5jdGlvbiBmdW5jdGlvbjIoKQotewotICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgMjsgKytpKSA7Ci19Ci0KLWZ1bmN0aW9uMi5kaXNwbGF5TmFtZSA9
ICIyIGl0ZXJhdGlvbnMgZnVuY3Rpb24iOwotCi1mdW5jdGlvbiBmdW5jdGlvbjIwKCkKLXsKLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDIwOyArK2kpIDsKLX0KLQotZnVuY3Rpb24yMC5kaXNwbGF5
TmFtZSA9ICIyMCBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKLQotZnVuY3Rpb24gZnVuY3Rpb24xMDAw
KCkKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgOwotfQotCi1mdW5jdGlv
bjEwMDAuZGlzcGxheU5hbWUgPSAiMTAwMCBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKLQotCi1mdW5j
dGlvbiBib2d1c0Rpc3BsYXlOYW1lRnVuY3Rpb24oKQotewotICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMDsgKytpKSA7Ci19Ci0KLWJvZ3VzRGlzcGxheU5hbWVGdW5jdGlvbi5kaXNwbGF5TmFtZSA9
IGJvZ3VzRGlzcGxheU5hbWVGdW5jdGlvbjsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAg
ICBjb25zb2xlLnByb2ZpbGUoIk5hbWVkIGZ1bmN0aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMiKTsK
LQotICAgIGZ1bmN0aW9uMCgpOwotICAgIGZ1bmN0aW9uMSgpOwotICAgIGZ1bmN0aW9uMigpOwot
ICAgIGZ1bmN0aW9uMjAoKTsKLSAgICBmdW5jdGlvbjEwMDAoKTsKLSAgICBib2d1c0Rpc3BsYXlO
YW1lRnVuY3Rpb24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2Fs
bHMgbmFtZWQgZnVuY3Rpb25zIGFuZCBjaGFuZ2VzIHRoZWlyIGRpc3BsYXkgbmFtZXMuCi08YnI+
Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2Vy
IHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIFlv
dSBzaG91bGQgc2VlIGZ1bmN0aW9ucyBuYW1lZCAiW3hdIGl0ZXJhdGlvbltzXSBmdW5jdGlvbiIs
IGFuZCBub3QgImZ1bmN0aW9uW3hdIgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLWFu
b255bW91cy1mdW5jdG9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bmVzdGVkLWFub255bW91cy1mdW5jdG9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDIyOWE0Mi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxNyArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGFuIGFub255bW91
cyB3aGljaCBjYWxscyBhIG5lc3RlZCBhbm9ueW1vdXMgZnVuY3Rpb24uIAotCi1UbyBydW4gdGhp
cyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2Vi
SW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBz
aG91bGQgYmUgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2l0aCBhIGNoaWxkIChhbm9ueW1vdXMg
ZnVuY3Rpb24pLgotCi1Qcm9maWxlIHRpdGxlOiBOZXN0ZWQgYW5vbnltb3VzIGZ1bmN0aW9ucyBj
YWxsZWQKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVzdGVk
LWFub255bW91cy1mdW5jdG9uLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBBbm9ueW1vdXNGdW5j
dGlvbldpY2hDYWxsc0FuQW5vbnltb3VzRnVuY3Rpb24gbmVzdGVkLWFub255bW91cy1mdW5jdG9u
Lmh0bWwgKGxpbmUgMTQ6NjUpCi0gICAgICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgICAgIGluc2VydE5ld1Rl
eHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAg
ICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBj
cmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgYXBwZW5k
Q2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGdldEVsZW1lbnRCeUlk
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGY2YjkyNWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM0
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVy
bmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJO
ZXN0ZWQgYW5vbnltb3VzIGZ1bmN0aW9ucyBjYWxsZWQiKTsKLQotICAgIHZhciBBbm9ueW1vdXNG
dW5jdGlvbldpY2hDYWxsc0FuQW5vbnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbigpIHsKLSAgICAg
ICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICB9Ci0KLSAgICBBbm9ueW1vdXNGdW5jdGlvbldp
Y2hDYWxsc0FuQW5vbnltb3VzRnVuY3Rpb24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdz
IEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIHdoaWNoIGNhbGxzIGEgbmVzdGVkIGFub255
bW91cyBmdW5jdGlvbi4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxv
YWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sg
YXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGFuIChhbm9u
eW1vdXMgZnVuY3Rpb24pIHdpdGggYSBjaGlsZAotKGFub255bW91cyBmdW5jdGlvbikuCi08ZGl2
IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3At
cHJvZmlsZXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNWEz
MDlkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0
LWFuZC1zdG9wLXByb2ZpbGVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE4NiAr
MCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGNvbnNvbGUucHJvZmlsZSgpIHRo
cmVlIHRpbWVzIHRoZW4gY29uc29sZS5wcm9maWxlRW5kKCkgdGhyZWUgdGltZXMuIAotCi1UbyBy
dW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0
aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZXIg
dGhlcmUgc2hvdWxkIGJlIHRocmVlIHByb2ZpbGVzLgotCi1Qcm9maWxlIHRpdGxlOiBTdGFydCB0
aGUgcHJvZmlsZXIgdGhlIHRoaXJkIHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgc3RhcnRUZXN0IG5lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci5odG1sIChsaW5l
IDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSAxOjE3KQotCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgdGhpcmQg
dGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVzdGVk
LXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRUZXN0
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLVByb2ZpbGUgdGl0
bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25kIHRpbWUuCi1UaHJlYWRfMSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG5lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxl
ci5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxOjE3KQotICAgICAgICAgcHJvZmlsZUVuZCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSBwcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyAobGluZSA2MjozOCkKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHByb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAgcmVwbGFjZSAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgaGFzT2JzZXJ2YWJsZVNpZGVFZmZl
Y3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgIGFub255bW91cyAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
Y3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGFwcGVu
ZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjaGlsZHJlbiAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRU
aW1lIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAg
ICAgICAgICAgcmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAg
ICAgaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFub255bW91cyAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHByb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAgICAgICAgcmVw
bGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgaGFzT2Jz
ZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGFub255bW91cyAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgIG5vdGlmeURvbmUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLQotCi1Qcm9maWxlIHRpdGxl
OiBTdGFydCB0aGUgcHJvZmlsZXIgdGhlIHRoaXJkIHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG5lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci5o
dG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAxOjE3KQotCi1Qcm9maWxlIHRpdGxlOiBTdGFydCB0aGUgcHJvZmlsZXIgdGhl
IHNlY29uZCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVz
dCBuZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbCAobGluZSAxMDoxOSkKLSAgICAg
IGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLSAgICAg
ICAgIHByb2ZpbGVFbmQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIHByaW50UHJvZmls
ZXNEYXRhV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNjI6
MzgpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
YXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIHByaW50UHJvZmls
ZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3Nzoz
NykKLSAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24p
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0
c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAg
Y2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIHByaW50UHJv
ZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3
NzozNykKLSAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmlu
Z1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1l
bnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBub3RpZnlEb25lIChubyBmaWxl
KSAobGluZSAwOjApCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgZmly
c3QgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVz
dGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRU
ZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0gICAgICAgICBw
cm9maWxlRW5kIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBwcmludFByb2ZpbGVzRGF0
YVdpdGhvdXRUaW1lIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDYyOjM4KQot
ICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVu
ZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBwcmludFByb2ZpbGVOb2Rl
V2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6MzcpCi0g
ICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JT
dHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAg
ICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAg
YXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNoaWxk
cmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBwcmludFByb2ZpbGVO
b2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6Mzcp
Ci0gICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBs
YWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5v
bnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAg
ICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAg
ICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAg
IGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBwcmlu
dFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVj
dHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
YW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdS
ZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVu
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNP
YnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0
aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludFByb2ZpbGVO
b2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6Mzcp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNPYnNl
cnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0
aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVu
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVU
ZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludFByb2ZpbGVOb2Rl
V2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6MzcpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
YW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVUZXh0
Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgbm90aWZ5RG9uZSAobm8gZmlsZSkgKGxpbmUgMDowKQotCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9m
aWxlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTc4NzIzLi4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXBy
b2ZpbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFy
dFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBm
aXJzdCB0aW1lLiIpOwotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQgdGhlIHByb2ZpbGVyIHRo
ZSBzZWNvbmQgdGltZS4iKTsKLSAgICBjb25zb2xlLnByb2ZpbGUoIlN0YXJ0IHRoZSBwcm9maWxl
ciB0aGUgdGhpcmQgdGltZS4iKTsKLSAgICBlbmRUZXN0KCk7Ci0gICAgZW5kVGVzdCgpOwotICAg
IGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0
VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxlKCkg
dGhyZWUgdGltZXMgdGhlbiBjb25zb2xlLnByb2ZpbGVFbmQoKQotdGhyZWUgdGltZXMuCi08YnI+
Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2Vy
IHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIElu
IHRoZSBwcm9maWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJvZmlsZXMuCi08ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzU1ZGNjYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0LWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhIG5vIHByb2ZpbGluZyBp
bmZvcm1hdGlvbi4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhl
IGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2Zp
bGUuIFlvdSBzaG91bGQgbm90IHNlZSBhbnkgcHJvZmlsZSBkYXRlIGluIHRoZSBXZWJJbnNwZWN0
b3IuCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uby1leGVjdXRp
b24tY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uby1leGVjdXRpb24t
Y29udGV4dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWM4NTM5Li4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNvbnRleHQu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCkiPgotVGhpcyBwYWdl
IGhhcyBhIG5vIHByb2ZpbGluZyBpbmZvcm1hdGlvbi4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgWW91IHNob3VsZCBub3Qgc2VlIGFu
eSBwcm9maWxlIGRhdGUgaW4gdGhlIFdlYkluc3BlY3Rvci4KLTxkaXYgaWQ9Im91dHB1dCI+PC9k
aXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL29uZS1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGY4ZGQ2NzAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTAgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhIHNpbmdsZSBzY3JpcHQgdGFnIHdp
dGggc29tZSBzaW1wbGUgSmF2YVNjcmlwdC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQgdGhlIHByb2ZpbGUuCi0KLVByb2ZpbGUgdGl0bGU6IE9uZSBFeGVjdXRpb24gQ29udGV4
dAotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBvbmUtZXhlY3V0
aW9uLWNvbnRleHQuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9vbmUtZXhlY3V0aW9uLWNvbnRleHQuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDU1Zjg3My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJu
YWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0
cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIk9u
ZSBFeGVjdXRpb24gQ29udGV4dCIpOwotICAgIGVuZFRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIGhhcyBhIHNp
bmdsZSBzY3JpcHQgdGFnIHdpdGggc29tZSBzaW1wbGUgSmF2YVNjcmlwdC4KLTxicj4KLTxicj4K
LVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBs
b2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLgotPGRpdiBpZD0i
b3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1m
aWxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQyZDE3MS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtY2FsbHMtaW4t
aW5jbHVkZWQtZmlsZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBA
Ci1UaGlzIHBhZ2UgY2FsbHMgdGhlIHByb2ZpbGVyIGZyb20gdGhlIGluY2x1ZGVkIGZpbGUuIAot
Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4g
bG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJZiB0aGVyZSBp
cyBhIHByb2ZpbGUgdGhhdCBpcyBzdWZmaWNpZW50IGZvciB0aGlzIHRlc3QuCi0KLVByb2ZpbGUg
dGl0bGU6IFByb2ZpbGUgY2FsbCBpbiBpbmNsdWRlZCBmaWxlCi1UaHJlYWRfMSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgc3RhcnRQcm9maWxlIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
IChsaW5lIDQyOjIyKQotICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAo
bGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJv
ZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3Byb2ZpbGUtY2FsbHMtaW4taW5jbHVkZWQtZmlsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhZjBmOGYyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwyOCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIHN0YXJ0UHJvZmls
ZSgiUHJvZmlsZSBjYWxsIGluIGluY2x1ZGVkIGZpbGUiKTsKLSAgICBlbmRUZXN0KCk7Ci19Ci08
L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBh
Z2UgY2FsbHMgdGhlIHByb2ZpbGVyIGZyb20gdGhlIGluY2x1ZGVkIGZpbGUuCi08YnI+Ci08YnI+
Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4g
bG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIElmIHRoZXJl
IGlzIGEgcHJvZmlsZSB0aGF0IGlzIHN1ZmZpY2llbnQgZm9yIHRoaXMgdGVzdC4KLTxkaXYgaWQ9
Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1u
by10aXRsZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4ZGFj
ZGIuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgt
bm8tdGl0bGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGhp
cyBwYWdlIGNyZWF0ZXMgYSBwcm9maWxlIHdpdGhvdXQgYSB0aXRsZS4gCi0KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIElmIHRoZXJlIGlzIGEgcHJvZmlsZSB0
aGF0IGlzIHN1ZmZpY2llbnQgZm9yIHRoaXMgdGVzdC4KLQotUHJvZmlsZSB0aXRsZTogCi1UaHJl
YWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHByb2ZpbGUtd2l0aC1uby10
aXRsZS5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlYTUyNWJjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
cHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwot
Ci1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgpOwotICAgIGVu
ZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVz
dCgpIj4KLVRoaXMgcGFnZSBjcmVhdGVzIGEgcHJvZmlsZSB3aXRob3V0IGEgdGl0bGUuCi08YnI+
Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2Vy
IHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIElm
IHRoZXJlIGlzIGEgcHJvZmlsZSB0aGF0IGlzIHN1ZmZpY2llbnQgZm9yIHRoaXMgdGVzdC4KLTxk
aXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08c2NyaXB0PgotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9t
LWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5n
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20t
YS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3Rpbmct
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTZhMmIzLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0
ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmctZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNj
cmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVzdGVkIGxvY2F0aW9uIGJ1dCBz
dG9wcyB0aGUgcHJvZmlsZXIgZnJvbSBhIGRpZmZlcmVudCBsZXZlbCBvZiBuZXN0aW5nLiAKLQot
VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxv
YWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2Zp
bGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1Ro
ZVByb2ZpbGVyKCkuCi0KLVByb2ZpbGUgdGl0bGU6IFByb2ZpbGluZyBGcm9tIEEgTmVzdGVkIExv
Y2F0aW9uIEJ1dCBTdG9wIFByb2ZpbGluZyBPdXRzaWRlIFRoZSBOZXN0aW5nCi1UaHJlYWRfMSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgZnVuY3Rpb25XaWNoU3RhcnRzVGhlUHJvZmlsZXIgcHJv
ZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUt
dGhlLW5lc3RpbmcuaHRtbCAobGluZSAxNjozOSkKLSAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXBy
b2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXByb2ZpbGluZy1v
dXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4
YjVmNzcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmct
ZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVz
dGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRM
ZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRU
ZXN0KCkKLXsKLSAgICBmdW5jdGlvbldpY2hTdGFydHNUaGVQcm9maWxlcigpOwotICAgIGVuZFRl
c3QoKTsKLX0KLQotZnVuY3Rpb24gZnVuY3Rpb25XaWNoU3RhcnRzVGhlUHJvZmlsZXIoKQotewot
ICAgIGNvbnNvbGUucHJvZmlsZSgiUHJvZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24gQnV0
IFN0b3AgUHJvZmlsaW5nIE91dHNpZGUgVGhlIE5lc3RpbmciKTsKLQotICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDAwMDA7IGkrKykKLSAgICAgICAgdmFyIGIgPSBpICsgMjsKLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdl
J3MgSmF2YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVzdGVkIGxvY2F0
aW9uIGJ1dCBzdG9wcyB0aGUgcHJvZmlsZXIKLWZyb20gYSBkaWZmZXJlbnQgbGV2ZWwgb2YgbmVz
dGluZy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4g
dGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBw
cm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmdW5jdGlv
bldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDg0MjgzYi4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxv
Y2F0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMg
cGFnZSdzIEphdmFTY3JpcHQgc3RhcnRzIHByb2ZpbGluZyBmcm9tIHdpdGhpbiBhIG5lc3RlZCBs
b2NhdGlvbi4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJy
b3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUu
IEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25XaWNoU3Rh
cnRzQW5kU3RvcHNUaGVQcm9maWxlcigpLgotCi1Qcm9maWxlIHRpdGxlOiBQcm9maWxpbmcgRnJv
bSBBIE5lc3RlZCBMb2NhdGlvbgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIGZ1
bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIgcHJvZmlsaW5nLWZyb20tYS1uZXN0
ZWQtbG9jYXRpb24uaHRtbCAobGluZSAxNTo0NykKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9u
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4MWZkMDMuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2Nh
dGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRM
ZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRU
ZXN0KCkKLXsKLSAgICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCk7Ci19
Ci0KLWZ1bmN0aW9uIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKQotewot
ICAgIGNvbnNvbGUucHJvZmlsZSgiUHJvZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24iKTsK
LQotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDA7IGkrKykKLSAgICAgICAgdmFyIGIg
PSBpICsgMjsKLQotICAgIGVuZFRlc3QoKTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxi
b2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBzdGFydHMg
cHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVzdGVkIGxvY2F0aW9uLgotPGJyPgotPGJyPgotVG8g
cnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQg
dGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmls
ZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhl
UHJvZmlsZXIoKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci1mcmFt
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9yZXNvdXJjZXMvb3RoZXItZnJhbWUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTgzNmZiZi4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci1mcmFtZS5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1m
dW5jdGlvbiBmdW5jdGlvbkluT3RoZXJGcmFtZSgpIHsKLSAgICAgICAgcmV0dXJuIHBhcmVudC5m
dW5jdGlvbkluUGFyZW50RnJhbWUoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keT4K
LVRoaXMgZmlsZSBjb250YWlucyBzb21lIEphdmFTY3JpcHQuCi08L2JvZHk+Ci08L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9yZXNvdXJjZXMvb3RoZXItd2luZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3Jlc291cmNlcy9vdGhlci13aW5kb3cuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzQ4NDFhOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3Jlc291cmNlcy9vdGhlci13aW5kb3cuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBpbnRlcmVzdGluZ0tub3dsZWRnZTsKLWZ1
bmN0aW9uIG90aGVyVGVzdFN0YXJ0KCkKLXsKLSAgICBpbnRlcmVzdGluZ0tub3dsZWRnZSA9IGlz
RXF1YWxUb0ZpdmUoMyk7Ci0gICAgb3BlbmVyLndpbmRvd0ZpbmlzaGVkTG9hZGluZygpOwotfQot
Ci1mdW5jdGlvbiBmdW5jdGlvbkluT3RoZXJXaW5kb3coKSB7Ci0gICAgICAgIHJldHVybiBpbnRl
cmVzdGluZ0tub3dsZWRnZTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9
Im90aGVyVGVzdFN0YXJ0KCkiPgotVGhpcyBmaWxlIGV4ZWN1dGVzIHNvbWUgSmF2YVNjcmlwdC4K
LTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9yZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYzNTQyZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cworKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAKLWZ1bmN0aW9uIGVuZFRlc3QoKSB7Ci0g
ICAgY29uc29sZS5wcm9maWxlRW5kKCk7Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGlt
ZSgpOwotCi0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKLX0KLQotZnVuY3Rpb24gaW5zZXJ0R2l2ZW5UZXh0KHRleHQpIHsKLSAgICB2
YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwotICAgIHBhcmFncmFw
aC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7Ci0gICAgcGFyYWdy
YXBoLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7IC8vIEhpZGRlbiBzaW5jZSB0aGlzIGlzbid0IGlt
cG9ydGFudCBpbiB0aGUgdGVzdCByZXN1bHRzLgotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoIm91dHB1dCIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7Ci19Ci0KLWZ1bmN0aW9uIGluc2Vy
dE5ld1RleHQoKSB7Ci0gICAgdmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InAiKTsKLSAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
IlRoaXMgaXMgaW5zZXJ0ZWQgVGV4dCIpKTsKLSAgICBwYXJhZ3JhcGguc3R5bGUuZGlzcGxheSA9
ICJub25lIjsgLy8gSGlkZGVuIHNpbmNlIHRoaXMgaXNuJ3QgaW1wb3J0YW50IGluIHRoZSB0ZXN0
IHJlc3VsdHMuCi0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBwZW5k
Q2hpbGQocGFyYWdyYXBoKTsKLX0KLQotZnVuY3Rpb24gYXJyYXlPcGVyYXRvckZ1bmN0aW9uKGFy
cmF5RWxlbWVudCkgewotICAgIHJldHVybiBhcnJheUVsZW1lbnQgKyA1OwotfQotCi12YXIgYW5v
bnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbiAoKSB7IGluc2VydE5ld1RleHQoKTsgfTsKLXZhciBh
bm90aGVyQW5vbnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbiAoKSB7IGluc2VydEdpdmVuVGV4dCgi
QW5vdGhlciBhbm9ueW1vdXMgZnVuY3Rpb24gd2FzIGNhbGxlZC4iKSB9OwotCi1mdW5jdGlvbiBp
bnRlcm1lZGlhcnlGdW5jdGlvbigpCi17Ci0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLX0KLQot
ZnVuY3Rpb24gaXNFcXVhbFRvRml2ZShpbnB1dCkKLXsKLSAgICByZXR1cm4gaW5wdXQgPT09IDU7
Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0UHJvZmlsZSh0aXRsZSkKLXsKLSAgICBjb25zb2xlLnByb2Zp
bGUodGl0bGUpOwotfQotCi1mdW5jdGlvbiBwcmludEhlYXZ5UHJvZmlsZXNEYXRhV2l0aG91dFRp
bWUoKQotewotICAgIHZhciBwcmVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJl
Iik7Ci0gICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
XG4iKSk7Ci0KLSAgICB2YXIgcHJvZmlsZXMgPSBpbnRlcm5hbHMuY29uc29sZVByb2ZpbGVzOwot
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZmlsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAg
cHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUHJvZmlsZSB0
aXRsZTogIiArIHByb2ZpbGVzW2ldLnRpdGxlICsgIlxuIikpOwotICAgICAgICBwcmludFByb2Zp
bGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgcHJvZmlsZXNbaV0uaGVhdnlQcm9maWxlLnJv
b3ROb2RlLCAwKTsKLSAgICAgICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgiXG4iKSk7Ci0gICAgfQotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Im91dHB1dCIpLmFwcGVuZENoaWxkKHByZUVsZW1lbnQpOwotfQotCi1mdW5jdGlvbiBwcmludFBy
b2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCkKLXsKLSAgICB2YXIgcHJlRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInByZSIpOwotICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoIlxuIikpOwotCi0gICAgdmFyIHByb2ZpbGVzID0gaW50ZXJuYWxz
LmNvbnNvbGVQcm9maWxlczsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2ZpbGVzLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgIHByZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIlByb2ZpbGUgdGl0bGU6ICIgKyBwcm9maWxlc1tpXS50aXRsZSArICJcbiIpKTsK
LSAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lKHByZUVsZW1lbnQsIHByb2ZpbGVz
W2ldLnJvb3ROb2RlLCAwKTsKLSAgICAgICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiXG4iKSk7Ci0gICAgfQotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm91dHB1dCIpLmFwcGVuZENoaWxkKHByZUVsZW1lbnQpOwotfQotCi1mdW5jdGlvbiBw
cmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgbm9kZSwgaW5kZW50TGV2ZWwp
Ci17Ci0gICAgdmFyIHNwYWNlID0gIiI7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmRlbnRM
ZXZlbDsgKytpKQotICAgICAgICBzcGFjZSArPSAiICAgIgotCi0gICAgKytpbmRlbnRMZXZlbDsK
LQotICAgIHZhciBzdHJpcHBlZFVSTCA9IG5vZGUudXJsLnJlcGxhY2UoLy4qXC8vLCAiIik7Ci0g
ICAgaWYgKCFzdHJpcHBlZFVSTCkKLSAgICAgICAgc3RyaXBwZWRVUkwgPSAiKG5vIGZpbGUpIjsK
LQotICAgIHZhciBsaW5lID0gc3BhY2UgKyBub2RlLmZ1bmN0aW9uTmFtZSArICIgIiArIHN0cmlw
cGVkVVJMICsgIiAobGluZSAiICsgbm9kZS5saW5lTnVtYmVyICsgIjoiICsgbm9kZS5jb2x1bW5O
dW1iZXIgKyAiKVxuIjsKLSAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKGxpbmUpKTsKLQotICAgIHZhciBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW4oKTsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKQotICAgICAgICBw
cmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUocHJlRWxlbWVudCwgY2hpbGRyZW5baV0sIGluZGVu
dExldmVsKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxl
LWV2ZW50LWNhbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1w
bGUtZXZlbnQtY2FsbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGM0Y2VlM2QuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUt
ZXZlbnQtY2FsbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1U
aGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBhbiBvbmxvYWQgZXZlbnQuIAotCi1UbyBydW4gdGhp
cyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2Vi
SW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBUaGVyZSBzaG91bGQgYmUgb25seSBv
bmUgb25sb2FkIG5vZGUuCi0KLVByb2ZpbGUgdGl0bGU6IEEgc2ltcGxlIHByb2ZpbGUgdGVzdCB3
aGVyZSBhbiBldmVudCBoYXBwZW5zLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
IHN0YXJ0VGVzdCBzaW1wbGUtZXZlbnQtY2FsbC5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5k
VGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDRiZGI1MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwyNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFi
bGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmls
ZSgiQSBzaW1wbGUgcHJvZmlsZSB0ZXN0IHdoZXJlIGFuIGV2ZW50IGhhcHBlbnMuIik7Ci0gICAg
Ly8gRklYTUU6IHRoaXMgaXMgbm90IHRlc3Rpbmcgd2hhdCBpdCBzYXlzIGl0IGlzLgotICAgIGVu
ZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVz
dCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgaGFzIGFuIG9ubG9hZCBldmVudC4KLTxicj4K
LTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgVGhl
cmUgc2hvdWxkIGJlIG9ubHkgb25lIG9ubG9hZCBub2RlLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4YmMzOGE1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBhbmQg
c3RvcHMgcHJvZmlsaW5nIGZyb20gdGhlIHNhbWUgc2NvcGUuIAotCi1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBUaGVyZSBzaG91bGQgYmUgbm8gZnVuY3Rpb24g
Y2FsbHMgYmV0d2VlbiBjb25zb2xlLnByb2ZpbGUoKSBhbmQgY29uc29sZS5wcm9maWxlRW5kKCku
Ci0KLVByb2ZpbGUgdGl0bGU6IEEgc2ltcGxlIHByb2ZpbGUgdGVzdCB3aGVyZSBubyBzY29wZSBj
aGFnbmVzCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgZnVuY3Rpb25XaWNoU3Rh
cnRzQW5kU3RvcHNUaGVQcm9maWxlciBzaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwgKGxpbmUg
MTU6NDcpCi0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5n
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEzNjJjODMuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewot
ICAgIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKTsKLX0KLQotZnVuY3Rp
b24gZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpCi17Ci0gICAgY29uc29s
ZS5wcm9maWxlKCJBIHNpbXBsZSBwcm9maWxlIHRlc3Qgd2hlcmUgbm8gc2NvcGUgY2hhZ25lcyIp
OwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgaSsrKQotICAgICAgICB2YXIg
YiA9IGkgKyAyOwotCi0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOwotCi0g
ICAgY29uc29sZS5wcm9maWxlRW5kKCk7Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGlt
ZSgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCki
PgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBzdGFydHMgYW5kIHN0b3BzIHByb2ZpbGluZyBmcm9t
IHRoZSBzYW1lIHNjb3BlLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwg
bG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9v
ayBhdAotdGhlIHByb2ZpbGUuICBUaGVyZSBzaG91bGQgYmUgbm8gZnVuY3Rpb24gY2FsbHMgYmV0
d2VlbiBjb25zb2xlLnByb2ZpbGUoKSBhbmQKLWNvbnNvbGUucHJvZmlsZUVuZCgpLgotPGRpdiBp
ZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1w
cm9maWxlci1tdWx0aXBsZS10aW1lcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDI4MWU0YmYuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxz
IGNvbnNvbGUucHJvZmlsZSgpIGFuZCBjb25zb2xlLnByb2ZpbGVFbmQoKSB0aHJlZSB0aW1lcy4g
Ci0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBw
cm9maWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJvZmlsZXMuCi0KLVByb2ZpbGUgdGl0bGU6
IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgZmlyc3QgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUt
dGltZXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4
dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAg
IGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRl
eHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMToxNykKLQotCi1Qcm9maWxlIHRpdGxlOiBTdGFydCB0aGUgcHJvZmlsZXIgdGhlIGZpcnN0
IHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0
LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAg
ICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAy
OTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
IGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLVByb2ZpbGUgdGl0bGU6IFN0
YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25kIHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRp
bWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBj
cmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0
Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDE6MTcpCi0KLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBmaXJzdCB0
aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBzdGFydC1h
bmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1sIChsaW5lIDEwOjE5KQotICAgICAg
YW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6
MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
IChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBn
ZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi1Qcm9maWxlIHRpdGxlOiBTdGFy
dCB0aGUgcHJvZmlsZXIgdGhlIHNlY29uZCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgIHN0YXJ0VGVzdCBzdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1l
cy5odG1sIChsaW5lIDEwOjE5KQotICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHBy
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3Jl
YXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5v
ZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAx
OjE3KQotCi1Qcm9maWxlIHRpdGxlOiBTdGFydCB0aGUgcHJvZmlsZXIgdGhlIHRoaXJkIHRpbWUu
Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0LWFuZC1z
dG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9u
eW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkK
LSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVs
ZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1t
dWx0aXBsZS10aW1lcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjlhNzYz
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3At
cHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAg
QEAKLSA8aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQg
dGhlIHByb2ZpbGVyIHRoZSBmaXJzdCB0aW1lLiIpOwotICAgIGFub255bW91c0Z1bmN0aW9uKCk7
Ci0gICAgZW5kVGVzdCgpOwotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQgdGhlIHByb2ZpbGVy
IHRoZSBzZWNvbmQgdGltZS4iKTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGVuZFRl
c3QoKTsKLSAgICBjb25zb2xlLnByb2ZpbGUoIlN0YXJ0IHRoZSBwcm9maWxlciB0aGUgdGhpcmQg
dGltZS4iKTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGVuZFRlc3QoKTsKLX0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFn
ZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxlKCkgYW5kIGNvbnNvbGUucHJvZmls
ZUVuZCgpIHRocmVlIHRpbWVzLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZXIgdGhlcmUgc2hvdWxkIGJlIHRo
cmVlIHByb2ZpbGVzLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJv
ZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9u
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2E4ZjVhNi4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2Zp
bGluZy1pbi10aGUtc2FtZS1mdW5jdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxMCArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJv
bSB3aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24uIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5
LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBs
b29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxs
IHRvIGZ1bmN0aW9uV2ljaFN0b3BzVGhlUHJvZmlsZXIoKS4KLQotUHJvZmlsZSB0aXRsZTogUHJv
ZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAw
OjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1
bmN0aW9uLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBmdW5jdGlvbldpY2hTdG9wc1RoZVByb2Zp
bGVyIHN0YXJ0LWFuZC1zdG9wLXByb2ZpbGluZy1pbi10aGUtc2FtZS1mdW5jdGlvbi5odG1sIChs
aW5lIDE3OjM4KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3Rh
cnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGluZy1pbi10aGUtc2FtZS1m
dW5jdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZWMwNzMxLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmls
aW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUp
OwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiUHJvZmls
aW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24iKTsKLQotICAgIGZ1bmN0aW9uV2ljaFN0b3BzVGhl
UHJvZmlsZXIoKTsKLX0KLQotZnVuY3Rpb24gZnVuY3Rpb25XaWNoU3RvcHNUaGVQcm9maWxlcigp
Ci17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgaSsrKQotICAgICAgICB2YXIg
YiA9IGkgKyAyOwotCi0gICAgY29uc29sZS5wcm9maWxlRW5kKCJQcm9maWxpbmcgRnJvbSBBIE5l
c3RlZCBMb2NhdGlvbiIpOwotICAgIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUoKTsKLX0K
LQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhp
cyBwYWdlJ3MgSmF2YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVzdGVk
IGxvY2F0aW9uLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBp
dCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAot
dGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZ1
bmN0aW9uV2ljaFN0b3BzVGhlUHJvZmlsZXIoKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0
YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmctZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZGJjMTJkLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmctZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2Ny
aXB0IGNhbGxzIGNvbnNvbGUucHJvZmlsZSgpIGJ1dCBub3QgY29uc29sZS5wcm9maWxlRW5kKCku
IAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRo
ZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBZb3Ugc2hv
dWxkIHNlZSB0aGUgcHJvZmlsZSBydW5uaW5nICh3aGVuIHRoYXQgZmVhdHVyZSBpcyBpbXBsZW1l
bnRlZCA2MDYwNTU2KS4gVGhlbiBuYXZpZ2F0ZSB0byBhbm90aGVyIHBhZ2UgYW5kIGNoZWNrIHRo
ZSBXZWJJbnNwZWN0b3IgYWdhaW4uIFNhZmFyaSBzaG91bGQgbm90IGhhdmUgY3Jhc2hlZCBhbmQg
dGhlIEluc3BlY3RvciBzaG91bGQgbm90IHNob3cgYSBwcm9maWxlICh1bmxlc3Mgd2UgYWxsb3cg
Y3Jvc3MtbG9hZCBwcm9maWxpbmcgaW4gdGhlIGZ1dHVyZSA1OTUxNDc4ICYgNTk1NDkxMikuCi0K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1z
dG9wLXByb2ZpbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQt
ZG9udC1zdG9wLXByb2ZpbGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
MTM2ZDczLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0
LWRvbnQtc3RvcC1wcm9maWxpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAK
LSA8aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwot
Ci1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQgdGhl
IHByb2ZpbGVyIGJ1dCBkb24ndCBzdG9wIGl0LiIpOwotICAgIGFub255bW91c0Z1bmN0aW9uKCk7
Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlw
dCBjYWxscyBjb25zb2xlLnByb2ZpbGUoKSBidXQgbm90IGNvbnNvbGUucHJvZmlsZUVuZCgpLgot
PGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJv
d3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUu
ICBZb3Ugc2hvdWxkIHNlZSB0aGUgcHJvZmlsZSBydW5uaW5nICh3aGVuIHRoYXQgZmVhdHVyZSBp
cyBpbXBsZW1lbnRlZCA2MDYwNTU2KS4KLVRoZW4gbmF2aWdhdGUgdG8gYW5vdGhlciBwYWdlIGFu
ZCBjaGVjayB0aGUgV2ViSW5zcGVjdG9yIGFnYWluLiBTYWZhcmkgc2hvdWxkIG5vdAotaGF2ZSBj
cmFzaGVkIGFuZCB0aGUgSW5zcGVjdG9yIHNob3VsZCBub3Qgc2hvdyBhIHByb2ZpbGUgKHVubGVz
cyB3ZSBhbGxvdyBjcm9zcy1sb2FkCi1wcm9maWxpbmcgaW4gdGhlIGZ1dHVyZSA1OTUxNDc4ICZh
bXA7IDU5NTQ5MTIpLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0
ZXItc2V0VGltZW91dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0
b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiMzI1ZGE0Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0b3Bz
IHByb2ZpbGluZyBmcm9tIGEgdGltZW91dC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIGVuZFByb2ZpbGUoKSBzaG91bGQgbm90
IGJlIGEgY2hpbGQgb2YgKHByb2dyYW0pLgotCi1Qcm9maWxlIHRpdGxlOiBTdG9wIHByb2ZpbGlu
ZyBmcm9tIGEgdGltZW91dAotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIG9ubG9h
ZCBzdG9wLXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0bWwgKGxpbmUgMjE6NDQpCi0gICAg
ICBzdGFydFRlc3Qgc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sIChsaW5lIDEy
OjE5KQotICAgICAgICAgc2V0VGltZW91dCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgKHByb2dy
YW0pIHN0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbCAobGluZSAxOjEpCi0gICAg
ICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRl
ci1zZXRUaW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmls
aW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MTlmZDU4ZS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtcHJv
ZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI5ICswLDAg
QEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKLX0KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRM
ZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRU
ZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIlN0b3AgcHJvZmlsaW5nIGZyb20gYSB0aW1l
b3V0Iik7ICAgIAotICAgIHNldFRpbWVvdXQoImVuZFRlc3QoKSIsIDIwKTsKLX0KLQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3Mg
SmF2YVNjcmlwdCBzdG9wcyBwcm9maWxpbmcgZnJvbSBhIHRpbWVvdXQuCi08YnI+Ci08YnI+Ci1U
byBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9h
ZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9m
aWxlIGVuZFByb2ZpbGUoKSBzaG91bGQgbm90IGJlIGEgY2hpbGQgb2YgKHByb2dyYW0pLgotPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNhbGwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMDUwNDUuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2UgaGFz
IGFuIGFub255bW91cyBKYXZhU2NyaXB0IGZ1bmN0aW9uIHRoYXQgY2FsbHMgYnVpbHQtaW4gZnVu
Y3Rpb25zLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJv
d3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4g
VGhlcmUgc2hvdWxkIGJlIHR3byBub2RlcyBpbiB0aGUgcHJvZmlsZSwgYSAiKHByb2dyYW0pIiBu
b2RlIHdpdGggb25lIGNoaWxkIHRoYXQgaXMgInRlc3QiLgotCi1Qcm9maWxlIHRpdGxlOiBUZXN0
Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgKHByb2dyYW0pIChubyBmaWxlKSAo
bGluZSAxOjE2KQotICAgICAgdGVzdCBzdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sIChsaW5l
IDExOjE0KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC10
aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC10
aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTE2
YTE5YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3AtdGhlbi1m
dW5jdGlvbi1jYWxsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJu
YWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi12YXIgaiA9
IDA7Ci1mdW5jdGlvbiB0ZXN0KGxlbikgewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyAr
K2kpCi0gICAgICAgICsrajsKLX0KLQotZnVuY3Rpb24gdGVzdDIobGVuKSB7Ci0gICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBsZW47ICsraSkKLSAgICAgICAgLS1qOwotfQotCi1mdW5jdGlvbiBzdGFy
dFRlc3QoKQotewotICAgIHZhciBzY3JpcHQgPSAiY29uc29sZS5wcm9maWxlKCdUZXN0Jyk7XG4i
OwotICAgIHNjcmlwdCArPSAidGVzdCgxMDAwKTtcbiI7Ci0gICAgc2NyaXB0ICs9ICJjb25zb2xl
LnByb2ZpbGVFbmQoJ1Rlc3QnKTtcbiI7Ci0gICAgc2NyaXB0ICs9ICJ0ZXN0MigxMDAwKTtcbiI7
Ci0KLSAgICBldmFsKHNjcmlwdCk7Ci0KLSAgICBwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1l
KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+
Ci1UaGlzIHBhZ2UgaGFzIGFuIGFub255bW91cyBKYXZhU2NyaXB0IGZ1bmN0aW9uIHRoYXQgY2Fs
bHMgYnVpbHQtaW4gZnVuY3Rpb25zLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdAotdGhlIHByb2ZpbGUuIFRoZXJlIHNob3VsZCBiZSB0d28gbm9kZXMgaW4gdGhl
IHByb2ZpbGUsIGEgIihwcm9ncmFtKSIgbm9kZSB3aXRoIG9uZSBjaGlsZCB0aGF0IGlzICJ0ZXN0
Ii4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJv
bS1ldmFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA3Yzll
YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlv
bi1mcm9tLWV2YWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAot
Q09OU09MRSBNRVNTQUdFOiBUZXN0IGV4Y2VwdGlvbi4KLVRoaXMgcGFnZSB0aHJvd3MgYW4gZXhj
ZXB0aW9uIGZyb20gd2l0aGluIGV2YWwoKS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQgdGhlIHByb2ZpbGUuIFRoZSBwcm9maWxlciBzaG91bGQgbm90IGNyYXNoIGFuZCBzdGls
bCBzaG93IHRoZSBzdGFjayB1bmRlciBpbnNlcnRuZXdUZXh0KCkuCi0KLVByb2ZpbGUgdGl0bGU6
IFRocm93IHdpdGhpbiBhbiBldmFsLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDApCi0gICAo
cHJvZ3JhbSkgdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sIChsaW5lIDE5KQotICAgICAg
KHByb2dyYW0pIHRocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbCAobGluZSAxMCkKLSAgICAg
ICAgIChwcm9ncmFtKSB0aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwgKGxpbmUgNCkKLSAg
ICAgICAgIChwcm9ncmFtKSB0aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwgKGxpbmUgMTkp
Ci0gICAgICAgICAgICBldmFsIChubyBmaWxlKSAobGluZSAwKQotICAgICAgICAgICAgICAgKHBy
b2dyYW0pIChubyBmaWxlKSAobGluZSAxKQotICAgb25sb2FkIHRocm93LWV4Y2VwdGlvbi1mcm9t
LWV2YWwuaHRtbCAobGluZSAyNCkKLSAgICAgIHN0YXJ0VGVzdCB0aHJvdy1leGNlcHRpb24tZnJv
bS1ldmFsLmh0bWwgKGxpbmUgMTMpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3KQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAo
bm8gZmlsZSkgKGxpbmUgMCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAo
bGluZSAwKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDApCi0gICAg
ICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMCkKLSAgICAgICAgIGVuZFRl
c3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMSkKLQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRt
bC1kaXNhYmxlZCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZy
b20tZXZhbC5odG1sLWRpc2FibGVkCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2Vh
YzlhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0
aW9uLWZyb20tZXZhbC5odG1sLWRpc2FibGVkCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCh0cnVlKTsKLQotY29uc29sZS5wcm9maWxlKCJUaHJvdyB3aXRoaW4gYW4gZXZhbC4iKTsKLQot
ZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBpbnNlcnROZXdUZXh0KCk7Ci0KLSAgICBlbmRU
ZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTxzY3JpcHQ+Ci1ldmFsKCJ0aHJvdygnVGVzdCBleGNlcHRp
b24uJyk7Iik7Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3Qo
KSI+Ci1UaGlzIHBhZ2UgdGhyb3dzIGFuIGV4Y2VwdGlvbiBmcm9tIHdpdGhpbiBldmFsKCkuCi08
YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93
c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4g
IFRoZSBwcm9maWxlciBzaG91bGQgbm90IGNyYXNoIGFuZCBzdGlsbCBzaG93IHRoZSBzdGFjayB1
bmRlcgotaW5zZXJ0bmV3VGV4dCgpLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1
dGlvbi1jb250ZXh0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3R3
by1leGVjdXRpb24tY29udGV4dHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMWU5ZGQxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
dHdvLWV4ZWN1dGlvbi1jb250ZXh0cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
MSArMCwwIEBACi1UaGlzIHBhZ2UgaGFzIHR3byBzY3JpcHQgdGFncyB3aXRoIHNvbWUgc2ltcGxl
IEphdmFTY3JpcHQuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRo
ZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9m
aWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgdHdvIChwcm9ncmFtKSBlbGVtZW50
cy4KLQotUHJvZmlsZSB0aXRsZTogVHdvIEV4ZWN1dGlvbiBDb250ZXh0cwotVGhyZWFkXzEgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCB0d28tZXhlY3V0aW9uLWNvbnRleHRzLmh0
bWwgKGxpbmUgMTA6MTkpCi0gICAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbiB0d28tZXhlY3V0aW9u
LWNvbnRleHRzLmh0bWwgKGxpbmUgMTc6MzApCi0gICAgICAgICB0ZXN0RW5kIHR3by1leGVjdXRp
b24tY29udGV4dHMuaHRtbCAobGluZSAzMzoxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3R3by1leGVjdXRpb24tY29udGV4dHMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA2ODUxNjU1Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MzggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUo
IlR3byBFeGVjdXRpb24gQ29udGV4dHMiKTsKLQotICAgIGludGVybWVkaWFyeUZ1bmN0aW9uKCk7
Ci19Ci0KLWZ1bmN0aW9uIGludGVybWVkaWFyeUZ1bmN0aW9uKCkKLXsKLSAgICB0ZXN0RW5kKCk7
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1U
aGlzIHBhZ2UgaGFzIHR3byBzY3JpcHQgdGFncyB3aXRoIHNvbWUgc2ltcGxlIEphdmFTY3JpcHQu
Ci08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBi
cm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmls
ZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSB0d28gKHByb2dyYW0pIGVsZW1lbnRz
LgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0
ZXN0RW5kKCkgewotICAgIGNvbnNvbGUucHJvZmlsZUVuZCgpOwotICAgIHByaW50UHJvZmlsZXNE
YXRhV2l0aG91dFRpbWUoKTsKLX0KLTwvc2NyaXB0PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVpbHQt
aW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNl
ci1kZWZpbmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2Y2U1NTEuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVpbHQt
aW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAK
LVRoaXMgcGFnZSBoYXMgSmF2YVNjcmlwdCB0aGF0IGNhbGxzIGJ1aWx0LWluIGZ1bmN0aW9ucy4g
Ci0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBw
cm9maWxlIHRoZXJlIHNob3VsZCBiZSBjYWxscyB0byBjcmVhdGVFbGVtZW50KCkgY3JlYXRlVGV4
dE5vZGUoKSBhcHBlbmRDaGlsZCgpIGFuZCB0ZXN0RW5kKCksIGFtb25nIG90aGVycy4KLVRoaXMg
aXMgaW5zZXJ0ZWQgVGV4dAotCi0KLVByb2ZpbGUgdGl0bGU6IFVzZXIgZGVmaW5lZCBmdW5jdGlv
biBjYWxsZXMgYnVpbHQtaW4gZnVuY3Rpb25zCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgc3RhcnRUZXN0IHVzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5j
dGlvbnMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZ2V0RWxlbWVudEJ5SWQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3VzZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNhbGxz
LWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
NzUyN2I3Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1kZWZp
bmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5k
b3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnBy
b2ZpbGUoIlVzZXIgZGVmaW5lZCBmdW5jdGlvbiBjYWxsZXMgYnVpbHQtaW4gZnVuY3Rpb25zIik7
Ci0KLSAgICB2YXIgbmV3UCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKLSAgICB2YXIg
dGV4dE5vZGUgPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJUaGlzIGlzIGluc2VydGVkIFRleHQi
KTsKLSAgICBuZXdQLmFwcGVuZENoaWxkKHRleHROb2RlKTsKLSAgICB2YXIgb3V0cHV0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpOwotICAgIG91dHB1dC5hcHBlbmRDaGlsZChu
ZXdQKTsKLSAgICAKLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIEphdmFTY3JpcHQgdGhhdCBj
YWxscyBidWlsdC1pbiBmdW5jdGlvbnMuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1h
bnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9y
IGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBi
ZSBjYWxscyB0byBjcmVhdGVFbGVtZW50KCkgY3JlYXRlVGV4dE5vZGUoKQotYXBwZW5kQ2hpbGQo
KSBhbmQgdGVzdEVuZCgpLCBhbW9uZyBvdGhlcnMuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci93
aW5kb3ctZG90LWV2YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci93
aW5kb3ctZG90LWV2YWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkY2U4OGRjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2luZG93
LWRvdC1ldmFsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRo
aXMgcGFnZSBoYXMgYSBjYWxsIHRvIHdpbmRvdy5ldmFsKCkuIAotCi1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQg
YmUgYSBjYWxsIHRvIGV2YWwoKS4KLQotUHJvZmlsZSB0aXRsZTogQ2FsbCB3aW5kb3cuZXZhbCgp
Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHdpbmRvdy1kb3Qt
ZXZhbC5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZXZhbEZ1bmN0aW9uIChubyBmaWxlKSAobGlu
ZSAxOjIyKQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci93aW5kb3ctZG90LWV2YWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODdhMmIzYy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAg
IGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQot
ZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkNhbGwgd2luZG93
LmV2YWwoKSIpOwotCi0gICAgZXZhbEZ1bmN0aW9uKCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08
L3NjcmlwdD4KLTxzY3JpcHQ+Ci13aW5kb3cuZXZhbCgiZnVuY3Rpb24gZXZhbEZ1bmN0aW9uKCkg
eyBpbnNlcnROZXdUZXh0KCk7IH0iKTsKLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgYSBjYWxsIHRvIHdpbmRvdy5ldmFsKCku
Ci08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBi
cm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmls
ZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZXZhbCgpLgotPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNDNmM2M5Ni4uNGVkMmFhZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEwMjEsOSArMTAyMSw2IEBA
IHdlYmtpdC5vcmcvYi8xNDIxNTYgY3NzMy9zaGFwZXMvc3BlYy1leGFtcGxlcy9zaGFwZS1vdXRz
aWRlLTAxMS5odG1sIFsgRmFpbHVyZSBQCiB3ZWJraXQub3JnL2IvMTQyMTU2IGNzczMvc2hhcGVz
L3NwZWMtZXhhbXBsZXMvc2hhcGUtb3V0c2lkZS0wMTIuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiB3
ZWJraXQub3JnL2IvMTQyMTU2IGNzczMvc2hhcGVzL3NwZWMtZXhhbXBsZXMvc2hhcGUtb3V0c2lk
ZS0wMTkuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKLXdlYmtpdC5vcmcvYi8xNDIxNTcgZmFzdC9w
cm9maWxlci9kZWFkLXRpbWUuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCi13ZWJraXQub3JnL2IvMTQy
MTU3IGZhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sIFsg
RmFpbHVyZSBQYXNzIF0KLQogd2Via2l0Lm9yZy9iLzk1NTUxIGZhc3QvZm9ybXMvZGF0YWxpc3Qv
dXBkYXRlLXJhbmdlLXdpdGgtZGF0YWxpc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBd
CiAKIHdlYmtpdC5vcmcvYi8xMjk4MjAgc3ZnL2NsaXAtcGF0aC9tYXNrLW5lc3RlZC1jbGlwLXBh
dGgtMDA2LnN2ZyBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDdiZmFlYzAuLmVlNzA1ODkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjAxLDkgKzEyMDEsNiBAQCB3
ZWJraXQub3JnL2IvMTM2MDY2IGFuaW1hdGlvbnMvbWlzc2luZy1rZXlmcmFtZS1wcm9wZXJ0aWVz
Lmh0bWwgWyBDcmFzaCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMzYwNjYgYW5pbWF0aW9ucy9taXNz
aW5nLXZhbHVlcy1maXJzdC1rZXlmcmFtZS5odG1sIFsgQ3Jhc2ggUGFzcyBdCiB3ZWJraXQub3Jn
L2IvMTM2MDY2IGFuaW1hdGlvbnMvc3RhdGUtYXQtZW5kLWV2ZW50Lmh0bWwgWyBDcmFzaCBQYXNz
IF0KIAotd2Via2l0Lm9yZy9iLzEzNjA2NyBmYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1sIFsg
RmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzYwNjcgZmFzdC9wcm9maWxlci9zdG9wLXBy
b2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotCiB3ZWJraXQu
b3JnL2IvMTM2MDcwIGZhc3QvZm9ybXMvbGFiZWwvbGFiZWwtYmVjb21lcy12aXNpYmxlLXdoaWxl
LWNsaWNraW5nLW9uLWxhYmVsLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3JnL2Iv
MTM2NTgwIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rpb25zLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IGM4MDFlYTguLmMzYjc1ZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4OTIsNyArMTg5Miw2IEBA
IGZhc3QvcGFyc2VyL25lc3RlZC1mcmFnbWVudC1wYXJzZXItY3Jhc2guaHRtbCBbIEZhaWx1cmUg
XQogZmFzdC9wcmVsb2FkZXIvZG9jdW1lbnQtd3JpdGUtMi5odG1sIFsgRmFpbHVyZSBdCiBmYXN0
L3ByZWxvYWRlci9kb2N1bWVudC13cml0ZS5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L3ByZWxvYWRl
ci9pbWFnZS1zcmNzZXQuaHRtbCBbIEZhaWx1cmUgXQotZmFzdC9wcm9maWxlci9wcm9maWxpbmct
ZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVz
dGluZy5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L3JlZ2lvbnMvYWJzb2x1dGUtaW4tcmVsYXRpdmUt
b3ZlcmZsb3cuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogZmFzdC9yZWdpb25zL2Fic29sdXRl
LXBvcy1lbGVtLWluLXJlZ2lvbi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBmYXN0L3JlZ2lv
bnMvYW5pbWF0aW9uLWVsZW1lbnQtaW4tcmVnaW9uLWZsb3dlZC10by1vdGhlci10aHJlYWQuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTWFudWFsVGVzdHMvaW5zcGVjdG9y
L3Byb2ZpbGVyLXRlc3QtY2FsbC5odG1sIGIvTWFudWFsVGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
LXRlc3QtY2FsbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzJhMmU5Li4w
MDAwMDAwCi0tLSBhL01hbnVhbFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci10ZXN0LWNhbGwuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1jb25zb2xlLnByb2ZpbGUoIlVzaW5nIHRoZSBjYWxsKCkgbWV0aG9kIik7Ci1m
dW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIHZhciBteU9iamVjdCA9IG5ldyBmYWtlT2JqZWN0
KDEsIDIpOwotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gZmFrZU9iamVjdCAoeCwgeSkK
LXsKLSAgICB0aGlzLnggPSB4OwotICAgIGZha2VJbnRlcmlvckZ1bmN0aW9uLmNhbGwodGhpcywg
eSk7Ci19Ci0KLWZ1bmN0aW9uIGZha2VJbnRlcmlvckZ1bmN0aW9uKHkpCi17Ci0gICAgdGhpcy55
ID0geTsKLX0KLQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0
KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgYSBjYWxsIHRvIGNhbGwoKSBpbiBpdC4K
LTxicj4KLTxicj4KLVRvIHVzZSB0aGlzIHRlc3QsIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhl
IHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0KCkgd2l0aCBjYWxs
KCkgYXMKLWl0cyBjaGlsZCBhbmQgYSBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFzIGNhbGwoKSdz
IGNoaWxkLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL01hbnVhbFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci10ZXN0LW1hbnktY2FsbHMtaW4t
dGhlLXNhbWUtc2NvcGUuaHRtbCBiL01hbnVhbFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci10ZXN0
LW1hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZGE1YmU0Mi4uMDAwMDAwMAotLS0gYS9NYW51YWxUZXN0cy9pbnNwZWN0b3IvcHJv
ZmlsZXItdGVzdC1tYW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw0MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNl
cy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotY29u
c29sZS5wcm9maWxlKCJNYW55IENhbGxzIEluIFRoZSBTYW1lIFNjb3BlIik7Ci1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIGluc2VydE5ld1RleHQoKTsKLSAgICBpbnNlcnRHaXZlblRleHQo
IlRoaXMgd2FzIGEgdHJpdW1waC4iKTsKLSAgICBhcnJheU9wZXJhdG9yRnVuY3Rpb24oNyk7Ci0g
ICAgaW50ZXJtZWRpYXJ5RnVuY3Rpb24oKTsKLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAg
IGVuZCgpCi0gICAgZW5kVCgpOwotICAgIGVuZFQoKTsKLSAgICBlbmRUZXN0KCk7Ci19Ci0KLWZ1
bmN0aW9uIGVuZCgpCi17Ci0gICAgdmFyIHggPSAwOwotfQotCi1mdW5jdGlvbiBlbmRUKCkKLXsK
LSAgICB2YXIgeSA9IDE7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9
InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgaGFzIG1hbnkgZnVuY3Rpb24g
Y2FsbHMgaW4gdGhlIHNhbWUgc2NvcGUuCi08YnI+Ci08YnI+Ci1UbyB1c2UgdGhpcyB0ZXN0LCBs
b2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29r
IGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIG1hbnkgZnVuY3Rpb25zIHNob3VsZCBi
ZSB0aGUgY2hpbGRyZW4gb2Ygc3RhcnRUZXN0LgotVXNlIHRoZSBzb3J0aW5nIGNhcGFiaWxpdGVz
IHRvIG1ha2Ugc3VyZSB0aGUgc2ltaWxhcmx5IG5hbWVkIGZ1bmN0aW9ucyBhcmUgc29ydGVkCi1j
b3JyZWN0bHkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNQcm9maWxlclByaXZhdGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1Byb2ZpbGVyUHJpdmF0ZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFjMTEy
YWUuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Byb2ZpbGVyUHJp
dmF0ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJKU1Byb2ZpbGVyUHJpdmF0ZS5oIgotCi0jaW5jbHVkZSAiQVBJQ2FzdC5oIgotI2luY2x1
ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCi0jaW5jbHVkZSAiT3BhcXVlSlNTdHJpbmcuaCIKLQotdXNp
bmcgbmFtZXNwYWNlIEpTQzsKLQotdm9pZCBKU1N0YXJ0UHJvZmlsaW5nKEpTQ29udGV4dFJlZiBj
dHgsIEpTU3RyaW5nUmVmIHRpdGxlKQotewotICAgIC8vIFVzZSBhbiBpbmRlcGVuZGVudCBzdG9w
d2F0Y2ggZm9yIEFQSS1pbml0aWF0ZWQgcHJvZmlsaW5nLCBzaW5jZSB0aGUgdXNlciB3aWxsIGV4
cGVjdCBpdAotICAgIC8vIHRvIGJlIHJlbGF0aXZlIHRvIHdoZW4gdGhlaXIgY29tbWFuZCB3YXMg
aXNzdWVkLgotICAgIFJlZlB0cjxTdG9wd2F0Y2g+IHN0b3B3YXRjaCA9IFN0b3B3YXRjaDo6Y3Jl
YXRlKCk7Ci0gICAgc3RvcHdhdGNoLT5zdGFydCgpOwotICAgIExlZ2FjeVByb2ZpbGVyOjpwcm9m
aWxlcigpLT5zdGFydFByb2ZpbGluZyh0b0pTKGN0eCksIHRpdGxlLT5zdHJpbmcoKSwgc3RvcHdh
dGNoLnJlbGVhc2UoKSk7Ci19Ci0KLXZvaWQgSlNFbmRQcm9maWxpbmcoSlNDb250ZXh0UmVmIGN0
eCwgSlNTdHJpbmdSZWYgdGl0bGUpCi17Ci0gICAgRXhlY1N0YXRlKiBleGVjID0gdG9KUyhjdHgp
OwotICAgIExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IExlZ2FjeVByb2ZpbGVyOjpwcm9maWxl
cigpOwotICAgIHByb2ZpbGVyLT5zdG9wUHJvZmlsaW5nKGV4ZWMsIHRpdGxlLT5zdHJpbmcoKSk7
Ci19Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNQcm9maWxlclBy
aXZhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNQcm9maWxlclByaXZhdGUuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzRmMjZhMi4uMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTUHJvZmlsZXJQcml2YXRlLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaWZuZGVmIEpTUHJvZmlsZXJfaAotI2RlZmluZSBKU1Byb2ZpbGVyX2gKLQotI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgotCi0jaWZuZGVmIF9fY3BsdXNwbHVzCi0j
aW5jbHVkZSA8c3RkYm9vbC5oPgotI2VuZGlmCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJu
ICJDIiB7Ci0jZW5kaWYKLQotLyohCi1AZnVuY3Rpb24gSlNTdGFydFByb2ZpbGluZwotQGFic3Ry
YWN0IEVuYWJsZXMgdGhlIHByb2ZsZXIuCi1AcGFyYW0gY3R4IFRoZSBleGVjdXRpb24gY29udGV4
dCB0byB1c2UuCi1AcGFyYW0gdGl0bGUgVGhlIHRpdGxlIG9mIHRoZSBwcm9maWxlLgotQHJlc3Vs
dCBUaGUgcHJvZmlsZXIgaXMgdHVybmVkIG9uLgotKi8KLUpTX0VYUE9SVCB2b2lkIEpTU3RhcnRQ
cm9maWxpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgdGl0bGUpOwotCi0vKiEKLUBm
dW5jdGlvbiBKU0VuZFByb2ZpbGluZwotQGFic3RyYWN0IERpc2FibGVzIHRoZSBwcm9mbGVyLgot
QHBhcmFtIGN0eCBUaGUgZXhlY3V0aW9uIGNvbnRleHQgdG8gdXNlLgotQHBhcmFtIHRpdGxlIFRo
ZSB0aXRsZSBvZiB0aGUgcHJvZmlsZS4KLUByZXN1bHQgVGhlIHByb2ZpbGVyIGlzIHR1cm5lZCBv
ZmYuIElmIHRoZXJlIGlzIG5vIG5hbWUsIHRoZSBtb3N0IHJlY2VudGx5IHN0YXJ0ZWQKLSAgICAg
ICAgcHJvZmlsZSBpcyBzdG9wcGVkLiBJZiB0aGUgbmFtZSBkb2VzIG5vdCBtYXRjaCBhbnkgcHJv
ZmlsZSB0aGVuIG5vIHByb2ZpbGUKLSAgICAgICAgaXMgc3RvcHBlZC4KLSovCi1KU19FWFBPUlQg
dm9pZCBKU0VuZFByb2ZpbGluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiB0aXRsZSk7
Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBKU1Byb2ZpbGVy
X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBiZjUyMTgxLi42MTYy
MWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01NCw3ICs1NCw2IEBA
IHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgQVBJL0pTQ2xhc3NSZWYuY3BwCiAgICAg
QVBJL0pTQ29udGV4dFJlZi5jcHAKICAgICBBUEkvSlNPYmplY3RSZWYuY3BwCi0gICAgQVBJL0pT
UHJvZmlsZXJQcml2YXRlLmNwcAogICAgIEFQSS9KU1R5cGVkQXJyYXkuY3BwCiAgICAgQVBJL0pT
U2NyaXB0UmVmLmNwcAogICAgIEFQSS9KU1N0cmluZ1JlZi5jcHAKQEAgLTU4NiwxMCArNTg1LDYg
QEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBwYXJzZXIvU291cmNlUHJvdmlkZXJD
YWNoZS5jcHAKICAgICBwYXJzZXIvVmFyaWFibGVFbnZpcm9ubWVudC5jcHAKIAotICAgIHByb2Zp
bGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAotICAgIHByb2ZpbGVyL1Byb2ZpbGUuY3BwCi0gICAgcHJv
ZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAKLSAgICBwcm9maWxlci9Qcm9maWxlTm9kZS5jcHAK
ICAgICBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2RlLmNwcAogICAgIHByb2ZpbGVyL1Byb2ZpbGVy
Qnl0ZWNvZGVTZXF1ZW5jZS5jcHAKICAgICBwcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNlYzcyZmEuLmNkMzhkMjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyNyBAQAorMjAxNi0wNS0xMyAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBMZWdhY3lQcm9maWxl
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNTY1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSmF2YVNj
cmlwdENvcmUgbm93IHByb3ZpZGVzIGEgc2FtcGxpbmcgcHJvZmlsZXIgYW5kIGl0IGlzIGVuYWJs
ZWQKKyAgICAgICAgYnkgYWxsIHBvcnRzLiBXZWIgSW5zcGVjdG9yIHN3aXRjaGVkIG1vbnRocyBh
Z28gdG8gdXNpbmcgdGhlCisgICAgICAgIHNhbXBsaW5nIHByb2ZpbGVyIGFuZCBkaXNwbGF5aW5n
IGl0cyBkYXRhLiBSZW1vdmUgdGhlIGxlZ2FjeQorICAgICAgICBwcm9maWxlciwgYXMgaXQgaXMg
bm8gbG9uZ2VyIGJlaW5nIHVzZWQgYnkgYW55dGhpbmcgb3RoZXIgdGhlbgorICAgICAgICBjb25z
b2xlLnByb2ZpbGUgYW5kIHRlc3RzLiBXZSB3aWxsIHVwZGF0ZSBjb25zb2xlLnByb2ZpbGUncwor
ICAgICAgICBiZWhhdmlvciBzb29uIHRvIGhhdmUgbmV3IGJlaGF2aW9yIGFuZCB1c2UgdGhlIHNh
bXBsaW5nIGRhdGEuCisKKyAgICAgICAgKiBBUEkvSlNQcm9maWxlclByaXZhdGUuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIEFQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5oOiBSZW1vdmVkLgorICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb246Cisg
ICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaDoKKyAgICAgICAgKEpTQzo6Y29tcHV0
ZVVzZXNGb3JCeXRlY29kZU9mZnNldCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmNvbXB1dGVE
ZWZzRm9yQnl0ZWNvZGVPZmZzZXQpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVC
bG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHA6Cisg
ICAgICAgIChKU0M6OmdlbmVyYXRlVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayk6CisgICAgICAg
IChKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjp1bmxpbmtlZENvZGVCbG9ja0Zvcik6
CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaDoKKyAgICAg
ICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdENhbGwpOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdENhbGxWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVt
aXRDYWxsVmFyYXJnc0luVGFpbFBvc2l0aW9uKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRDb25zdHJ1Y3RWYXJhcmdzKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRDb25zdHJ1Y3QpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5oOgorICAgICAgICAoSlNDOjpDYWxsQXJndW1lbnRzOjpwcm9maWxlSG9va1JlZ2lz
dGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OnNob3VsZEVt
aXRQcm9maWxlSG9va3MpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwOgorICAgICAgICAoSlNDOjpDYWxsRnVuY3Rpb25DYWxsRG90Tm9kZTo6ZW1pdEJ5
dGVjb2RlKToKKyAgICAgICAgKEpTQzo6QXBwbHlGdW5jdGlvbkNhbGxEb3ROb2RlOjplbWl0Qnl0
ZWNvZGUpOgorICAgICAgICAoSlNDOjpDYWxsQXJndW1lbnRzOjpDYWxsQXJndW1lbnRzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAg
ICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6
ZXhlY3V0ZUVmZmVjdHMpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOiBE
ZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlND
OjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0Nsb2Ji
ZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOiBEZWxl
dGVkLgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdOb2Rl
VHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6
CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpz
YWZlVG9FeGVjdXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQz
Ml82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOiBE
ZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6IERlbGV0ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Oklu
amVjdGVkU2NyaXB0QmFzZTo6Y2FsbEZ1bmN0aW9uV2l0aEV2YWxFbmFibGVkKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbjoKKyAgICAgICAgKiBpbnRlcnByZXRl
ci9JbnRlcnByZXRlci5jcHA6CisgICAgICAgIChKU0M6OlVud2luZEZ1bmN0b3I6Om9wZXJhdG9y
KCkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZXhlY3V0ZSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlQ2FsbCk6IERlbGV0ZWQuCisg
ICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1h
aW5QYXNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJ
VE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHJvZmlsZV93aWxsX2Nh
bGwpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHJvZmlsZV9kaWRfY2Fs
bCk6IERlbGV0ZWQuCisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdF9vcF9wcm9maWxlX3dpbGxfY2FsbCk6IERlbGV0ZWQuCisgICAgICAg
IChKU0M6OkpJVDo6ZW1pdF9vcF9wcm9maWxlX2RpZF9jYWxsKTogRGVsZXRlZC4KKyAgICAgICAg
KiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoK
KyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNwcDoK
KyAgICAgICAgKEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5oOgorICAgICAgICAqIGxsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIHBhcnNlci9QYXJzZXJNb2Rlcy5oOgorICAgICAg
ICAqIHByb2ZpbGVyL0NhbGxJZGVudGlmaWVyLmg6IFJlbW92ZWQuCisgICAgICAgICogcHJvZmls
ZXIvTGVnYWN5UHJvZmlsZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHByb2ZpbGVyL0xlZ2Fj
eVByb2ZpbGVyLmg6IFJlbW92ZWQuCisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZS5jcHA6IFJl
bW92ZWQuCisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IHByb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHByb2Zp
bGVyL1Byb2ZpbGVHZW5lcmF0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwcm9maWxlci9Qcm9m
aWxlTm9kZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZU5vZGUuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmNwcDoK
KyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgICogcHJvZmls
ZXIvUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5oOgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNhY2hl
LmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUNhY2hlOjpnZXRHbG9iYWxDb2RlQmxvY2spOgorICAg
ICAgICAoSlNDOjpDb2RlQ2FjaGU6OmdldFByb2dyYW1Db2RlQmxvY2spOgorICAgICAgICAoSlND
OjpDb2RlQ2FjaGU6OmdldEV2YWxDb2RlQmxvY2spOgorICAgICAgICAoSlNDOjpDb2RlQ2FjaGU6
OmdldE1vZHVsZVByb2dyYW1Db2RlQmxvY2spOgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNhY2hl
Lmg6CisgICAgICAgICogcnVudGltZS9FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6U2Ny
aXB0RXhlY3V0YWJsZTo6bmV3Q29kZUJsb2NrRm9yKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xv
YmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVByb2dy
YW1Db2RlQmxvY2spOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6Y3JlYXRlRXZhbENv
ZGVCbG9jayk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpjcmVhdGVNb2R1bGVQcm9n
cmFtQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6On5KU0dsb2JhbE9i
amVjdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpoYXNMZWdhY3lQ
cm9maWxlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOgor
ICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6c3VwcG9ydHNMZWdhY3lQcm9maWxpbmcpOiBE
ZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorICAgICAgICAqIHJ1bnRpbWUv
Vk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6Vk0pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpT
ZXRFbmFibGVkUHJvZmlsZXJGdW5jdG9yOjpvcGVyYXRvcigpKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6Vk06OnNldEVuYWJsZWRQcm9maWxlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGlt
ZS9WTS5oOgorICAgICAgICAoSlNDOjpWTTo6ZW5hYmxlZFByb2ZpbGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6Vk06OmVuYWJsZWRQcm9maWxlckFkZHJlc3MpOiBEZWxldGVkLgorCiAyMDE2
LTA1LTEzICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIERGRy9G
VEwgaGF2ZSBhIGZldyBidWdzIGluIHRoZWlyIHJlYXNvbmluZyBhYm91dCB0aGUgc2NvcGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjEyYmZkNS4uMGY5ZGVlMiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MTUsMTQgKzE0MTUsNiBAQAogCQk5MzMwNDAwNDBF
NkE3NDk0MDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzMwM0ZFQTBFNkE3MkMwMDA3ODZFNkEgLyogU21hbGxT
dHJpbmdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTMzMDQwMkMwRTZBNzY0MDAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzMwM0ZFODBFNkE3MkI1MDA3
ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCAqLzsgfTsKIAkJOTMzNUYyNEQxMkU2NzY1QjAwMkI1
NTUzIC8qIFN0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzNDVBODcxMkQ4MzhDNDAwMzAyQkUzIC8qIFN0cmlu
Z1JlY3Vyc2lvbkNoZWNrZXIuY3BwICovOyB9OwotCQk5NTM0QUFGQjBFNUI3QTk2MDBCOEE0NUIg
LyogSlNQcm9maWxlclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk1MkM2M0FDMEU0Nzc3RDYwMEMxMzkzNiAvKiBKU1Byb2ZpbGVyUHJpdmF0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTk1
NzQyRjY1MEREMTFGNUEwMDA5MTdGQiAvKiBQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1NzQyRjYzMEREMTFGNUEwMDA5MTdGQiAvKiBQ
cm9maWxlLmNwcCAqLzsgfTsKLQkJOTVBQjgzNDIwREE0MzIyNTAwQkM4M0YzIC8qIExlZ2FjeVBy
b2ZpbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1QUI4MzJFMERBNDJDQUQwMEJDODNGMyAvKiBMZWdhY3lQcm9maWxlci5jcHAgKi87IH07Ci0J
CTk1QUI4MzU2MERBNDNDMzAwMEJDODNGMyAvKiBQcm9maWxlTm9kZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUFCODM1NDBEQTQzQjQ0MDBCQzgz
RjMgLyogUHJvZmlsZU5vZGUuY3BwICovOyB9OwotCQk5NUNENDU3NjBFMUM0RkREMDA4NTM1OEUg
LyogUHJvZmlsZUdlbmVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NUNENDU3NDBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRv
ci5jcHAgKi87IH07Ci0JCTk1Q0Q0NTc3MEUxQzRGREQwMDg1MzU4RSAvKiBQcm9maWxlR2VuZXJh
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUNE
NDU3NTBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKCk7IH07IH07Ci0JCTk1RTNCQzA1MEUxQUU2ODIwMEIyRDFDMSAvKiBD
YWxsSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTVFM0JDMDQwRTFBRTY4MjAwQjJEMUMxIC8qIENhbGxJZGVudGlmaWVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTVGNkU2OTUwRTVC
NUY5NzAwOTFFODYwIC8qIEpTUHJvZmlsZXJQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1OTg4QkE5MEU0NzdCRUMwMEQyOEQ0RCAvKiBK
U1Byb2ZpbGVyUHJpdmF0ZS5jcHAgKi87IH07CiAJCTk2MDA5N0E2MEVCQUJCNTgwMDdBNzI5NyAv
KiBMYWJlbFNjb3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NjAwOTdBNTBFQkFCQjU4MDA3QTcyOTcgLyogTGFiZWxTY29wZS5oICovOyB9OwogCQk5
Njg4Q0IxNTBFRDEyQjRFMDAxRDY0OUYgLyogQXNzZW1ibGVyQnVmZmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Njg4Q0IxMzBFRDEyQjRFMDAxRDY0
OUYgLyogQXNzZW1ibGVyQnVmZmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTY4OENCMTYwRUQxMkI0RTAwMUQ2NDlGIC8qIFg4NkFzc2VtYmxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY4OENC
MTQwRUQxMkI0RTAwMUQ2NDlGIC8qIFg4NkFzc2VtYmxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xODkxLDkgKzE4ODMsNiBAQAogCQlCQzE4
QzQ0NjBFMTZGNUNEMDBCMzQ0NjAgLyogT2JqZWN0UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI2ODBDOTBFMTZENEU5MDBBMDZFOTIg
LyogT2JqZWN0UHJvdG90eXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQkMxOEM0NDgwRTE2RjVDRDAwQjM0NDYwIC8qIE9wZXJhdGlvbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2OTJBODc4MDI1
NTU5N0QwMUZGNjBGNyAvKiBPcGVyYXRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0NEIwRTE2RjVDRDAwQjM0NDYwIC8qIFBhcnNl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMEIz
QUEwOUJCNERDMDAwNjhGQ0UzIC8qIFBhcnNlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDMThDNDUwMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9m
aWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTc0
MkY2NDBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDMThDNDUxMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQ
cm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTVBQjgzNTUwREE0M0I0NDAwQkM4M0YzIC8qIFByb2ZpbGVOb2RlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkMxOEM0NTIwRTE2RjVDRDAw
QjM0NDYwIC8qIExlZ2FjeVByb2ZpbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NUFCODMyRjBEQTQyQ0FEMDBCQzgzRjMgLyogTGVnYWN5UHJvZmls
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlC
QzE4QzQ1NDBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvcGVydHlOYW1lQXJyYXkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NDAwQzEwMEE2OUJBRjIwMDUw
OTg4NyAvKiBQcm9wZXJ0eU5hbWVBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDU1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9wZXJ0
eVNsb3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1
NjIxRTZDMDg5RTg1OTcwMDc2MEYzNSAvKiBQcm9wZXJ0eVNsb3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ1NjBFMTZGNUNEMDBCMzQ0
NjAgLyogUHJvdGVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNjVDMDJGQkIwNjM3NDYyQTAwM0U3RUU2IC8qIFByb3RlY3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzYzMywxOCArMzYyMiw3IEBA
CiAJCTkzRjBCM0E5MDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNGMEIzQUEwOUJCNERDMDAwNjhGQ0UzIC8qIFBhcnNlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNGMTk4MUEwODI0NUFBRTAwMUU5QUJDIC8qIEtleXdvcmRzLnRhYmxlICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gS2V5d29yZHMudGFibGU7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKLQkJOTUyQzYzQUMwRTQ3NzdENjAwQzEz
OTM2IC8qIEpTUHJvZmlsZXJQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTUHJvZmlsZXJQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk1
NzQyRjYzMEREMTFGNUEwMDA5MTdGQiAvKiBQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGUuY3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk1NzQyRjY0MEREMTFGNUEwMDA5MTdG
QiAvKiBQcm9maWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2ZpbGUu
aDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTU5ODhCQTkwRTQ3N0JFQzAwRDI4RDREIC8qIEpTUHJvZmlsZXJQcml2YXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUHJvZmlsZXJQcml2YXRlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTVBQjgzMkUwREE0MkNBRDAwQkM4M0YzIC8q
IExlZ2FjeVByb2ZpbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IExlZ2FjeVByb2ZpbGVyLmNwcDsgcGF0aCA9IHByb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTVBQjgzMkYwREE0MkNBRDAwQkM4M0YzIC8q
IExlZ2FjeVByb2ZpbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExlZ2Fj
eVByb2ZpbGVyLmg7IHBhdGggPSBwcm9maWxlci9MZWdhY3lQcm9maWxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5NUFCODM1NDBEQTQzQjQ0MDBCQzgzRjMgLyogUHJvZmlsZU5v
ZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUHJvZmlsZU5vZGUu
Y3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk5NUFCODM1NTBEQTQzQjQ0MDBCQzgzRjMgLyogUHJvZmlsZU5vZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvZmlsZU5vZGUuaDsgcGF0aCA9IHByb2Zp
bGVyL1Byb2ZpbGVOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QzE4RDNF
MEM5MEU3RUYwMEU3MkY3MyAvKiBKU1JldGFpblB0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1JldGFpblB0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5
NUNENDU3NDBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlR2VuZXJhdG9yLmNwcDsgcGF0aCA9
IHByb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk5NUNENDU3NTBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlR2VuZXJhdG9yLmg7IHBhdGggPSBw
cm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTk1RTNCQzA0MEUxQUU2ODIwMEIyRDFDMSAvKiBDYWxsSWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBDYWxsSWRlbnRpZmllci5oOyBwYXRoID0gcHJvZmlsZXIv
Q2FsbElkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTYwMDk3QTUw
RUJBQkI1ODAwN0E3Mjk3IC8qIExhYmVsU2NvcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGFiZWxTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5Njg4
Q0IxMzBFRDEyQjRFMDAxRDY0OUYgLyogQXNzZW1ibGVyQnVmZmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFzc2VtYmxlckJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5Njg4Q0IxNDBFRDEyQjRFMDAxRDY0OUYgLyogWDg2QXNzZW1ibGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFg4NkFzc2VtYmxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNTI2Niw4ICs1MjQ0LDYgQEAKIAkJCQkxNDgyQjdFMjBBNDMw
NzYwMDA1MTdDRkMgLyogSlNPYmplY3RSZWYuY3BwICovLAogCQkJCTE0ODJCN0UxMEE0MzA3NjAw
MDUxN0NGQyAvKiBKU09iamVjdFJlZi5oICovLAogCQkJCUE3OUVEQjA4MTE1MzFDRDYwMDE5RTkx
MiAvKiBKU09iamVjdFJlZlByaXZhdGUuaCAqLywKLQkJCQk5NTk4OEJBOTBFNDc3QkVDMDBEMjhE
NEQgLyogSlNQcm9maWxlclByaXZhdGUuY3BwICovLAotCQkJCTk1MkM2M0FDMEU0Nzc3RDYwMEMx
MzkzNiAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5oICovLAogCQkJCUE1NTJDMzdEMUFEREI4RkUwMDEz
OTcyNiAvKiBKU1JlbW90ZUluc3BlY3Rvci5jcHAgKi8sCiAJCQkJQTU1MkMzN0UxQUREQjhGRTAw
MTM5NzI2IC8qIEpTUmVtb3RlSW5zcGVjdG9yLmggKi8sCiAJCQkJOTVDMThEM0UwQzkwRTdFRjAw
RTcyRjczIC8qIEpTUmV0YWluUHRyLmggKi8sCkBAIC02NDMwLDE1ICs2NDA2LDYgQEAKIAkJOTVB
QjgzMUEwREE0MkM2OTAwQkM4M0YzIC8qIHByb2ZpbGVyICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk5NUUzQkMwNDBFMUFFNjgyMDBCMkQxQzEgLyogQ2Fs
bElkZW50aWZpZXIuaCAqLywKLQkJCQk5NUFCODMyRTBEQTQyQ0FEMDBCQzgzRjMgLyogTGVnYWN5
UHJvZmlsZXIuY3BwICovLAotCQkJCTk1QUI4MzJGMERBNDJDQUQwMEJDODNGMyAvKiBMZWdhY3lQ
cm9maWxlci5oICovLAotCQkJCTk1NzQyRjYzMEREMTFGNUEwMDA5MTdGQiAvKiBQcm9maWxlLmNw
cCAqLywKLQkJCQk5NTc0MkY2NDBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5oICovLAotCQkJ
CTk1Q0Q0NTc0MEUxQzRGREQwMDg1MzU4RSAvKiBQcm9maWxlR2VuZXJhdG9yLmNwcCAqLywKLQkJ
CQk5NUNENDU3NTBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRvci5oICovLAotCQkJ
CTk1QUI4MzU0MERBNDNCNDQwMEJDODNGMyAvKiBQcm9maWxlTm9kZS5jcHAgKi8sCi0JCQkJOTVB
QjgzNTUwREE0M0I0NDAwQkM4M0YzIC8qIFByb2ZpbGVOb2RlLmggKi8sCiAJCQkJMEZGNzI5OTIx
NjZBRDM0NzAwMEY1QkEzIC8qIFByb2ZpbGVyQnl0ZWNvZGUuY3BwICovLAogCQkJCTBGRjcyOTkz
MTY2QUQzNDcwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2RlLmggKi8sCiAJCQkJMEZGNzI5OTQx
NjZBRDM0NzAwMEY1QkEzIC8qIFByb2ZpbGVyQnl0ZWNvZGVzLmNwcCAqLywKQEAgLTcxMTUsNyAr
NzA4Miw2IEBACiAJCQkJMTQyOUQ4REUwRUQyMjA1QjAwQjg5NjE5IC8qIENhbGxGcmFtZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNjJFQzlCQjcxQjdFQjA3QzAwMzAzQUQxIC8qIENhbGxGcmFtZVNo
dWZmbGVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk2MkQ3NTVENzFCODRGQjRBMDAxODAxRkEg
LyogQ2FsbEZyYW1lU2h1ZmZsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTk1RTNCQzA1MEUxQUU2
ODIwMEIyRDFDMSAvKiBDYWxsSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwQjgz
QjExNEJDRjcxODAwODg1QjRGIC8qIENhbGxMaW5rSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY5MzMyOUUxNENBN0RDNTAwODVGM0M2IC8qIENhbGxMaW5rU3RhdHVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2Mjc2NzMyNDFCNjgwQzFFMDBGRDlGMkUgLyogQ2FsbE1vZGUuaCBpbiBIZWFkZXJz
ICovLApAQCAtNzczMyw3ICs3Njk5LDYgQEAKIAkJCQlBNzI4MEEyODExNTU3RTMwMDBENTY5NTcg
LyogSlNPYmplY3RSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Y5OTM1RjBGRDcz
MjUxMDBBMEIyRDAgLyogSlNPTk9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4N0NEQjkx
MDcxMkFENDAwMDYxNENGIC8qIEpTT05PYmplY3QubHV0LmggaW4gSGVhZGVycyAqLywKLQkJCQk5
NTM0QUFGQjBFNUI3QTk2MDBCOEE0NUIgLyogSlNQcm9maWxlclByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdDMTg0RTFCMTdCRURCRDMwMDdDQjYzQSAvKiBKU1Byb21pc2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdDMTg0RTIzMTdCRUUyNDAwMDdDQjYzQSAvKiBKU1Byb21pc2VDb25zdHJ1
Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk2QjczMUUxQkRBMDhFRjAwMzMxQjg0IC8qIEpT
UHJvbWlzZUNvbnN0cnVjdG9yLmx1dC5oIGluIEhlYWRlcnMgKi8sCkBAIC03Nzk5LDcgKzc3NjQs
NiBAQAogCQkJCTk2MDA5N0E2MEVCQUJCNTgwMDdBNzI5NyAvKiBMYWJlbFNjb3BlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkI1NDY3NzE0RjU5QjVDMDAyQzI5ODkgLyogTGF6eU9wZXJhbmRWYWx1
ZVByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5REEwMEIwMUJENTk5NEUwMEY0NTc1QyAv
KiBsYXp5d3JpdGVyLnB5IGluIEhlYWRlcnMgKi8sCi0JCQkJQkMxOEM0NTIwRTE2RjVDRDAwQjM0
NDYwIC8qIExlZ2FjeVByb2ZpbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQzMTBFMTZG
NUNEMDBCMzQ0NjAgLyogTGV4ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNTJFMEUxNkZD
RTEwMEIzNDQ2MCAvKiBMZXhlci5sdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCURDRjNENTZCMUNE
Mjk0NzIwMDNENUM2NSAvKiBMYXp5Q2xhc3NTdHJ1Y3R1cmVJbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKQEAgLTc5MDQsOSArNzg2OCw2IEBACiAJCQkJMEZFODM0MTgxQTZFRjk3QjAwRDA0ODQ3IC8q
IFBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk4MjA2
MTE2QkZFMzgzMDAyNDBEMDIgLyogUHJlY2lzZUp1bXBUYXJnZXRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4Njg5MTZCMDE1NUYyODYzMDBDQjJCOUEgLyogUHJpdmF0ZU5hbWUuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUJDMThDNDUwMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9maWxlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk5NUNENDU3NzBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRvci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQkMxOEM0NTEwRTE2RjVDRDAwQjM0NDYwIC8qIFByb2ZpbGVO
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY3MjlBNTE2NkFEMzUxMDAwRjVCQTMgLyogUHJv
ZmlsZXJCeXRlY29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNzI5QjkxNjZBRDM2MDAwMEY1
QkEzIC8qIFByb2ZpbGVyQnl0ZWNvZGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjEzOTEyQTE2
NzcxQzM2MDA5Q0NCMDcgLyogUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmggaW4gSGVhZGVycyAq
LywKQEAgLTkxNTEsNyArOTExMiw2IEBACiAJCQkJMTQ3RjM5RDQxMDdFQzM3NjAwNDI3QTQ4IC8q
IEpTT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0ODJCN0U0MEE0MzA3NjAwMDUxN0NG
QyAvKiBKU09iamVjdFJlZi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Y5OTM2MDBGRDczMjUx
MDBBMEIyRDAgLyogSlNPTk9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5NUY2RTY5NTBF
NUI1Rjk3MDA5MUU4NjAgLyogSlNQcm9maWxlclByaXZhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0MxODRFMUExN0JFREJEMzAwN0NCNjNBIC8qIEpTUHJvbWlzZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3QzE4NEUyMjE3QkVFMjQwMDA3Q0I2M0EgLyogSlNQcm9taXNlQ29uc3RydWN0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0MwMDhDREExODcxMjRCQjAwOTU1QzI0IC8qIEpTUHJv
bWlzZURlZmVycmVkLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTE5NCw3ICs5MTU0LDYgQEAKIAkJ
CQkxNDI4MDg3MDEwN0VDMTM0MDAxM0U3QjIgLyogSlNXcmFwcGVyT2JqZWN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDRkQ4QzkyMEVFQjJFRTcwMDI4Mzg0OCAvKiBKdW1wVGFibGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZCNTQ2NzkxNEY1QzQ2QjAwMkMyOTg5IC8qIExhenlPcGVyYW5k
VmFsdWVQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTk1QUI4MzQyMERBNDMyMjUwMEJD
ODNGMyAvKiBMZWdhY3lQcm9maWxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDhGMjFCMDEw
N0VDNTQxMDA0MkVDMkMgLyogTGV4ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNDI3NTcx
NTkxNEEyMDAwNENCOUZGIC8qIExpbmtCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdF
MkVBNkMwRkI0NjBDRjAwNjAxRjA2IC8qIExpdGVyYWxQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC05MjYyLDkgKzkyMjEsNiBAQAogCQkJCTBGRTgzNDE3MUE2RUY5N0IwMEQwNDg0NyAvKiBQ
b2x5bW9ycGhpY0NhbGxTdHViUm91dGluZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjMzOEUx
NDFCRjAyNzZDMDAxM0M4OEYgLyogQjNWYWx1ZUtleS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
Rjk4MjA2MDE2QkZFMzgxMDAyNDBEMDIgLyogUHJlY2lzZUp1bXBUYXJnZXRzLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCTk1NzQyRjY1MEREMTFGNUEwMDA5MTdGQiAvKiBQcm9maWxlLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTk1Q0Q0NTc2MEUxQzRGREQwMDg1MzU4RSAvKiBQcm9maWxlR2VuZXJh
dG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTk1QUI4MzU2MERBNDNDMzAwMEJDODNGMyAvKiBQ
cm9maWxlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY3MjlBRDE2NkFEMzVDMDAwRjVC
QTMgLyogUHJvZmlsZXJCeXRlY29kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY3MjlBRTE2
NkFEMzVDMDAwRjVCQTMgLyogUHJvZmlsZXJCeXRlY29kZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEYxMzkxMjkxNjc3MUMzMzAwOUNDQjA3IC8qIFByb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9CeXRlY29kZUxpc3QuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZUxpc3QuanNvbgppbmRleCA3YjQ5YzY0Li45MWE5NmM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCkBAIC0xMjMsOCArMTIz
LDYgQEAKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3Rocm93IiwgImxlbmd0aCIgOiAyIH0s
CiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF90aHJvd19zdGF0aWNfZXJyb3IiLCAibGVuZ3Ro
IiA6IDMgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2RlYnVnIiwgImxlbmd0aCIgOiAz
IH0sCi0gICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wcm9maWxlX3dpbGxfY2FsbCIsICJsZW5n
dGgiIDogMiB9LAotICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHJvZmlsZV9kaWRfY2FsbCIs
ICJsZW5ndGgiIDogMiB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfZW5kIiwgImxlbmd0
aCIgOiAyIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wcm9maWxlX3R5cGUiLCAibGVu
Z3RoIiA6IDYgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3Byb2ZpbGVfY29udHJvbF9m
bG93IiwgImxlbmd0aCIgOiAyIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZVVzZURlZi5oCmluZGV4IDRhMTY3MmUuLjdjZjBkNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5oCkBAIC02Miw4ICs2Miw2
IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldCgKICAgICBjYXNlIG9wX2dldF9z
Y29wZToKICAgICBjYXNlIG9wX3RvX3RoaXM6CiAgICAgY2FzZSBvcF9jaGVja190ZHo6Ci0gICAg
Y2FzZSBvcF9wcm9maWxlX3dpbGxfY2FsbDoKLSAgICBjYXNlIG9wX3Byb2ZpbGVfZGlkX2NhbGw6
CiAgICAgY2FzZSBvcF9wcm9maWxlX3R5cGU6CiAgICAgY2FzZSBvcF90aHJvdzoKICAgICBjYXNl
IG9wX2VuZDoKQEAgLTMxMiw4ICszMTAsNiBAQCB2b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVP
ZmZzZXQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJ5dGVjb2RlQmFzaWNCbG9jayogYmxvYwogICAg
IGNhc2Ugb3BfY29weV9yZXN0OgogICAgIGNhc2Ugb3BfcHV0X3RvX3Njb3BlOgogICAgIGNhc2Ug
b3BfZW5kOgotICAgIGNhc2Ugb3BfcHJvZmlsZV93aWxsX2NhbGw6Ci0gICAgY2FzZSBvcF9wcm9m
aWxlX2RpZF9jYWxsOgogICAgIGNhc2Ugb3BfdGhyb3c6CiAgICAgY2FzZSBvcF90aHJvd19zdGF0
aWNfZXJyb3I6CiAgICAgY2FzZSBvcF9zYXZlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRleCAzYTgwOGNiLi40MWU4Y2Y5IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMTY1NCwxNiArMTY1NCw2
IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoCiAgICAgICAgICAgICBvdXQucHJpbnRm
KCIlcywgJWQiLCByZWdpc3Rlck5hbWUoY29uZGl0aW9uKS5kYXRhKCksIGxpbmUpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBvcF9wcm9maWxlX3dpbGxfY2Fs
bDogewotICAgICAgICAgICAgaW50IGZ1bmN0aW9uID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAg
ICAgICAgICBwcmludExvY2F0aW9uT3BBbmRSZWdpc3Rlck9wZXJhbmQob3V0LCBleGVjLCBsb2Nh
dGlvbiwgaXQsICJwcm9maWxlX3dpbGxfY2FsbCIsIGZ1bmN0aW9uKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNhc2Ugb3BfcHJvZmlsZV9kaWRfY2FsbDogewotICAg
ICAgICAgICAgaW50IGZ1bmN0aW9uID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBw
cmludExvY2F0aW9uT3BBbmRSZWdpc3Rlck9wZXJhbmQob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQs
ICJwcm9maWxlX2RpZF9jYWxsIiwgZnVuY3Rpb24pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KICAgICAgICAgY2FzZSBvcF9lbmQ6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgcHJpbnRMb2NhdGlvbk9wQW5kUmVnaXN0ZXJPcGVy
YW5kKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAiZW5kIiwgcjApOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZS5jcHAKaW5kZXggNjYyNzg4NC4uMzQ2MTliNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUu
Y3BwCkBAIC00OSw3ICs0OSw3IEBAIGNvbnN0IENsYXNzSW5mbyBVbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZTo6c19pbmZvID0geyAiVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFiCiAKIHN0YXRpYyBV
bmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBnZW5lcmF0ZVVubGlua2VkRnVuY3Rpb25Db2RlQmxv
Y2soCiAgICAgVk0mIHZtLCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwg
Y29uc3QgU291cmNlQ29kZSYgc291cmNlLAotICAgIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2lu
ZCwgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSwK
KyAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1v
ZGUsCiAgICAgVW5saW5rZWRGdW5jdGlvbktpbmQgZnVuY3Rpb25LaW5kLCBQYXJzZXJFcnJvciYg
ZXJyb3IsIFNvdXJjZVBhcnNlTW9kZSBwYXJzZU1vZGUpCiB7CiAgICAgSlNQYXJzZXJCdWlsdGlu
TW9kZSBidWlsdGluTW9kZSA9IGV4ZWN1dGFibGUtPmlzQnVpbHRpbkZ1bmN0aW9uKCkgPyBKU1Bh
cnNlckJ1aWx0aW5Nb2RlOjpCdWlsdGluIDogSlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRp
bjsKQEAgLTcwLDcgKzcwLDcgQEAgc3RhdGljIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sqIGdl
bmVyYXRlVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jaygKIAogICAgIFVubGlua2VkRnVuY3Rpb25D
b2RlQmxvY2sqIHJlc3VsdCA9IFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2s6OmNyZWF0ZSgmdm0s
IEZ1bmN0aW9uQ29kZSwgRXhlY3V0YWJsZUluZm8oZnVuY3Rpb24tPnVzZXNFdmFsKCksIGZ1bmN0
aW9uLT5pc1N0cmljdE1vZGUoKSwga2luZCA9PSBDb2RlRm9yQ29uc3RydWN0LCBmdW5jdGlvbktp
bmQgPT0gVW5saW5rZWRCdWlsdGluRnVuY3Rpb24sIGV4ZWN1dGFibGUtPmNvbnN0cnVjdG9yS2lu
ZCgpLCBleGVjdXRhYmxlLT5zdXBlckJpbmRpbmcoKSwgcGFyc2VNb2RlLCBleGVjdXRhYmxlLT5k
ZXJpdmVkQ29udGV4dFR5cGUoKSwgZmFsc2UsIGlzQ2xhc3NDb250ZXh0LCBFdmFsQ29udGV4dFR5
cGU6OkZ1bmN0aW9uRXZhbENvbnRleHQpKTsKIAotICAgIGVycm9yID0gQnl0ZWNvZGVHZW5lcmF0
b3I6OmdlbmVyYXRlKHZtLCBmdW5jdGlvbi5nZXQoKSwgcmVzdWx0LCBkZWJ1Z2dlck1vZGUsIHBy
b2ZpbGVyTW9kZSwgZXhlY3V0YWJsZS0+cGFyZW50U2NvcGVURFpWYXJpYWJsZXMoKSk7CisgICAg
ZXJyb3IgPSBCeXRlY29kZUdlbmVyYXRvcjo6Z2VuZXJhdGUodm0sIGZ1bmN0aW9uLmdldCgpLCBy
ZXN1bHQsIGRlYnVnZ2VyTW9kZSwgZXhlY3V0YWJsZS0+cGFyZW50U2NvcGVURFpWYXJpYWJsZXMo
KSk7CiAKICAgICBpZiAoZXJyb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
QEAgLTE5MSw3ICsxOTEsNyBAQCBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSogVW5saW5rZWRG
dW5jdGlvbkV4ZWN1dGFibGU6OmZyb21HbG9iYWxDb2RlKAogCiBVbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrKiBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZTo6dW5saW5rZWRDb2RlQmxvY2tGb3Io
CiAgICAgVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIENvZGVTcGVjaWFsaXphdGlv
bktpbmQgc3BlY2lhbGl6YXRpb25LaW5kLCAKLSAgICBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2Rl
LCBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IsIFNvdXJjZVBh
cnNlTW9kZSBwYXJzZU1vZGUpCisgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUGFyc2Vy
RXJyb3ImIGVycm9yLCBTb3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlKQogewogICAgIHN3aXRjaCAo
c3BlY2lhbGl6YXRpb25LaW5kKSB7CiAgICAgY2FzZSBDb2RlRm9yQ2FsbDoKQEAgLTIwNSw3ICsy
MDUsNyBAQCBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZTo6dW5saW5rZWRDb2RlQmxvY2tGb3IoCiAgICAgfQogCiAgICAgVW5saW5rZWRGdW5jdGlv
bkNvZGVCbG9jayogcmVzdWx0ID0gZ2VuZXJhdGVVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKAot
ICAgICAgICB2bSwgdGhpcywgc291cmNlLCBzcGVjaWFsaXphdGlvbktpbmQsIGRlYnVnZ2VyTW9k
ZSwgcHJvZmlsZXJNb2RlLCAKKyAgICAgICAgdm0sIHRoaXMsIHNvdXJjZSwgc3BlY2lhbGl6YXRp
b25LaW5kLCBkZWJ1Z2dlck1vZGUsIAogICAgICAgICBpc0J1aWx0aW5GdW5jdGlvbigpID8gVW5s
aW5rZWRCdWlsdGluRnVuY3Rpb24gOiBVbmxpbmtlZE5vcm1hbEZ1bmN0aW9uLCAKICAgICAgICAg
ZXJyb3IsIHBhcnNlTW9kZSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCmluZGV4IGIzNTkx
OTQuLjY0NmIwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9V
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5oCkBAIC0xMDEsNyArMTAxLDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0SW52YWxpZFR5cGVQcm9maWxpbmdPZmZzZXRzKCk7CiAKICAg
ICBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9ja0ZvcigKLSAgICAg
ICAgVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgQ29kZVNwZWNpYWxpemF0aW9uS2luZCwgRGVidWdn
ZXJNb2RlLCBQcm9maWxlck1vZGUsIAorICAgICAgICBWTSYsIGNvbnN0IFNvdXJjZUNvZGUmLCBD
b2RlU3BlY2lhbGl6YXRpb25LaW5kLCBEZWJ1Z2dlck1vZGUsCiAgICAgICAgIFBhcnNlckVycm9y
JiwgU291cmNlUGFyc2VNb2RlKTsKIAogICAgIHN0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZSogZnJvbUdsb2JhbENvZGUoCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IGVjMTEwZjkuLjk0ZjIy
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIv
Qnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC0xNDcsOSArMTQ3LDggQEAgUGFyc2VyRXJyb3IgQnl0
ZWNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlKCkKICAgICByZXR1cm4gUGFyc2VyRXJyb3IoUGFyc2Vy
RXJyb3I6OkVycm9yTm9uZSk7CiB9CiAKLUJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVy
YXRvcihWTSYgdm0sIFByb2dyYW1Ob2RlKiBwcm9ncmFtTm9kZSwgVW5saW5rZWRQcm9ncmFtQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9k
ZSBwcm9maWxlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHBhcmVudFNjb3BlVERa
VmFyaWFibGVzKQorQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwg
UHJvZ3JhbU5vZGUqIHByb2dyYW1Ob2RlLCBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqIGNvZGVC
bG9jaywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVu
dCogcGFyZW50U2NvcGVURFpWYXJpYWJsZXMpCiAgICAgOiBtX3Nob3VsZEVtaXREZWJ1Z0hvb2tz
KE9wdGlvbnM6OmZvcmNlRGVidWdnZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBkZWJ1Z2dlck1v
ZGUgPT0gRGVidWdnZXJPbikKLSAgICAsIG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcyhPcHRpb25z
Ojpmb3JjZVByb2ZpbGVyQnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgcHJvZmlsZXJNb2RlID09IFBy
b2ZpbGVyT24pCiAgICAgLCBtX3Njb3BlTm9kZShwcm9ncmFtTm9kZSkKICAgICAsIG1fY29kZUJs
b2NrKHZtLCBjb2RlQmxvY2spCiAgICAgLCBtX3RoaXNSZWdpc3RlcihDYWxsRnJhbWU6OnRoaXNB
cmd1bWVudE9mZnNldCgpKQpAQCAtMTkzLDkgKzE5Miw4IEBAIEJ5dGVjb2RlR2VuZXJhdG9yOjpC
eXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIFByb2dyYW1Ob2RlKiBwcm9ncmFtTm9kZSwgVW5saW5r
ZWRQCiAgICAgfQogfQogCi1CeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0m
IHZtLCBGdW5jdGlvbk5vZGUqIGZ1bmN0aW9uTm9kZSwgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9j
ayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUgcHJv
ZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiBwYXJlbnRTY29wZVREWlZhcmlh
YmxlcykKK0J5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIEZ1bmN0
aW9uTm9kZSogZnVuY3Rpb25Ob2RlLCBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQq
IHBhcmVudFNjb3BlVERaVmFyaWFibGVzKQogICAgIDogbV9zaG91bGRFbWl0RGVidWdIb29rcyhP
cHRpb25zOjpmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgZGVidWdnZXJNb2Rl
ID09IERlYnVnZ2VyT24pCi0gICAgLCBtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MoT3B0aW9uczo6
Zm9yY2VQcm9maWxlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IHByb2ZpbGVyTW9kZSA9PSBQcm9m
aWxlck9uKQogICAgICwgbV9zY29wZU5vZGUoZnVuY3Rpb25Ob2RlKQogICAgICwgbV9jb2RlQmxv
Y2sodm0sIGNvZGVCbG9jaykKICAgICAsIG1fY29kZVR5cGUoRnVuY3Rpb25Db2RlKQpAQCAtMjA3
LDcgKzIwNSw3IEBAIEJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0s
IEZ1bmN0aW9uTm9kZSogZnVuY3Rpb25Ob2RlLCBVbmxpbmtlCiAgICAgLy8gb3Bfd2lsbF9jYWxs
IC8gb3BfZGlkX2NhbGwgcGFpcnMgYmVmb3JlIGFuZCBhZnRlciBhIGNhbGwsIHdoaWNoIGFyZSBu
b3QKICAgICAvLyBjb21wYXRpYmxlIHdpdGggdGFpbCBjYWxscyAod2UgaGF2ZSBubyB3YXkgb2Yg
ZW1pdHRpbmcgb3BfZGlkX2NhbGwpLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDg4MTkKLSAgICAsIG1faW5UYWlsUG9zaXRpb24oT3B0aW9uczo6dXNl
VGFpbENhbGxzKCkgJiYgIWlzQ29uc3RydWN0b3IoKSAmJiBjb25zdHJ1Y3RvcktpbmQoKSA9PSBD
b25zdHJ1Y3RvcktpbmQ6Ok5vbmUgJiYgaXNTdHJpY3RNb2RlKCkgJiYgIW1fc2hvdWxkRW1pdFBy
b2ZpbGVIb29rcykKKyAgICAsIG1faW5UYWlsUG9zaXRpb24oT3B0aW9uczo6dXNlVGFpbENhbGxz
KCkgJiYgIWlzQ29uc3RydWN0b3IoKSAmJiBjb25zdHJ1Y3RvcktpbmQoKSA9PSBDb25zdHJ1Y3Rv
cktpbmQ6Ok5vbmUgJiYgaXNTdHJpY3RNb2RlKCkpCiAgICAgLCBtX25lZWRzVG9VcGRhdGVBcnJv
d0Z1bmN0aW9uQ29udGV4dChmdW5jdGlvbk5vZGUtPnVzZXNBcnJvd0Z1bmN0aW9uKCkgfHwgZnVu
Y3Rpb25Ob2RlLT51c2VzRXZhbCgpKQogICAgICwgbV9kZXJpdmVkQ29udGV4dFR5cGUoY29kZUJs
b2NrLT5kZXJpdmVkQ29udGV4dFR5cGUoKSkKIHsKQEAgLTU5NCw5ICs1OTIsOCBAQCBCeXRlY29k
ZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBGdW5jdGlvbk5vZGUqIGZ1bmN0
aW9uTm9kZSwgVW5saW5rZQogICAgIHB1c2hMZXhpY2FsU2NvcGUobV9zY29wZU5vZGUsIFREWkNo
ZWNrT3B0aW1pemF0aW9uOjpPcHRpbWl6ZSwgTmVzdGVkU2NvcGVUeXBlOjpJc05vdE5lc3RlZCwg
bnVsbHB0ciwgc2hvdWxkSW5pdGlhbGl6ZUJsb2NrU2NvcGVkRnVuY3Rpb25zKTsKIH0KIAotQnl0
ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRXZhbE5vZGUqIGV2YWxO
b2RlLCBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIGNvZGVCbG9jaywgRGVidWdnZXJNb2RlIGRlYnVn
Z2VyTW9kZSwgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9u
bWVudCogcGFyZW50U2NvcGVURFpWYXJpYWJsZXMpCitCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNv
ZGVHZW5lcmF0b3IoVk0mIHZtLCBFdmFsTm9kZSogZXZhbE5vZGUsIFVubGlua2VkRXZhbENvZGVC
bG9jayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBjb25zdCBWYXJpYWJs
ZUVudmlyb25tZW50KiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcykKICAgICA6IG1fc2hvdWxkRW1p
dERlYnVnSG9va3MoT3B0aW9uczo6Zm9yY2VEZWJ1Z2dlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8
IGRlYnVnZ2VyTW9kZSA9PSBEZWJ1Z2dlck9uKQotICAgICwgbV9zaG91bGRFbWl0UHJvZmlsZUhv
b2tzKE9wdGlvbnM6OmZvcmNlUHJvZmlsZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBwcm9maWxl
ck1vZGUgPT0gUHJvZmlsZXJPbikKICAgICAsIG1fc2NvcGVOb2RlKGV2YWxOb2RlKQogICAgICwg
bV9jb2RlQmxvY2sodm0sIGNvZGVCbG9jaykKICAgICAsIG1fdGhpc1JlZ2lzdGVyKENhbGxGcmFt
ZTo6dGhpc0FyZ3VtZW50T2Zmc2V0KCkpCkBAIC02NTIsOSArNjQ5LDggQEAgQnl0ZWNvZGVHZW5l
cmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRXZhbE5vZGUqIGV2YWxOb2RlLCBVbmxp
bmtlZEV2YWxDb2QKICAgICBwdXNoTGV4aWNhbFNjb3BlKG1fc2NvcGVOb2RlLCBURFpDaGVja09w
dGltaXphdGlvbjo6T3B0aW1pemUsIE5lc3RlZFNjb3BlVHlwZTo6SXNOb3ROZXN0ZWQsIG51bGxw
dHIsIHNob3VsZEluaXRpYWxpemVCbG9ja1Njb3BlZEZ1bmN0aW9ucyk7CiB9CiAKLUJ5dGVjb2Rl
R2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIE1vZHVsZVByb2dyYW1Ob2RlKiBt
b2R1bGVQcm9ncmFtTm9kZSwgVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUs
IGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHBhcmVudFNjb3BlVERaVmFyaWFibGVzKQorQnl0
ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgTW9kdWxlUHJvZ3JhbU5v
ZGUqIG1vZHVsZVByb2dyYW1Ob2RlLCBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIGNv
ZGVCbG9jaywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9u
bWVudCogcGFyZW50U2NvcGVURFpWYXJpYWJsZXMpCiAgICAgOiBtX3Nob3VsZEVtaXREZWJ1Z0hv
b2tzKE9wdGlvbnM6OmZvcmNlRGVidWdnZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBkZWJ1Z2dl
ck1vZGUgPT0gRGVidWdnZXJPbikKLSAgICAsIG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcyhPcHRp
b25zOjpmb3JjZVByb2ZpbGVyQnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgcHJvZmlsZXJNb2RlID09
IFByb2ZpbGVyT24pCiAgICAgLCBtX3Njb3BlTm9kZShtb2R1bGVQcm9ncmFtTm9kZSkKICAgICAs
IG1fY29kZUJsb2NrKHZtLCBjb2RlQmxvY2spCiAgICAgLCBtX3RoaXNSZWdpc3RlcihDYWxsRnJh
bWU6OnRoaXNBcmd1bWVudE9mZnNldCgpKQpAQCAtMzA1Myw5ICszMDQ5LDYgQEAgUmVnaXN0ZXJJ
RCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsKE9wY29kZUlEIG9wY29kZUlELCBSZWdpc3Rl
cklEKiBkc3QsIFJlZ2kKICAgICBBU1NFUlQob3Bjb2RlSUQgPT0gb3BfY2FsbCB8fCBvcGNvZGVJ
RCA9PSBvcF9jYWxsX2V2YWwgfHwgb3Bjb2RlSUQgPT0gb3BfdGFpbF9jYWxsKTsKICAgICBBU1NF
UlQoZnVuYy0+cmVmQ291bnQoKSk7CiAgICAgCi0gICAgaWYgKG1fc2hvdWxkRW1pdFByb2ZpbGVI
b29rcykKLSAgICAgICAgZW1pdE1vdmUoY2FsbEFyZ3VtZW50cy5wcm9maWxlSG9va1JlZ2lzdGVy
KCksIGZ1bmMpOwotCiAgICAgLy8gR2VuZXJhdGUgY29kZSBmb3IgYXJndW1lbnRzLgogICAgIHVu
c2lnbmVkIGFyZ3VtZW50ID0gMDsKICAgICBpZiAoY2FsbEFyZ3VtZW50cy5hcmd1bWVudHNOb2Rl
KCkpIHsKQEAgLTMwNjYsNyArMzA1OSw3IEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9y
OjplbWl0Q2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpCiAgICAg
ICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gYXJndW1lbnRSZWdpc3RlcjsKICAgICAgICAgICAg
IGFyZ3VtZW50UmVnaXN0ZXIgPSBleHByZXNzaW9uLT5lbWl0Qnl0ZWNvZGUoKnRoaXMsIGNhbGxB
cmd1bWVudHMuYXJndW1lbnRSZWdpc3RlcigwKSk7CiAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0
ZXJJRD4gdGhpc1JlZ2lzdGVyID0gZW1pdE1vdmUobmV3VGVtcG9yYXJ5KCksIGNhbGxBcmd1bWVu
dHMudGhpc1JlZ2lzdGVyKCkpOwotICAgICAgICAgICAgcmV0dXJuIGVtaXRDYWxsVmFyYXJncyhv
cGNvZGVJRCA9PSBvcF90YWlsX2NhbGwgPyBvcF90YWlsX2NhbGxfdmFyYXJncyA6IG9wX2NhbGxf
dmFyYXJncywgZHN0LCBmdW5jLCBjYWxsQXJndW1lbnRzLnRoaXNSZWdpc3RlcigpLCBhcmd1bWVu
dFJlZ2lzdGVyLmdldCgpLCBuZXdUZW1wb3JhcnkoKSwgMCwgY2FsbEFyZ3VtZW50cy5wcm9maWxl
SG9va1JlZ2lzdGVyKCksIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7CisgICAgICAgICAg
ICByZXR1cm4gZW1pdENhbGxWYXJhcmdzKG9wY29kZUlEID09IG9wX3RhaWxfY2FsbCA/IG9wX3Rh
aWxfY2FsbF92YXJhcmdzIDogb3BfY2FsbF92YXJhcmdzLCBkc3QsIGZ1bmMsIGNhbGxBcmd1bWVu
dHMudGhpc1JlZ2lzdGVyKCksIGFyZ3VtZW50UmVnaXN0ZXIuZ2V0KCksIG5ld1RlbXBvcmFyeSgp
LCAwLCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOwogICAgICAgICB9CiAgICAgICAgIGZv
ciAoOyBuOyBuID0gbi0+bV9uZXh0KQogICAgICAgICAgICAgZW1pdE5vZGUoY2FsbEFyZ3VtZW50
cy5hcmd1bWVudFJlZ2lzdGVyKGFyZ3VtZW50KyspLCBuKTsKQEAgLTMwNzcsMTEgKzMwNzAsNiBA
QCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGwoT3Bjb2RlSUQgb3Bjb2Rl
SUQsIFJlZ2lzdGVySUQqIGRzdCwgUmVnaQogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSlNTdGFj
azo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsgKytpKQogICAgICAgICBjYWxsRnJhbWUuYXBwZW5kKG5l
d1RlbXBvcmFyeSgpKTsKIAotICAgIGlmIChtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MpIHsKLSAg
ICAgICAgZW1pdE9wY29kZShvcF9wcm9maWxlX3dpbGxfY2FsbCk7Ci0gICAgICAgIGluc3RydWN0
aW9ucygpLmFwcGVuZChjYWxsQXJndW1lbnRzLnByb2ZpbGVIb29rUmVnaXN0ZXIoKS0+aW5kZXgo
KSk7Ci0gICAgfQotCiAgICAgZW1pdEV4cHJlc3Npb25JbmZvKGRpdm90LCBkaXZvdFN0YXJ0LCBk
aXZvdEVuZCk7CiAKICAgICBSZWZQdHI8TGFiZWw+IGRvbmUgPSBuZXdMYWJlbCgpOwpAQCAtMzEw
NywzNyArMzA5NSwyNiBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGwo
T3Bjb2RlSUQgb3Bjb2RlSUQsIFJlZ2lzdGVySUQqIGRzdCwgUmVnaQogICAgIGlmIChleHBlY3Rl
ZEZ1bmN0aW9uICE9IE5vRXhwZWN0ZWRGdW5jdGlvbikKICAgICAgICAgZW1pdExhYmVsKGRvbmUu
Z2V0KCkpOwogCi0gICAgaWYgKG1fc2hvdWxkRW1pdFByb2ZpbGVIb29rcykgewotICAgICAgICBl
bWl0T3Bjb2RlKG9wX3Byb2ZpbGVfZGlkX2NhbGwpOwotICAgICAgICBpbnN0cnVjdGlvbnMoKS5h
cHBlbmQoY2FsbEFyZ3VtZW50cy5wcm9maWxlSG9va1JlZ2lzdGVyKCktPmluZGV4KCkpOwotICAg
IH0KLQogICAgIHJldHVybiBkc3Q7CiB9CiAKLVJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9y
OjplbWl0Q2FsbFZhcmFyZ3MoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdp
c3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCog
Zmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIFJlZ2lzdGVySUQq
IHByb2ZpbGVIb29rUmVnaXN0ZXIsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVu
ZCkKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3MoUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJl
Z2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMy
X3QgZmlyc3RWYXJBcmdPZmZzZXQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVu
ZCkKIHsKLSAgICByZXR1cm4gZW1pdENhbGxWYXJhcmdzKG9wX2NhbGxfdmFyYXJncywgZHN0LCBm
dW5jLCB0aGlzUmVnaXN0ZXIsIGFyZ3VtZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIsIGZpcnN0VmFy
QXJnT2Zmc2V0LCBwcm9maWxlSG9va1JlZ2lzdGVyLCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RF
bmQpOworICAgIHJldHVybiBlbWl0Q2FsbFZhcmFyZ3Mob3BfY2FsbF92YXJhcmdzLCBkc3QsIGZ1
bmMsIHRoaXNSZWdpc3RlciwgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdpc3RlciwgZmlyc3RWYXJB
cmdPZmZzZXQsIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7CiB9CiAKLVJlZ2lzdGVySUQq
IEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlvbihSZWdpc3Rl
cklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVn
aXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJf
dCBmaXJzdFZhckFyZ09mZnNldCwgUmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tSZWdpc3RlciwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFy
dCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQorUmVnaXN0ZXJJRCogQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRDYWxsVmFyYXJnc0luVGFpbFBvc2l0aW9uKFJlZ2lzdGVySUQqIGRzdCwg
UmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBh
cmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFy
QXJnT2Zmc2V0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0
aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCiB7Ci0gICAg
cmV0dXJuIGVtaXRDYWxsVmFyYXJncyhtX2luVGFpbFBvc2l0aW9uID8gb3BfdGFpbF9jYWxsX3Zh
cmFyZ3MgOiBvcF9jYWxsX3ZhcmFyZ3MsIGRzdCwgZnVuYywgdGhpc1JlZ2lzdGVyLCBhcmd1bWVu
dHMsIGZpcnN0RnJlZVJlZ2lzdGVyLCBmaXJzdFZhckFyZ09mZnNldCwgcHJvZmlsZUhvb2tSZWdp
c3RlciwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKKyAgICByZXR1cm4gZW1pdENhbGxW
YXJhcmdzKG1faW5UYWlsUG9zaXRpb24gPyBvcF90YWlsX2NhbGxfdmFyYXJncyA6IG9wX2NhbGxf
dmFyYXJncywgZHN0LCBmdW5jLCB0aGlzUmVnaXN0ZXIsIGFyZ3VtZW50cywgZmlyc3RGcmVlUmVn
aXN0ZXIsIGZpcnN0VmFyQXJnT2Zmc2V0LCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOwog
fQogCi1SZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVjdFZhcmFyZ3Mo
UmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0
ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIs
IGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIFJlZ2lzdGVySUQqIHByb2ZpbGVIb29rUmVnaXN0
ZXIsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRp
dm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKK1JlZ2lzdGVySUQqIEJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0Q29uc3RydWN0VmFyYXJncyhSZWdpc3RlcklEKiBkc3QsIFJl
Z2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJn
dW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFy
Z09mZnNldCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQogewotICAgIHJl
dHVybiBlbWl0Q2FsbFZhcmFyZ3Mob3BfY29uc3RydWN0X3ZhcmFyZ3MsIGRzdCwgZnVuYywgdGhp
c1JlZ2lzdGVyLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyLCBmaXJzdFZhckFyZ09mZnNl
dCwgcHJvZmlsZUhvb2tSZWdpc3RlciwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKKyAg
ICByZXR1cm4gZW1pdENhbGxWYXJhcmdzKG9wX2NvbnN0cnVjdF92YXJhcmdzLCBkc3QsIGZ1bmMs
IHRoaXNSZWdpc3RlciwgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdpc3RlciwgZmlyc3RWYXJBcmdP
ZmZzZXQsIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7CiB9CiAgICAgCi1SZWdpc3RlcklE
KiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzKE9wY29kZUlEIG9wY29kZSwgUmVn
aXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIs
IFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGlu
dDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIFJlZ2lzdGVySUQqIHByb2ZpbGVIb29rUmVnaXN0ZXIs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90
U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKK1JlZ2lzdGVySUQqIEJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3MoT3Bjb2RlSUQgb3Bjb2RlLCBSZWdpc3RlcklE
KiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0
ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBm
aXJzdFZhckFyZ09mZnNldCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQog
ewotICAgIGlmIChtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MpIHsKLSAgICAgICAgZW1pdE1vdmUo
cHJvZmlsZUhvb2tSZWdpc3RlciwgZnVuYyk7Ci0gICAgICAgIGVtaXRPcGNvZGUob3BfcHJvZmls
ZV93aWxsX2NhbGwpOwotICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQocHJvZmlsZUhvb2tS
ZWdpc3Rlci0+aW5kZXgoKSk7Ci0gICAgfQotICAgIAogICAgIGVtaXRFeHByZXNzaW9uSW5mbyhk
aXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOwogCiAgICAgaWYgKG9wY29kZSA9PSBvcF90YWls
X2NhbGxfdmFyYXJncykKQEAgLTMxNTUsMTAgKzMxMzIsNiBAQCBSZWdpc3RlcklEKiBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzKE9wY29kZUlEIG9wY29kZSwgUmVnaXN0ZXJJRCog
ZHN0LAogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChmaXJzdFZhckFyZ09mZnNldCk7CiAgICAg
aW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGFycmF5UHJvZmlsZSk7CiAgICAgaW5zdHJ1Y3Rpb25zKCku
YXBwZW5kKHByb2ZpbGUpOwotICAgIGlmIChtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MpIHsKLSAg
ICAgICAgZW1pdE9wY29kZShvcF9wcm9maWxlX2RpZF9jYWxsKTsKLSAgICAgICAgaW5zdHJ1Y3Rp
b25zKCkuYXBwZW5kKHByb2ZpbGVIb29rUmVnaXN0ZXItPmluZGV4KCkpOwotICAgIH0KICAgICBy
ZXR1cm4gZHN0OwogfQogCkBAIC0zMjQ5LDkgKzMyMjIsNiBAQCBSZWdpc3RlcklEKiBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVjdChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1
bmMsCiB7CiAgICAgQVNTRVJUKGZ1bmMtPnJlZkNvdW50KCkpOwogCi0gICAgaWYgKG1fc2hvdWxk
RW1pdFByb2ZpbGVIb29rcykKLSAgICAgICAgZW1pdE1vdmUoY2FsbEFyZ3VtZW50cy5wcm9maWxl
SG9va1JlZ2lzdGVyKCksIGZ1bmMpOwotCiAgICAgLy8gR2VuZXJhdGUgY29kZSBmb3IgYXJndW1l
bnRzLgogICAgIHVuc2lnbmVkIGFyZ3VtZW50ID0gMDsKICAgICBpZiAoQXJndW1lbnRzTm9kZSog
YXJndW1lbnRzTm9kZSA9IGNhbGxBcmd1bWVudHMuYXJndW1lbnRzTm9kZSgpKSB7CkBAIC0zMjYy
LDE4ICszMjMyLDEzIEBAIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q29uc3Ry
dWN0KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywKICAgICAgICAgICAgIGF1dG8g
ZXhwcmVzc2lvbiA9IHN0YXRpY19jYXN0PFNwcmVhZEV4cHJlc3Npb25Ob2RlKj4obi0+bV9leHBy
KS0+ZXhwcmVzc2lvbigpOwogICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGFyZ3VtZW50
UmVnaXN0ZXI7CiAgICAgICAgICAgICBhcmd1bWVudFJlZ2lzdGVyID0gZXhwcmVzc2lvbi0+ZW1p
dEJ5dGVjb2RlKCp0aGlzLCBjYWxsQXJndW1lbnRzLmFyZ3VtZW50UmVnaXN0ZXIoMCkpOwotICAg
ICAgICAgICAgcmV0dXJuIGVtaXRDb25zdHJ1Y3RWYXJhcmdzKGRzdCwgZnVuYywgY2FsbEFyZ3Vt
ZW50cy50aGlzUmVnaXN0ZXIoKSwgYXJndW1lbnRSZWdpc3Rlci5nZXQoKSwgbmV3VGVtcG9yYXJ5
KCksIDAsIGNhbGxBcmd1bWVudHMucHJvZmlsZUhvb2tSZWdpc3RlcigpLCBkaXZvdCwgZGl2b3RT
dGFydCwgZGl2b3RFbmQpOworICAgICAgICAgICAgcmV0dXJuIGVtaXRDb25zdHJ1Y3RWYXJhcmdz
KGRzdCwgZnVuYywgY2FsbEFyZ3VtZW50cy50aGlzUmVnaXN0ZXIoKSwgYXJndW1lbnRSZWdpc3Rl
ci5nZXQoKSwgbmV3VGVtcG9yYXJ5KCksIDAsIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7
CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGZvciAoQXJndW1lbnRMaXN0Tm9kZSogbiA9
IGFyZ3VtZW50c05vZGUtPm1fbGlzdE5vZGU7IG47IG4gPSBuLT5tX25leHQpCiAgICAgICAgICAg
ICBlbWl0Tm9kZShjYWxsQXJndW1lbnRzLmFyZ3VtZW50UmVnaXN0ZXIoYXJndW1lbnQrKyksIG4p
OwogICAgIH0KIAotICAgIGlmIChtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MpIHsKLSAgICAgICAg
ZW1pdE9wY29kZShvcF9wcm9maWxlX3dpbGxfY2FsbCk7Ci0gICAgICAgIGluc3RydWN0aW9ucygp
LmFwcGVuZChjYWxsQXJndW1lbnRzLnByb2ZpbGVIb29rUmVnaXN0ZXIoKS0+aW5kZXgoKSk7Ci0g
ICAgfQotCiAgICAgLy8gUmVzZXJ2ZSBzcGFjZSBmb3IgY2FsbCBmcmFtZS4KICAgICBWZWN0b3I8
UmVmUHRyPFJlZ2lzdGVySUQ+LCBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplLCBVbnNhZmVW
ZWN0b3JPdmVyZmxvdz4gY2FsbEZyYW1lOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSlNTdGFj
azo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsgKytpKQpAQCAtMzI5OCwxMSArMzI2Myw2IEBAIFJlZ2lz
dGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q29uc3RydWN0KFJlZ2lzdGVySUQqIGRzdCwg
UmVnaXN0ZXJJRCogZnVuYywKICAgICBpZiAoZXhwZWN0ZWRGdW5jdGlvbiAhPSBOb0V4cGVjdGVk
RnVuY3Rpb24pCiAgICAgICAgIGVtaXRMYWJlbChkb25lLmdldCgpKTsKIAotICAgIGlmIChtX3No
b3VsZEVtaXRQcm9maWxlSG9va3MpIHsKLSAgICAgICAgZW1pdE9wY29kZShvcF9wcm9maWxlX2Rp
ZF9jYWxsKTsKLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGNhbGxBcmd1bWVudHMucHJv
ZmlsZUhvb2tSZWdpc3RlcigpLT5pbmRleCgpKTsKLSAgICB9Ci0KICAgICByZXR1cm4gZHN0Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVj
b2RlR2VuZXJhdG9yLmgKaW5kZXggOTliYzc5Ny4uMjJjZTRhMyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaApAQCAt
NzUsMTEgKzc1LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGFyZ3Vt
ZW50UmVnaXN0ZXIodW5zaWduZWQgaSkgeyByZXR1cm4gbV9hcmd2W2kgKyAxXS5nZXQoKTsgfQog
ICAgICAgICB1bnNpZ25lZCBzdGFja09mZnNldCgpIHsgcmV0dXJuIC1tX2FyZ3ZbMF0tPmluZGV4
KCkgKyBKU1N0YWNrOjpDYWxsRnJhbWVIZWFkZXJTaXplOyB9CiAgICAgICAgIHVuc2lnbmVkIGFy
Z3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCkgeyByZXR1cm4gbV9hcmd2LnNpemUoKSAtIG1fcGFk
ZGluZzsgfQotICAgICAgICBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVyKCkgeyByZXR1
cm4gbV9wcm9maWxlSG9va1JlZ2lzdGVyLmdldCgpOyB9CiAgICAgICAgIEFyZ3VtZW50c05vZGUq
IGFyZ3VtZW50c05vZGUoKSB7IHJldHVybiBtX2FyZ3VtZW50c05vZGU7IH0KIAogICAgIHByaXZh
dGU6Ci0gICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBtX3Byb2ZpbGVIb29rUmVnaXN0ZXI7CiAg
ICAgICAgIEFyZ3VtZW50c05vZGUqIG1fYXJndW1lbnRzTm9kZTsKICAgICAgICAgVmVjdG9yPFJl
ZlB0cjxSZWdpc3RlcklEPiwgOCwgVW5zYWZlVmVjdG9yT3ZlcmZsb3c+IG1fYXJndjsKICAgICAg
ICAgdW5zaWduZWQgbV9wYWRkaW5nOwpAQCAtMjY5LDEwICsyNjcsMTAgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIERlY2xhcmF0aW9uU3RhY2tzOjpGdW5j
dGlvblN0YWNrIEZ1bmN0aW9uU3RhY2s7CiAKLSAgICAgICAgQnl0ZWNvZGVHZW5lcmF0b3IoVk0m
LCBQcm9ncmFtTm9kZSosIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayosIERlYnVnZ2VyTW9kZSwg
UHJvZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7Ci0gICAgICAgIEJ5dGVj
b2RlR2VuZXJhdG9yKFZNJiwgRnVuY3Rpb25Ob2RlKiwgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9j
ayosIERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50
Kik7Ci0gICAgICAgIEJ5dGVjb2RlR2VuZXJhdG9yKFZNJiwgRXZhbE5vZGUqLCBVbmxpbmtlZEV2
YWxDb2RlQmxvY2sqLCBEZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSwgY29uc3QgVmFyaWFibGVF
bnZpcm9ubWVudCopOwotICAgICAgICBCeXRlY29kZUdlbmVyYXRvcihWTSYsIE1vZHVsZVByb2dy
YW1Ob2RlKiwgVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiwgRGVidWdnZXJNb2RlLCBQ
cm9maWxlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKKyAgICAgICAgQnl0ZWNv
ZGVHZW5lcmF0b3IoVk0mLCBQcm9ncmFtTm9kZSosIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayos
IERlYnVnZ2VyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOworICAgICAgICBCeXRl
Y29kZUdlbmVyYXRvcihWTSYsIEZ1bmN0aW9uTm9kZSosIFVubGlua2VkRnVuY3Rpb25Db2RlQmxv
Y2sqLCBEZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKKyAgICAgICAg
Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mLCBFdmFsTm9kZSosIFVubGlua2VkRXZhbENvZGVCbG9jayos
IERlYnVnZ2VyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOworICAgICAgICBCeXRl
Y29kZUdlbmVyYXRvcihWTSYsIE1vZHVsZVByb2dyYW1Ob2RlKiwgVW5saW5rZWRNb2R1bGVQcm9n
cmFtQ29kZUJsb2NrKiwgRGVidWdnZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7
CiAKICAgICAgICAgfkJ5dGVjb2RlR2VuZXJhdG9yKCk7CiAgICAgICAgIApAQCAtNTc3LDggKzU3
NSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2FsbChSZWdp
c3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIEV4cGVjdGVkRnVuY3Rpb24sIENhbGxBcmd1
bWVudHMmLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9u
JiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0Q2FsbEluVGFpbFBvc2l0aW9uKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0
ZXJJRCogZnVuYywgRXhwZWN0ZWRGdW5jdGlvbiwgQ2FsbEFyZ3VtZW50cyYsIGNvbnN0IEpTVGV4
dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRDYWxs
RXZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIENhbGxBcmd1bWVudHMmLCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0
YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwotICAgICAgICBSZWdpc3RlcklE
KiBlbWl0Q2FsbFZhcmFyZ3MoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdp
c3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCog
Zmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIFJlZ2lzdGVySUQq
IHByb2ZpbGVIb29rUmVnaXN0ZXIsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVu
ZCk7Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRDYWxsVmFyYXJnc0luVGFpbFBvc2l0aW9uKFJl
Z2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVy
LCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBp
bnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVy
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0Q2FsbFZhcmFyZ3MoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBS
ZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJ
RCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRD
YWxsVmFyYXJnc0luVGFpbFBvc2l0aW9uKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVu
YywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lz
dGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogCiAgICAgICAgIGVudW0gUHJvcGVy
dHlEZXNjcmlwdG9yT3B0aW9uIHsKICAgICAgICAgICAgIFByb3BlcnR5Q29uZmlndXJhYmxlID0g
MSwKQEAgLTcwNCw3ICs3MDIsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBDb2RlVHlw
ZSBjb2RlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZVR5cGU7IH0KIAotICAgICAgICBib29s
IHNob3VsZEVtaXRQcm9maWxlSG9va3MoKSB7IHJldHVybiBtX3Nob3VsZEVtaXRQcm9maWxlSG9v
a3M7IH0KICAgICAgICAgYm9vbCBzaG91bGRFbWl0RGVidWdIb29rcygpIHsgcmV0dXJuIG1fc2hv
dWxkRW1pdERlYnVnSG9va3M7IH0KICAgICAgICAgCiAgICAgICAgIGJvb2wgaXNTdHJpY3RNb2Rl
KCkgY29uc3QgeyByZXR1cm4gbV9jb2RlQmxvY2stPmlzU3RyaWN0TW9kZSgpOyB9CkBAIC04NDks
OCArODQ2LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgdm9pZCBnZXRWYXJpYWJsZXNV
bmRlclREWihWYXJpYWJsZUVudmlyb25tZW50Jik7CiAKLSAgICAgICAgUmVnaXN0ZXJJRCogZW1p
dENvbnN0cnVjdFZhcmFyZ3MoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdp
c3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCog
Zmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdPZmZzZXQsIFJlZ2lzdGVySUQq
IHByb2ZpbGVIb29rUmVnaXN0ZXIsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVu
ZCk7Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRDYWxsVmFyYXJncyhPcGNvZGVJRCwgUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJl
Z2lzdGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMy
X3QgZmlyc3RWYXJBcmdPZmZzZXQsIFJlZ2lzdGVySUQqIHByb2ZpbGVIb29rUmVnaXN0ZXIsIGNv
bnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3Rh
cnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCk7CisgICAgICAgIFJlZ2lzdGVySUQq
IGVtaXRDb25zdHJ1Y3RWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywg
UmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVy
SUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0
Q2FsbFZhcmFyZ3MoT3Bjb2RlSUQsIFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywg
UmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVy
SUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogICAgICAgICAKICAgICAgICAgdm9pZCBl
bWl0TG9nU2hhZG93Q2hpY2tlblByb2xvZ3VlSWZOZWNlc3NhcnkoKTsKICAgICAgICAgdm9pZCBl
bWl0TG9nU2hhZG93Q2hpY2tlblRhaWxJZk5lY2Vzc2FyeSgpOwpAQCAtODcyLDcgKzg2OSw2IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBWZWN0b3I8VW5saW5rZWRJbnN0cnVjdGlvbiwgMCwg
VW5zYWZlVmVjdG9yT3ZlcmZsb3c+IG1faW5zdHJ1Y3Rpb25zOwogCiAgICAgICAgIGJvb2wgbV9z
aG91bGRFbWl0RGVidWdIb29rczsKLSAgICAgICAgYm9vbCBtX3Nob3VsZEVtaXRQcm9maWxlSG9v
a3M7CiAKICAgICAgICAgc3RydWN0IFN5bWJvbFRhYmxlU3RhY2tFbnRyeSB7CiAgICAgICAgICAg
ICBTeW1ib2xUYWJsZSogbV9zeW1ib2xUYWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCBmMjUzMGVlLi4zYmJkMmYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29k
ZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwCkBAIC03MDcsOSArNzA3LDYgQEAgQ2FsbEFyZ3VtZW50czo6Q2FsbEFyZ3VtZW50
cyhCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBBcmd1bWVudHNOb2RlKiBhcmd1bWUKICAg
ICA6IG1fYXJndW1lbnRzTm9kZShhcmd1bWVudHNOb2RlKQogICAgICwgbV9wYWRkaW5nKDApCiB7
Ci0gICAgaWYgKGdlbmVyYXRvci5zaG91bGRFbWl0UHJvZmlsZUhvb2tzKCkpCi0gICAgICAgIG1f
cHJvZmlsZUhvb2tSZWdpc3RlciA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKLQogICAgIHNp
emVfdCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA9IDEgKyBhZGRpdGlvbmFsQXJndW1lbnRz
OyAvLyAndGhpcycgcmVnaXN0ZXIuCiAgICAgaWYgKGFyZ3VtZW50c05vZGUpIHsKICAgICAgICAg
Zm9yIChBcmd1bWVudExpc3ROb2RlKiBub2RlID0gYXJndW1lbnRzTm9kZS0+bV9saXN0Tm9kZTsg
bm9kZTsgbm9kZSA9IG5vZGUtPm1fbmV4dCkKQEAgLTEwMjEsMTYgKzEwMTgsMTMgQEAgUmVnaXN0
ZXJJRCogQ2FsbEZ1bmN0aW9uQ2FsbERvdE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yLAogICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZXR1cm5WYWx1ZSA9IGdl
bmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCk7CiAgICAgewogICAgICAgICBpZiAobV9hcmdz
LT5tX2xpc3ROb2RlICYmIG1fYXJncy0+bV9saXN0Tm9kZS0+bV9leHByICYmIG1fYXJncy0+bV9s
aXN0Tm9kZS0+bV9leHByLT5pc1NwcmVhZEV4cHJlc3Npb24oKSkgewotICAgICAgICAgICAgUmVm
UHRyPFJlZ2lzdGVySUQ+IHByb2ZpbGVIb29rUmVnaXN0ZXI7Ci0gICAgICAgICAgICBpZiAoZ2Vu
ZXJhdG9yLnNob3VsZEVtaXRQcm9maWxlSG9va3MoKSkKLSAgICAgICAgICAgICAgICBwcm9maWxl
SG9va1JlZ2lzdGVyID0gZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpOwogICAgICAgICAgICAgU3By
ZWFkRXhwcmVzc2lvbk5vZGUqIHNwcmVhZCA9IHN0YXRpY19jYXN0PFNwcmVhZEV4cHJlc3Npb25O
b2RlKj4obV9hcmdzLT5tX2xpc3ROb2RlLT5tX2V4cHIpOwogICAgICAgICAgICAgRXhwcmVzc2lv
bk5vZGUqIHN1YmplY3QgPSBzcHJlYWQtPmV4cHJlc3Npb24oKTsKICAgICAgICAgICAgIFJlZlB0
cjxSZWdpc3RlcklEPiBhcmd1bWVudHNSZWdpc3RlcjsKICAgICAgICAgICAgIGFyZ3VtZW50c1Jl
Z2lzdGVyID0gZ2VuZXJhdG9yLmVtaXROb2RlKHN1YmplY3QpOwogICAgICAgICAgICAgZ2VuZXJh
dG9yLmVtaXRFeHByZXNzaW9uSW5mbyhzcHJlYWQtPmRpdm90KCksIHNwcmVhZC0+ZGl2b3RTdGFy
dCgpLCBzcHJlYWQtPmRpdm90RW5kKCkpOwogICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+
IHRoaXNSZWdpc3RlciA9IGdlbmVyYXRvci5lbWl0R2V0QnlWYWwoZ2VuZXJhdG9yLm5ld1RlbXBv
cmFyeSgpLCBhcmd1bWVudHNSZWdpc3Rlci5nZXQoKSwgZ2VuZXJhdG9yLmVtaXRMb2FkKDAsIGpz
TnVtYmVyKDApKSk7Ci0gICAgICAgICAgICBnZW5lcmF0b3IuZW1pdENhbGxWYXJhcmdzSW5UYWls
UG9zaXRpb24ocmV0dXJuVmFsdWUuZ2V0KCksIGJhc2UuZ2V0KCksIHRoaXNSZWdpc3Rlci5nZXQo
KSwgYXJndW1lbnRzUmVnaXN0ZXIuZ2V0KCksIGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgMSwg
cHJvZmlsZUhvb2tSZWdpc3Rlci5nZXQoKSwgZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVu
ZCgpKTsKKyAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlv
bihyZXR1cm5WYWx1ZS5nZXQoKSwgYmFzZS5nZXQoKSwgdGhpc1JlZ2lzdGVyLmdldCgpLCBhcmd1
bWVudHNSZWdpc3Rlci5nZXQoKSwgZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAxLCBkaXZvdCgp
LCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwogICAgICAgICB9IGVsc2UgaWYgKG1fYXJncy0+
bV9saXN0Tm9kZSAmJiBtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fZXhwcikgewogICAgICAgICAgICAg
QXJndW1lbnRMaXN0Tm9kZSogb2xkTGlzdCA9IG1fYXJncy0+bV9saXN0Tm9kZTsKICAgICAgICAg
ICAgIG1fYXJncy0+bV9saXN0Tm9kZSA9IG1fYXJncy0+bV9saXN0Tm9kZS0+bV9uZXh0OwpAQCAt
MTA5NCw5ICsxMDg4LDYgQEAgUmVnaXN0ZXJJRCogQXBwbHlGdW5jdGlvbkNhbGxEb3ROb2RlOjpl
bWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwKICAgICAgICAgICAgIEFy
Z3VtZW50TGlzdE5vZGUqIG9sZExpc3QgPSBtX2FyZ3MtPm1fbGlzdE5vZGU7CiAgICAgICAgICAg
ICBpZiAobV9hcmdzLT5tX2xpc3ROb2RlLT5tX2V4cHItPmlzU3ByZWFkRXhwcmVzc2lvbigpKSB7
CiAgICAgICAgICAgICAgICAgU3ByZWFkRXhwcmVzc2lvbk5vZGUqIHNwcmVhZCA9IHN0YXRpY19j
YXN0PFNwcmVhZEV4cHJlc3Npb25Ob2RlKj4obV9hcmdzLT5tX2xpc3ROb2RlLT5tX2V4cHIpOwot
ICAgICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9maWxlSG9va1JlZ2lzdGVyOwot
ICAgICAgICAgICAgICAgIGlmIChnZW5lcmF0b3Iuc2hvdWxkRW1pdFByb2ZpbGVIb29rcygpKQot
ICAgICAgICAgICAgICAgICAgICBwcm9maWxlSG9va1JlZ2lzdGVyID0gZ2VuZXJhdG9yLm5ld1Rl
bXBvcmFyeSgpOwogICAgICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiByZWFsRnVuY3Rp
b24gPSBnZW5lcmF0b3IuZW1pdE1vdmUoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBiYXNlLmdl
dCgpKTsKICAgICAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gaW5kZXggPSBnZW5lcmF0
b3IuZW1pdExvYWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBqc051bWJlcigwKSk7CiAgICAg
ICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHRoaXNSZWdpc3RlciA9IGdlbmVyYXRvci5l
bWl0TG9hZChnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIGpzVW5kZWZpbmVkKCkpOwpAQCAtMTEy
MCw3ICsxMTExLDcgQEAgUmVnaXN0ZXJJRCogQXBwbHlGdW5jdGlvbkNhbGxEb3ROb2RlOjplbWl0
Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwKICAgICAgICAgICAgICAgICAg
ICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChlbmQuZ2V0KCkpOwogICAgICAgICAgICAgICAgIH07CiAg
ICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRFbnVtZXJhdGlvbih0aGlzLCBzcHJlYWQtPmV4
cHJlc3Npb24oKSwgZXh0cmFjdG9yKTsKLSAgICAgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdENh
bGxWYXJhcmdzSW5UYWlsUG9zaXRpb24ocmV0dXJuVmFsdWUuZ2V0KCksIHJlYWxGdW5jdGlvbi5n
ZXQoKSwgdGhpc1JlZ2lzdGVyLmdldCgpLCBhcmd1bWVudHNSZWdpc3Rlci5nZXQoKSwgZ2VuZXJh
dG9yLm5ld1RlbXBvcmFyeSgpLCAwLCBwcm9maWxlSG9va1JlZ2lzdGVyLmdldCgpLCBkaXZvdCgp
LCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOworICAgICAgICAgICAgICAgIGdlbmVyYXRvci5l
bWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlvbihyZXR1cm5WYWx1ZS5nZXQoKSwgcmVhbEZ1bmN0
aW9uLmdldCgpLCB0aGlzUmVnaXN0ZXIuZ2V0KCksIGFyZ3VtZW50c1JlZ2lzdGVyLmdldCgpLCBn
ZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIDAsIGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RF
bmQoKSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKG1fYXJncy0+bV9saXN0Tm9kZS0+bV9uZXh0
KSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKG1fYXJncy0+bV9saXN0Tm9kZS0+bV9uZXh0LT5t
X2V4cHItPmlzU2ltcGxlQXJyYXkoKSk7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCFtX2FyZ3Mt
Pm1fbGlzdE5vZGUtPm1fbmV4dC0+bV9uZXh0KTsKQEAgLTExNDUsOSArMTEzNiw2IEBAIFJlZ2lz
dGVySUQqIEFwcGx5RnVuY3Rpb25DYWxsRG90Tm9kZTo6ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2Vu
ZXJhdG9yJiBnZW5lcmF0b3IsCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBBU1NF
UlQobV9hcmdzLT5tX2xpc3ROb2RlICYmIG1fYXJncy0+bV9saXN0Tm9kZS0+bV9uZXh0KTsKLSAg
ICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IHByb2ZpbGVIb29rUmVnaXN0ZXI7Ci0gICAgICAgIGlm
IChnZW5lcmF0b3Iuc2hvdWxkRW1pdFByb2ZpbGVIb29rcygpKQotICAgICAgICAgICAgcHJvZmls
ZUhvb2tSZWdpc3RlciA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKICAgICAgICAgUmVmUHRy
PFJlZ2lzdGVySUQ+IHJlYWxGdW5jdGlvbiA9IGdlbmVyYXRvci5lbWl0TW92ZShnZW5lcmF0b3Iu
dGVtcERlc3RpbmF0aW9uKGRzdCksIGJhc2UuZ2V0KCkpOwogICAgICAgICBSZWZQdHI8UmVnaXN0
ZXJJRD4gdGhpc1JlZ2lzdGVyID0gZ2VuZXJhdG9yLmVtaXROb2RlKG1fYXJncy0+bV9saXN0Tm9k
ZS0+bV9leHByKTsKICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGFyZ3NSZWdpc3RlcjsKQEAg
LTExNTksNyArMTE0Nyw3IEBAIFJlZ2lzdGVySUQqIEFwcGx5RnVuY3Rpb25DYWxsRG90Tm9kZTo6
ZW1pdEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsCiAgICAgICAgIHdoaWxl
ICgoYXJncyA9IGFyZ3MtPm1fbmV4dCkpCiAgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdE5vZGUo
YXJncy0+bV9leHByKTsKIAotICAgICAgICBnZW5lcmF0b3IuZW1pdENhbGxWYXJhcmdzSW5UYWls
UG9zaXRpb24ocmV0dXJuVmFsdWUuZ2V0KCksIHJlYWxGdW5jdGlvbi5nZXQoKSwgdGhpc1JlZ2lz
dGVyLmdldCgpLCBhcmdzUmVnaXN0ZXIuZ2V0KCksIGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwg
MCwgcHJvZmlsZUhvb2tSZWdpc3Rlci5nZXQoKSwgZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZv
dEVuZCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRDYWxsVmFyYXJnc0luVGFpbFBvc2l0aW9u
KHJldHVyblZhbHVlLmdldCgpLCByZWFsRnVuY3Rpb24uZ2V0KCksIHRoaXNSZWdpc3Rlci5nZXQo
KSwgYXJnc1JlZ2lzdGVyLmdldCgpLCBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIDAsIGRpdm90
KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7CiAgICAgfQogICAgIGlmIChlbWl0Q2FsbENo
ZWNrKSB7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcChlbmQuZ2V0KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5l
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5s
aW5lcy5oCmluZGV4IDA5MDkxZWMuLmQwODMyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTI4
NDQsOCArMjg0NCw2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlw
ZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgY2FzZSBMb2dTaGFk
b3dDaGlja2VuVGFpbDoKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFByb2ZpbGVXaWxsQ2Fs
bDoKLSAgICBjYXNlIFByb2ZpbGVEaWRDYWxsOgogICAgIGNhc2UgUHJvZmlsZVR5cGU6CiAgICAg
Y2FzZSBQcm9maWxlQ29udHJvbEZsb3c6CiAgICAgY2FzZSBQaGFudG9tOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCA2ZDA3OWY2Li44
NWQ4ZDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcApAQCAtMzc5OSwxNiArMzc5OSw2IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNl
QmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICBORVhUX09QQ09ERShvcF9kZWJ1Zyk7
CiAgICAgICAgIH0KIAotICAgICAgICBjYXNlIG9wX3Byb2ZpbGVfd2lsbF9jYWxsOiB7Ci0gICAg
ICAgICAgICBhZGRUb0dyYXBoKFByb2ZpbGVXaWxsQ2FsbCk7Ci0gICAgICAgICAgICBORVhUX09Q
Q09ERShvcF9wcm9maWxlX3dpbGxfY2FsbCk7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIG9w
X3Byb2ZpbGVfZGlkX2NhbGw6IHsKLSAgICAgICAgICAgIGFkZFRvR3JhcGgoUHJvZmlsZURpZENh
bGwpOwotICAgICAgICAgICAgTkVYVF9PUENPREUob3BfcHJvZmlsZV9kaWRfY2FsbCk7Ci0gICAg
ICAgIH0KLQogICAgICAgICBjYXNlIG9wX21vdjogewogICAgICAgICAgICAgTm9kZSogb3AgPSBn
ZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQpKTsKICAg
ICAgICAgICAgIHNldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3Bl
cmFuZCksIG9wKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2Fw
YWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVz
LmNwcAppbmRleCBjYzJkNDc0Li4wNjY2OWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCkBAIC0xMjQsOCArMTI0LDYgQEAgQ2FwYWJpbGl0eUxl
dmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIEluc3RydWMKICAgICBjYXNlIG9wX21vZDoKICAgICBjYXNlIG9wX2RpdjoKICAgICBjYXNl
IG9wX2RlYnVnOgotICAgIGNhc2Ugb3BfcHJvZmlsZV93aWxsX2NhbGw6Ci0gICAgY2FzZSBvcF9w
cm9maWxlX2RpZF9jYWxsOgogICAgIGNhc2Ugb3BfcHJvZmlsZV90eXBlOgogICAgIGNhc2Ugb3Bf
cHJvZmlsZV9jb250cm9sX2Zsb3c6CiAgICAgY2FzZSBvcF9tb3Y6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCmluZGV4IGZhNzY5NDAuLmRhMzA5OGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0zNzIsOCArMzcyLDYgQEAg
dm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0
b3ImIHJlYWQsIGNvbnN0IFdyaXRlRnUKICAgICBjYXNlIENoZWNrVGllclVwQXRSZXR1cm46CiAg
ICAgY2FzZSBDaGVja1RpZXJVcEFuZE9TUkVudGVyOgogICAgIGNhc2UgTG9vcEhpbnQ6Ci0gICAg
Y2FzZSBQcm9maWxlV2lsbENhbGw6Ci0gICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICBjYXNl
IFByb2ZpbGVUeXBlOgogICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgogICAgIGNhc2UgU3Rv
cmVCYXJyaWVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2Vz
R0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCmluZGV4IDZj
ZjBkMGIuLjVmZjJlY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
RG9lc0dDLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAK
QEAgLTE1MCw4ICsxNTAsNiBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUp
CiAgICAgY2FzZSBDb25zdHJ1Y3RGb3J3YXJkVmFyYXJnczoKICAgICBjYXNlIFRhaWxDYWxsRm9y
d2FyZFZhcmFyZ3M6CiAgICAgY2FzZSBUYWlsQ2FsbEZvcndhcmRWYXJhcmdzSW5saW5lZENhbGxl
cjoKLSAgICBjYXNlIFByb2ZpbGVXaWxsQ2FsbDoKLSAgICBjYXNlIFByb2ZpbGVEaWRDYWxsOgog
ICAgIGNhc2UgUHJvZmlsZVR5cGU6CiAgICAgY2FzZSBQcm9maWxlQ29udHJvbEZsb3c6CiAgICAg
Y2FzZSBPdmVycmlkZXNIYXNJbnN0YW5jZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwCmluZGV4IDAzOTVhM2YuLjEzNTllNTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMTUzNSw4ICsxNTM1LDYgQEAgcHJp
dmF0ZToKICAgICAgICAgY2FzZSBOZXdPYmplY3Q6CiAgICAgICAgIGNhc2UgTmV3QXJyYXlCdWZm
ZXI6CiAgICAgICAgIGNhc2UgTmV3UmVnZXhwOgotICAgICAgICBjYXNlIFByb2ZpbGVXaWxsQ2Fs
bDoKLSAgICAgICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICAgICAgY2FzZSBEZWxldGVCeUlk
OgogICAgICAgICBjYXNlIERlbGV0ZUJ5VmFsOgogICAgICAgICBjYXNlIElzQXJyYXlPYmplY3Q6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKaW5kZXggMTgxYzc5MC4uMTk3
ODc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtMzAzLDgg
KzMwMyw2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhNYXRl
cmlhbGl6ZUNyZWF0ZUFjdGl2YXRpb24sIE5vZGVSZXN1bHRKUyB8IE5vZGVIYXNWYXJBcmdzKSBc
CiAgICAgXAogICAgIC8qIE5vZGVzIGZvciBtaXNjIG9wZXJhdGlvbnMuICovXAotICAgIG1hY3Jv
KFByb2ZpbGVXaWxsQ2FsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAotICAgIG1hY3JvKFByb2ZpbGVE
aWRDYWxsLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oT3ZlcnJpZGVzSGFzSW5zdGFu
Y2UsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKElu
c3RhbmNlT2YsIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSW5zdGFuY2VPZkN1c3Rv
bSwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRCb29sZWFuKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhh
c2UuY3BwCmluZGV4IDE2NjFlOTQuLjUwNjg0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBA
IC0xMDM1LDggKzEwMzUsNiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIERGRzo6SnVtcDoKICAg
ICAgICAgY2FzZSBCcmFuY2g6CiAgICAgICAgIGNhc2UgU3dpdGNoOgotICAgICAgICBjYXNlIFBy
b2ZpbGVXaWxsQ2FsbDoKLSAgICAgICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICAgICAgY2Fz
ZSBQcm9maWxlVHlwZToKICAgICAgICAgY2FzZSBQcm9maWxlQ29udHJvbEZsb3c6CiAgICAgICAg
IGNhc2UgVGhyb3dSZWZlcmVuY2VFcnJvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggZjliZGViOS4uNjI5ZTA1OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTI1MCw4ICsyNTAsNiBAQCBi
b29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgs
IE5vZGUqIG5vZGUpCiAgICAgY2FzZSBOZXdBcnJheVdpdGhTaXplOgogICAgIGNhc2UgTmV3QXJy
YXlCdWZmZXI6CiAgICAgY2FzZSBOZXdSZWdleHA6Ci0gICAgY2FzZSBQcm9maWxlV2lsbENhbGw6
Ci0gICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgIGNh
c2UgUHJvZmlsZUNvbnRyb2xGbG93OgogICAgIGNhc2UgQ2hlY2tUeXBlSW5mb0ZsYWdzOgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAKaW5kZXggZDc0MGQ3Ny4uMzM4YWJhNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC01MTk3LDggKzUxOTcsNiBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIG5vUmVz
dWx0KG5vZGUpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgUHJvZmlsZVdpbGxDYWxsOgot
ICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAgICAgY2Fz
ZSBMb29wSGludDoKICAgICAgICAgLy8gVGhpcyBpcyBhIG5vLW9wLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXggMTQwMGVhNS4u
NDgyMWNkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCkBAIC00ODEyLDggKzQ4MTIsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwogICAgICAgICBicmVh
azsKICAgICAgICAgCi0gICAgY2FzZSBQcm9maWxlV2lsbENhbGw6Ci0gICAgY2FzZSBQcm9maWxl
RGlkQ2FsbDoKICAgICBjYXNlIFBoYW50b21Mb2NhbDoKICAgICBjYXNlIExvb3BIaW50OgogICAg
ICAgICAvLyBUaGlzIGlzIGEgbm8tb3AuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAKaW5kZXggMTg2NGU4NC4uOWNhYTRl
YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNj
cmlwdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRCYXNlLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIkluc3BlY3RvclZh
bHVlcy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVj
dC5oIgotI2luY2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RnVuY3Rp
b25DYWxsLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTcyLDE3ICs3
MSw4IEBAIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdE9iamVjdCYgSW5qZWN0ZWRTY3JpcHRCYXNl
OjppbmplY3RlZFNjcmlwdE9iamVjdCgpIGNvbnN0CiBKU0M6OkpTVmFsdWUgSW5qZWN0ZWRTY3Jp
cHRCYXNlOjpjYWxsRnVuY3Rpb25XaXRoRXZhbEVuYWJsZWQoRGVwcmVjYXRlZDo6U2NyaXB0RnVu
Y3Rpb25DYWxsJiBmdW5jdGlvbiwgYm9vbCYgaGFkRXhjZXB0aW9uKSBjb25zdAogewogICAgIEpT
Qzo6RXhlY1N0YXRlKiBzY3JpcHRTdGF0ZSA9IG1faW5qZWN0ZWRTY3JpcHRPYmplY3Quc2NyaXB0
U3RhdGUoKTsKLSAgICBKU0M6OkxlZ2FjeVByb2ZpbGVyOjpwcm9maWxlcigpLT5zdXNwZW5kUHJv
ZmlsaW5nKHNjcmlwdFN0YXRlKTsKLQotICAgIEpTQzo6SlNWYWx1ZSByZXN1bHRWYWx1ZTsKLSAg
ICB7Ci0gICAgICAgIEpTQzo6RGVidWdnZXJFdmFsRW5hYmxlciBldmFsRW5hYmxlcihzY3JpcHRT
dGF0ZSk7Ci0gICAgICAgIHJlc3VsdFZhbHVlID0gZnVuY3Rpb24uY2FsbChoYWRFeGNlcHRpb24p
OwotICAgIH0KLQotICAgIEpTQzo6TGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCktPnVuc3VzcGVu
ZFByb2ZpbGluZyhzY3JpcHRTdGF0ZSk7Ci0KLSAgICByZXR1cm4gcmVzdWx0VmFsdWU7CisgICAg
SlNDOjpEZWJ1Z2dlckV2YWxFbmFibGVyIGV2YWxFbmFibGVyKHNjcmlwdFN0YXRlKTsKKyAgICBy
ZXR1cm4gZnVuY3Rpb24uY2FsbChoYWRFeGNlcHRpb24pOwogfQogCiB2b2lkIEluamVjdGVkU2Ny
aXB0QmFzZTo6bWFrZUNhbGwoRGVwcmVjYXRlZDo6U2NyaXB0RnVuY3Rpb25DYWxsJiBmdW5jdGlv
biwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9UaW1lbGluZS5qc29uIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9UaW1lbGluZS5qc29uCmluZGV4IDgyMmZm
ODYuLjY5MTY5ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cHJvdG9jb2wvVGltZWxpbmUuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3Byb3RvY29sL1RpbWVsaW5lLmpzb24KQEAgLTUxLDQwICs1MSw2IEBACiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJkYXRhIiwgInR5cGUiOiAib2JqZWN0IiwgImRlc2NyaXB0aW9uIjog
IkV2ZW50IGRhdGEuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2hpbGRyZW4iLCAi
dHlwZSI6ICJhcnJheSIsICJvcHRpb25hbCI6IHRydWUsICJpdGVtcyI6IHsgIiRyZWYiOiAiVGlt
ZWxpbmVFdmVudCIgfSwgImRlc2NyaXB0aW9uIjogIk5lc3RlZCByZWNvcmRzLiIgfQogICAgICAg
ICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiQ1BVUHJv
ZmlsZU5vZGVBZ2dyZWdhdGVDYWxsSW5mbyIsCi0gICAgICAgICAgICAidHlwZSI6ICJvYmplY3Qi
LAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFnZ3JlZ2F0ZSBDUFUgUHJvZmlsZSBjYWxs
IGluZm8uIEhvbGRzIHRpbWUgaW5mb3JtYXRpb24gZm9yIGFsbCB0aGUgY2FsbHMgdGhhdCBoYXBw
ZW5lZCBvbiBhIG5vZGUuIiwKLSAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiY2FsbENvdW50IiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0
aW9uIjogIlRvdGFsIG51bWJlciBvZiBjYWxscy4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzdGFydFRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiU3RhcnQg
dGltZSBmb3IgdGhlIGZpcnN0IGNhbGwuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZW5kVGltZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJFbmQgdGltZSBmb3Ig
dGhlIGxhc3QgY2FsbC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0b3RhbFRpbWUi
LCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiVG90YWwgZXhlY3V0aW9uIHRpbWUg
Zm9yIGFsbCBjYWxscyBjb21iaW5lZC4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAg
ICAgICAgewotICAgICAgICAgICAgImlkIjogIkNQVVByb2ZpbGVOb2RlIiwKLSAgICAgICAgICAg
ICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ1BVIFByb2Zp
bGUgbm9kZS4gSG9sZHMgY2FsbHNpdGUgaW5mb3JtYXRpb24sIGV4ZWN1dGlvbiBzdGF0aXN0aWNz
IGFuZCBjaGlsZCBub2Rlcy4iLAotICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJpZCIsICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24i
OiAiVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgY2FsbCBzaXRlLiIgfSwKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImNhbGxJbmZvIiwgIiRyZWYiOiAiQ1BVUHJvZmlsZU5vZGVBZ2dyZWdh
dGVDYWxsSW5mbyIsICJkZXNjcmlwdGlvbiI6ICJBZ2dyZWdhdGUgaW5mbyBhYm91dCBhbGwgdGhl
IGNhbGxzIHRoYXQgbWFraW5nIHVwIHRoaXMgbm9kZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJmdW5jdGlvbk5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiRnVuY3Rpb24gbmFtZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiVVJMLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImxpbmVOdW1iZXIi
LCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkxp
bmUgbnVtYmVyLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbHVtbk51bWJlciIs
ICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQ29s
dW1uIG51bWJlci4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjaGlsZHJlbiIsICJ0
eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDUFVQcm9maWxlTm9kZSIgfSwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNoaWxkIG5vZGVzLiIgfQotICAgICAgICAg
ICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiQ1BVUHJvZmls
ZSIsCi0gICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIlByb2ZpbGUuIiwKLSAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAicm9vdE5vZGVzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7
ICIkcmVmIjogIkNQVVByb2ZpbGVOb2RlIiB9LCAiZGVzY3JpcHRpb24iOiAiVG9wIGxldmVsIG5v
ZGVzIGluIHRoZSBzdGFjay4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZGxlVGlt
ZSIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IHRydWUgfQotICAgICAgICAgICAgXQog
ICAgICAgICB9CiAgICAgXSwKICAgICAiY29tbWFuZHMiOiBbCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAppbmRleCA4OTMwYWMzLi5iZjYy
ZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnBy
ZXRlci5jcHAKQEAgLTUzLDcgKzUzLDYgQEAKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgogI2lu
Y2x1ZGUgIkxMSW50Q0xvb3AuaCIKICNpbmNsdWRlICJMTEludFRodW5rcy5oIgotI2luY2x1ZGUg
IkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiTGl0ZXJhbFBhcnNlci5oIgogI2luY2x1ZGUg
Ik9iamVjdFByb3RvdHlwZS5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgpAQCAtNjc1LDcgKzY3NCw2
IEBAIHB1YmxpYzoKICAgICBTdGFja1Zpc2l0b3I6OlN0YXR1cyBvcGVyYXRvcigpKFN0YWNrVmlz
aXRvciYgdmlzaXRvcikgY29uc3QKICAgICB7CiAgICAgICAgIHZpc2l0b3IudW53aW5kVG9NYWNo
aW5lQ29kZUJsb2NrRnJhbWUoKTsKLSAgICAgICAgVk0mIHZtID0gbV9jYWxsRnJhbWUtPnZtKCk7
CiAgICAgICAgIG1fY2FsbEZyYW1lID0gdmlzaXRvci0+Y2FsbEZyYW1lKCk7CiAgICAgICAgIG1f
Y29kZUJsb2NrID0gdmlzaXRvci0+Y29kZUJsb2NrKCk7CiAKQEAgLTY5Miw5ICs2OTAsNiBAQCBw
dWJsaWM6CiAKICAgICAgICAgYm9vbCBzaG91bGRTdG9wVW53aW5kaW5nID0gdmlzaXRvci0+Y2Fs
bGVySXNWTUVudHJ5RnJhbWUoKTsKICAgICAgICAgaWYgKHNob3VsZFN0b3BVbndpbmRpbmcpIHsK
LSAgICAgICAgICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJv
ZmlsZXIoKSkKLSAgICAgICAgICAgICAgICBwcm9maWxlci0+ZXhjZXB0aW9uVW53aW5kKG1fY2Fs
bEZyYW1lKTsKLQogICAgICAgICAgICAgY29weUNhbGxlZVNhdmVzVG9WTUVudHJ5RnJhbWVDYWxs
ZWVTYXZlc0J1ZmZlcih2aXNpdG9yKTsKIAogICAgICAgICAgICAgcmV0dXJuIFN0YWNrVmlzaXRv
cjo6RG9uZTsKQEAgLTk1NCwxNSArOTQ5LDkgQEAgZmFpbGVkSlNPTlA6CiAgICAgUHJvdG9DYWxs
RnJhbWUgcHJvdG9DYWxsRnJhbWU7CiAgICAgcHJvdG9DYWxsRnJhbWUuaW5pdChjb2RlQmxvY2ss
IEpTQ2FsbGVlOjpjcmVhdGUodm0sIHNjb3BlLT5nbG9iYWxPYmplY3QoKSwgc2NvcGUpLCB0aGlz
T2JqLCAxKTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVk
UHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGNhbGxGcmFtZSwgcHJv
Z3JhbS0+c291cmNlVVJMKCksIHByb2dyYW0tPmZpcnN0TGluZSgpLCBwcm9ncmFtLT5zdGFydENv
bHVtbigpKTsKLQogICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGU6CiAgICAgSlNWYWx1ZSByZXN1bHQg
PSBwcm9ncmFtLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJh
bWUpOwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9m
aWxlcigpKQotICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIHByb2dyYW0t
PnNvdXJjZVVSTCgpLCBwcm9ncmFtLT5maXJzdExpbmUoKSwgcHJvZ3JhbS0+c3RhcnRDb2x1bW4o
KSk7Ci0KICAgICByZXR1cm4gY2hlY2tlZFJldHVybihyZXN1bHQpOwogfQogCkBAIC0xMDExLDkg
KzEwMDAsNiBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlQ2FsbChDYWxsRnJhbWUqIGNh
bGxGcmFtZSwgSlNPYmplY3QqIGZ1bmN0aW9uLCBDYWxsVAogICAgIFByb3RvQ2FsbEZyYW1lIHBy
b3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQobmV3Q29kZUJsb2NrLCBmdW5j
dGlvbiwgdGhpc1ZhbHVlLCBhcmdzQ291bnQsIGFyZ3MuZGF0YSgpKTsKIAotICAgIGlmIChMZWdh
Y3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJv
ZmlsZXItPndpbGxFeGVjdXRlKGNhbGxGcmFtZSwgZnVuY3Rpb24pOwotCiAgICAgSlNWYWx1ZSBy
ZXN1bHQ7CiAgICAgewogICAgICAgICAvLyBFeGVjdXRlIHRoZSBjb2RlOgpAQCAtMTAyNiw5ICsx
MDEyLDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIEpTT2JqZWN0KiBmdW5jdGlvbiwgQ2FsbFQKICAgICAgICAgfQogICAgIH0KIAotICAg
IGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAg
ICAgICAgcHJvZmlsZXItPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBmdW5jdGlvbik7Ci0KICAgICBy
ZXR1cm4gY2hlY2tlZFJldHVybihyZXN1bHQpOwogfQogCkBAIC0xMDc5LDkgKzEwNjIsNiBAQCBK
U09iamVjdCogSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1Y3QoQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIEpTT2JqZWN0KiBjb25zdHJ1YwogICAgIFByb3RvQ2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1l
OwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQobmV3Q29kZUJsb2NrLCBjb25zdHJ1Y3RvciwgbmV3
VGFyZ2V0LCBhcmdzQ291bnQsIGFyZ3MuZGF0YSgpKTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxl
ciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPndp
bGxFeGVjdXRlKGNhbGxGcmFtZSwgY29uc3RydWN0b3IpOwotCiAgICAgSlNWYWx1ZSByZXN1bHQ7
CiAgICAgewogICAgICAgICAvLyBFeGVjdXRlIHRoZSBjb2RlLgpAQCAtMTA5NSw5ICsxMDc1LDYg
QEAgSlNPYmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KENhbGxGcmFtZSogY2Fs
bEZyYW1lLCBKU09iamVjdCogY29uc3RydWMKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChM
ZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAg
cHJvZmlsZXItPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBjb25zdHJ1Y3Rvcik7Ci0KICAgICBpZiAo
Y2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgQVNTRVJU
KHJlc3VsdC5pc09iamVjdCgpKTsKQEAgLTExNDAsMTggKzExMTcsMTIgQEAgSlNWYWx1ZSBJbnRl
cnByZXRlcjo6ZXhlY3V0ZShDYWxsRnJhbWVDbG9zdXJlJiBjbG9zdXJlKQogCiAgICAgU3RhY2tT
dGF0czo6Q2hlY2tQb2ludCBzdGFja0NoZWNrUG9pbnQ7CiAKLSAgICBpZiAoTGVnYWN5UHJvZmls
ZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT53
aWxsRXhlY3V0ZShjbG9zdXJlLm9sZENhbGxGcmFtZSwgY2xvc3VyZS5mdW5jdGlvbik7Ci0KICAg
ICBpZiAoVU5MSUtFTFkodm0uc2hvdWxkVHJpZ2dlclRlcm1pbmF0aW9uKGNsb3N1cmUub2xkQ2Fs
bEZyYW1lKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRp
b24oY2xvc3VyZS5vbGRDYWxsRnJhbWUpOwogCiAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZToKICAg
ICBKU1ZhbHVlIHJlc3VsdCA9IGNsb3N1cmUuZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0ZWRK
SVRDb2RlRm9yQ2FsbCgpLT5leGVjdXRlKCZ2bSwgY2xvc3VyZS5wcm90b0NhbGxGcmFtZSk7CiAK
LSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkp
Ci0gICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNsb3N1cmUub2xkQ2FsbEZyYW1lLCBjbG9z
dXJlLmZ1bmN0aW9uKTsKLQogICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHJlc3VsdCk7CiB9CiAK
QEAgLTEyNDksMTUgKzEyMjAsOSBAQCBKU1ZhbHVlIEludGVycHJldGVyOjpleGVjdXRlKEV2YWxF
eGVjdXRhYmxlKiBldmFsLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNWYWx1ZQogICAgIFByb3Rv
Q2FsbEZyYW1lIHByb3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQoY29kZUJs
b2NrLCBKU0NhbGxlZTo6Y3JlYXRlKHZtLCBzY29wZS0+Z2xvYmFsT2JqZWN0KCksIHNjb3BlKSwg
dGhpc1ZhbHVlLCAxKTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5l
bmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGNhbGxGcmFt
ZSwgZXZhbC0+c291cmNlVVJMKCksIGV2YWwtPmZpcnN0TGluZSgpLCBldmFsLT5zdGFydENvbHVt
bigpKTsKLQogICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGU6CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBl
dmFsLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOwog
Ci0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigp
KQotICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIGV2YWwtPnNvdXJjZVVS
TCgpLCBldmFsLT5maXJzdExpbmUoKSwgZXZhbC0+c3RhcnRDb2x1bW4oKSk7Ci0KICAgICByZXR1
cm4gY2hlY2tlZFJldHVybihyZXN1bHQpOwogfQogCkBAIC0xMjkyLDE1ICsxMjU3LDkgQEAgSlNW
YWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSogZXhlY3V0
YWJsZSwgQ2FsbEZyYW1lKiBjYWwKICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsK
ICAgICBwcm90b0NhbGxGcmFtZS5pbml0KGNvZGVCbG9jaywgSlNDYWxsZWU6OmNyZWF0ZSh2bSwg
c2NvcGUtPmdsb2JhbE9iamVjdCgpLCBzY29wZSksIGpzVW5kZWZpbmVkKCksIDEpOwogCi0gICAg
aWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAg
ICAgICBwcm9maWxlci0+d2lsbEV4ZWN1dGUoY2FsbEZyYW1lLCBleGVjdXRhYmxlLT5zb3VyY2VV
UkwoKSwgZXhlY3V0YWJsZS0+Zmlyc3RMaW5lKCksIGV4ZWN1dGFibGUtPnN0YXJ0Q29sdW1uKCkp
OwotCiAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZToKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGV4ZWN1
dGFibGUtPmdlbmVyYXRlZEpJVENvZGUoKS0+ZXhlY3V0ZSgmdm0sICZwcm90b0NhbGxGcmFtZSk7
CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVy
KCkpCi0gICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgZXhlY3V0YWJsZS0+
c291cmNlVVJMKCksIGV4ZWN1dGFibGUtPmZpcnN0TGluZSgpLCBleGVjdXRhYmxlLT5zdGFydENv
bHVtbigpKTsKLQogICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHJlc3VsdCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmNwcAppbmRleCAxZDUwYWJhLi5hZGFhODYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVQuY3BwCkBAIC0yOTAsOCArMjkwLDYgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21w
aWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVfT1Aob3BfbnN0cmljdGVxKQogICAgICAgICBE
RUZJTkVfT1Aob3BfZGVjKQogICAgICAgICBERUZJTkVfT1Aob3BfaW5jKQotICAgICAgICBERUZJ
TkVfT1Aob3BfcHJvZmlsZV9kaWRfY2FsbCkKLSAgICAgICAgREVGSU5FX09QKG9wX3Byb2ZpbGVf
d2lsbF9jYWxsKQogICAgICAgICBERUZJTkVfT1Aob3BfcHJvZmlsZV90eXBlKQogICAgICAgICBE
RUZJTkVfT1Aob3BfcHJvZmlsZV9jb250cm9sX2Zsb3cpCiAgICAgICAgIERFRklORV9PUChvcF9w
dXNoX3dpdGhfc2NvcGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAppbmRleCA1MTE0MDA2Li40M2Zi
ZWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKQEAgLTU2MCw4ICs1NjAsNiBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0X29wX25zdHJpY3RlcShJbnN0cnVjdGlvbiopOwog
ICAgICAgICB2b2lkIGVtaXRfb3BfZGVjKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1p
dF9vcF9pbmMoSW5zdHJ1Y3Rpb24qKTsKLSAgICAgICAgdm9pZCBlbWl0X29wX3Byb2ZpbGVfZGlk
X2NhbGwoSW5zdHJ1Y3Rpb24qKTsKLSAgICAgICAgdm9pZCBlbWl0X29wX3Byb2ZpbGVfd2lsbF9j
YWxsKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9wcm9maWxlX3R5cGUoSW5z
dHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX3Byb2ZpbGVfY29udHJvbF9mbG93KElu
c3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9wdXNoX3dpdGhfc2NvcGUoSW5zdHJ1
Y3Rpb24qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCmluZGV4IGYw
YTc1MTkuLjZkNDViYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cApAQCAtNzc0LDIyICs3NzQsNiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfY2hlY2tfdGR6KElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZQogICAgIHNsb3dQ
YXRoQ2FsbC5jYWxsKCk7CiB9CiAKLXZvaWQgSklUOjplbWl0X29wX3Byb2ZpbGVfd2lsbF9jYWxs
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCi17Ci0gICAgSnVtcCBwcm9maWxlckRv
bmUgPSBicmFuY2hUZXN0UHRyKFplcm8sIEFic29sdXRlQWRkcmVzcyhtX3ZtLT5lbmFibGVkUHJv
ZmlsZXJBZGRyZXNzKCkpKTsKLSAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0
cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QwKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlv
blByb2ZpbGVXaWxsQ2FsbCwgcmVnVDApOwotICAgIHByb2ZpbGVyRG9uZS5saW5rKHRoaXMpOwot
fQotCi12b2lkIEpJVDo6ZW1pdF9vcF9wcm9maWxlX2RpZF9jYWxsKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCi17Ci0gICAgSnVtcCBwcm9maWxlckRvbmUgPSBicmFuY2hUZXN0UHRy
KFplcm8sIEFic29sdXRlQWRkcmVzcyhtX3ZtLT5lbmFibGVkUHJvZmlsZXJBZGRyZXNzKCkpKTsK
LSAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQsIHJlZ1QwKTsKLSAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblByb2ZpbGVEaWRDYWxsLCBy
ZWdUMCk7Ci0gICAgcHJvZmlsZXJEb25lLmxpbmsodGhpcyk7Ci19Ci0KIAogLy8gU2xvdyBjYXNl
cwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82
NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5k
ZXggY2YwNGNhOS4uNjRhYjA2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2RlczMyXzY0LmNwcApAQCAtMTA2MCwyNCArMTA2MCw2IEBAIHZvaWQgSklUOjplbWl0U2xv
d19vcF9jaGVja190ZHooSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNs
b3dDYXNlCiAgICAgc2xvd1BhdGhDYWxsLmNhbGwoKTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRfb3Bf
cHJvZmlsZV93aWxsX2NhbGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKLXsKLSAg
ICBsb2FkMzIobV92bS0+ZW5hYmxlZFByb2ZpbGVyQWRkcmVzcygpLCByZWdUMCk7Ci0gICAgSnVt
cCBwcm9maWxlckRvbmUgPSBicmFuY2hUZXN0UHRyKFplcm8sIHJlZ1QwKTsKLSAgICBlbWl0TG9h
ZChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMSwgcmVnVDApOwotICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uUHJvZmlsZVdpbGxDYWxsLCByZWdUMSwgcmVnVDApOwotICAg
IHByb2ZpbGVyRG9uZS5saW5rKHRoaXMpOwotfQotCi12b2lkIEpJVDo6ZW1pdF9vcF9wcm9maWxl
X2RpZF9jYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCi17Ci0gICAgbG9hZDMy
KG1fdm0tPmVuYWJsZWRQcm9maWxlckFkZHJlc3MoKSwgcmVnVDApOwotICAgIEp1bXAgcHJvZmls
ZXJEb25lID0gYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMCk7Ci0gICAgZW1pdExvYWQoY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVnVDEsIHJlZ1QwKTsKLSAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvblByb2ZpbGVEaWRDYWxsLCByZWdUMSwgcmVnVDApOwotICAgIHByb2ZpbGVy
RG9uZS5saW5rKHRoaXMpOwotfQotCiB2b2lkIEpJVDo6ZW1pdF9vcF9oYXNfc3RydWN0dXJlX3By
b3BlcnR5KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgaW50IGRzdCA9
IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCBiYzgxYzVjLi4zOTMwNGJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTUzLDcgKzUzLDYgQEAK
ICNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCIKICNpbmNsdWRlICJKU1N0YWNr
SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCi0jaW5jbHVkZSAiTGVnYWN5UHJv
ZmlsZXIuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlBvbHlt
b3JwaGljQWNjZXNzLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lLmgiCkBAIC0xMjQyLDEyICsx
MjQxLDYgQEAgU2xvd1BhdGhSZXR1cm5UeXBlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1p
emUoRXhlY1N0YXRlKiBleGVjLCBpbnQzMl90IGJ5dGUKICAgICAgICAgcmV0dXJuIGVuY29kZVJl
c3VsdCgwLCAwKTsKICAgICB9CiAgICAgCi0gICAgaWYgKHZtLmVuYWJsZWRQcm9maWxlcigpKSB7
Ci0gICAgICAgIENPREVCTE9DS19MT0dfRVZFTlQoY29kZUJsb2NrLCAiZGVsYXlPcHRpbWl6ZVRv
REZHIiwgKCJwcm9maWxlciBpcyBlbmFibGVkIikpOwotICAgICAgICB1cGRhdGVBbGxQcmVkaWN0
aW9uc0FuZE9wdGltaXplQWZ0ZXJXYXJtVXAoY29kZUJsb2NrKTsKLSAgICAgICAgcmV0dXJuIGVu
Y29kZVJlc3VsdCgwLCAwKTsKLSAgICB9Ci0KICAgICBEZWJ1Z2dlciogZGVidWdnZXIgPSBjb2Rl
QmxvY2stPmdsb2JhbE9iamVjdCgpLT5kZWJ1Z2dlcigpOwogICAgIGlmIChkZWJ1Z2dlciAmJiAo
ZGVidWdnZXItPmlzU3RlcHBpbmcoKSB8fCBjb2RlQmxvY2stPmJhc2VsaW5lQWx0ZXJuYXRpdmUo
KS0+aGFzRGVidWdnZXJSZXF1ZXN0cygpKSkgewogICAgICAgICBDT0RFQkxPQ0tfTE9HX0VWRU5U
KGNvZGVCbG9jaywgImRlbGF5T3B0aW1pemVUb0RGRyIsICgiZGVidWdnZXIgaXMgc3RlcHBpbmcg
b3IgaGFzIHJlcXVlc3RzIikpOwpAQCAtMTU1OSwyNCArMTU1Miw2IEBAIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25Qb3BTY29wZShFeGVjU3RhdGUqIGV4ZWMsIGludDMyX3Qgc2NvcGVSZWcp
CiAgICAgZXhlYy0+dW5jaGVja2VkUihzY29wZVJlZykgPSBzY29wZS0+bmV4dCgpOwogfQogCi12
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJvZmlsZURpZENhbGwoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7Ci0KLSAgICBp
ZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAg
ICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGV4ZWMsIEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpKTsKLX0KLQotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVXaWxsQ2FsbChF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKLXsKLSAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBl
eGVjKTsKLQotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJv
ZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGV4ZWMsIEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpKTsKLX0KLQogaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bkluc3RhbmNlT2ZDdXN0b20oRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUsIEpTT2JqZWN0KiBjb25zdHJ1Y3RvciwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEhhc0lu
c3RhbmNlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC0yMzU4LDkgKzIzMzMsNiBA
QCBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ2hlY2tJZkV4Y2VwdGlvbklzVW5jYXRj
aGFibGVBbmROb3RpZnlQcm9maWxlcihFeAogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIoJnZtLCBleGVjKTsKICAgICBSRUxFQVNFX0FTU0VSVCghIXZtLmV4Y2VwdGlvbigpKTsKIAot
ICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkK
LSAgICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2luZChleGVjKTsKLQogICAgIGlmIChpc1Rl
cm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24odm0uZXhjZXB0aW9uKCkpKSB7CiAgICAgICAgIGdl
bmVyaWNVbndpbmQoJnZtLCBleGVjKTsKICAgICAgICAgcmV0dXJuIDE7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IDIxMjk3MDMuLjU3Zjc4YjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC0zNzAsOCArMzcwLDYg
QEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEdldHRlclNldHRlcihFeGVjU3RhdGUq
LCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW0KICNlbmRpZgogdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1c2hGdW5jdGlvbk5hbWVTY29wZShFeGVjU3RhdGUqLCBpbnQzMl90LCBTeW1ib2xU
YWJsZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVEaWRDYWxsKEV4ZWNTdGF0ZSosIEVuY29k
ZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7Ci12b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHJv
ZmlsZVdpbGxDYWxsKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRTdWJzY3JpcHQsIEJ5VmFsSW5mbyopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlWYWxHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZh
bEluZm8qKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkdldEJ5VmFsU3RyaW5nKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJO
QUw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDNjMDc5ODEuLmU3ZWRlNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCkBAIC04NjQsNyArODY0LDcgQEAgcHJvdGVjdGVkOgogfTsKIAogY29uc3QgQ2xh
c3NJbmZvIEdsb2JhbE9iamVjdDo6c19pbmZvID0geyAiZ2xvYmFsIiwgJkpTR2xvYmFsT2JqZWN0
OjpzX2luZm8sIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoR2xvYmFsT2JqZWN0KSB9Owot
Y29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVj
dE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNjZXNzRnJvbSwgJnN1cHBvcnRzTGVnYWN5UHJvZmls
aW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmph
dmFTY3JpcHRSdW50aW1lRmxhZ3MsIDAsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1l
b3V0LCAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwgJm1vZHVsZUxvYWRlckZldGNoLCBudWxscHRyLCBu
dWxscHRyLCBudWxscHRyLCBudWxscHRyIH07Citjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJs
ZSBHbG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nl
c3NGcm9tLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwg
JmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsIDAsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVU
aW1lb3V0LCAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwgJm1vZHVsZUxvYWRlckZldGNoLCBudWxscHRy
LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07CiAKIAogR2xvYmFsT2JqZWN0OjpHbG9iYWxP
YmplY3QoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IGNjYzU4ZDEuLjhiZmE3Y2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAt
NTAsNyArNTAsNiBAQAogI2luY2x1ZGUgIkpTV2l0aFNjb3BlLmgiCiAjaW5jbHVkZSAiTExJbnRD
b21tb24uaCIKICNpbmNsdWRlICJMTEludEV4Y2VwdGlvbnMuaCIKLSNpbmNsdWRlICJMZWdhY3lQ
cm9maWxlci5oIgogI2luY2x1ZGUgIkxvd0xldmVsSW50ZXJwcmV0ZXIuaCIKICNpbmNsdWRlICJP
YmplY3RDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlByb3RvQ2FsbEZyYW1lLmgiCkBAIC0xNDI2
LDIyICsxNDI1LDYgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2RlYnVnKQogICAg
IExMSU5UX0VORCgpOwogfQogCi1MTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHJvZmls
ZV93aWxsX2NhbGwpCi17Ci0gICAgTExJTlRfQkVHSU4oKTsKLSAgICBpZiAoTGVnYWN5UHJvZmls
ZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT53
aWxsRXhlY3V0ZShleGVjLCBMTElOVF9PUCgxKS5qc1ZhbHVlKCkpOwotICAgIExMSU5UX0VORCgp
OwotfQotCi1MTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcHJvZmlsZV9kaWRfY2FsbCkK
LXsKLSAgICBMTElOVF9CRUdJTigpOwotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIg
PSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPmRpZEV4ZWN1dGUoZXhl
YywgTExJTlRfT1AoMSkuanNWYWx1ZSgpKTsKLSAgICBMTElOVF9FTkQoKTsKLX0KLQogTExJTlRf
U0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2hhbmRsZV9leGNlcHRpb24pCiB7CiAgICAgTExJTlRf
QkVHSU5fTk9fU0VUX1BDKCk7CkBAIC0xNTMwLDkgKzE1MTMsNiBAQCBMTElOVF9TTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfY2hlY2tfaWZfZXhjZXB0aW9uX2lzX3VuY2F0Y2hhYmxlX2FuZF9ub3Rp
ZnlfcHJvZgogICAgIExMSU5UX0JFR0lOKCk7CiAgICAgUkVMRUFTRV9BU1NFUlQoISF2bS5leGNl
cHRpb24oKSk7CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxl
ZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT5leGNlcHRpb25VbndpbmQoZXhlYyk7Ci0K
ICAgICBpZiAoaXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKHZtLmV4Y2VwdGlvbigpKSkK
ICAgICAgICAgTExJTlRfUkVUVVJOX1RXTyhwYywgYml0d2lzZV9jYXN0PHZvaWQqPihzdGF0aWNf
Y2FzdDx1aW50cHRyX3Q+KDEpKSk7CiAgICAgTExJTlRfUkVUVVJOX1RXTyhwYywgMCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCmluZGV4IGUzZDQxZTQu
LjI0OTk1NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNs
b3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRo
cy5oCkBAIC0xMTcsOCArMTE3LDYgQEAgTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3df
cGF0aF90aHJvdyk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3Rocm93
X3N0YXRpY19lcnJvcik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2hh
bmRsZV93YXRjaGRvZ190aW1lcik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19w
YXRoX2RlYnVnKTsKLUxMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHJvZmls
ZV93aWxsX2NhbGwpOwotTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wcm9m
aWxlX2RpZF9jYWxsKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaGFu
ZGxlX2V4Y2VwdGlvbik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dl
dF9mcm9tX3Njb3BlKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0
X3RvX3Njb3BlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dM
ZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbQppbmRleCA0M2JmNzdlLi5hMDg3OGY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC0xNjYy
LDI4ICsxNjYyLDYgQEAgX2xsaW50X29wX3Rocm93X3N0YXRpY19lcnJvcjoKICAgICBkaXNwYXRj
aCgzKQogCiAKLV9sbGludF9vcF9wcm9maWxlX3dpbGxfY2FsbDoKLSAgICB0cmFjZUV4ZWN1dGlv
bigpCi0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCi0gICAgbG9hZHAgQ29kZUJsb2NrOjpt
X3ZtW3QwXSwgdDAKLSAgICBsb2FkaSBWTTo6bV9lbmFibGVkUHJvZmlsZXJbdDBdLCB0MAotICAg
IGJ0cHogdDAsIC5vcFByb2ZpbGVyV2lsbENhbGxEb25lCi0gICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwpCi0ub3BQcm9maWxlcldpbGxDYWxsRG9uZToK
LSAgICBkaXNwYXRjaCgyKQotCi0KLV9sbGludF9vcF9wcm9maWxlX2RpZF9jYWxsOgotICAgIHRy
YWNlRXhlY3V0aW9uKCkKLSAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKLSAgICBsb2FkcCBD
b2RlQmxvY2s6Om1fdm1bdDBdLCB0MAotICAgIGxvYWRpIFZNOjptX2VuYWJsZWRQcm9maWxlclt0
MF0sIHQwCi0gICAgYnRweiB0MCwgLm9wUHJvZmlsZXJEaWRDYWxsRG9uZQotICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwpCi0ub3BQcm9maWxlckRpZENh
bGxEb25lOgotICAgIGRpc3BhdGNoKDIpCi0KLQogX2xsaW50X29wX2RlYnVnOgogICAgIHRyYWNl
RXhlY3V0aW9uKCkKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyTW9kZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvUGFyc2VyTW9kZXMuaAppbmRleCBmMGMzYTIyLi4yYjc5NTNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oCkBAIC0zOSw3ICszOSw2
IEBAIGVudW0gY2xhc3MgQ29uc3RydWN0b3JLaW5kIHsgTm9uZSwgQmFzZSwgRGVyaXZlZCB9Owog
ZW51bSBjbGFzcyBTdXBlckJpbmRpbmcgeyBOZWVkZWQsIE5vdE5lZWRlZCB9OwogZW51bSBjbGFz
cyBUaGlzVERaTW9kZSB7IEFsd2F5c0NoZWNrLCBDaGVja0lmTmVlZGVkIH07CiAKLWVudW0gUHJv
ZmlsZXJNb2RlIHsgUHJvZmlsZXJPZmYsIFByb2ZpbGVyT24gfTsKIGVudW0gRGVidWdnZXJNb2Rl
IHsgRGVidWdnZXJPZmYsIERlYnVnZ2VyT24gfTsKIAogZW51bSBjbGFzcyBGdW5jdGlvbk1vZGUg
eyBGdW5jdGlvbkV4cHJlc3Npb24sIEZ1bmN0aW9uRGVjbGFyYXRpb24sIE1ldGhvZERlZmluaXRp
b24gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9DYWxsSWRl
bnRpZmllci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0NhbGxJZGVudGlmaWVy
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5MWZjNjIuLjAwMDAwMDAKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0NhbGxJZGVudGlmaWVyLmgKKysrIC9kZXYv
bnVsbApAQCAtMSwxMTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLQotI2lmbmRlZiBDYWxsSWRlbnRpZmllcl9oCi0jZGVmaW5lIENh
bGxJZGVudGlmaWVyX2gKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
Ci0KLW5hbWVzcGFjZSBKU0MgewotCi0gICAgc3RydWN0IENhbGxJZGVudGlmaWVyIHsKLSAgICAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgcHVibGljOgotICAgICAgICBDYWxsSWRl
bnRpZmllcigpCi0gICAgICAgICAgICA6IG1fbGluZU51bWJlcigwKQotICAgICAgICAgICAgLCBt
X2NvbHVtbk51bWJlcigwKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBDYWxsSWRl
bnRpZmllcihjb25zdCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSwgY29uc3QgU3RyaW5nJiB1cmwsIHVu
c2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlcikKLSAgICAgICAgICAgIDog
bV9mdW5jdGlvbk5hbWUoZnVuY3Rpb25OYW1lKQotICAgICAgICAgICAgLCBtX3VybCghdXJsLmlz
TnVsbCgpID8gdXJsIDogIiIpCi0gICAgICAgICAgICAsIG1fbGluZU51bWJlcihsaW5lTnVtYmVy
KQotICAgICAgICAgICAgLCBtX2NvbHVtbk51bWJlcihjb2x1bW5OdW1iZXIpCi0gICAgICAgIHsK
LSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9mdW5jdGlvbk5hbWU7IH0KLQotICAgICAgICBjb25zdCBTdHJpbmcmIHVybCgp
IGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9Ci0gICAgICAgIHVuc2lnbmVkIGxpbmVOdW1iZXIoKSBj
b25zdCB7IHJldHVybiBtX2xpbmVOdW1iZXI7IH0KLSAgICAgICAgdW5zaWduZWQgY29sdW1uTnVt
YmVyKCkgY29uc3QgeyByZXR1cm4gbV9jb2x1bW5OdW1iZXI7IH0KLQotICAgICAgICBpbmxpbmUg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IENhbGxJZGVudGlmaWVyJiBvdGhlcikgY29uc3QgeyByZXR1
cm4gb3RoZXIubV9saW5lTnVtYmVyID09IG1fbGluZU51bWJlciAmJiBvdGhlci5tX2NvbHVtbk51
bWJlciA9PSBtX2NvbHVtbk51bWJlciAmJiBvdGhlci5tX2Z1bmN0aW9uTmFtZSA9PSBtX2Z1bmN0
aW9uTmFtZSAmJiBvdGhlci5tX3VybCA9PSBtX3VybDsgfQotICAgICAgICBpbmxpbmUgYm9vbCBv
cGVyYXRvciE9KGNvbnN0IENhbGxJZGVudGlmaWVyJiBvdGhlcikgY29uc3QgeyByZXR1cm4gISgq
dGhpcyA9PSBvdGhlcik7IH0KLQotICAgICAgICBzdHJ1Y3QgSGFzaCB7Ci0gICAgICAgICAgICBz
dGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBDYWxsSWRlbnRpZmllciYga2V5KQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGhhc2hDb2Rlc1s0XSA9IHsKLSAgICAgICAg
ICAgICAgICAgICAga2V5Lm1fZnVuY3Rpb25OYW1lLmltcGwoKS0+aGFzaCgpLAotICAgICAgICAg
ICAgICAgICAgICBrZXkubV91cmwuaW1wbCgpLT5oYXNoKCksCi0gICAgICAgICAgICAgICAgICAg
IGtleS5tX2xpbmVOdW1iZXIsCi0gICAgICAgICAgICAgICAgICAgIGtleS5tX2NvbHVtbk51bWJl
cgotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZ0hhc2hl
cjo6aGFzaE1lbW9yeTxzaXplb2YoaGFzaENvZGVzKT4oaGFzaENvZGVzKTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgQ2FsbElkZW50aWZpZXIm
IGEsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICAgICAg
ICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1
ZTsKLSAgICAgICAgfTsKLQotICAgICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3QgeyByZXR1cm4g
SGFzaDo6aGFzaCgqdGhpcyk7IH0KLQotI2lmbmRlZiBOREVCVUcKLSAgICAgICAgb3BlcmF0b3Ig
Y29uc3QgY2hhciooKSBjb25zdCB7IHJldHVybiBjX3N0cigpOyB9Ci0gICAgICAgIGNvbnN0IGNo
YXIqIGNfc3RyKCkgY29uc3QgeyByZXR1cm4gbV9mdW5jdGlvbk5hbWUudXRmOCgpLmRhdGEoKTsg
fQotI2VuZGlmCi0KLSAgICBwcml2YXRlOgotICAgICAgICBTdHJpbmcgbV9mdW5jdGlvbk5hbWU7
Ci0gICAgICAgIFN0cmluZyBtX3VybDsKLSAgICAgICAgdW5zaWduZWQgbV9saW5lTnVtYmVyOwot
ICAgICAgICB1bnNpZ25lZCBtX2NvbHVtbk51bWJlcjsKLSAgICB9OwotCi19IC8vIG5hbWVzcGFj
ZSBKU0MKLQotbmFtZXNwYWNlIFdURiB7Ci0KLSAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0
SGFzaDxKU0M6OkNhbGxJZGVudGlmaWVyPiB7IHR5cGVkZWYgSlNDOjpDYWxsSWRlbnRpZmllcjo6
SGFzaCBIYXNoOyB9OwotCi0gICAgdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxKU0M6OkNh
bGxJZGVudGlmaWVyPiA6IEdlbmVyaWNIYXNoVHJhaXRzPEpTQzo6Q2FsbElkZW50aWZpZXI+IHsK
LSAgICAgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKEpTQzo6Q2FsbElkZW50
aWZpZXImIHNsb3QpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG5ldyAoTm90TnVsbCwgJnNsb3Qp
IEpTQzo6Q2FsbElkZW50aWZpZXIoU3RyaW5nKCksIFN0cmluZygpLCBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkPjo6bWF4KCksIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgo
KSk7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25z
dCBKU0M6OkNhbGxJZGVudGlmaWVyJiB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIHZhbHVlLmZ1bmN0aW9uTmFtZSgpLmlzTnVsbCgpICYmIHZhbHVlLnVybCgpLmlzTnVsbCgp
ICYmIHZhbHVlLmxpbmVOdW1iZXIoKSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6
bWF4KCkgJiYgdmFsdWUuY29sdW1uTnVtYmVyKCkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNp
Z25lZD46Om1heCgpOwotICAgICAgICB9Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0K
LSNlbmRpZiAgLy8gQ2FsbElkZW50aWZpZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDc4N2QzNjIuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L0xlZ2FjeVByb2ZpbGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDIwOCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDEyLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0g
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJMZWdhY3lQcm9maWxlci5oIgotCi0jaW5jbHVk
ZSAiQ2FsbEZyYW1lLmgiCi0jaW5jbHVkZSAiQ29kZUJsb2NrLmgiCi0jaW5jbHVkZSAiQ29tbW9u
SWRlbnRpZmllcnMuaCIKLSNpbmNsdWRlICJJbnRlcm5hbEZ1bmN0aW9uLmgiCi0jaW5jbHVkZSAi
SlNGdW5jdGlvbi5oIgotI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCi0jaW5jbHVkZSAiTm9k
ZXMuaCIKLSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0jaW5jbHVkZSAiUHJvZmlsZS5oIgotI2lu
Y2x1ZGUgIlByb2ZpbGVHZW5lcmF0b3IuaCIKLSNpbmNsdWRlICJQcm9maWxlTm9kZS5oIgotCi1u
YW1lc3BhY2UgSlNDIHsKLQotc3RhdGljIGNvbnN0IGNoYXIqIEdsb2JhbENvZGVFeGVjdXRpb24g
PSAiKHByb2dyYW0pIjsKLXN0YXRpYyBjb25zdCBjaGFyKiBBbm9ueW1vdXNGdW5jdGlvbiA9ICIo
YW5vbnltb3VzIGZ1bmN0aW9uKSI7Ci1zdGF0aWMgdW5zaWduZWQgUHJvZmlsZXNVSUQgPSAwOwot
Ci1zdGF0aWMgQ2FsbElkZW50aWZpZXIgY3JlYXRlQ2FsbElkZW50aWZpZXJGcm9tRnVuY3Rpb25J
bXAoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRTb3VyY2VVUkws
IHVuc2lnbmVkIGRlZmF1bHRMaW5lTnVtYmVyLCB1bnNpZ25lZCBkZWZhdWx0Q29sdW1uTnVtYmVy
KTsKLQotTGVnYWN5UHJvZmlsZXIqIExlZ2FjeVByb2ZpbGVyOjpzX3NoYXJlZExlZ2FjeVByb2Zp
bGVyID0gbnVsbHB0cjsKLQotTGVnYWN5UHJvZmlsZXIqIExlZ2FjeVByb2ZpbGVyOjpwcm9maWxl
cigpCi17Ci0gICAgaWYgKCFzX3NoYXJlZExlZ2FjeVByb2ZpbGVyKQotICAgICAgICBzX3NoYXJl
ZExlZ2FjeVByb2ZpbGVyID0gbmV3IExlZ2FjeVByb2ZpbGVyKCk7Ci0gICAgcmV0dXJuIHNfc2hh
cmVkTGVnYWN5UHJvZmlsZXI7Ci19Ci0KLXZvaWQgTGVnYWN5UHJvZmlsZXI6OnN0YXJ0UHJvZmls
aW5nKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSwgUGFzc1JlZlB0cjxTdG9w
d2F0Y2g+IHN0b3B3YXRjaCkKLXsKLSAgICBpZiAoIWV4ZWMpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIC8vIENoZWNrIGlmIHdlIGN1cnJlbnRseSBoYXZlIGEgUHJvZmlsZSBmb3IgdGhpcyBnbG9i
YWwgRXhlY1N0YXRlIGFuZCB0aXRsZS4KLSAgICAvLyBJZiBzbyByZXR1cm4gZWFybHkgYW5kIGRv
bid0IGNyZWF0ZSBhIG5ldyBQcm9maWxlLgotICAgIEpTR2xvYmFsT2JqZWN0KiBvcmlnaW4gPSBl
eGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG1fY3VycmVudFByb2ZpbGVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIFByb2ZpbGVHZW5lcmF0
b3IqIHByb2ZpbGVHZW5lcmF0b3IgPSBtX2N1cnJlbnRQcm9maWxlc1tpXS5nZXQoKTsKLSAgICAg
ICAgaWYgKHByb2ZpbGVHZW5lcmF0b3ItPm9yaWdpbigpID09IG9yaWdpbiAmJiBwcm9maWxlR2Vu
ZXJhdG9yLT50aXRsZSgpID09IHRpdGxlKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGV4ZWMtPnZtKCkuc2V0RW5hYmxlZFByb2ZpbGVyKHRoaXMpOwotICAgIFJlZlB0cjxQcm9m
aWxlR2VuZXJhdG9yPiBwcm9maWxlR2VuZXJhdG9yID0gUHJvZmlsZUdlbmVyYXRvcjo6Y3JlYXRl
KGV4ZWMsIHRpdGxlLCArK1Byb2ZpbGVzVUlELCBzdG9wd2F0Y2gpOwotICAgIG1fY3VycmVudFBy
b2ZpbGVzLmFwcGVuZChwcm9maWxlR2VuZXJhdG9yKTsKLX0KLQotUmVmUHRyPFByb2ZpbGU+IExl
Z2FjeVByb2ZpbGVyOjpzdG9wUHJvZmlsaW5nKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5n
JiB0aXRsZSkKLXsKLSAgICBpZiAoIWV4ZWMpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0g
ICAgSlNHbG9iYWxPYmplY3QqIG9yaWdpbiA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsK
LSAgICBmb3IgKHB0cmRpZmZfdCBpID0gbV9jdXJyZW50UHJvZmlsZXMuc2l6ZSgpIC0gMTsgaSA+
PSAwOyAtLWkpIHsKLSAgICAgICAgUHJvZmlsZUdlbmVyYXRvciogcHJvZmlsZUdlbmVyYXRvciA9
IG1fY3VycmVudFByb2ZpbGVzW2ldLmdldCgpOwotICAgICAgICBpZiAocHJvZmlsZUdlbmVyYXRv
ci0+b3JpZ2luKCkgPT0gb3JpZ2luICYmICh0aXRsZS5pc051bGwoKSB8fCBwcm9maWxlR2VuZXJh
dG9yLT50aXRsZSgpID09IHRpdGxlKSkgewotICAgICAgICAgICAgcHJvZmlsZUdlbmVyYXRvci0+
c3RvcFByb2ZpbGluZygpOwotICAgICAgICAgICAgUmVmUHRyPFByb2ZpbGU+IHJldHVyblByb2Zp
bGUgPSBwcm9maWxlR2VuZXJhdG9yLT5wcm9maWxlKCk7Ci0KLSAgICAgICAgICAgIG1fY3VycmVu
dFByb2ZpbGVzLnJlbW92ZShpKTsKLSAgICAgICAgICAgIGlmICghbV9jdXJyZW50UHJvZmlsZXMu
c2l6ZSgpKQotICAgICAgICAgICAgICAgIGV4ZWMtPnZtKCkuc2V0RW5hYmxlZFByb2ZpbGVyKG51
bGxwdHIpOwotCi0gICAgICAgICAgICByZXR1cm4gcmV0dXJuUHJvZmlsZTsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgIHJldHVybiBudWxscHRyOwotfQotCi12b2lkIExlZ2FjeVByb2ZpbGVyOjpz
dG9wUHJvZmlsaW5nKEpTR2xvYmFsT2JqZWN0KiBvcmlnaW4pCi17Ci0gICAgZm9yIChwdHJkaWZm
X3QgaSA9IG1fY3VycmVudFByb2ZpbGVzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAg
ICAgIFByb2ZpbGVHZW5lcmF0b3IqIHByb2ZpbGVHZW5lcmF0b3IgPSBtX2N1cnJlbnRQcm9maWxl
c1tpXS5nZXQoKTsKLSAgICAgICAgaWYgKHByb2ZpbGVHZW5lcmF0b3ItPm9yaWdpbigpID09IG9y
aWdpbikgewotICAgICAgICAgICAgcHJvZmlsZUdlbmVyYXRvci0+c3RvcFByb2ZpbGluZygpOwot
ICAgICAgICAgICAgbV9jdXJyZW50UHJvZmlsZXMucmVtb3ZlKGkpOwotICAgICAgICAgICAgaWYg
KCFtX2N1cnJlbnRQcm9maWxlcy5zaXplKCkpCi0gICAgICAgICAgICAgICAgb3JpZ2luLT52bSgp
LnNldEVuYWJsZWRQcm9maWxlcihudWxscHRyKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotc3Rh
dGljIGlubGluZSB2b2lkIGNhbGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdyb3VwKHN0ZDo6ZnVu
Y3Rpb248dm9pZChQcm9maWxlR2VuZXJhdG9yKik+IGNhbGxiYWNrLCBjb25zdCBWZWN0b3I8UmVm
UHRyPFByb2ZpbGVHZW5lcmF0b3I+PiYgcHJvZmlsZXMsIHVuc2lnbmVkIHRhcmdldFByb2ZpbGVH
cm91cCkKLXsKLSAgICBmb3IgKGNvbnN0IFJlZlB0cjxQcm9maWxlR2VuZXJhdG9yPiYgcHJvZmls
ZSA6IHByb2ZpbGVzKSB7Ci0gICAgICAgIGlmIChwcm9maWxlLT5wcm9maWxlR3JvdXAoKSA9PSB0
YXJnZXRQcm9maWxlR3JvdXAgfHwgIXByb2ZpbGUtPm9yaWdpbigpKQotICAgICAgICAgICAgY2Fs
bGJhY2socHJvZmlsZS5nZXQoKSk7Ci0gICAgfQotfQotCi12b2lkIExlZ2FjeVByb2ZpbGVyOjpz
dXNwZW5kUHJvZmlsaW5nKEpTQzo6RXhlY1N0YXRlKiBleGVjKQotewotICAgIGlmICghZXhlYykK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgY2FsbEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAo
c3RkOjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjpzZXRJc1N1c3BlbmRlZCwgc3RkOjpwbGFjZWhv
bGRlcnM6Ol8xLCB0cnVlKSwgbV9jdXJyZW50UHJvZmlsZXMsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKS0+cHJvZmlsZUdyb3VwKCkpOwotfQotCi12b2lkIExlZ2FjeVByb2ZpbGVyOjp1bnN1
c3BlbmRQcm9maWxpbmcoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCi17Ci0gICAgaWYgKCFleGVjKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChz
dGQ6OmJpbmQoJlByb2ZpbGVHZW5lcmF0b3I6OnNldElzU3VzcGVuZGVkLCBzdGQ6OnBsYWNlaG9s
ZGVyczo6XzEsIGZhbHNlKSwgbV9jdXJyZW50UHJvZmlsZXMsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKS0+cHJvZmlsZUdyb3VwKCkpOwotfQotCi12b2lkIExlZ2FjeVByb2ZpbGVyOjp3aWxs
RXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgSlNWYWx1ZSBmdW5jdGlvbikKLXsK
LSAgICBBU1NFUlQoIW1fY3VycmVudFByb2ZpbGVzLmlzRW1wdHkoKSk7Ci0KLSAgICBDYWxsSWRl
bnRpZmllciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJZGVudGlmaWVyKGNhbGxlckNhbGxG
cmFtZSwgZnVuY3Rpb24sIFN0cmluZ0ltcGw6OmVtcHR5KCksIDAsIDApOwotCi0gICAgY2FsbEZ1
bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3RkOjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjp3
aWxsRXhlY3V0ZSwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBjYWxsZXJDYWxsRnJhbWUsIGNhbGxJ
ZGVudGlmaWVyKSwgbV9jdXJyZW50UHJvZmlsZXMsIGNhbGxlckNhbGxGcmFtZS0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAoKSk7Ci19Ci0KLXZvaWQgTGVnYWN5UHJvZmlsZXI6
OndpbGxFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBTdHJpbmcmIHNv
dXJjZVVSTCwgdW5zaWduZWQgc3RhcnRpbmdMaW5lTnVtYmVyLCB1bnNpZ25lZCBzdGFydGluZ0Nv
bHVtbk51bWJlcikKLXsKLSAgICBBU1NFUlQoIW1fY3VycmVudFByb2ZpbGVzLmlzRW1wdHkoKSk7
Ci0KLSAgICBDYWxsSWRlbnRpZmllciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJZGVudGlm
aWVyKGNhbGxlckNhbGxGcmFtZSwgSlNWYWx1ZSgpLCBzb3VyY2VVUkwsIHN0YXJ0aW5nTGluZU51
bWJlciwgc3RhcnRpbmdDb2x1bW5OdW1iZXIpOwotCi0gICAgY2FsbEZ1bmN0aW9uRm9yUHJvZmls
ZXNXaXRoR3JvdXAoc3RkOjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjp3aWxsRXhlY3V0ZSwgc3Rk
OjpwbGFjZWhvbGRlcnM6Ol8xLCBjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyKSwgbV9j
dXJyZW50UHJvZmlsZXMsIGNhbGxlckNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5w
cm9maWxlR3JvdXAoKSk7Ci19Ci0KLXZvaWQgTGVnYWN5UHJvZmlsZXI6OmRpZEV4ZWN1dGUoRXhl
Y1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIEpTVmFsdWUgZnVuY3Rpb24pCi17Ci0gICAgQVNTRVJU
KCFtX2N1cnJlbnRQcm9maWxlcy5pc0VtcHR5KCkpOwotCi0gICAgQ2FsbElkZW50aWZpZXIgY2Fs
bElkZW50aWZpZXIgPSBjcmVhdGVDYWxsSWRlbnRpZmllcihjYWxsZXJDYWxsRnJhbWUsIGZ1bmN0
aW9uLCBTdHJpbmdJbXBsOjplbXB0eSgpLCAwLCAwKTsKLQotICAgIGNhbGxGdW5jdGlvbkZvclBy
b2ZpbGVzV2l0aEdyb3VwKHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0ZSwg
c3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyKSwg
bV9jdXJyZW50UHJvZmlsZXMsIGNhbGxlckNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LT5wcm9maWxlR3JvdXAoKSk7Ci19Ci0KLXZvaWQgTGVnYWN5UHJvZmlsZXI6OmRpZEV4ZWN1dGUo
RXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNp
Z25lZCBzdGFydGluZ0xpbmVOdW1iZXIsIHVuc2lnbmVkIHN0YXJ0aW5nQ29sdW1uTnVtYmVyKQot
ewotICAgIEFTU0VSVCghbV9jdXJyZW50UHJvZmlsZXMuaXNFbXB0eSgpKTsKLQotICAgIENhbGxJ
ZGVudGlmaWVyIGNhbGxJZGVudGlmaWVyID0gY3JlYXRlQ2FsbElkZW50aWZpZXIoY2FsbGVyQ2Fs
bEZyYW1lLCBKU1ZhbHVlKCksIHNvdXJjZVVSTCwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzdGFydGlu
Z0NvbHVtbk51bWJlcik7Ci0KLSAgICBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChz
dGQ6OmJpbmQoJlByb2ZpbGVHZW5lcmF0b3I6OmRpZEV4ZWN1dGUsIHN0ZDo6cGxhY2Vob2xkZXJz
OjpfMSwgY2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciksIG1fY3VycmVudFByb2ZpbGVz
LCBjYWxsZXJDYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkp
OwotfQotCi12b2lkIExlZ2FjeVByb2ZpbGVyOjpleGNlcHRpb25VbndpbmQoRXhlY1N0YXRlKiBo
YW5kbGVyQ2FsbEZyYW1lKQotewotICAgIEFTU0VSVCghbV9jdXJyZW50UHJvZmlsZXMuaXNFbXB0
eSgpKTsKLQotICAgIENhbGxJZGVudGlmaWVyIGNhbGxJZGVudGlmaWVyID0gY3JlYXRlQ2FsbElk
ZW50aWZpZXIoaGFuZGxlckNhbGxGcmFtZSwgSlNWYWx1ZSgpLCBTdHJpbmdJbXBsOjplbXB0eSgp
LCAwLCAwKTsKLQotICAgIGNhbGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdyb3VwKHN0ZDo6Ymlu
ZCgmUHJvZmlsZUdlbmVyYXRvcjo6ZXhjZXB0aW9uVW53aW5kLCBzdGQ6OnBsYWNlaG9sZGVyczo6
XzEsIGhhbmRsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyKSwgbV9jdXJyZW50UHJvZmlsZXMs
IGhhbmRsZXJDYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkp
OwotfQotCi1DYWxsSWRlbnRpZmllciBMZWdhY3lQcm9maWxlcjo6Y3JlYXRlQ2FsbElkZW50aWZp
ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGZ1bmN0aW9uVmFsdWUsIGNvbnN0IFN0cmluZyYg
ZGVmYXVsdFNvdXJjZVVSTCwgdW5zaWduZWQgZGVmYXVsdExpbmVOdW1iZXIsIHVuc2lnbmVkIGRl
ZmF1bHRDb2x1bW5OdW1iZXIpCi17Ci0gICAgaWYgKCFmdW5jdGlvblZhbHVlKQotICAgICAgICBy
ZXR1cm4gQ2FsbElkZW50aWZpZXIoQVNDSUlMaXRlcmFsKEdsb2JhbENvZGVFeGVjdXRpb24pLCBk
ZWZhdWx0U291cmNlVVJMLCBkZWZhdWx0TGluZU51bWJlciwgZGVmYXVsdENvbHVtbk51bWJlcik7
Ci0gICAgaWYgKCFmdW5jdGlvblZhbHVlLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiBDYWxs
SWRlbnRpZmllcihBU0NJSUxpdGVyYWwoIih1bmtub3duKSIpLCBkZWZhdWx0U291cmNlVVJMLCBk
ZWZhdWx0TGluZU51bWJlciwgZGVmYXVsdENvbHVtbk51bWJlcik7Ci0gICAgaWYgKGFzT2JqZWN0
KGZ1bmN0aW9uVmFsdWUpLT5pbmhlcml0cyhKU0Z1bmN0aW9uOjppbmZvKCkpIHx8IGFzT2JqZWN0
KGZ1bmN0aW9uVmFsdWUpLT5pbmhlcml0cyhJbnRlcm5hbEZ1bmN0aW9uOjppbmZvKCkpKQotICAg
ICAgICByZXR1cm4gY3JlYXRlQ2FsbElkZW50aWZpZXJGcm9tRnVuY3Rpb25JbXAoZXhlYywgYXNP
YmplY3QoZnVuY3Rpb25WYWx1ZSksIGRlZmF1bHRTb3VyY2VVUkwsIGRlZmF1bHRMaW5lTnVtYmVy
LCBkZWZhdWx0Q29sdW1uTnVtYmVyKTsKLSAgICBpZiAoYXNPYmplY3QoZnVuY3Rpb25WYWx1ZSkt
PmluaGVyaXRzKEpTQ2FsbGVlOjppbmZvKCkpKQotICAgICAgICByZXR1cm4gQ2FsbElkZW50aWZp
ZXIoQVNDSUlMaXRlcmFsKEdsb2JhbENvZGVFeGVjdXRpb24pLCBkZWZhdWx0U291cmNlVVJMLCBk
ZWZhdWx0TGluZU51bWJlciwgZGVmYXVsdENvbHVtbk51bWJlcik7Ci0gICAgcmV0dXJuIENhbGxJ
ZGVudGlmaWVyKGFzT2JqZWN0KGZ1bmN0aW9uVmFsdWUpLT5tZXRob2RUYWJsZSgpLT5jbGFzc05h
bWUoYXNPYmplY3QoZnVuY3Rpb25WYWx1ZSkpLCBkZWZhdWx0U291cmNlVVJMLCBkZWZhdWx0TGlu
ZU51bWJlciwgZGVmYXVsdENvbHVtbk51bWJlcik7Ci19Ci0KLUNhbGxJZGVudGlmaWVyIGNyZWF0
ZUNhbGxJZGVudGlmaWVyRnJvbUZ1bmN0aW9uSW1wKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IGZ1bmN0aW9uLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRTb3VyY2VVUkwsIHVuc2lnbmVkIGRlZmF1
bHRMaW5lTnVtYmVyLCB1bnNpZ25lZCBkZWZhdWx0Q29sdW1uTnVtYmVyKQotewotICAgIGNvbnN0
IFN0cmluZyYgbmFtZSA9IGdldENhbGN1bGF0ZWREaXNwbGF5TmFtZShleGVjLCBmdW5jdGlvbik7
Ci0gICAgSlNGdW5jdGlvbioganNGdW5jdGlvbiA9IGpzRHluYW1pY0Nhc3Q8SlNGdW5jdGlvbio+
KGZ1bmN0aW9uKTsKLSAgICBpZiAoanNGdW5jdGlvbiAmJiAhanNGdW5jdGlvbi0+aXNIb3N0T3JC
dWlsdGluRnVuY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIENhbGxJZGVudGlmaWVyKG5hbWUuaXNF
bXB0eSgpID8gQVNDSUlMaXRlcmFsKEFub255bW91c0Z1bmN0aW9uKSA6IG5hbWUsIGpzRnVuY3Rp
b24tPmpzRXhlY3V0YWJsZSgpLT5zb3VyY2VVUkwoKSwganNGdW5jdGlvbi0+anNFeGVjdXRhYmxl
KCktPmZpcnN0TGluZSgpLCBqc0Z1bmN0aW9uLT5qc0V4ZWN1dGFibGUoKS0+c3RhcnRDb2x1bW4o
KSk7Ci0gICAgcmV0dXJuIENhbGxJZGVudGlmaWVyKG5hbWUuaXNFbXB0eSgpID8gQVNDSUlMaXRl
cmFsKEFub255bW91c0Z1bmN0aW9uKSA6IG5hbWUsIGRlZmF1bHRTb3VyY2VVUkwsIGRlZmF1bHRM
aW5lTnVtYmVyLCBkZWZhdWx0Q29sdW1uTnVtYmVyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgSlND
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmls
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9MZWdhY3lQcm9maWxlci5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZjBhYjQxLi4wMDAwMDAwCi0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9MZWdhY3lQcm9maWxlci5oCisrKyAvZGV2L251bGwK
QEAgLTEsNzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiwgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
Ci0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgot
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIExlZ2FjeVByb2ZpbGVyX2gKLSNkZWZpbmUgTGVn
YWN5UHJvZmlsZXJfaAotCi0jaW5jbHVkZSAiUHJvZmlsZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9TdG9wd2F0
Y2guaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1jbGFz
cyBFeGVjU3RhdGU7Ci1jbGFzcyBKU0dsb2JhbE9iamVjdDsKLWNsYXNzIEpTT2JqZWN0OwotY2xh
c3MgSlNWYWx1ZTsKLWNsYXNzIFByb2ZpbGVHZW5lcmF0b3I7Ci1zdHJ1Y3QgQ2FsbElkZW50aWZp
ZXI7Ci0KLWNsYXNzIExlZ2FjeVByb2ZpbGVyIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLXB1YmxpYzoKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgTGVnYWN5UHJvZmlsZXIq
IHByb2ZpbGVyKCk7Ci0gICAgc3RhdGljIENhbGxJZGVudGlmaWVyIGNyZWF0ZUNhbGxJZGVudGlm
aWVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IFdURjo6U3RyaW5nJiBzb3VyY2VVUkwsIHVu
c2lnbmVkIGRlZmF1bHRMaW5lTnVtYmVyLCB1bnNpZ25lZCBkZWZhdWx0Q29sdW1uTnVtYmVyKTsK
LQotICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RhcnRQcm9maWxpbmcoRXhlY1N0YXRlKiwg
Y29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlLCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4pOwotICAgIEpT
X0VYUE9SVF9QUklWQVRFIFJlZlB0cjxQcm9maWxlPiBzdG9wUHJvZmlsaW5nKEV4ZWNTdGF0ZSos
IGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSk7Ci0gICAgdm9pZCBzdG9wUHJvZmlsaW5nKEpTR2xv
YmFsT2JqZWN0Kik7Ci0KLSAgICAvLyBVc2VkIHRvIGlnbm9yZSBwcm9maWxlIG5vZGUgc3VidHJl
ZXMgcm9vdGVkIGF0IEluamVjdGVkU2NyaXB0IGNhbGxzLgotICAgIEpTX0VYUE9SVF9QUklWQVRF
IHZvaWQgc3VzcGVuZFByb2ZpbGluZyhFeGVjU3RhdGUqKTsKLSAgICBKU19FWFBPUlRfUFJJVkFU
RSB2b2lkIHVuc3VzcGVuZFByb2ZpbGluZyhFeGVjU3RhdGUqKTsKLQotICAgIHZvaWQgd2lsbEV4
ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIEpTVmFsdWUgZnVuY3Rpb24pOwotICAg
IHZvaWQgd2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IFdURjo6
U3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIHN0YXJ0aW5nTGluZU51bWJlciwgdW5zaWduZWQg
c3RhcnRpbmdDb2x1bW5OdW1iZXIpOwotICAgIHZvaWQgZGlkRXhlY3V0ZShFeGVjU3RhdGUqIGNh
bGxlckNhbGxGcmFtZSwgSlNWYWx1ZSBmdW5jdGlvbik7Ci0gICAgdm9pZCBkaWRFeGVjdXRlKEV4
ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlVVJMLCB1
bnNpZ25lZCBzdGFydGluZ0xpbmVOdW1iZXIsIHVuc2lnbmVkIHN0YXJ0aW5nQ29sdW1uTnVtYmVy
KTsKLQotICAgIHZvaWQgZXhjZXB0aW9uVW53aW5kKEV4ZWNTdGF0ZSogaGFuZGxlckNhbGxGcmFt
ZSk7Ci0KLSAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFByb2ZpbGVHZW5lcmF0b3I+PiYgY3VycmVu
dFByb2ZpbGVzKCkgeyByZXR1cm4gbV9jdXJyZW50UHJvZmlsZXM7IH07Ci0KLXByaXZhdGU6Ci0g
ICAgVmVjdG9yPFJlZlB0cjxQcm9maWxlR2VuZXJhdG9yPj4gbV9jdXJyZW50UHJvZmlsZXM7Ci0g
ICAgc3RhdGljIExlZ2FjeVByb2ZpbGVyKiBzX3NoYXJlZExlZ2FjeVByb2ZpbGVyOwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBMZWdhY3lQcm9maWxlcl9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGYzZDQ1MGEuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAxNCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJQcm9maWxlLmgiCi0KLSNpbmNsdWRlICJQcm9maWxlTm9kZS5o
IgotI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1SZWY8UHJv
ZmlsZT4gUHJvZmlsZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwg
ZG91YmxlIHN0YXJ0VGltZSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm9maWxlKHRp
dGxlLCB1aWQsIHN0YXJ0VGltZSkpOwotfQotCi1Qcm9maWxlOjpQcm9maWxlKGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgZG91YmxlIHN0YXJ0VGltZSkKLSAgICA6IG1fdGl0bGUo
dGl0bGUpCi0gICAgLCBtX3VpZCh1aWQpCi17Ci0gICAgLy8gRklYTUU6IFdoZW4gbXVsdGktdGhy
ZWFkaW5nIGlzIHN1cHBvcnRlZCB0aGlzIHdpbGwgYmUgYSB2ZWN0b3IgYW5kIGNhbGxzCi0gICAg
Ly8gaW50byB0aGUgcHJvZmlsZXIgd2lsbCBuZWVkIHRvIGtub3cgd2hpY2ggdGhyZWFkIGl0IGlz
IGV4ZWN1dGluZyBvbi4KLSAgICBtX3Jvb3ROb2RlID0gUHJvZmlsZU5vZGU6OmNyZWF0ZShudWxs
cHRyLCBDYWxsSWRlbnRpZmllcihBU0NJSUxpdGVyYWwoIlRocmVhZF8xIiksIFN0cmluZygpLCAw
LCAwKSwgbnVsbHB0cik7Ci0gICAgbV9yb290Tm9kZS0+YXBwZW5kQ2FsbChQcm9maWxlTm9kZTo6
Q2FsbChzdGFydFRpbWUpKTsKLX0KLQotUHJvZmlsZTo6flByb2ZpbGUoKQotewotfQotCi0jaWZu
ZGVmIE5ERUJVRwotdm9pZCBQcm9maWxlOjpkZWJ1Z1ByaW50KCkKLXsKLSAgICBDYWxjdWxhdGVQ
cm9maWxlU3VidHJlZURhdGFGdW5jdG9yIGZ1bmN0b3I7Ci0gICAgbV9yb290Tm9kZS0+Zm9yRWFj
aE5vZGVQb3N0b3JkZXIoZnVuY3Rvcik7Ci0gICAgUHJvZmlsZU5vZGU6OlByb2ZpbGVTdWJ0cmVl
RGF0YSBkYXRhID0gZnVuY3Rvci5yZXR1cm5WYWx1ZSgpOwotCi0gICAgZGF0YUxvZ0YoIkNhbGwg
Z3JhcGg6XG4iKTsKLSAgICBtX3Jvb3ROb2RlLT5kZWJ1Z1ByaW50UmVjdXJzaXZlbHkoMCwgZGF0
YSk7Ci19Ci0KLXR5cGVkZWYgV1RGOjpLZXlWYWx1ZVBhaXI8RnVuY3Rpb25DYWxsSGFzaENvdW50
OjpWYWx1ZVR5cGUsIHVuc2lnbmVkPiBOYW1lQ291bnRQYWlyOwotCi1zdGF0aWMgaW5saW5lIGJv
b2wgZnVuY3Rpb25OYW1lQ291bnRQYWlyQ29tcGFyYXRvcihjb25zdCBOYW1lQ291bnRQYWlyJiBh
LCBjb25zdCBOYW1lQ291bnRQYWlyJiBiKQotewotICAgIHJldHVybiBhLnZhbHVlID4gYi52YWx1
ZTsKLX0KLQotdm9pZCBQcm9maWxlOjpkZWJ1Z1ByaW50U2FtcGxlU3R5bGUoKQotewotICAgIHR5
cGVkZWYgVmVjdG9yPE5hbWVDb3VudFBhaXI+IE5hbWVDb3VudFBhaXJWZWN0b3I7Ci0KLSAgICBD
YWxjdWxhdGVQcm9maWxlU3VidHJlZURhdGFGdW5jdG9yIGZ1bmN0b3I7Ci0gICAgbV9yb290Tm9k
ZS0+Zm9yRWFjaE5vZGVQb3N0b3JkZXIoZnVuY3Rvcik7Ci0gICAgUHJvZmlsZU5vZGU6OlByb2Zp
bGVTdWJ0cmVlRGF0YSBkYXRhID0gZnVuY3Rvci5yZXR1cm5WYWx1ZSgpOwotCi0gICAgRnVuY3Rp
b25DYWxsSGFzaENvdW50IGNvdW50ZWRGdW5jdGlvbnM7Ci0gICAgZGF0YUxvZ0YoIkNhbGwgZ3Jh
cGg6XG4iKTsKLSAgICBtX3Jvb3ROb2RlLT5kZWJ1Z1ByaW50U2FtcGxlU3R5bGVSZWN1cnNpdmVs
eSgwLCBjb3VudGVkRnVuY3Rpb25zLCBkYXRhKTsKLQotICAgIGRhdGFMb2dGKCJcblRvdGFsIG51
bWJlciBpbiBzdGFjazpcbiIpOwotICAgIE5hbWVDb3VudFBhaXJWZWN0b3Igc29ydGVkRnVuY3Rp
b25zKGNvdW50ZWRGdW5jdGlvbnMuc2l6ZSgpKTsKLSAgICBjb3B5VG9WZWN0b3IoY291bnRlZEZ1
bmN0aW9ucywgc29ydGVkRnVuY3Rpb25zKTsKLQotICAgIHN0ZDo6c29ydChzb3J0ZWRGdW5jdGlv
bnMuYmVnaW4oKSwgc29ydGVkRnVuY3Rpb25zLmVuZCgpLCBmdW5jdGlvbk5hbWVDb3VudFBhaXJD
b21wYXJhdG9yKTsKLSAgICBmb3IgKE5hbWVDb3VudFBhaXJWZWN0b3I6Oml0ZXJhdG9yIGl0ID0g
c29ydGVkRnVuY3Rpb25zLmJlZ2luKCk7IGl0ICE9IHNvcnRlZEZ1bmN0aW9ucy5lbmQoKTsgKytp
dCkKLSAgICAgICAgZGF0YUxvZ0YoIiAgICAgICAgJS0xMmQlc1xuIiwgKCppdCkudmFsdWUsIFN0
cmluZygoKml0KS5rZXkpLnV0ZjgoKS5kYXRhKCkpOwotCi0gICAgZGF0YUxvZ0YoIlxuU29ydCBi
eSB0b3Agb2Ygc3RhY2ssIHNhbWUgY29sbGFwc2VkICh3aGVuID49IDUpOlxuIik7Ci19Ci0jZW5k
aWYKLQotfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDFjYjY3MC4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZS5oCisrKyAvZGV2L251
bGwKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNCBBcHBs
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0gCi0jaWZuZGVmIFByb2ZpbGVfaAotI2RlZmluZSBQcm9maWxlX2gKLQot
I2luY2x1ZGUgIlByb2ZpbGVOb2RlLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0K
LW5hbWVzcGFjZSBKU0MgewotCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBQcm9maWxlIDogcHVi
bGljIFJlZkNvdW50ZWQ8UHJvZmlsZT4gewotcHVibGljOgotICAgIHN0YXRpYyBSZWY8UHJvZmls
ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgZG91YmxlKTsKLSAg
ICB2aXJ0dWFsIH5Qcm9maWxlKCk7Ci0KLSAgICBjb25zdCBTdHJpbmcmIHRpdGxlKCkgY29uc3Qg
eyByZXR1cm4gbV90aXRsZTsgfQotICAgIHVuc2lnbmVkIHVpZCgpIGNvbnN0IHsgcmV0dXJuIG1f
dWlkOyB9Ci0KLSAgICBQcm9maWxlTm9kZSogcm9vdE5vZGUoKSBjb25zdCB7IHJldHVybiBtX3Jv
b3ROb2RlLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRSb290Tm9kZShQYXNzUmVmUHRyPFByb2ZpbGVO
b2RlPiByb290Tm9kZSkgeyBtX3Jvb3ROb2RlID0gcm9vdE5vZGU7IH0KLQotI2lmbmRlZiBOREVC
VUcKLSAgICB2b2lkIGRlYnVnUHJpbnQoKTsKLSAgICB2b2lkIGRlYnVnUHJpbnRTYW1wbGVTdHls
ZSgpOwotI2VuZGlmCi0KLXByb3RlY3RlZDoKLSAgICBQcm9maWxlKGNvbnN0IFN0cmluZyYgdGl0
bGUsIHVuc2lnbmVkIHVpZCwgZG91YmxlIHN0YXJ0VGltZSk7Ci0KLXByaXZhdGU6Ci0gICAgdm9p
ZCByZW1vdmVQcm9maWxlU3RhcnQoKTsKLSAgICB2b2lkIHJlbW92ZVByb2ZpbGVFbmQoKTsKLQot
ICAgIFN0cmluZyBtX3RpdGxlOwotICAgIFJlZlB0cjxQcm9maWxlTm9kZT4gbV9yb290Tm9kZTsK
LSAgICB1bnNpZ25lZCBtX3VpZDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYg
Ly8gUHJvZmlsZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZUdlbmVyYXRvci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI1ZjhhNDMu
LjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5l
cmF0b3IuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDgsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiUHJvZmlsZUdlbmVyYXRvci5oIgotCi0jaW5jbHVkZSAiQ2FsbEZy
YW1lLmgiCi0jaW5jbHVkZSAiQ29kZUJsb2NrLmgiCi0jaW5jbHVkZSAiSlNHbG9iYWxPYmplY3Qu
aCIKLSNpbmNsdWRlICJKU1N0cmluZ1JlZi5oIgotI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKLSNp
bmNsdWRlICJMZWdhY3lQcm9maWxlci5oIgotI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKLSNpbmNs
dWRlICJQcm9maWxlLmgiCi0jaW5jbHVkZSAiU3RhY2tWaXNpdG9yLmgiCi0KLW5hbWVzcGFjZSBK
U0MgewotCi1SZWY8UHJvZmlsZUdlbmVyYXRvcj4gUHJvZmlsZUdlbmVyYXRvcjo6Y3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBQYXNzUmVm
UHRyPFN0b3B3YXRjaD4gc3RvcHdhdGNoKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBy
b2ZpbGVHZW5lcmF0b3IoZXhlYywgdGl0bGUsIHVpZCwgc3RvcHdhdGNoKSk7Ci19Ci0KLVByb2Zp
bGVHZW5lcmF0b3I6OlByb2ZpbGVHZW5lcmF0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIFBhc3NSZWZQdHI8U3RvcHdhdGNoPiBzdG9wd2F0Y2gp
Ci0gICAgOiBtX29yaWdpbihleGVjID8gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpIDogbnVs
bHB0cikKLSAgICAsIG1fcHJvZmlsZUdyb3VwKGV4ZWMgPyBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPnByb2ZpbGVHcm91cCgpIDogMCkKLSAgICAsIG1fc3RvcHdhdGNoKHN0b3B3YXRjaCkK
LSAgICAsIG1fZm91bmRDb25zb2xlU3RhcnRQYXJlbnQoZmFsc2UpCi0gICAgLCBtX3N1c3BlbmRl
ZChmYWxzZSkKLXsKLSAgICBkb3VibGUgc3RhcnRUaW1lID0gbV9zdG9wd2F0Y2gtPmVsYXBzZWRU
aW1lKCk7Ci0gICAgbV9wcm9maWxlID0gUHJvZmlsZTo6Y3JlYXRlKHRpdGxlLCB1aWQsIHN0YXJ0
VGltZSk7Ci0gICAgbV9jdXJyZW50Tm9kZSA9IG1fcm9vdE5vZGUgPSBtX3Byb2ZpbGUtPnJvb3RO
b2RlKCk7Ci0gICAgaWYgKGV4ZWMpCi0gICAgICAgIGFkZFBhcmVudEZvckNvbnNvbGVTdGFydChl
eGVjLCBzdGFydFRpbWUpOwotfQotCi1jbGFzcyBBZGRQYXJlbnRGb3JDb25zb2xlU3RhcnRGdW5j
dG9yIHsKLXB1YmxpYzoKLSAgICBBZGRQYXJlbnRGb3JDb25zb2xlU3RhcnRGdW5jdG9yKEV4ZWNT
dGF0ZSogZXhlYywgUmVmUHRyPFByb2ZpbGVOb2RlPiYgcm9vdE5vZGUsIFJlZlB0cjxQcm9maWxl
Tm9kZT4mIGN1cnJlbnROb2RlLCBkb3VibGUgc3RhcnRUaW1lKQotICAgICAgICA6IG1fZXhlYyhl
eGVjKQotICAgICAgICAsIG1faGFzU2tpcHBlZEZpcnN0RnJhbWUoZmFsc2UpCi0gICAgICAgICwg
bV9mb3VuZFBhcmVudChmYWxzZSkKLSAgICAgICAgLCBtX3Jvb3ROb2RlKHJvb3ROb2RlKQotICAg
ICAgICAsIG1fY3VycmVudE5vZGUoY3VycmVudE5vZGUpCi0gICAgICAgICwgbV9zdGFydFRpbWUo
c3RhcnRUaW1lKQotICAgIHsKLSAgICB9Ci0KLSAgICBib29sIGZvdW5kUGFyZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9mb3VuZFBhcmVudDsgfQotCi0gICAgU3RhY2tWaXNpdG9yOjpTdGF0dXMgb3Bl
cmF0b3IoKShTdGFja1Zpc2l0b3ImIHZpc2l0b3IpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAo
IW1faGFzU2tpcHBlZEZpcnN0RnJhbWUpIHsKLSAgICAgICAgICAgIG1faGFzU2tpcHBlZEZpcnN0
RnJhbWUgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIFN0YWNrVmlzaXRvcjo6Q29udGludWU7
Ci0gICAgICAgIH0KLQotICAgICAgICB1bnNpZ25lZCBsaW5lID0gMDsKLSAgICAgICAgdW5zaWdu
ZWQgY29sdW1uID0gMDsKLSAgICAgICAgdmlzaXRvci0+Y29tcHV0ZUxpbmVBbmRDb2x1bW4obGlu
ZSwgY29sdW1uKTsKLSAgICAgICAgbV9jdXJyZW50Tm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUo
bV9leGVjLCBMZWdhY3lQcm9maWxlcjo6Y3JlYXRlQ2FsbElkZW50aWZpZXIobV9leGVjLCB2aXNp
dG9yLT5jYWxsZWUoKSwgdmlzaXRvci0+c291cmNlVVJMKCksIGxpbmUsIGNvbHVtbiksIG1fcm9v
dE5vZGUuZ2V0KCkpOwotICAgICAgICBtX2N1cnJlbnROb2RlLT5hcHBlbmRDYWxsKFByb2ZpbGVO
b2RlOjpDYWxsKG1fc3RhcnRUaW1lKSk7Ci0gICAgICAgIG1fcm9vdE5vZGUtPnNwbGljZU5vZGUo
bV9jdXJyZW50Tm9kZS5nZXQoKSk7Ci0KLSAgICAgICAgbV9mb3VuZFBhcmVudCA9IHRydWU7Ci0g
ICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkRvbmU7Ci0gICAgfQotCi1wcml2YXRlOgotICAg
IEV4ZWNTdGF0ZSogbV9leGVjOwotICAgIG11dGFibGUgYm9vbCBtX2hhc1NraXBwZWRGaXJzdEZy
YW1lOwotICAgIG11dGFibGUgYm9vbCBtX2ZvdW5kUGFyZW50OwotICAgIFJlZlB0cjxQcm9maWxl
Tm9kZT4mIG1fcm9vdE5vZGU7Ci0gICAgUmVmUHRyPFByb2ZpbGVOb2RlPiYgbV9jdXJyZW50Tm9k
ZTsKLSAgICBkb3VibGUgbV9zdGFydFRpbWU7Ci19OwotCi12b2lkIFByb2ZpbGVHZW5lcmF0b3I6
OmFkZFBhcmVudEZvckNvbnNvbGVTdGFydChFeGVjU3RhdGUqIGV4ZWMsIGRvdWJsZSBzdGFydFRp
bWUpCi17Ci0gICAgQWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0RnVuY3RvciBmdW5jdG9yKGV4ZWMs
IG1fcm9vdE5vZGUsIG1fY3VycmVudE5vZGUsIHN0YXJ0VGltZSk7Ci0gICAgZXhlYy0+aXRlcmF0
ZShmdW5jdG9yKTsKLQotICAgIG1fZm91bmRDb25zb2xlU3RhcnRQYXJlbnQgPSBmdW5jdG9yLmZv
dW5kUGFyZW50KCk7Ci19Ci0KLWNvbnN0IFN0cmluZyYgUHJvZmlsZUdlbmVyYXRvcjo6dGl0bGUo
KSBjb25zdAotewotICAgIHJldHVybiBtX3Byb2ZpbGUtPnRpdGxlKCk7Ci19Ci0KLXZvaWQgUHJv
ZmlsZUdlbmVyYXRvcjo6YmVnaW5DYWxsRW50cnkoUHJvZmlsZU5vZGUqIG5vZGUsIGRvdWJsZSBz
dGFydFRpbWUpCi17Ci0gICAgQVNTRVJUX0FSRyhub2RlLCBub2RlKTsKLQotICAgIGlmIChzdGQ6
OmlzbmFuKHN0YXJ0VGltZSkpCi0gICAgICAgIHN0YXJ0VGltZSA9IG1fc3RvcHdhdGNoLT5lbGFw
c2VkVGltZSgpOwotCi0gICAgbm9kZS0+YXBwZW5kQ2FsbChQcm9maWxlTm9kZTo6Q2FsbChzdGFy
dFRpbWUpKTsKLX0KLQotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjplbmRDYWxsRW50cnkoUHJvZmls
ZU5vZGUqIG5vZGUpCi17Ci0gICAgQVNTRVJUX0FSRyhub2RlLCBub2RlKTsKLQotICAgIFByb2Zp
bGVOb2RlOjpDYWxsJiBsYXN0ID0gbm9kZS0+bGFzdENhbGwoKTsKLQotICAgIGRvdWJsZSBwcmV2
aW91c0VsYXBzZWRUaW1lID0gc3RkOjppc25hbihsYXN0LmVsYXBzZWRUaW1lKCkpID8gMC4wIDog
bGFzdC5lbGFwc2VkVGltZSgpOwotICAgIGRvdWJsZSBuZXdseUVsYXBzZWRUaW1lID0gbV9zdG9w
d2F0Y2gtPmVsYXBzZWRUaW1lKCkgLSBsYXN0LnN0YXJ0VGltZSgpOwotICAgIGxhc3Quc2V0RWxh
cHNlZFRpbWUocHJldmlvdXNFbGFwc2VkVGltZSArIG5ld2x5RWxhcHNlZFRpbWUpOwotfQotCi12
b2lkIFByb2ZpbGVHZW5lcmF0b3I6OndpbGxFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZy
YW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIpCi17Ci0gICAgaWYgKCFt
X29yaWdpbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fc3VzcGVuZGVkKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBSZWZQdHI8UHJvZmlsZU5vZGU+IGNhbGxlZU5vZGUgPSBudWxscHRy
OwotCi0gICAgLy8gRmluZCBvciBjcmVhdGUgYSBub2RlIGZvciB0aGUgY2FsbGVlIGNhbGwgZnJh
bWUuCi0gICAgZm9yIChjb25zdCBSZWZQdHI8UHJvZmlsZU5vZGU+JiBjaGlsZCA6IG1fY3VycmVu
dE5vZGUtPmNoaWxkcmVuKCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5jYWxsSWRlbnRpZmllcigp
ID09IGNhbGxJZGVudGlmaWVyKQotICAgICAgICAgICAgY2FsbGVlTm9kZSA9IGNoaWxkOwotICAg
IH0KLQotICAgIGlmICghY2FsbGVlTm9kZSkgewotICAgICAgICBjYWxsZWVOb2RlID0gUHJvZmls
ZU5vZGU6OmNyZWF0ZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyLCBtX2N1cnJlbnRO
b2RlLmdldCgpKTsKLSAgICAgICAgbV9jdXJyZW50Tm9kZS0+YWRkQ2hpbGQoY2FsbGVlTm9kZSk7
Ci0gICAgfQotCi0gICAgbV9jdXJyZW50Tm9kZSA9IGNhbGxlZU5vZGU7Ci0gICAgYmVnaW5DYWxs
RW50cnkoY2FsbGVlTm9kZS5nZXQoKSwgbV9zdG9wd2F0Y2gtPmVsYXBzZWRUaW1lKCkpOwotfQot
Ci12b2lkIFByb2ZpbGVHZW5lcmF0b3I6OmRpZEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxs
RnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllcikKLXsKLSAgICBpZiAo
IW1fb3JpZ2luKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9zdXNwZW5kZWQpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIC8vIE1ha2UgYSBuZXcgbm9kZSBpZiB0aGUgY2FsbGVyIG5vZGUg
aGFzIG5ldmVyIHNlZW4gdGhpcyBjYWxsZWUgY2FsbCBmcmFtZSBiZWZvcmUuCi0gICAgLy8gVGhp
cyBjYW4gaGFwcGVuIGlmIHxjb25zb2xlLnByb2ZpbGUoKXwgaXMgY2FsbGVkIHNldmVyYWwgZnJh
bWVzIGRlZXAgaW4gdGhlIGNhbGwgc3RhY2suCi0gICAgQVNTRVJUKG1fY3VycmVudE5vZGUpOwot
ICAgIGlmIChtX2N1cnJlbnROb2RlLT5jYWxsSWRlbnRpZmllcigpICE9IGNhbGxJZGVudGlmaWVy
KSB7Ci0gICAgICAgIFJlZlB0cjxQcm9maWxlTm9kZT4gY2FsbGVlTm9kZSA9IFByb2ZpbGVOb2Rl
OjpjcmVhdGUoY2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciwgbV9jdXJyZW50Tm9kZS5n
ZXQoKSk7Ci0gICAgICAgIGJlZ2luQ2FsbEVudHJ5KGNhbGxlZU5vZGUuZ2V0KCksIG1fY3VycmVu
dE5vZGUtPmxhc3RDYWxsKCkuc3RhcnRUaW1lKCkpOwotICAgICAgICBlbmRDYWxsRW50cnkoY2Fs
bGVlTm9kZS5nZXQoKSk7Ci0gICAgICAgIG1fY3VycmVudE5vZGUtPnNwbGljZU5vZGUoY2FsbGVl
Tm9kZS5yZWxlYXNlKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZW5kQ2FsbEVu
dHJ5KG1fY3VycmVudE5vZGUuZ2V0KCkpOwotICAgIG1fY3VycmVudE5vZGUgPSBtX2N1cnJlbnRO
b2RlLT5wYXJlbnQoKTsKLX0KLQotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjpleGNlcHRpb25Vbndp
bmQoRXhlY1N0YXRlKiBoYW5kbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYpCi17
Ci0gICAgaWYgKG1fc3VzcGVuZGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBJZiB0aGUg
Y3VycmVudCBub2RlIHdhcyBjYWxsZWQgYnkgdGhlIGhhbmRsZXIgKD09KSBvciBhbnkKLSAgICAv
LyBtb3JlIG5lc3RlZCBmdW5jdGlvbiAoPikgdGhlIHdlIGhhdmUgZXhpdGVkIGVhcmx5IGZyb20g
aXQuCi0gICAgQVNTRVJUKG1fY3VycmVudE5vZGUpOwotICAgIHdoaWxlIChtX2N1cnJlbnROb2Rl
LT5jYWxsZXJDYWxsRnJhbWUoKSA+PSBoYW5kbGVyQ2FsbEZyYW1lKSB7Ci0gICAgICAgIGRpZEV4
ZWN1dGUobV9jdXJyZW50Tm9kZS0+Y2FsbGVyQ2FsbEZyYW1lKCksIG1fY3VycmVudE5vZGUtPmNh
bGxJZGVudGlmaWVyKCkpOwotICAgICAgICBBU1NFUlQobV9jdXJyZW50Tm9kZSk7Ci0gICAgfQot
fQotCi12b2lkIFByb2ZpbGVHZW5lcmF0b3I6OnN0b3BQcm9maWxpbmcoKQotewotICAgIGZvciAo
UHJvZmlsZU5vZGUqIG5vZGUgPSBtX2N1cnJlbnROb2RlLmdldCgpOyBub2RlICE9IG1fcHJvZmls
ZS0+cm9vdE5vZGUoKTsgbm9kZSA9IG5vZGUtPnBhcmVudCgpKQotICAgICAgICBlbmRDYWxsRW50
cnkobm9kZSk7Ci0KLSAgICBpZiAobV9mb3VuZENvbnNvbGVTdGFydFBhcmVudCkgewotICAgICAg
ICByZW1vdmVQcm9maWxlU3RhcnQoKTsKLSAgICAgICAgcmVtb3ZlUHJvZmlsZUVuZCgpOwotICAg
IH0KLQotICAgIEFTU0VSVChtX2N1cnJlbnROb2RlKTsKLQotICAgIC8vIFNldCB0aGUgY3VycmVu
dCBub2RlIHRvIHRoZSBwYXJlbnQsIGJlY2F1c2Ugd2UgYXJlIGluIGEgY2FsbCB0aGF0Ci0gICAg
Ly8gd2lsbCBub3QgZ2V0IGRpZEV4ZWN1dGUgY2FsbC4KLSAgICBtX2N1cnJlbnROb2RlID0gbV9j
dXJyZW50Tm9kZS0+cGFyZW50KCk7Ci19Ci0KLS8vIFRoZSBjb25zb2xlLnByb2ZpbGUgdGhhdCBz
dGFydGVkIHRoaXMgUHJvZmlsZUdlbmVyYXRvciB3aWxsIGJlIHRoZSBmaXJzdCBjaGlsZC4KLXZv
aWQgUHJvZmlsZUdlbmVyYXRvcjo6cmVtb3ZlUHJvZmlsZVN0YXJ0KCkKLXsKLSAgICBQcm9maWxl
Tm9kZSogY3VycmVudE5vZGUgPSBudWxscHRyOwotICAgIGZvciAoUHJvZmlsZU5vZGUqIG5leHQg
PSBtX3Jvb3ROb2RlLmdldCgpOyBuZXh0OyBuZXh0ID0gbmV4dC0+Zmlyc3RDaGlsZCgpKQotICAg
ICAgICBjdXJyZW50Tm9kZSA9IG5leHQ7Ci0KLSAgICBpZiAoY3VycmVudE5vZGUtPmNhbGxJZGVu
dGlmaWVyKCkuZnVuY3Rpb25OYW1lKCkgIT0gInByb2ZpbGUiKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBjdXJyZW50Tm9kZS0+cGFyZW50KCktPnJlbW92ZUNoaWxkKGN1cnJlbnROb2RlKTsKLX0K
LQotLy8gVGhlIGNvbnNvbGUucHJvZmlsZUVuZCB0aGF0IHN0b3BwZWQgdGhpcyBQcm9maWxlR2Vu
ZXJhdG9yIHdpbGwgYmUgdGhlIGxhc3QgY2hpbGQuCi12b2lkIFByb2ZpbGVHZW5lcmF0b3I6OnJl
bW92ZVByb2ZpbGVFbmQoKQotewotICAgIFByb2ZpbGVOb2RlKiBjdXJyZW50Tm9kZSA9IG51bGxw
dHI7Ci0gICAgZm9yIChQcm9maWxlTm9kZSogbmV4dCA9IG1fcm9vdE5vZGUuZ2V0KCk7IG5leHQ7
IG5leHQgPSBuZXh0LT5sYXN0Q2hpbGQoKSkKLSAgICAgICAgY3VycmVudE5vZGUgPSBuZXh0Owot
Ci0gICAgaWYgKGN1cnJlbnROb2RlLT5jYWxsSWRlbnRpZmllcigpLmZ1bmN0aW9uTmFtZSgpICE9
ICJwcm9maWxlRW5kIikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQVNTRVJUKGN1cnJlbnROb2Rl
LT5jYWxsSWRlbnRpZmllcigpID09IChjdXJyZW50Tm9kZS0+cGFyZW50KCktPmNoaWxkcmVuKClb
Y3VycmVudE5vZGUtPnBhcmVudCgpLT5jaGlsZHJlbigpLnNpemUoKSAtIDFdKS0+Y2FsbElkZW50
aWZpZXIoKSk7Ci0gICAgY3VycmVudE5vZGUtPnBhcmVudCgpLT5yZW1vdmVDaGlsZChjdXJyZW50
Tm9kZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDM4N2VkNWYuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL1Byb2ZpbGVHZW5lcmF0b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFByb2Zp
bGVHZW5lcmF0b3JfaAotI2RlZmluZSBQcm9maWxlR2VuZXJhdG9yX2gKLQotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1N0b3B3YXRjaC5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotICAgIGNsYXNzIERlYnVnZ2Vy
Q2FsbEZyYW1lOwotICAgIGNsYXNzIEV4ZWNTdGF0ZTsKLSAgICBjbGFzcyBKU0dsb2JhbE9iamVj
dDsKLSAgICBjbGFzcyBQcm9maWxlOwotICAgIGNsYXNzIFByb2ZpbGVOb2RlOwotICAgIHN0cnVj
dCBDYWxsSWRlbnRpZmllcjsKLQotICAgIGNsYXNzIFByb2ZpbGVHZW5lcmF0b3IgOiBwdWJsaWMg
UmVmQ291bnRlZDxQcm9maWxlR2VuZXJhdG9yPiAgewotICAgIHB1YmxpYzoKLSAgICAgICAgc3Rh
dGljIFJlZjxQcm9maWxlR2VuZXJhdG9yPiBjcmVhdGUoRXhlY1N0YXRlKiwgY29uc3QgV1RGOjpT
dHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIFBhc3NSZWZQdHI8U3RvcHdhdGNoPik7Ci0KLSAg
ICAgICAgLy8gTWVtYmVycwotICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUoKSBjb25z
dDsKLSAgICAgICAgUGFzc1JlZlB0cjxQcm9maWxlPiBwcm9maWxlKCkgY29uc3QgeyByZXR1cm4g
bV9wcm9maWxlOyB9Ci0gICAgICAgIEpTR2xvYmFsT2JqZWN0KiBvcmlnaW4oKSBjb25zdCB7IHJl
dHVybiBtX29yaWdpbjsgfQotICAgICAgICB1bnNpZ25lZCBwcm9maWxlR3JvdXAoKSBjb25zdCB7
IHJldHVybiBtX3Byb2ZpbGVHcm91cDsgfQotCi0gICAgICAgIHZvaWQgd2lsbEV4ZWN1dGUoRXhl
Y1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJik7Ci0gICAgICAg
IHZvaWQgZGlkRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElk
ZW50aWZpZXImKTsKLSAgICAgICAgdm9pZCBleGNlcHRpb25VbndpbmQoRXhlY1N0YXRlKiBoYW5k
bGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYpOwotCi0gICAgICAgIHZvaWQgc2V0
SXNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQpIHsgQVNTRVJUKG1fc3VzcGVuZGVkICE9IHN1c3Bl
bmRlZCk7IG1fc3VzcGVuZGVkID0gc3VzcGVuZGVkOyB9Ci0KLSAgICAgICAgdm9pZCBzdG9wUHJv
ZmlsaW5nKCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBQcm9maWxlR2VuZXJhdG9yKEV4ZWNT
dGF0ZSosIGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBQYXNzUmVmUHRy
PFN0b3B3YXRjaD4pOwotICAgICAgICB2b2lkIGFkZFBhcmVudEZvckNvbnNvbGVTdGFydChFeGVj
U3RhdGUqLCBkb3VibGUpOwotCi0gICAgICAgIHZvaWQgcmVtb3ZlUHJvZmlsZVN0YXJ0KCk7Ci0g
ICAgICAgIHZvaWQgcmVtb3ZlUHJvZmlsZUVuZCgpOwotCi0gICAgICAgIHZvaWQgYmVnaW5DYWxs
RW50cnkoUHJvZmlsZU5vZGUqLCBkb3VibGUgc3RhcnRUaW1lKTsKLSAgICAgICAgdm9pZCBlbmRD
YWxsRW50cnkoUHJvZmlsZU5vZGUqKTsKLQotICAgICAgICBSZWZQdHI8UHJvZmlsZT4gbV9wcm9m
aWxlOwotICAgICAgICBKU0dsb2JhbE9iamVjdCogbV9vcmlnaW47Ci0gICAgICAgIHVuc2lnbmVk
IG1fcHJvZmlsZUdyb3VwOwotICAgICAgICBSZWZQdHI8U3RvcHdhdGNoPiBtX3N0b3B3YXRjaDsK
LSAgICAgICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBtX3Jvb3ROb2RlOwotICAgICAgICBSZWZQdHI8
UHJvZmlsZU5vZGU+IG1fY3VycmVudE5vZGU7Ci0gICAgICAgIGJvb2wgbV9mb3VuZENvbnNvbGVT
dGFydFBhcmVudDsKLSAgICAgICAgYm9vbCBtX3N1c3BlbmRlZDsKLSAgICB9OwotCi19IC8vIG5h
bWVzcGFjZSBKU0MKLQotI2VuZGlmIC8vIFByb2ZpbGVHZW5lcmF0b3JfaApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDliY2YzNzUuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE5OSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0g
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQcm9maWxlTm9kZS5oIgotCi0jaW5jbHVkZSAi
TGVnYWN5UHJvZmlsZXIuaCIKLSNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4KLSNpbmNsdWRlIDx3
dGYvRGF0YUxvZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KLQotdXNpbmcg
bmFtZXNwYWNlIFdURjsKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLVByb2ZpbGVOb2RlOjpQcm9maWxl
Tm9kZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImIGNh
bGxJZGVudGlmaWVyLCBQcm9maWxlTm9kZSogcGFyZW50Tm9kZSkKLSAgICA6IG1fY2FsbGVyQ2Fs
bEZyYW1lKGNhbGxlckNhbGxGcmFtZSkKLSAgICAsIG1fY2FsbElkZW50aWZpZXIoY2FsbElkZW50
aWZpZXIpCi0gICAgLCBtX3BhcmVudChwYXJlbnROb2RlKQotI2lmbmRlZiBOREVCVUcKLSAgICAs
IG1fbmV4dFNpYmxpbmcobnVsbHB0cikKLSNlbmRpZgotewotfQotCi1Qcm9maWxlTm9kZTo6UHJv
ZmlsZU5vZGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIFByb2ZpbGVOb2RlKiBub2RlVG9D
b3B5KQotICAgIDogbV9jYWxsZXJDYWxsRnJhbWUoY2FsbGVyQ2FsbEZyYW1lKQotICAgICwgbV9j
YWxsSWRlbnRpZmllcihub2RlVG9Db3B5LT5jYWxsSWRlbnRpZmllcigpKQotICAgICwgbV9wYXJl
bnQobm9kZVRvQ29weS0+cGFyZW50KCkpCi0gICAgLCBtX2NhbGxzKG5vZGVUb0NvcHktPmNhbGxz
KCkpCi0jaWZuZGVmIE5ERUJVRwotICAgICwgbV9uZXh0U2libGluZyhudWxscHRyKQotI2VuZGlm
Ci17Ci19Ci0KLXZvaWQgUHJvZmlsZU5vZGU6OmFkZENoaWxkKFBhc3NSZWZQdHI8UHJvZmlsZU5v
ZGU+IHBycENoaWxkKQotewotICAgIFJlZlB0cjxQcm9maWxlTm9kZT4gY2hpbGQgPSBwcnBDaGls
ZDsKLSAgICBjaGlsZC0+c2V0UGFyZW50KHRoaXMpOwotI2lmbmRlZiBOREVCVUcKLSAgICBpZiAo
bV9jaGlsZHJlbi5zaXplKCkpCi0gICAgICAgIG1fY2hpbGRyZW4ubGFzdCgpLT5zZXROZXh0U2li
bGluZyhjaGlsZC5nZXQoKSk7Ci0jZW5kaWYKLSAgICBtX2NoaWxkcmVuLmFwcGVuZChjaGlsZC5y
ZWxlYXNlKCkpOwotfQotCi12b2lkIFByb2ZpbGVOb2RlOjpyZW1vdmVDaGlsZChQcm9maWxlTm9k
ZSogbm9kZSkKLXsKLSAgICBpZiAoIW5vZGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY2hp
bGRyZW4ucmVtb3ZlRmlyc3RNYXRjaGluZyhbbm9kZV0gKGNvbnN0IFJlZlB0cjxQcm9maWxlTm9k
ZT4mIGN1cnJlbnQpIHsKLSAgICAgICAgcmV0dXJuICpub2RlID09IGN1cnJlbnQuZ2V0KCk7Ci0g
ICAgfSk7Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgc2l6ZV90IHNpemUgPSBtX2NoaWxkcmVuLnNp
emUoKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9j
aGlsZHJlbltpXS0+c2V0TmV4dFNpYmxpbmcoaSArIDEgPT0gc2l6ZSA/IG51bGxwdHIgOiBtX2No
aWxkcmVuW2kgKyAxXS5nZXQoKSk7Ci0jZW5kaWYKLX0KLQotdm9pZCBQcm9maWxlTm9kZTo6c3Bs
aWNlTm9kZShQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPiBwcnBOb2RlKQotewotICAgIFJlZlB0cjxQ
cm9maWxlTm9kZT4gbm9kZSA9IHBycE5vZGU7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbV9jaGlsZHJlbi5zaXplKCk7ICsraSkKLSAgICAgICAgbm9kZS0+YWRkQ2hpbGQobV9jaGls
ZHJlbltpXS5yZWxlYXNlKCkpOwotCi0gICAgbV9jaGlsZHJlbi5jbGVhcigpOwotICAgIG1fY2hp
bGRyZW4uYXBwZW5kKG5vZGUucmVsZWFzZSgpKTsKLX0KLQotI2lmbmRlZiBOREVCVUcKLVByb2Zp
bGVOb2RlKiBQcm9maWxlTm9kZTo6dHJhdmVyc2VOZXh0Tm9kZVBvc3RPcmRlcigpIGNvbnN0Ci17
Ci0gICAgUHJvZmlsZU5vZGUqIG5leHQgPSBtX25leHRTaWJsaW5nOwotICAgIGlmICghbmV4dCkK
LSAgICAgICAgcmV0dXJuIG1fcGFyZW50OwotICAgIHdoaWxlIChQcm9maWxlTm9kZSogZmlyc3RD
aGlsZCA9IG5leHQtPmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgbmV4dCA9IGZpcnN0Q2hpbGQ7Ci0g
ICAgcmV0dXJuIG5leHQ7Ci19Ci0KLXZvaWQgUHJvZmlsZU5vZGU6OmRlYnVnUHJpbnQoKQotewot
ICAgIENhbGN1bGF0ZVByb2ZpbGVTdWJ0cmVlRGF0YUZ1bmN0b3IgZnVuY3RvcjsKLSAgICBmb3JF
YWNoTm9kZVBvc3RvcmRlcihmdW5jdG9yKTsKLSAgICBQcm9maWxlTm9kZTo6UHJvZmlsZVN1YnRy
ZWVEYXRhIGRhdGEgPSBmdW5jdG9yLnJldHVyblZhbHVlKCk7Ci0KLSAgICBkZWJ1Z1ByaW50UmVj
dXJzaXZlbHkoMCwgZGF0YSk7Ci19Ci0KLXZvaWQgUHJvZmlsZU5vZGU6OmRlYnVnUHJpbnRTYW1w
bGVTdHlsZSgpCi17Ci0gICAgRnVuY3Rpb25DYWxsSGFzaENvdW50IGNvdW50ZWRGdW5jdGlvbnM7
Ci0KLSAgICBDYWxjdWxhdGVQcm9maWxlU3VidHJlZURhdGFGdW5jdG9yIGZ1bmN0b3I7Ci0gICAg
Zm9yRWFjaE5vZGVQb3N0b3JkZXIoZnVuY3Rvcik7Ci0gICAgUHJvZmlsZU5vZGU6OlByb2ZpbGVT
dWJ0cmVlRGF0YSBkYXRhID0gZnVuY3Rvci5yZXR1cm5WYWx1ZSgpOwotCi0gICAgZGVidWdQcmlu
dFNhbXBsZVN0eWxlUmVjdXJzaXZlbHkoMCwgY291bnRlZEZ1bmN0aW9ucywgZGF0YSk7Ci19Ci0K
LXZvaWQgUHJvZmlsZU5vZGU6OmRlYnVnUHJpbnRSZWN1cnNpdmVseShpbnQgaW5kZW50TGV2ZWws
IGNvbnN0IFByb2ZpbGVTdWJ0cmVlRGF0YSYgZGF0YSkKLXsKLSAgICAvLyBQcmludCBmdW5jdGlv
biBuYW1lcwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kZW50TGV2ZWw7ICsraSkKLSAgICAg
ICAgZGF0YUxvZ0YoIiAgIik7Ci0KLSAgICBhdXRvIGl0ID0gZGF0YS5zZWxmQW5kVG90YWxUaW1l
cy5maW5kKHRoaXMpOwotICAgIEFTU0VSVChpdCAhPSBkYXRhLnNlbGZBbmRUb3RhbFRpbWVzLmVu
ZCgpKTsKLQotICAgIGRvdWJsZSBub2RlU2VsZlRpbWUgPSBpdC0+dmFsdWUuZmlyc3Q7Ci0gICAg
ZG91YmxlIG5vZGVUb3RhbFRpbWUgPSBpdC0+dmFsdWUuc2Vjb25kOwotICAgIGRvdWJsZSByb290
VG90YWxUaW1lID0gZGF0YS5yb290VG90YWxUaW1lOwotCi0gICAgZGF0YUxvZ0YoIkZ1bmN0aW9u
IE5hbWUgJXMgJXp1IFNlbGZUaW1lICUuM2Ztcy8lLjNmJSUgVG90YWxUaW1lICUuM2Ztcy8lLjNm
JSUgTmV4dCBTaWJsaW5nICVzXG4iLAotICAgICAgICBmdW5jdGlvbk5hbWUoKS51dGY4KCkuZGF0
YSgpLAotICAgICAgICBtX2NhbGxzLnNpemUoKSwgbm9kZVNlbGZUaW1lLCBub2RlU2VsZlRpbWUg
LyByb290VG90YWxUaW1lICogMTAwLjAsIG5vZGVUb3RhbFRpbWUsIG5vZGVUb3RhbFRpbWUgLyBy
b290VG90YWxUaW1lICogMTAwLjAsCi0gICAgICAgIG1fbmV4dFNpYmxpbmcgPyBtX25leHRTaWJs
aW5nLT5mdW5jdGlvbk5hbWUoKS51dGY4KCkuZGF0YSgpIDogIiIpOwotCi0gICAgKytpbmRlbnRM
ZXZlbDsKLQotICAgIC8vIFByaW50IGNoaWxkcmVuJ3MgbmFtZXMgYW5kIGluZm9ybWF0aW9uCi0g
ICAgZm9yIChTdGFja0l0ZXJhdG9yIGN1cnJlbnRDaGlsZCA9IG1fY2hpbGRyZW4uYmVnaW4oKTsg
Y3VycmVudENoaWxkICE9IG1fY2hpbGRyZW4uZW5kKCk7ICsrY3VycmVudENoaWxkKQotICAgICAg
ICAoKmN1cnJlbnRDaGlsZCktPmRlYnVnUHJpbnRSZWN1cnNpdmVseShpbmRlbnRMZXZlbCwgZGF0
YSk7Ci19Ci0KLS8vIHByaW50IHRoZSBwcm9maWxlZCBkYXRhIGluIGEgZm9ybWF0IHRoYXQgbWF0
Y2hlcyB0aGUgdG9vbCBzYW1wbGUncyBvdXRwdXQuCi1kb3VibGUgUHJvZmlsZU5vZGU6OmRlYnVn
UHJpbnRTYW1wbGVTdHlsZVJlY3Vyc2l2ZWx5KGludCBpbmRlbnRMZXZlbCwgRnVuY3Rpb25DYWxs
SGFzaENvdW50JiBjb3VudGVkRnVuY3Rpb25zLCBjb25zdCBQcm9maWxlU3VidHJlZURhdGEmIGRh
dGEpCi17Ci0gICAgZGF0YUxvZ0YoIiAgICAiKTsKLQotICAgIGF1dG8gaXQgPSBkYXRhLnNlbGZB
bmRUb3RhbFRpbWVzLmZpbmQodGhpcyk7Ci0gICAgQVNTRVJUKGl0ICE9IGRhdGEuc2VsZkFuZFRv
dGFsVGltZXMuZW5kKCkpOwotICAgIGRvdWJsZSBub2RlVG90YWxUaW1lID0gaXQtPnZhbHVlLnNl
Y29uZDsKLQotICAgIC8vIFByaW50IGZ1bmN0aW9uIG5hbWVzCi0gICAgY29uc3QgY2hhciogbmFt
ZSA9IGZ1bmN0aW9uTmFtZSgpLnV0ZjgoKS5kYXRhKCk7Ci0gICAgZG91YmxlIHNhbXBsZUNvdW50
ID0gbm9kZVRvdGFsVGltZSAqIDEwMDA7Ci0gICAgaWYgKGluZGVudExldmVsKSB7Ci0gICAgICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgaW5kZW50TGV2ZWw7ICsraSkKLSAgICAgICAgICAgIGRhdGFM
b2dGKCIgICIpOwotCi0gICAgICAgICBjb3VudGVkRnVuY3Rpb25zLmFkZChmdW5jdGlvbk5hbWUo
KS5pbXBsKCkpOwotCi0gICAgICAgIGRhdGFMb2dGKCIlLjBmICVzXG4iLCBzYW1wbGVDb3VudCA/
IHNhbXBsZUNvdW50IDogMSwgbmFtZSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIGRhdGFMb2dGKCIl
c1xuIiwgbmFtZSk7Ci0KLSAgICArK2luZGVudExldmVsOwotCi0gICAgLy8gUHJpbnQgY2hpbGRy
ZW4ncyBuYW1lcyBhbmQgaW5mb3JtYXRpb24KLSAgICBkb3VibGUgc3VtT2ZDaGlsZHJlbnNDb3Vu
dCA9IDAuMDsKLSAgICBmb3IgKFN0YWNrSXRlcmF0b3IgY3VycmVudENoaWxkID0gbV9jaGlsZHJl
bi5iZWdpbigpOyBjdXJyZW50Q2hpbGQgIT0gbV9jaGlsZHJlbi5lbmQoKTsgKytjdXJyZW50Q2hp
bGQpCi0gICAgICAgIHN1bU9mQ2hpbGRyZW5zQ291bnQgKz0gKCpjdXJyZW50Q2hpbGQpLT5kZWJ1
Z1ByaW50U2FtcGxlU3R5bGVSZWN1cnNpdmVseShpbmRlbnRMZXZlbCwgY291bnRlZEZ1bmN0aW9u
cywgZGF0YSk7Ci0KLSAgICBzdW1PZkNoaWxkcmVuc0NvdW50ICo9IDEwMDA7ICAgIC8vCi0gICAg
Ly8gUHJpbnQgcmVtYWluZGVyIG9mIHNhbXBsZXMgdG8gbWF0Y2ggc2FtcGxlJ3Mgb3V0cHV0Ci0g
ICAgaWYgKHN1bU9mQ2hpbGRyZW5zQ291bnQgPCBzYW1wbGVDb3VudCkgewotICAgICAgICBkYXRh
TG9nRigiICAgICIpOwotICAgICAgICB3aGlsZSAoaW5kZW50TGV2ZWwtLSkKLSAgICAgICAgICAg
IGRhdGFMb2dGKCIgICIpOwotCi0gICAgICAgIGRhdGFMb2dGKCIlLjBmICVzXG4iLCBzYW1wbGVD
b3VudCAtIHN1bU9mQ2hpbGRyZW5zQ291bnQsIGZ1bmN0aW9uTmFtZSgpLnV0ZjgoKS5kYXRhKCkp
OwotICAgIH0KLQotICAgIHJldHVybiBub2RlVG90YWxUaW1lOwotfQotI2VuZGlmCi0KLX0gLy8g
bmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVOb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZU5v
ZGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2FkMTQ5ZS4uMDAwMDAwMAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZU5vZGUuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDE5NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDE0IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
LSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0g
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUHJvZmlsZU5vZGVfaAotI2RlZmluZSBQcm9maWxl
Tm9kZV9oCi0KLSNpbmNsdWRlICJDYWxsSWRlbnRpZmllci5oIgotI2luY2x1ZGUgPHd0Zi9IYXNo
Q291bnRlZFNldC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0K
LSAgICBjbGFzcyBFeGVjU3RhdGU7Ci0gICAgY2xhc3MgUHJvZmlsZU5vZGU7Ci0KLSAgICB0eXBl
ZGVmIEhhc2hDb3VudGVkU2V0PFN0cmluZ0ltcGwqPiBGdW5jdGlvbkNhbGxIYXNoQ291bnQ7Ci0K
LSAgICBjbGFzcyBQcm9maWxlTm9kZSA6IHB1YmxpYyBSZWZDb3VudGVkPFByb2ZpbGVOb2RlPiB7
Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPFByb2ZpbGVOb2RlPiBjcmVhdGUoRXhl
Y1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRp
ZmllciwgUHJvZmlsZU5vZGUqIHBhcmVudE5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFByb2ZpbGVOb2RlKGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50
aWZpZXIsIHBhcmVudE5vZGUpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBSZWY8UHJv
ZmlsZU5vZGU+IGNyZWF0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgUHJvZmlsZU5vZGUq
IG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFByb2Zp
bGVOb2RlKGNhbGxlckNhbGxGcmFtZSwgbm9kZSkpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3Ry
dWN0IENhbGwgewotICAgICAgICBwdWJsaWM6Ci0gICAgICAgICAgICBDYWxsKGRvdWJsZSBzdGFy
dFRpbWUsIGRvdWJsZSBlbGFwc2VkVGltZSA9IE5BTikKLSAgICAgICAgICAgICAgICA6IG1fc3Rh
cnRUaW1lKHN0YXJ0VGltZSkKLSAgICAgICAgICAgICAgICAsIG1fZWxhcHNlZFRpbWUoZWxhcHNl
ZFRpbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGRvdWJs
ZSBzdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0VGltZTsgfQotICAgICAgICAgICAg
dm9pZCBzZXRTdGFydFRpbWUoZG91YmxlIHRpbWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUX0FSRyh0aW1lLCB0aW1lID49IDAuMCB8fCBzdGQ6OmlzbmFuKHRpbWUpKTsK
LSAgICAgICAgICAgICAgICBtX3N0YXJ0VGltZSA9IHRpbWU7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGRvdWJsZSBlbGFwc2VkVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fZWxhcHNlZFRp
bWU7IH0KLSAgICAgICAgICAgIHZvaWQgc2V0RWxhcHNlZFRpbWUoZG91YmxlIHRpbWUpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUX0FSRyh0aW1lLCB0aW1lID49IDAuMCB8
fCBzdGQ6OmlzbmFuKHRpbWUpKTsKLSAgICAgICAgICAgICAgICBtX2VsYXBzZWRUaW1lID0gdGlt
ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICBwcml2YXRlOgotICAgICAgICAgICAgZG91Ymxl
IG1fc3RhcnRUaW1lOwotICAgICAgICAgICAgZG91YmxlIG1fZWxhcHNlZFRpbWU7Ci0gICAgICAg
IH07Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvcj09KFByb2ZpbGVOb2RlKiBub2RlKSB7IHJldHVy
biBtX2NhbGxJZGVudGlmaWVyID09IG5vZGUtPmNhbGxJZGVudGlmaWVyKCk7IH0KLQotICAgICAg
ICBFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGVyQ2Fs
bEZyYW1lOyB9Ci0gICAgICAgIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxsSWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1fY2FsbElkZW50aWZpZXI7IH0KLSAgICAgICAgdW5zaWduZWQgaWQo
KSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyLmhhc2goKTsgfQotICAgICAgICBjb25z
dCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbElkZW50aWZpZXIu
ZnVuY3Rpb25OYW1lKCk7IH0KLSAgICAgICAgY29uc3QgU3RyaW5nJiB1cmwoKSBjb25zdCB7IHJl
dHVybiBtX2NhbGxJZGVudGlmaWVyLnVybCgpOyB9Ci0gICAgICAgIHVuc2lnbmVkIGxpbmVOdW1i
ZXIoKSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyLmxpbmVOdW1iZXIoKTsgfQotICAg
ICAgICB1bnNpZ25lZCBjb2x1bW5OdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlm
aWVyLmNvbHVtbk51bWJlcigpOyB9Ci0KLSAgICAgICAgUHJvZmlsZU5vZGUqIHBhcmVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9Ci0gICAgICAgIHZvaWQgc2V0UGFyZW50KFByb2ZpbGVO
b2RlKiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJlbnQ7IH0KLQotICAgICAgICBjb25zdCBWZWN0
b3I8Q2FsbD4mIGNhbGxzKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsczsgfQotICAgICAgICBDYWxs
JiBsYXN0Q2FsbCgpIHsgQVNTRVJUKCFtX2NhbGxzLmlzRW1wdHkoKSk7IHJldHVybiBtX2NhbGxz
Lmxhc3QoKTsgfQotICAgICAgICB2b2lkIGFwcGVuZENhbGwoQ2FsbCBjYWxsKSB7IG1fY2FsbHMu
YXBwZW5kKGNhbGwpOyB9Ci0KLSAgICAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQcm9maWxlTm9k
ZT4+JiBjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW47IH0KLSAgICAgICAgUHJv
ZmlsZU5vZGUqIGZpcnN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuLnNpemUoKSA/
IG1fY2hpbGRyZW4uZmlyc3QoKS5nZXQoKSA6IG51bGxwdHI7IH0KLSAgICAgICAgUHJvZmlsZU5v
ZGUqIGxhc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4uc2l6ZSgpID8gbV9jaGls
ZHJlbi5sYXN0KCkuZ2V0KCkgOiBudWxscHRyOyB9Ci0KLSAgICAgICAgdm9pZCByZW1vdmVDaGls
ZChQcm9maWxlTm9kZSopOwotICAgICAgICB2b2lkIGFkZENoaWxkKFBhc3NSZWZQdHI8UHJvZmls
ZU5vZGU+KTsKLSAgICAgICAgLy8gUmVwYXJlbnQgb3VyIGNoaWxkIG5vZGVzIHRvIHRoZSBwYXNz
ZWQgbm9kZSwgYW5kIG1ha2UgaXQgYSBjaGlsZCBub2RlIG9mIHx0aGlzfC4KLSAgICAgICAgdm9p
ZCBzcGxpY2VOb2RlKFBhc3NSZWZQdHI8UHJvZmlsZU5vZGU+KTsKLQotI2lmbmRlZiBOREVCVUcK
LSAgICAgICAgc3RydWN0IFByb2ZpbGVTdWJ0cmVlRGF0YSB7Ci0gICAgICAgICAgICBIYXNoTWFw
PFByb2ZpbGVOb2RlKiwgc3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4gc2VsZkFuZFRvdGFsVGlt
ZXM7Ci0gICAgICAgICAgICBkb3VibGUgcm9vdFRvdGFsVGltZTsKLSAgICAgICAgfTsKLQotICAg
ICAgICAvLyBVc2UgdGhlc2UgZnVuY3Rpb25zIHRvIGR1bXAgdGhlIHN1YnRyZWUgcm9vdGVkIGF0
IHRoaXMgbm9kZS4KLSAgICAgICAgdm9pZCBkZWJ1Z1ByaW50KCk7Ci0gICAgICAgIHZvaWQgZGVi
dWdQcmludFNhbXBsZVN0eWxlKCk7Ci0KLSAgICAgICAgLy8gVGhlc2UgYXJlIHVzZWQgdG8gcmVj
dXJzaXZlbHkgcHJpbnQgZW50aXJlIHN1YnRyZWVzIHVzaW5nIHByZWNvbXB1dGVkIHNlbGYgYW5k
IHRvdGFsIHRpbWVzLgotICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4gdm9pZCBm
b3JFYWNoTm9kZVBvc3RvcmRlcihGdW5jdG9yJik7Ci0KLSAgICAgICAgdm9pZCBkZWJ1Z1ByaW50
UmVjdXJzaXZlbHkoaW50IGluZGVudExldmVsLCBjb25zdCBQcm9maWxlU3VidHJlZURhdGEmKTsK
LSAgICAgICAgZG91YmxlIGRlYnVnUHJpbnRTYW1wbGVTdHlsZVJlY3Vyc2l2ZWx5KGludCBpbmRl
bnRMZXZlbCwgRnVuY3Rpb25DYWxsSGFzaENvdW50JiwgY29uc3QgUHJvZmlsZVN1YnRyZWVEYXRh
Jik7Ci0jZW5kaWYKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0
cjxQcm9maWxlTm9kZT4+Ojpjb25zdF9pdGVyYXRvciBTdGFja0l0ZXJhdG9yOwotCi0gICAgICAg
IFByb2ZpbGVOb2RlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRp
ZmllciYsIFByb2ZpbGVOb2RlKiBwYXJlbnROb2RlKTsKLSAgICAgICAgUHJvZmlsZU5vZGUoRXhl
Y1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIFByb2ZpbGVOb2RlKiBub2RlVG9Db3B5KTsKLQotI2lm
bmRlZiBOREVCVUcKLSAgICAgICAgUHJvZmlsZU5vZGUqIG5leHRTaWJsaW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9uZXh0U2libGluZzsgfQotICAgICAgICB2b2lkIHNldE5leHRTaWJsaW5nKFByb2Zp
bGVOb2RlKiBuZXh0U2libGluZykgeyBtX25leHRTaWJsaW5nID0gbmV4dFNpYmxpbmc7IH0KLQot
ICAgICAgICBQcm9maWxlTm9kZSogdHJhdmVyc2VOZXh0Tm9kZVBvc3RPcmRlcigpIGNvbnN0Owot
I2VuZGlmCi0KLSAgICAgICAgRXhlY1N0YXRlKiBtX2NhbGxlckNhbGxGcmFtZTsKLSAgICAgICAg
Q2FsbElkZW50aWZpZXIgbV9jYWxsSWRlbnRpZmllcjsKLSAgICAgICAgUHJvZmlsZU5vZGUqIG1f
cGFyZW50OwotICAgICAgICBWZWN0b3I8Q2FsbD4gbV9jYWxsczsKLSAgICAgICAgVmVjdG9yPFJl
ZlB0cjxQcm9maWxlTm9kZT4+IG1fY2hpbGRyZW47Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgICAg
IFByb2ZpbGVOb2RlKiBtX25leHRTaWJsaW5nOwotI2VuZGlmCi0gICAgfTsKLQotI2lmbmRlZiBO
REVCVUcKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4gaW5saW5lIHZvaWQgUHJvZmls
ZU5vZGU6OmZvckVhY2hOb2RlUG9zdG9yZGVyKEZ1bmN0b3ImIGZ1bmN0b3IpCi0gICAgewotICAg
ICAgICBQcm9maWxlTm9kZSogY3VycmVudE5vZGUgPSB0aGlzOwotICAgICAgICAvLyBHbyBkb3du
IHRvIHRoZSBmaXJzdCBub2RlIG9mIHRoZSB0cmF2ZXJzYWwsIGFuZCBzbG93bHkgd2FsayBiYWNr
IHVwLgotICAgICAgICBmb3IgKFByb2ZpbGVOb2RlKiBuZXh0Tm9kZSA9IGN1cnJlbnROb2RlOyBu
ZXh0Tm9kZTsgbmV4dE5vZGUgPSBuZXh0Tm9kZS0+Zmlyc3RDaGlsZCgpKQotICAgICAgICAgICAg
Y3VycmVudE5vZGUgPSBuZXh0Tm9kZTsKLQotICAgICAgICBQcm9maWxlTm9kZSogZW5kTm9kZSA9
IHRoaXM7Ci0gICAgICAgIHdoaWxlIChjdXJyZW50Tm9kZSAmJiBjdXJyZW50Tm9kZSAhPSBlbmRO
b2RlKSB7Ci0gICAgICAgICAgICBmdW5jdG9yKGN1cnJlbnROb2RlKTsKLSAgICAgICAgICAgIGN1
cnJlbnROb2RlID0gY3VycmVudE5vZGUtPnRyYXZlcnNlTmV4dE5vZGVQb3N0T3JkZXIoKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGZ1bmN0b3IoZW5kTm9kZSk7Ci0gICAgfQotCi0gICAgc3RydWN0
IENhbGN1bGF0ZVByb2ZpbGVTdWJ0cmVlRGF0YUZ1bmN0b3IgewotICAgICAgICB2b2lkIG9wZXJh
dG9yKCkoUHJvZmlsZU5vZGUqIG5vZGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGRvdWJsZSBz
ZWxmVGltZSA9IDAuMDsKLSAgICAgICAgICAgIGZvciAoY29uc3QgUHJvZmlsZU5vZGU6OkNhbGwm
IGNhbGwgOiBub2RlLT5jYWxscygpKQotICAgICAgICAgICAgICAgIHNlbGZUaW1lICs9IGNhbGwu
ZWxhcHNlZFRpbWUoKTsKLQotICAgICAgICAgICAgZG91YmxlIHRvdGFsVGltZSA9IHNlbGZUaW1l
OwotICAgICAgICAgICAgZm9yIChSZWZQdHI8UHJvZmlsZU5vZGU+IGNoaWxkIDogbm9kZS0+Y2hp
bGRyZW4oKSkgewotICAgICAgICAgICAgICAgIGF1dG8gaXQgPSBtX2RhdGEuc2VsZkFuZFRvdGFs
VGltZXMuZmluZChjaGlsZC5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKGl0ICE9IG1fZGF0
YS5zZWxmQW5kVG90YWxUaW1lcy5lbmQoKSkKLSAgICAgICAgICAgICAgICAgICAgdG90YWxUaW1l
ICs9IGl0LT52YWx1ZS5zZWNvbmQ7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIEFTU0VS
VChub2RlKTsKLSAgICAgICAgICAgIG1fZGF0YS5zZWxmQW5kVG90YWxUaW1lcy5zZXQobm9kZSwg
c3RkOjptYWtlX3BhaXIoc2VsZlRpbWUsIHRvdGFsVGltZSkpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgUHJvZmlsZU5vZGU6OlByb2ZpbGVTdWJ0cmVlRGF0YSByZXR1cm5WYWx1ZSgpIHsgcmV0dXJu
IFdURk1vdmUobV9kYXRhKTsgfQotCi0gICAgICAgIFByb2ZpbGVOb2RlOjpQcm9maWxlU3VidHJl
ZURhdGEgbV9kYXRhOwotICAgIH07Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNl
bmRpZiAvLyBQcm9maWxlTm9kZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5jcHAKaW5kZXggMzA2OGZmMy4uMzc1
MWZlZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
SmV0dGlzb25SZWFzb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlckpldHRpc29uUmVhc29uLmNwcApAQCAtNDcsOSArNDcsNiBAQCB2b2lkIHByaW50SW50
ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgSmV0dGlzb25SZWFzb24gcmVhc29uKQogICAgIGNhc2Ug
SmV0dGlzb25EdWVUb0RlYnVnZ2VyU3RlcHBpbmc6CiAgICAgICAgIG91dC5wcmludCgiRGVidWdn
ZXJTdGVwcGluZyIpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBKZXR0aXNvbkR1ZVRvTGVn
YWN5UHJvZmlsZXI6Ci0gICAgICAgIG91dC5wcmludCgiTGVnYWN5UHJvZmlsZXIiKTsKLSAgICAg
ICAgcmV0dXJuOwogICAgIGNhc2UgSmV0dGlzb25EdWVUb0Jhc2VsaW5lTG9vcFJlb3B0aW1pemF0
aW9uVHJpZ2dlcjoKICAgICAgICAgb3V0LnByaW50KCJCYXNlbGluZUxvb3BSZW9wdGltaXphdGlv
blRyaWdnZXIiKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmgKaW5kZXggNmE3OTMyNi4u
NTMwMGEyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVySmV0dGlzb25SZWFzb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJKZXR0aXNvblJlYXNvbi5oCkBAIC0zMyw3ICszMyw2IEBAIGVudW0gSmV0dGlzb25S
ZWFzb24gewogICAgIEpldHRpc29uRHVlVG9XZWFrUmVmZXJlbmNlLAogICAgIEpldHRpc29uRHVl
VG9EZWJ1Z2dlckJyZWFrcG9pbnQsCiAgICAgSmV0dGlzb25EdWVUb0RlYnVnZ2VyU3RlcHBpbmcs
Ci0gICAgSmV0dGlzb25EdWVUb0xlZ2FjeVByb2ZpbGVyLAogICAgIEpldHRpc29uRHVlVG9CYXNl
bGluZUxvb3BSZW9wdGltaXphdGlvblRyaWdnZXIsCiAgICAgSmV0dGlzb25EdWVUb0Jhc2VsaW5l
TG9vcFJlb3B0aW1pemF0aW9uVHJpZ2dlck9uT1NSRW50cnlGYWlsLAogICAgIEpldHRpc29uRHVl
VG9PU1JFeGl0LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29k
ZUNhY2hlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAK
aW5kZXggMjgxMjczZS4uM2I3N2QzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29kZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db2RlQ2FjaGUuY3BwCkBAIC04MSwxMyArODEsMTMgQEAgdGVtcGxhdGUgPD4gc3RydWN0IENh
Y2hlVHlwZXM8VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrPiB7CiB9OwogCiB0ZW1wbGF0
ZSA8Y2xhc3MgVW5saW5rZWRDb2RlQmxvY2tUeXBlLCBjbGFzcyBFeGVjdXRhYmxlVHlwZT4KLVVu
bGlua2VkQ29kZUJsb2NrVHlwZSogQ29kZUNhY2hlOjpnZXRHbG9iYWxDb2RlQmxvY2soVk0mIHZt
LCBFeGVjdXRhYmxlVHlwZSogZXhlY3V0YWJsZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBK
U1BhcnNlckJ1aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0
TW9kZSwgVGhpc1REWk1vZGUgdGhpc1REWk1vZGUsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUs
IFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUsIFBhcnNlckVycm9yJiBlcnJvciwgRXZhbENvbnRl
eHRUeXBlIGV2YWxDb250ZXh0VHlwZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogdmFyaWFi
bGVzVW5kZXJURFopCitVbmxpbmtlZENvZGVCbG9ja1R5cGUqIENvZGVDYWNoZTo6Z2V0R2xvYmFs
Q29kZUJsb2NrKFZNJiB2bSwgRXhlY3V0YWJsZVR5cGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJj
ZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgSlNQYXJzZXJT
dHJpY3RNb2RlIHN0cmljdE1vZGUsIFRoaXNURFpNb2RlIHRoaXNURFpNb2RlLCBEZWJ1Z2dlck1v
ZGUgZGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IsIEV2YWxDb250ZXh0VHlwZSBldmFs
Q29udGV4dFR5cGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHZhcmlhYmxlc1VuZGVyVERa
KQogewogICAgIFNvdXJjZUNvZGVLZXkga2V5ID0gU291cmNlQ29kZUtleShzb3VyY2UsIFN0cmlu
ZygpLCBDYWNoZVR5cGVzPFVubGlua2VkQ29kZUJsb2NrVHlwZT46OmNvZGVUeXBlLCBidWlsdGlu
TW9kZSwgc3RyaWN0TW9kZSwgdGhpc1REWk1vZGUpOwogICAgIFNvdXJjZUNvZGVWYWx1ZSogY2Fj
aGUgPSBtX3NvdXJjZUNvZGUuZmluZENhY2hlQW5kVXBkYXRlQWdlKGtleSk7CiAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBkbyBzb21ldGhpbmcgc21hcnQgZm9yIFREWiBpbnN0ZWFkIG9mIGp1c3Qg
ZGlzYWJsaW5nIGNhY2hpbmcuCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NDAxMAotICAgIGJvb2wgY2FuQ2FjaGUgPSBkZWJ1Z2dlck1vZGUgPT0gRGVi
dWdnZXJPZmYgJiYgcHJvZmlsZXJNb2RlID09IFByb2ZpbGVyT2ZmICYmICF2bS50eXBlUHJvZmls
ZXIoKSAmJiAhdm0uY29udHJvbEZsb3dQcm9maWxlcigpICYmICF2YXJpYWJsZXNVbmRlclREWi0+
c2l6ZSgpOworICAgIGJvb2wgY2FuQ2FjaGUgPSBkZWJ1Z2dlck1vZGUgPT0gRGVidWdnZXJPZmYg
JiYgIXZtLnR5cGVQcm9maWxlcigpICYmICF2bS5jb250cm9sRmxvd1Byb2ZpbGVyKCkgJiYgIXZh
cmlhYmxlc1VuZGVyVERaLT5zaXplKCk7CiAgICAgaWYgKGNhY2hlICYmIGNhbkNhY2hlKSB7CiAg
ICAgICAgIFVubGlua2VkQ29kZUJsb2NrVHlwZSogdW5saW5rZWRDb2RlQmxvY2sgPSBqc0Nhc3Q8
VW5saW5rZWRDb2RlQmxvY2tUeXBlKj4oY2FjaGUtPmNlbGwuZ2V0KCkpOwogICAgICAgICB1bnNp
Z25lZCBmaXJzdExpbmUgPSBzb3VyY2UuZmlyc3RMaW5lKCkgKyB1bmxpbmtlZENvZGVCbG9jay0+
Zmlyc3RMaW5lKCk7CkBAIC0xMjAsNyArMTIwLDcgQEAgVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBD
b2RlQ2FjaGU6OmdldEdsb2JhbENvZGVCbG9jayhWTSYgdm0sIEV4ZWN1dGFibGVUeXBlKiBleGUK
ICAgICB1bmxpbmtlZENvZGVCbG9jay0+c2V0U291cmNlVVJMRGlyZWN0aXZlKHNvdXJjZS5wcm92
aWRlcigpLT5zb3VyY2VVUkwoKSk7CiAgICAgdW5saW5rZWRDb2RlQmxvY2stPnNldFNvdXJjZU1h
cHBpbmdVUkxEaXJlY3RpdmUoc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZU1hcHBpbmdVUkwoKSk7
CiAKLSAgICBlcnJvciA9IEJ5dGVjb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZSh2bSwgcm9vdE5vZGUu
Z2V0KCksIHVubGlua2VkQ29kZUJsb2NrLCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwgdmFy
aWFibGVzVW5kZXJURFopOworICAgIGVycm9yID0gQnl0ZWNvZGVHZW5lcmF0b3I6OmdlbmVyYXRl
KHZtLCByb290Tm9kZS5nZXQoKSwgdW5saW5rZWRDb2RlQmxvY2ssIGRlYnVnZ2VyTW9kZSwgdmFy
aWFibGVzVW5kZXJURFopOwogCiAgICAgaWYgKGVycm9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CkBAIC0xMzIsMjEgKzEzMiwyMSBAQCBVbmxpbmtlZENvZGVCbG9ja1R5cGUq
IENvZGVDYWNoZTo6Z2V0R2xvYmFsQ29kZUJsb2NrKFZNJiB2bSwgRXhlY3V0YWJsZVR5cGUqIGV4
ZQogICAgIHJldHVybiB1bmxpbmtlZENvZGVCbG9jazsKIH0KIAotVW5saW5rZWRQcm9ncmFtQ29k
ZUJsb2NrKiBDb2RlQ2FjaGU6OmdldFByb2dyYW1Db2RlQmxvY2soVk0mIHZtLCBQcm9ncmFtRXhl
Y3V0YWJsZSogZXhlY3V0YWJsZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1BhcnNlckJ1
aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSwgRGVi
dWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSwgUGFyc2Vy
RXJyb3ImIGVycm9yKQorVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiBDb2RlQ2FjaGU6OmdldFBy
b2dyYW1Db2RlQmxvY2soVk0mIHZtLCBQcm9ncmFtRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgY29u
c3QgU291cmNlQ29kZSYgc291cmNlLCBKU1BhcnNlckJ1aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBK
U1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSwgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwg
UGFyc2VyRXJyb3ImIGVycm9yKQogewogICAgIFZhcmlhYmxlRW52aXJvbm1lbnQgZW1wdHlQYXJl
bnRURFpWYXJpYWJsZXM7Ci0gICAgcmV0dXJuIGdldEdsb2JhbENvZGVCbG9jazxVbmxpbmtlZFBy
b2dyYW1Db2RlQmxvY2s+KHZtLCBleGVjdXRhYmxlLCBzb3VyY2UsIGJ1aWx0aW5Nb2RlLCBzdHJp
Y3RNb2RlLCBUaGlzVERaTW9kZTo6Q2hlY2tJZk5lZWRlZCwgZGVidWdnZXJNb2RlLCBwcm9maWxl
ck1vZGUsIGVycm9yLCBFdmFsQ29udGV4dFR5cGU6Ok5vbmUsICZlbXB0eVBhcmVudFREWlZhcmlh
Ymxlcyk7CisgICAgcmV0dXJuIGdldEdsb2JhbENvZGVCbG9jazxVbmxpbmtlZFByb2dyYW1Db2Rl
QmxvY2s+KHZtLCBleGVjdXRhYmxlLCBzb3VyY2UsIGJ1aWx0aW5Nb2RlLCBzdHJpY3RNb2RlLCBU
aGlzVERaTW9kZTo6Q2hlY2tJZk5lZWRlZCwgZGVidWdnZXJNb2RlLCBlcnJvciwgRXZhbENvbnRl
eHRUeXBlOjpOb25lLCAmZW1wdHlQYXJlbnRURFpWYXJpYWJsZXMpOwogfQogCi1VbmxpbmtlZEV2
YWxDb2RlQmxvY2sqIENvZGVDYWNoZTo6Z2V0RXZhbENvZGVCbG9jayhWTSYgdm0sIEV2YWxFeGVj
dXRhYmxlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVp
bHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBUaGlz
VERaTW9kZSB0aGlzVERaTW9kZSwgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJN
b2RlIHByb2ZpbGVyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBFdmFsQ29udGV4dFR5cGUgZXZh
bENvbnRleHRUeXBlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiB2YXJpYWJsZXNVbmRlclRE
WikKK1VubGlua2VkRXZhbENvZGVCbG9jayogQ29kZUNhY2hlOjpnZXRFdmFsQ29kZUJsb2NrKFZN
JiB2bSwgRXZhbEV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJj
ZSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0
cmljdE1vZGUsIFRoaXNURFpNb2RlIHRoaXNURFpNb2RlLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJN
b2RlLCBQYXJzZXJFcnJvciYgZXJyb3IsIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUs
IGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHZhcmlhYmxlc1VuZGVyVERaKQogewotICAgIHJl
dHVybiBnZXRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRFdmFsQ29kZUJsb2NrPih2bSwgZXhlY3V0
YWJsZSwgc291cmNlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9kZSwgdGhpc1REWk1vZGUsIGRlYnVn
Z2VyTW9kZSwgcHJvZmlsZXJNb2RlLCBlcnJvciwgZXZhbENvbnRleHRUeXBlLCB2YXJpYWJsZXNV
bmRlclREWik7CisgICAgcmV0dXJuIGdldEdsb2JhbENvZGVCbG9jazxVbmxpbmtlZEV2YWxDb2Rl
QmxvY2s+KHZtLCBleGVjdXRhYmxlLCBzb3VyY2UsIGJ1aWx0aW5Nb2RlLCBzdHJpY3RNb2RlLCB0
aGlzVERaTW9kZSwgZGVidWdnZXJNb2RlLCBlcnJvciwgZXZhbENvbnRleHRUeXBlLCB2YXJpYWJs
ZXNVbmRlclREWik7CiB9CiAKLVVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayogQ29kZUNh
Y2hlOjpnZXRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKFZNJiB2bSwgTW9kdWxlUHJvZ3JhbUV4ZWN1
dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJCdWls
dGluTW9kZSBidWlsdGluTW9kZSwgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJN
b2RlIHByb2ZpbGVyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yKQorVW5saW5rZWRNb2R1bGVQcm9n
cmFtQ29kZUJsb2NrKiBDb2RlQ2FjaGU6OmdldE1vZHVsZVByb2dyYW1Db2RlQmxvY2soVk0mIHZt
LCBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgY29uc3QgU291cmNlQ29kZSYg
c291cmNlLCBKU1BhcnNlckJ1aWx0aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBEZWJ1Z2dlck1vZGUgZGVi
dWdnZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IpCiB7CiAgICAgVmFyaWFibGVFbnZpcm9ubWVu
dCBlbXB0eVBhcmVudFREWlZhcmlhYmxlczsKLSAgICByZXR1cm4gZ2V0R2xvYmFsQ29kZUJsb2Nr
PFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jaz4odm0sIGV4ZWN1dGFibGUsIHNvdXJjZSwg
YnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZTo6U3RyaWN0LCBUaGlzVERaTW9kZTo6Q2hl
Y2tJZk5lZWRlZCwgZGVidWdnZXJNb2RlLCBwcm9maWxlck1vZGUsIGVycm9yLCBFdmFsQ29udGV4
dFR5cGU6Ok5vbmUsICZlbXB0eVBhcmVudFREWlZhcmlhYmxlcyk7CisgICAgcmV0dXJuIGdldEds
b2JhbENvZGVCbG9jazxVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2s+KHZtLCBleGVjdXRh
YmxlLCBzb3VyY2UsIGJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdCwgVGhp
c1REWk1vZGU6OkNoZWNrSWZOZWVkZWQsIGRlYnVnZ2VyTW9kZSwgZXJyb3IsIEV2YWxDb250ZXh0
VHlwZTo6Tm9uZSwgJmVtcHR5UGFyZW50VERaVmFyaWFibGVzKTsKIH0KIAogLy8gRklYTUU6IFRo
ZXJlJ3Mgbm8gbmVlZCB0byBhZGQgdGhlIGZ1bmN0aW9uJ3MgbmFtZSB0byB0aGUga2V5IGhlcmUu
IEl0J3MgYWxyZWFkeSBpbiB0aGUgc291cmNlIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvZGVDYWNoZS5oCmluZGV4IGU1ZTIxMWIuLjAwNzBkOTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCkBAIC0xODcsOSArMTg3LDkgQEAgcHVibGlj
OgogICAgIENvZGVDYWNoZSgpOwogICAgIH5Db2RlQ2FjaGUoKTsKIAotICAgIFVubGlua2VkUHJv
Z3JhbUNvZGVCbG9jayogZ2V0UHJvZ3JhbUNvZGVCbG9jayhWTSYsIFByb2dyYW1FeGVjdXRhYmxl
KiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0
TW9kZSwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUsIFBhcnNlckVycm9yJik7Ci0gICAgVW5s
aW5rZWRFdmFsQ29kZUJsb2NrKiBnZXRFdmFsQ29kZUJsb2NrKFZNJiwgRXZhbEV4ZWN1dGFibGUq
LCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJCdWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RN
b2RlLCBUaGlzVERaTW9kZSwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUsIFBhcnNlckVycm9y
JiwgRXZhbENvbnRleHRUeXBlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7Ci0gICAgVW5s
aW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiBnZXRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKFZN
JiwgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJC
dWlsdGluTW9kZSwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUsIFBhcnNlckVycm9yJik7Cisg
ICAgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiBnZXRQcm9ncmFtQ29kZUJsb2NrKFZNJiwgUHJv
Z3JhbUV4ZWN1dGFibGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJCdWlsdGluTW9kZSwg
SlNQYXJzZXJTdHJpY3RNb2RlLCBEZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJik7CisgICAgVW5s
aW5rZWRFdmFsQ29kZUJsb2NrKiBnZXRFdmFsQ29kZUJsb2NrKFZNJiwgRXZhbEV4ZWN1dGFibGUq
LCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJCdWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RN
b2RlLCBUaGlzVERaTW9kZSwgRGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYsIEV2YWxDb250ZXh0
VHlwZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOworICAgIFVubGlua2VkTW9kdWxlUHJv
Z3JhbUNvZGVCbG9jayogZ2V0TW9kdWxlUHJvZ3JhbUNvZGVCbG9jayhWTSYsIE1vZHVsZVByb2dy
YW1FeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIERl
YnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImKTsKICAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJs
ZSogZ2V0RnVuY3Rpb25FeGVjdXRhYmxlRnJvbUdsb2JhbENvZGUoVk0mLCBjb25zdCBJZGVudGlm
aWVyJiwgY29uc3QgU291cmNlQ29kZSYsIFBhcnNlckVycm9yJik7CiAKICAgICB2b2lkIGNsZWFy
KCkKQEAgLTE5OSw3ICsxOTksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdGVtcGxhdGUg
PGNsYXNzIFVubGlua2VkQ29kZUJsb2NrVHlwZSwgY2xhc3MgRXhlY3V0YWJsZVR5cGU+IAotICAg
IFVubGlua2VkQ29kZUJsb2NrVHlwZSogZ2V0R2xvYmFsQ29kZUJsb2NrKFZNJiwgRXhlY3V0YWJs
ZVR5cGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJCdWlsdGluTW9kZSwgSlNQYXJzZXJT
dHJpY3RNb2RlLCBUaGlzVERaTW9kZSwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUsIFBhcnNl
ckVycm9yJiwgRXZhbENvbnRleHRUeXBlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7Cisg
ICAgVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBnZXRHbG9iYWxDb2RlQmxvY2soVk0mLCBFeGVjdXRh
YmxlVHlwZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBKU1BhcnNl
clN0cmljdE1vZGUsIFRoaXNURFpNb2RlLCBEZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJiwgRXZh
bENvbnRleHRUeXBlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7CiAKICAgICBDb2RlQ2Fj
aGVNYXAgbV9zb3VyY2VDb2RlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXhlY3V0YWJsZS5jcHAKaW5kZXggOTE5NWQ1NS4uOWZjZGRmNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKQEAgLTMxMiwxMCArMzEyLDkgQEAgQ29k
ZUJsb2NrKiBTY3JpcHRFeGVjdXRhYmxlOjpuZXdDb2RlQmxvY2tGb3IoCiAgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IHNjb3BlLT5nbG9iYWxPYmplY3QoKTsKICAgICBQYXJzZXJF
cnJvciBlcnJvcjsKICAgICBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlID0gZ2xvYmFsT2JqZWN0
LT5oYXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkgPyBEZWJ1Z2dlck9uIDogRGVidWdnZXJPZmY7Ci0g
ICAgUHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSA9IGdsb2JhbE9iamVjdC0+aGFzTGVnYWN5UHJv
ZmlsZXIoKSA/IFByb2ZpbGVyT24gOiBQcm9maWxlck9mZjsKICAgICBVbmxpbmtlZEZ1bmN0aW9u
Q29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IAogICAgICAgICBleGVjdXRhYmxlLT5tX3Vu
bGlua2VkRXhlY3V0YWJsZS0+dW5saW5rZWRDb2RlQmxvY2tGb3IoCi0gICAgICAgICAgICAqdm0s
IGV4ZWN1dGFibGUtPm1fc291cmNlLCBraW5kLCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwg
ZXJyb3IsIAorICAgICAgICAgICAgKnZtLCBleGVjdXRhYmxlLT5tX3NvdXJjZSwga2luZCwgZGVi
dWdnZXJNb2RlLCBlcnJvciwgCiAgICAgICAgICAgICBleGVjdXRhYmxlLT5wYXJzZU1vZGUoKSk7
CiAgICAgcmVjb3JkUGFyc2UoCiAgICAgICAgIGV4ZWN1dGFibGUtPm1fdW5saW5rZWRFeGVjdXRh
YmxlLT5mZWF0dXJlcygpLCAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcAppbmRleCBkNzcwNTQ5Li42YzE0NzMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC0xMTIsNyArMTEy
LDYgQEAKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgogI2luY2x1ZGUgIkxhenlDbGFzc1N0cnVj
dHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJMYXp5UHJvcGVydHlJbmxpbmVzLmgiCi0jaW5jbHVk
ZSAiTGVnYWN5UHJvZmlsZXIuaCIKICNpbmNsdWRlICJMb29rdXAuaCIKICNpbmNsdWRlICJNYXBD
b25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIk1hcEl0ZXJhdG9yUHJvdG90eXBlLmgiCkBAIC0yMDgs
NyArMjA3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNvbnN0IENsYXNzSW5mbyBKU0dsb2JhbE9i
amVjdDo6c19pbmZvID0geyAiR2xvYmFsT2JqZWN0IiwgJkJhc2U6OnNfaW5mbywgJmdsb2JhbE9i
amVjdFRhYmxlLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTR2xvYmFsT2JqZWN0KSB9OwogCi1jb25z
dCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0dsb2JhbE9iamVjdDo6c19nbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSA9IHsgJmFsbG93c0FjY2Vzc0Zyb20sICZzdXBwb3J0c0xlZ2FjeVByb2ZpbGlu
ZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZh
U2NyaXB0UnVudGltZUZsYWdzLCBudWxscHRyLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3Jl
VGltZW91dCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVs
bHB0ciB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNHbG9iYWxPYmplY3Q6OnNf
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nlc3NGcm9tLCAmc3VwcG9ydHNS
aWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1l
RmxhZ3MsIG51bGxwdHIsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCBudWxs
cHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07CiAKIC8q
IFNvdXJjZSBmb3IgSlNHbG9iYWxPYmplY3QubHV0LmgKIEBiZWdpbiBnbG9iYWxPYmplY3RUYWJs
ZQpAQCAtMjk3LDkgKzI5Niw2IEBAIEpTR2xvYmFsT2JqZWN0Ojp+SlNHbG9iYWxPYmplY3QoKQog
CiAgICAgaWYgKG1fZGVidWdnZXIpCiAgICAgICAgIG1fZGVidWdnZXItPmRldGFjaCh0aGlzLCBE
ZWJ1Z2dlcjo6R2xvYmFsT2JqZWN0SXNEZXN0cnVjdGluZyk7Ci0KLSAgICBpZiAoTGVnYWN5UHJv
ZmlsZXIqIHByb2ZpbGVyID0gdm0oKS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAgICAgcHJvZmls
ZXItPnN0b3BQcm9maWxpbmcodGhpcyk7CiB9CiAKIHZvaWQgSlNHbG9iYWxPYmplY3Q6OmRlc3Ry
b3koSlNDZWxsKiBjZWxsKQpAQCAtODM3LDExICs4MzMsNiBAQCBwdXREaXJlY3RXaXRob3V0VHJh
bnNpdGlvbih2bSwgdm0ucHJvcGVydHlOYW1lcy0+IGpzTmFtZSwgbG93ZXJOYW1lICMjIENvbnN0
cnVjdAogICAgIHJlc2V0UHJvdG90eXBlKHZtLCBnZXRQcm90b3R5cGVEaXJlY3QoKSk7CiB9CiAK
LWJvb2wgSlNHbG9iYWxPYmplY3Q6Omhhc0xlZ2FjeVByb2ZpbGVyKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+c3VwcG9ydHNMZWdhY3lQcm9maWxpbmco
dGhpcyk7Ci19Ci0KIGJvb2wgSlNHbG9iYWxPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTR2xvYmFsT2JqZWN0KiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oY2VsbCk7CkBAIC0xMjMxLDEwICsxMjIyLDkgQEAgVW5s
aW5rZWRQcm9ncmFtQ29kZUJsb2NrKiBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlUHJvZ3JhbUNvZGVC
bG9jayhDYWxsRnJhbWUqIGNhbGwKICAgICBQYXJzZXJFcnJvciBlcnJvcjsKICAgICBKU1BhcnNl
clN0cmljdE1vZGUgc3RyaWN0TW9kZSA9IGV4ZWN1dGFibGUtPmlzU3RyaWN0TW9kZSgpID8gSlNQ
YXJzZXJTdHJpY3RNb2RlOjpTdHJpY3QgOiBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdDsK
ICAgICBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlID0gaGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigp
ID8gRGVidWdnZXJPbiA6IERlYnVnZ2VyT2ZmOwotICAgIFByb2ZpbGVyTW9kZSBwcm9maWxlck1v
ZGUgPSBoYXNMZWdhY3lQcm9maWxlcigpID8gUHJvZmlsZXJPbiA6IFByb2ZpbGVyT2ZmOwogICAg
IFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogdW5saW5rZWRDb2RlQmxvY2sgPSB2bSgpLmNvZGVD
YWNoZSgpLT5nZXRQcm9ncmFtQ29kZUJsb2NrKAogICAgICAgICB2bSgpLCBleGVjdXRhYmxlLCBl
eGVjdXRhYmxlLT5zb3VyY2UoKSwgSlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRpbiwgc3Ry
aWN0TW9kZSwgCi0gICAgICAgIGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJNb2RlLCBlcnJvcik7Cisg
ICAgICAgIGRlYnVnZ2VyTW9kZSwgZXJyb3IpOwogCiAgICAgaWYgKGhhc0RlYnVnZ2VyKCkpCiAg
ICAgICAgIGRlYnVnZ2VyKCktPnNvdXJjZVBhcnNlZChjYWxsRnJhbWUsIGV4ZWN1dGFibGUtPnNv
dXJjZSgpLnByb3ZpZGVyKCksIGVycm9yLmxpbmUoKSwgZXJyb3IubWVzc2FnZSgpKTsKQEAgLTEy
NTQsOSArMTI0NCw4IEBAIFVubGlua2VkRXZhbENvZGVCbG9jayogSlNHbG9iYWxPYmplY3Q6OmNy
ZWF0ZUV2YWxDb2RlQmxvY2soQ2FsbEZyYW1lKiBjYWxsRnJhbWUsCiAgICAgRGVidWdnZXJNb2Rl
IGRlYnVnZ2VyTW9kZSA9IGhhc0ludGVyYWN0aXZlRGVidWdnZXIoKSA/IERlYnVnZ2VyT24gOiBE
ZWJ1Z2dlck9mZjsKICAgICBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlID0gZXhlY3V0
YWJsZS0+ZXhlY3V0YWJsZUluZm8oKS5ldmFsQ29udGV4dFR5cGUoKTsKICAgICAKLSAgICBQcm9m
aWxlck1vZGUgcHJvZmlsZXJNb2RlID0gaGFzTGVnYWN5UHJvZmlsZXIoKSA/IFByb2ZpbGVyT24g
OiBQcm9maWxlck9mZjsKICAgICBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIHVubGlua2VkQ29kZUJs
b2NrID0gdm0oKS5jb2RlQ2FjaGUoKS0+Z2V0RXZhbENvZGVCbG9jaygKLSAgICAgICAgdm0oKSwg
ZXhlY3V0YWJsZSwgZXhlY3V0YWJsZS0+c291cmNlKCksIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5v
dEJ1aWx0aW4sIHN0cmljdE1vZGUsIHRoaXNURFpNb2RlLCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVy
TW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSwgdmFyaWFibGVzVW5kZXJURFopOworICAgICAg
ICB2bSgpLCBleGVjdXRhYmxlLCBleGVjdXRhYmxlLT5zb3VyY2UoKSwgSlNQYXJzZXJCdWlsdGlu
TW9kZTo6Tm90QnVpbHRpbiwgc3RyaWN0TW9kZSwgdGhpc1REWk1vZGUsIGRlYnVnZ2VyTW9kZSwg
ZXJyb3IsIGV2YWxDb250ZXh0VHlwZSwgdmFyaWFibGVzVW5kZXJURFopOwogCiAgICAgaWYgKGhh
c0RlYnVnZ2VyKCkpCiAgICAgICAgIGRlYnVnZ2VyKCktPnNvdXJjZVBhcnNlZChjYWxsRnJhbWUs
IGV4ZWN1dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVyKCksIGVycm9yLmxpbmUoKSwgZXJyb3IubWVz
c2FnZSgpKTsKQEAgLTEyNzMsOSArMTI2Miw4IEBAIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVC
bG9jayogSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZU1vZHVsZVByb2dyYW1Db2RlQmxvY2soQ2FsCiB7
CiAgICAgUGFyc2VyRXJyb3IgZXJyb3I7CiAgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSA9
IGhhc0ludGVyYWN0aXZlRGVidWdnZXIoKSA/IERlYnVnZ2VyT24gOiBEZWJ1Z2dlck9mZjsKLSAg
ICBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlID0gaGFzTGVnYWN5UHJvZmlsZXIoKSA/IFByb2Zp
bGVyT24gOiBQcm9maWxlck9mZjsKICAgICBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sq
IHVubGlua2VkQ29kZUJsb2NrID0gdm0oKS5jb2RlQ2FjaGUoKS0+Z2V0TW9kdWxlUHJvZ3JhbUNv
ZGVCbG9jaygKLSAgICAgICAgdm0oKSwgZXhlY3V0YWJsZSwgZXhlY3V0YWJsZS0+c291cmNlKCks
IEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJN
b2RlLCBlcnJvcik7CisgICAgICAgIHZtKCksIGV4ZWN1dGFibGUsIGV4ZWN1dGFibGUtPnNvdXJj
ZSgpLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RCdWlsdGluLCBkZWJ1Z2dlck1vZGUsIGVycm9y
KTsKIAogICAgIGlmIChoYXNEZWJ1Z2dlcigpKQogICAgICAgICBkZWJ1Z2dlcigpLT5zb3VyY2VQ
YXJzZWQoY2FsbEZyYW1lLCBleGVjdXRhYmxlLT5zb3VyY2UoKS5wcm92aWRlcigpLCBlcnJvci5s
aW5lKCksIGVycm9yLm1lc3NhZ2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuaAppbmRleCBmNTgwNDc2Li45NmFlY2VjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE1MSw5ICsxNTEs
NiBAQCBzdHJ1Y3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgewogICAgIHR5cGVkZWYgYm9vbCAo
KkFsbG93c0FjY2Vzc0Zyb21GdW5jdGlvblB0cikoY29uc3QgSlNHbG9iYWxPYmplY3QqLCBFeGVj
U3RhdGUqKTsKICAgICBBbGxvd3NBY2Nlc3NGcm9tRnVuY3Rpb25QdHIgYWxsb3dzQWNjZXNzRnJv
bTsKIAotICAgIHR5cGVkZWYgYm9vbCAoKlN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nRnVuY3Rpb25Q
dHIpKGNvbnN0IEpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgU3VwcG9ydHNMZWdhY3lQcm9maWxpbmdG
dW5jdGlvblB0ciBzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZzsKLQogICAgIHR5cGVkZWYgYm9vbCAo
KlN1cHBvcnRzUmljaFNvdXJjZUluZm9GdW5jdGlvblB0cikoY29uc3QgSlNHbG9iYWxPYmplY3Qq
KTsKICAgICBTdXBwb3J0c1JpY2hTb3VyY2VJbmZvRnVuY3Rpb25QdHIgc3VwcG9ydHNSaWNoU291
cmNlSW5mbzsKIApAQCAtNDA3LDcgKzQwNCw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaGFzRGVi
dWdnZXIoKSBjb25zdDsKICAgICBib29sIGhhc0ludGVyYWN0aXZlRGVidWdnZXIoKSBjb25zdDsK
LSAgICBib29sIGhhc0xlZ2FjeVByb2ZpbGVyKCkgY29uc3Q7CiAgICAgY29uc3QgUnVudGltZUZs
YWdzJiBydW50aW1lRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX3J1bnRpbWVGbGFnczsgfQogCiBw
cm90ZWN0ZWQ6CkBAIC03MTcsNyArNzEzLDYgQEAgcHVibGljOgogICAgIGNvbnN0IEdsb2JhbE9i
amVjdE1ldGhvZFRhYmxlKiBnbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGU7IH0KIAogICAgIHN0YXRpYyBib29sIGFsbG93c0Fj
Y2Vzc0Zyb20oY29uc3QgSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqKSB7IHJldHVybiB0cnVl
OyB9Ci0gICAgc3RhdGljIGJvb2wgc3VwcG9ydHNMZWdhY3lQcm9maWxpbmcoY29uc3QgSlNHbG9i
YWxPYmplY3QqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzUmlj
aFNvdXJjZUluZm8oY29uc3QgSlNHbG9iYWxPYmplY3QqKSB7IHJldHVybiB0cnVlOyB9CiAKICAg
ICBKU19FWFBPUlRfUFJJVkFURSBFeGVjU3RhdGUqIGdsb2JhbEV4ZWMoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAppbmRleCAxZDBlNTY0Li4yNWRlMjBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCkBAIC0xMzEsNyArMTMxLDYgQEAgdHlw
ZWRlZiBjb25zdCBjaGFyKiBvcHRpb25TdHJpbmc7CiAgICAgdihib29sLCBkdW1wQnl0ZWNvZGVM
aXZlbmVzc1Jlc3VsdHMsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIHZh
bGlkYXRlQnl0ZWNvZGUsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIGZv
cmNlRGVidWdnZXJCeXRlY29kZUdlbmVyYXRpb24sIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwK
LSAgICB2KGJvb2wsIGZvcmNlUHJvZmlsZXJCeXRlY29kZUdlbmVyYXRpb24sIGZhbHNlLCBOb3Jt
YWwsIG51bGxwdHIpIFwKICAgICBcCiAgICAgdihib29sLCB1c2VGdW5jdGlvbkRvdEFyZ3VtZW50
cywgdHJ1ZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCB1c2VUYWlsQ2FsbHMsIHRy
dWUsIE5vcm1hbCwgbnVsbHB0cikgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCmlu
ZGV4IGNiNmJiMzkuLjM4YzFmNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAK
QEAgLTE5NCw3ICsxOTQsNiBAQCBWTTo6Vk0oVk1UeXBlIHZtVHlwZSwgSGVhcFR5cGUgaGVhcFR5
cGUpCiAjZW5kaWYKICAgICAsIG1faW5EZWZpbmVPd25Qcm9wZXJ0eShmYWxzZSkKICAgICAsIG1f
Y29kZUNhY2hlKHN0ZDo6bWFrZV91bmlxdWU8Q29kZUNhY2hlPigpKQotICAgICwgbV9lbmFibGVk
UHJvZmlsZXIobnVsbHB0cikKICAgICAsIG1fYnVpbHRpbkV4ZWN1dGFibGVzKHN0ZDo6bWFrZV91
bmlxdWU8QnVpbHRpbkV4ZWN1dGFibGVzPigqdGhpcykpCiAgICAgLCBtX3R5cGVQcm9maWxlckVu
YWJsZWRDb3VudCgwKQogICAgICwgbV9jb250cm9sRmxvd1Byb2ZpbGVyRW5hYmxlZENvdW50KDAp
CkBAIC03NzYsMjUgKzc3NSw2IEBAIHZvaWQgVk06OmFkZEltcHVyZVByb3BlcnR5KGNvbnN0IFN0
cmluZyYgcHJvcGVydHlOYW1lKQogICAgICAgICB3YXRjaHBvaW50U2V0LT5maXJlQWxsKCJJbXB1
cmUgcHJvcGVydHkgYWRkZWQiKTsKIH0KIAotY2xhc3MgU2V0RW5hYmxlZFByb2ZpbGVyRnVuY3Rv
ciB7Ci1wdWJsaWM6Ci0gICAgYm9vbCBvcGVyYXRvcigpKENvZGVCbG9jayogY29kZUJsb2NrKSBj
b25zdAotICAgIHsKLSAgICAgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChjb2RlQmxv
Y2stPmppdFR5cGUoKSkpCi0gICAgICAgICAgICBjb2RlQmxvY2stPmpldHRpc29uKFByb2ZpbGVy
OjpKZXR0aXNvbkR1ZVRvTGVnYWN5UHJvZmlsZXIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfQotfTsKLQotdm9pZCBWTTo6c2V0RW5hYmxlZFByb2ZpbGVyKExlZ2FjeVByb2ZpbGVyKiBw
cm9maWxlcikKLXsKLSAgICBtX2VuYWJsZWRQcm9maWxlciA9IHByb2ZpbGVyOwotICAgIGlmICht
X2VuYWJsZWRQcm9maWxlcikgewotICAgICAgICBTZXRFbmFibGVkUHJvZmlsZXJGdW5jdG9yIGZ1
bmN0b3I7Ci0gICAgICAgIGhlYXAuZm9yRWFjaENvZGVCbG9jayhmdW5jdG9yKTsKLSAgICB9Ci19
Ci0KIHN0YXRpYyBib29sIGVuYWJsZVByb2ZpbGVyV2l0aFJlc3BlY3RUb0NvdW50KHVuc2lnbmVk
JiBjb3VudGVyLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZG9FbmFibGVXb3JrKQogewogICAgIGJv
b2wgbmVlZHNUb1JlY29tcGlsZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvVk0uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgK
aW5kZXggYjQzYWZmYi4uYmQ1Y2I0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk0uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCkBA
IC05Miw3ICs5Miw2IEBAIGNsYXNzIEpTQm91bmRTbG90QmFzZUZ1bmN0aW9uOwogY2xhc3MgSlNH
bG9iYWxPYmplY3Q7CiBjbGFzcyBKU09iamVjdDsKIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3Rv
cjsKLWNsYXNzIExlZ2FjeVByb2ZpbGVyOwogY2xhc3MgTmF0aXZlRXhlY3V0YWJsZTsKIGNsYXNz
IFJlZ0V4cENhY2hlOwogY2xhc3MgUmVnaXN0ZXJBdE9mZnNldExpc3Q7CkBAIC0zNTUsMTEgKzM1
NCw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1faW5EZWZpbmVPd25Qcm9wZXJ0eTsKICAg
ICB9CiAKLSAgICBMZWdhY3lQcm9maWxlciogZW5hYmxlZFByb2ZpbGVyKCkgeyByZXR1cm4gbV9l
bmFibGVkUHJvZmlsZXI7IH0KLSAgICB2b2lkIHNldEVuYWJsZWRQcm9maWxlcihMZWdhY3lQcm9m
aWxlciopOwotCi0gICAgdm9pZCogZW5hYmxlZFByb2ZpbGVyQWRkcmVzcygpIHsgcmV0dXJuICZt
X2VuYWJsZWRQcm9maWxlcjsgfQotCiAjaWYgRU5BQkxFKEpJVCkKICAgICBib29sIGNhblVzZUpJ
VCgpIHsgcmV0dXJuIG1fY2FuVXNlSklUOyB9CiAjZWxzZQpAQCAtNjU3LDcgKzY1MSw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2dsb2JhbENvbnN0UmVkZWNsYXJhdGlvblNob3VsZFRocm93IHsg
dHJ1ZSB9OwogICAgIGJvb2wgbV9zaG91bGRCdWlsZFBDVG9Db2RlT3JpZ2luTWFwcGluZyB7IGZh
bHNlIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPENvZGVDYWNoZT4gbV9jb2RlQ2FjaGU7Ci0gICAg
TGVnYWN5UHJvZmlsZXIqIG1fZW5hYmxlZFByb2ZpbGVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxC
dWlsdGluRXhlY3V0YWJsZXM+IG1fYnVpbHRpbkV4ZWN1dGFibGVzOwogICAgIEhhc2hNYXA8U3Ry
aW5nLCBSZWZQdHI8V2F0Y2hwb2ludFNldD4+IG1faW1wdXJlUHJvcGVydHlXYXRjaHBvaW50U2V0
czsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VHlwZVByb2ZpbGVyPiBtX3R5cGVQcm9maWxlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggZmM5Nzc5NS4uNTc4NDlhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTU5MSw4ICs1OTEsNiBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogCiAg
ICAgaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5pZGwKICAgICBpbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LmlkbAotICAgIGluc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbAotICAg
IGluc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwKIAogICAgIGxvYWRlci9hcHBjYWNoZS9E
T01BcHBsaWNhdGlvbkNhY2hlLmlkbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIyYjg1MS4uOGQ4YmRkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE2LTA1LTEzICBKb3NlcGggUGVjb3Jhcm8g
IDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIExlZ2FjeVByb2ZpbGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM1NjUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5tYWtlOgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL0xlZ2Fj
eVByb2ZpbGVyLmg6IFJlbW92ZWQuCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvcHJvZmls
ZXIvUHJvZmlsZS5oOiBSZW1vdmVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3Byb2Zp
bGVyL1Byb2ZpbGVOb2RlLmg6IFJlbW92ZWQuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jl
c29sdmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpzdXBwb3J0c0xlZ2FjeVByb2ZpbGlu
Zyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OnN1cHBvcnRz
UmljaFNvdXJjZUluZm8pOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzdXBwb3J0
c0xlZ2FjeVByb2ZpbGluZyk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRG
cmFtZURhdGEuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6Y2xlYXJXaW5kb3dTaGVsbCk6
IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oOiBSZW1vdmVk
LgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVOb2RlLmg6IFJlbW92ZWQuCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChB
ZGRDbGFzc0ZvcndhcmRJZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJ
bnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6c3RvcFByb2ZpbGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVj
dG9yQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjps
ZWdhY3lQcm9maWxlckVuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ29udHJvbGxlcjo6c2V0TGVnYWN5UHJvZmlsZXJFbmFibGVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wUHJvZmlsaW5nSW1wbCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVs
aW5lQWdlbnQ6OnN0YXJ0RnJvbUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
VGltZWxpbmVBZ2VudDo6c3RvcEZyb21Db25zb2xlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJB
Z2VudC5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAg
ICAgICAqIGluc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRB
Z2dyZWdhdGVDYWxsSW5mb0luc3BlY3Rvck9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpidWlsZEluc3BlY3Rvck9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpi
dWlsZFByb2ZpbGVJbnNwZWN0b3JPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
VGltZWxpbmVSZWNvcmRGYWN0b3J5OjphcHBlbmRQcm9maWxlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAg
KiBwYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25z
b2xlQ2xpZW50Ojpwcm9maWxlRW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VDb25zb2xlQ2xp
ZW50OjpjbGVhclByb2ZpbGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VDb25zb2xl
Q2xpZW50Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6Y29uc29sZVByb2ZpbGVzKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQpOiBEZWxldGVkLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuaWRsOgorICAgICAgICAqIHRlc3RpbmcvanMvV2ViQ29yZVRlc3RT
dXBwb3J0LmNwcDoKKyAgICAgICAgKiB4bWwvWFNMU3R5bGVTaGVldExpYnhzbHQuY3BwOgorICAg
ICAgICAqIHhtbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHA6CisKIDIwMTYtMDUtMTMgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbTmV0d29ya0NhY2hlXSBBdm9p
ZCBoYXZpbmcgdG8gcmUtcGFyc2UgVVJMcyBhZnRlciBkZXNlcmlhbGl6aW5nIHRoZW0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCA2MGI4NTU2Li41ODBiYmJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMuY3BwCkBAIC00MjIsOCArNDIyLDYgQEAKICNpbmNsdWRlICJKU1JUQ1RyYWNr
RXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTU2NyZWVuLmNwcCIKICNpbmNsdWRlICJKU1NjcmlwdFBy
b2Nlc3Nvck5vZGUuY3BwIgotI2luY2x1ZGUgIkpTU2NyaXB0UHJvZmlsZS5jcHAiCi0jaW5jbHVk
ZSAiSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAiCiAjaWYgRU5BQkxFKENTUF9ORVhUKQogI2luY2x1
ZGUgIkpTU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5jcHAiCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGMzYTEyZTQuLmJkNzZhN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQpAQCAtNTA1LDggKzUwNSw2IEBAIE5PTl9TVkdfQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC90cmFjay9WVFRDdWUuaWRsIFwKICAgICAkKFdlYkNv
cmUpL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2luc3Bl
Y3Rvci9TY3JpcHRQcm9maWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9pbnNwZWN0b3IvU2NyaXB0
UHJvZmlsZU5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2xvYWRlci9hcHBjYWNoZS9ET01BcHBs
aWNhdGlvbkNhY2hlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0Fic3RyYWN0Vmlldy5pZGwg
XAogICAgICQoV2ViQ29yZSkvcGFnZS9CYXJQcm9wLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9MZWdhY3lQcm9maWxlci5oIGIvU291
cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGMwZTliZi4uMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9MZWdhY3lQcm9maWxlci5oCisr
KyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0jaWZuZGVmIFdlYkNvcmVfRldEX0xlZ2FjeVBy
b2ZpbGVyX2gKLSNkZWZpbmUgV2ViQ29yZV9GV0RfTGVnYWN5UHJvZmlsZXJfaAotI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0xlZ2FjeVByb2ZpbGVyLmg+Ci0jZW5kaWYKLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcHJvZmlsZXIvUHJvZmlsZS5oIGIvU291
cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcHJvZmlsZXIvUHJvZmlsZS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjZiYWZkLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL0ZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL1Byb2ZpbGUuaAorKysgL2Rldi9udWxsCkBA
IC0xLDUgKzAsMCBAQAotI2lmbmRlZiBXZWJDb3JlX0ZXRF9Qcm9maWxlX2gKLSNkZWZpbmUgV2Vi
Q29yZV9GV0RfUHJvZmlsZV9oCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvZmlsZS5oPgot
I2VuZGlmCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3By
b2ZpbGVyL1Byb2ZpbGVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9w
cm9maWxlci9Qcm9maWxlTm9kZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMTlh
MDdlLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3Byb2Zp
bGVyL1Byb2ZpbGVOb2RlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLSNpZm5kZWYg
V2ViQ29yZV9GV0RfUHJvZmlsZU5vZGVfaAotI2RlZmluZSBXZWJDb3JlX0ZXRF9Qcm9maWxlTm9k
ZV9oCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvZmlsZU5vZGUuaD4KLSNlbmRpZgotCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMjZhNzI1Yi4uODY0NTk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDA1NSwxMiArNDA1NSw2IEBACiAJCTlEQUM3QzU0
MUFGMkNBQTEwMDQzN0M0NCAvKiBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOURBQzdDNTIxQUYyQ0FB
MTAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5jcHAgKi87IH07CiAJCTlE
QUM3QzU1MUFGMkNBQTIwMDQzN0M0NCAvKiBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlEQUM3QzUzMUFG
MkNBQTEwMDQzN0M0NCAvKiBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuaCAqLzsgfTsKIAkJ
OURBQzdDNTcxQUYyQ0I2NDAwNDM3QzQ0IC8qIFN0eWxlQ29udGVudEFsaWdubWVudERhdGEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlEQUM3QzU2MUFG
MkNCNjQwMDQzN0M0NCAvKiBTdHlsZUNvbnRlbnRBbGlnbm1lbnREYXRhLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOUY3MjMwNEYxMTE4NEI0MTAw
QUQwMTI2IC8qIFNjcmlwdFByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlGNzIzMDRDMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOUZB
MzdFRTQxMTcyRkM4MDAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkEzN0VFMzExNzJGQzgwMDBDNENE
NTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQk5RkEzN0VGQTExNzJGREE2MDBDNENENTUgLyogSlNTY3JpcHRQ
cm9maWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlGQTM3RUY2MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuY3BwICovOyB9Owot
CQk5RkEzN0VGQjExNzJGREE2MDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkEzN0VGNzExNzJGRDkzMDBD
NENENTUgLyogSlNTY3JpcHRQcm9maWxlLmggKi87IH07Ci0JCTlGQTM3RUZDMTE3MkZEQTYwMEM0
Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGQTM3RUY4MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1Njcmlw
dFByb2ZpbGVOb2RlLmNwcCAqLzsgfTsKLQkJOUZBMzdFRkQxMTcyRkRBNjAwQzRDRDU1IC8qIEpT
U2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlGQTM3RUY5MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2Rl
LmggKi87IH07CiAJCUEwN0QzMzU1MTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEEwN0QzMzUzMTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9u
Rm9ybWF0LmNwcCAqLzsgfTsKIAkJQTA3RDMzNTYxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xT
aGFkZXJQcmVjaXNpb25Gb3JtYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEwN0QzMzU0MTUyQjYzMEUwMDFCNjM5MyAvKiBKU1dlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0LmggKi87IH07CiAJCUEwN0QzMzU4MTUyQjYzMkQwMDFCNjM5MyAvKiBXZWJH
TFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTA3RDMzNTcxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJl
Y2lzaW9uRm9ybWF0LmggKi87IH07CkBAIC0xMTc3NywxNCArMTE3NzEsNiBAQAogCQk5REFDN0M1
MjFBRjJDQUExMDA0MzdDNDQgLyogQ1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0NvbnRlbnREaXN0cmlidXRpb25W
YWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlEQUM3QzUzMUFGMkNBQTEw
MDQzN0M0NCAvKiBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlEQUM3QzU2MUFGMkNCNjQwMDQzN0M0NCAvKiBTdHlsZUNv
bnRlbnRBbGlnbm1lbnREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
eWxlQ29udGVudEFsaWdubWVudERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
OUY3MjMwNEMxMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0UHJvZmlsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk5RkEzN0VFMzExNzJGQzgwMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5vZGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0UHJvZmlsZU5vZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUZBMzdFRUYxMTcyRkQ0MTAwQzRDRDU1IC8q
IFNjcmlwdFByb2ZpbGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcmlwdFByb2ZpbGUu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VGMDExNzJGRDQxMDBDNENE
NTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNjcmlw
dFByb2ZpbGVOb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUZBMzdFRjYx
MTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1NjcmlwdFByb2ZpbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk5RkEzN0VGNzExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2NyaXB0UHJvZmlsZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VGODExNzJGRDkzMDBDNENENTUgLyog
SlNTY3JpcHRQcm9maWxlTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3JpcHRQcm9maWxlTm9kZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMDdEMzM1MzE1MkI2MzBFMDAxQjYzOTMgLyogSlNX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTA3RDMzNTQxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNX
ZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMDdEMzM1NzE1MkI2MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xTaGFkZXJQcmVjaXNpb25G
b3JtYXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2Mjk4LDEwICsxNjI4NCw2
IEBACiAJCQkJQTU4NEZFM0ExODY0RTJEODAwODQzQjEwIC8qIEpTQ29tbWFuZExpbmVBUElIb3N0
LmggKi8sCiAJCQkJN0EwRTc3MUMxMEMwMERCMTAwQTAyNzZFIC8qIEpTSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNwcCAqLywKIAkJCQk3QTBFNzcxRDEwQzAwREIxMDBBMDI3NkUgLyogSlNJbnNwZWN0
b3JGcm9udGVuZEhvc3QuaCAqLywKLQkJCQk5RkEzN0VGNjExNzJGRDkzMDBDNENENTUgLyogSlNT
Y3JpcHRQcm9maWxlLmNwcCAqLywKLQkJCQk5RkEzN0VGNzExNzJGRDkzMDBDNENENTUgLyogSlNT
Y3JpcHRQcm9maWxlLmggKi8sCi0JCQkJOUZBMzdFRjgxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2Ny
aXB0UHJvZmlsZU5vZGUuY3BwICovLAotCQkJCTlGQTM3RUY5MTE3MkZEOTMwMEM0Q0Q1NSAvKiBK
U1NjcmlwdFByb2ZpbGVOb2RlLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IEluc3BlY3RvcjsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNjM4Niw4ICsxNjM2OCw2IEBACiAJCQkJRjM4
MjA4OEQxNDdEMzVGOTAwMTBCQzA2IC8qIFBhZ2VSdW50aW1lQWdlbnQuaCAqLywKIAkJCQlBNUYz
NkQzODE4Rjc1ODcyMDA1NEMwMjQgLyogUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcCAqLywKIAkJ
CQlBNUYzNkQzOTE4Rjc1ODcyMDA1NEMwMjQgLyogUGFnZVNjcmlwdERlYnVnU2VydmVyLmggKi8s
Ci0JCQkJOUZBMzdFRUYxMTcyRkQ0MTAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGUuaWRsICovLAot
CQkJCTlGQTM3RUYwMTE3MkZENDEwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5pZGwgKi8s
CiAJCQkJNzU1M0NGRTcxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5j
cHAgKi8sCiAJCQkJNzU1M0NGRTYxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFj
dG9yeS5oICovLAogCQkJCUE1NkM1Qjk4MTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdl
bnQuY3BwICovLApAQCAtMjIzNzQsOCArMjIzNTQsNiBAQAogCQkJCUE4M0UxQzcyMEU0OTA0MkIw
MDE0MEI5QyAvKiBTY3JpcHRDb250cm9sbGVyTWFjLm1tICovLAogCQkJCTQxRjA2NkUzMEY2NEJD
RjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3QuY3BwICovLAogCQkJCTQxRjA2NkUyMEY2
NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmplY3QuaCAqLywKLQkJCQk5RjcyMzA0QzEx
MTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oICovLAotCQkJCTlGQTM3RUUzMTE3MkZD
ODAwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5oICovLAogCQkJCTkzNENDMTA5MEVEQjIy
MzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggKi8sCiAJCQkJNDEyN0Q1MzYwRjhBQUIx
RDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCAqLywKIAkJCQk0MUM3NjBCMDBFREUwM0QzMDBD
MTY1NUYgLyogU2NyaXB0U3RhdGUuaCAqLywKQEAgLTI2ODU0LDggKzI2ODMyLDYgQEAKIAkJCQk1
RTJDNDM2QzFCQ0YwNzFFMDAwMUUyQkMgLyogSlNSVENUcmFja0V2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0VDMDFDMzBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZEQTE1RUNFMTJCMDNGNjEwMDNBNTgzQSAvKiBKU1NjcmlwdFByb2Nlc3Nvck5v
ZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTlGQTM3RUZCMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1Nj
cmlwdFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTlGQTM3RUZEMTE3MkZEQTYwMEM0Q0Q1
NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRUQwNkFEMTFD
Nzc3NTQ4MDBGREZBRjEgLyogSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5QkRBNjREODFCOTc1Q0YyMDA5QzQzODcgLyogSlNTaGFkb3dSb290Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDlERTE3QjE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VC
dWZmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjc4NDcsOCArMjc4MjMsNiBAQAogCQkJCUUxMUM5
RDlCMEVCMzY4MTIwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MUYwNjZFNDBGNjRCQ0Y2MDBBMDdFQUMgLyogU2NyaXB0R2xvYmFsT2JqZWN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAzNjEyQjAyNjc2MDBDMUEzNTkgLyogU2NyaXB0
UHJvY2Vzc29yTm9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUY3MjMwNEYxMTE4NEI0MTAwQUQw
MTI2IC8qIFNjcmlwdFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTlGQTM3RUU0MTE3MkZD
ODAwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEE0
MTNBRTAxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM0Q0MxMEEwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxQzc2MEIxMEVERTAzRDMwMEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMDYyMCw4ICszMDU5NCw2IEBACiAJCQkJNUUyQzQzNkIxQkNGMDcx
RTAwMDFFMkJDIC8qIEpTUlRDVHJhY2tFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VD
MDFDMjBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkRBMTVFQ0QxMkIwM0Y2MTAwM0E1ODNBIC8qIEpTU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk5RkEzN0VGQTExNzJGREE2MDBDNENENTUgLyogSlNTY3JpcHRQcm9m
aWxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTlGQTM3RUZDMTE3MkZEQTYwMEM0Q0Q1NSAvKiBK
U1NjcmlwdFByb2ZpbGVOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNFRDA2QUQwMUM3Nzc1
NDgwMEZERkFGMSAvKiBKU1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOUJEQTY0RDcxQjk3NUNFNTAwOUM0Mzg3IC8qIEpTU2hhZG93Um9vdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlDRDlERTE3QTE3QUFDNzVCMDBFQTM4NkQgLyogSlNTb3VyY2VC
dWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYzNhY2Y1ZC4uYmYzMWE3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5T
UmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2Nr
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmNwcAppbmRleCBlZjllNjczLi42YmE0NjgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTY0LDcgKzY0
LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3NGcm9tKGNvbnN0IEpTR2xvYmFsT2Jq
ZWN0KiB0aGlzT2JqZWN0LCBFeGVjU3RhdGUqIGUKIAogY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2lu
ZG93QmFzZTo6c19pbmZvID0geyAiV2luZG93IiwgJkpTRE9NR2xvYmFsT2JqZWN0OjpzX2luZm8s
IDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNET01XaW5kb3dCYXNlKSB9OwogCi1jb25zdCBHbG9i
YWxPYmplY3RNZXRob2RUYWJsZSBKU0RPTVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9k
VGFibGUgPSB7ICZzaG91bGRBbGxvd0FjY2Vzc0Zyb20sICZzdXBwb3J0c0xlZ2FjeVByb2ZpbGlu
ZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZh
U2NyaXB0UnVudGltZUZsYWdzLCAmcXVldWVUYXNrVG9FdmVudExvb3AsICZzaG91bGRJbnRlcnJ1
cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwgJm1vZHVsZUxvYWRl
ckZldGNoLCBudWxscHRyLCBudWxscHRyLCAmbW9kdWxlTG9hZGVyRXZhbHVhdGUsICZkZWZhdWx0
TGFuZ3VhZ2UgfTsKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFz
ZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJnNob3VsZEFsbG93QWNjZXNzRnJvbSwg
JnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2Ny
aXB0UnVudGltZUZsYWdzLCAmcXVldWVUYXNrVG9FdmVudExvb3AsICZzaG91bGRJbnRlcnJ1cHRT
Y3JpcHRCZWZvcmVUaW1lb3V0LCAmbW9kdWxlTG9hZGVyUmVzb2x2ZSwgJm1vZHVsZUxvYWRlckZl
dGNoLCBudWxscHRyLCBudWxscHRyLCAmbW9kdWxlTG9hZGVyRXZhbHVhdGUsICZkZWZhdWx0TGFu
Z3VhZ2UgfTsKIAogSlNET01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2UoVk0mIHZtLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdywgSlNET01XaW5k
b3dTaGVsbCogc2hlbGwpCiAgICAgOiBKU0RPTUdsb2JhbE9iamVjdCh2bSwgc3RydWN0dXJlLCAm
c2hlbGwtPndvcmxkKCksICZzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlKQpAQCAtMTI1LDIwICsx
MjUsNiBAQCB2b2lkIEpTRE9NV2luZG93QmFzZTo6cHJpbnRFcnJvck1lc3NhZ2UoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKSBjb25zdAogICAgIHByaW50RXJyb3JNZXNzYWdlRm9yRnJhbWUod3JhcHBl
ZCgpLmZyYW1lKCksIG1lc3NhZ2UpOwogfQogCi1ib29sIEpTRE9NV2luZG93QmFzZTo6c3VwcG9y
dHNMZWdhY3lQcm9maWxpbmcoY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkKLXsKLSAgICBj
b25zdCBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxjb25zdCBKU0RP
TVdpbmRvd0Jhc2UqPihvYmplY3QpOwotICAgIEZyYW1lKiBmcmFtZSA9IHRoaXNPYmplY3QtPndy
YXBwZWQoKS5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIo
KS5sZWdhY3lQcm9maWxlckVuYWJsZWQoKTsKLX0KLQogYm9vbCBKU0RPTVdpbmRvd0Jhc2U6OnN1
cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkKIHsKICAg
ICBjb25zdCBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxjb25zdCBK
U0RPTVdpbmRvd0Jhc2UqPihvYmplY3QpOwpAQCAtMTUyLDcgKzEzOCw2IEBAIGJvb2wgSlNET01X
aW5kb3dCYXNlOjpzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBv
YmplY3QpCiAKICAgICBib29sIGVuYWJsZWQgPSBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCku
ZW5hYmxlZCgpOwogICAgIEFTU0VSVChlbmFibGVkIHx8ICF0aGlzT2JqZWN0LT5kZWJ1Z2dlcigp
KTsKLSAgICBBU1NFUlQoZW5hYmxlZCB8fCAhc3VwcG9ydHNMZWdhY3lQcm9maWxpbmcodGhpc09i
amVjdCkpOwogICAgIHJldHVybiBlbmFibGVkOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IDU2NjlkZTUuLjE2ZmMzOWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCkBAIC02MCw3ICs2MCw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpHbG9i
YWxPYmplY3RNZXRob2RUYWJsZSBzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOwogCi0gICAgICAg
IHN0YXRpYyBib29sIHN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nKGNvbnN0IEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25z
dCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBib29sIHNob3VsZEludGVy
cnVwdFNjcmlwdChjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBi
b29sIHNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQoY29uc3QgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3Jr
ZXJHbG9iYWxTY29wZUJhc2UuY3BwCmluZGV4IDNkNDc2ZGUuLjNiMGIzMDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5j
cHAKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBDbGFzc0lu
Zm8gSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNfaW5mbyA9IHsgIldvcmtlckdsb2JhbFNjb3Bl
IiwgJkpTRE9NR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2UpIH07CiAKLWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
IEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAm
YWxsb3dzQWNjZXNzRnJvbSwgJnN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNo
U291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxh
Z3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRp
bWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsICZkZWZh
dWx0TGFuZ3VhZ2UgfTsKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNjZXNz
RnJvbSwgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZq
YXZhU2NyaXB0UnVudGltZUZsYWdzLCAmcXVldWVUYXNrVG9FdmVudExvb3AsICZzaG91bGRJbnRl
cnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCBudWxscHRyLCAmZGVmYXVsdExhbmd1YWdlIH07CiAKIEpTV29ya2VyR2xvYmFsU2NvcGVC
YXNlOjpKU1dvcmtlckdsb2JhbFNjb3BlQmFzZShKU0M6OlZNJiB2bSwgSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxXb3JrZXJHbG9iYWxTY29wZT4gaW1wbCkKICAgICA6IEpT
RE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUsICZub3JtYWxXb3JsZCh2bSksICZzX2dsb2Jh
bE9iamVjdE1ldGhvZFRhYmxlKQpAQCAtNzMsMTEgKzczLDYgQEAgYm9vbCBKU1dvcmtlckdsb2Jh
bFNjb3BlQmFzZTo6YWxsb3dzQWNjZXNzRnJvbShjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0
LCBFeGUKICAgICByZXR1cm4gSlNHbG9iYWxPYmplY3Q6OmFsbG93c0FjY2Vzc0Zyb20ob2JqZWN0
LCBleGVjKTsKIH0KIAotYm9vbCBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNMZWdh
Y3lQcm9maWxpbmcoY29uc3QgSlNHbG9iYWxPYmplY3QqIG9iamVjdCkKLXsKLSAgICByZXR1cm4g
SlNHbG9iYWxPYmplY3Q6OnN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nKG9iamVjdCk7Ci19Ci0KIGJv
b2wgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnN1cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3Qg
SlNHbG9iYWxPYmplY3QqIG9iamVjdCkKIHsKICAgICByZXR1cm4gSlNHbG9iYWxPYmplY3Q6OnN1
cHBvcnRzUmljaFNvdXJjZUluZm8ob2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5oCmluZGV4IDFiZDJiMTAuLjAwNmZm
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFs
U2NvcGVCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2UuaApAQCAtNTMsNyArNTMsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHN0YXRpYyBjb25zdCBKU0M6Okdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHNfZ2xvYmFsT2Jq
ZWN0TWV0aG9kVGFibGU7CiAKICAgICAgICAgc3RhdGljIGJvb2wgYWxsb3dzQWNjZXNzRnJvbShj
b25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqKTsKLSAgICAgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydHNMZWdhY3lQcm9maWxpbmcoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVj
dCopOwogICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50ZXJydXB0
U2NyaXB0KGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGJvb2wg
c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChjb25zdCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNo
ZWRGcmFtZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVk
RnJhbWVEYXRhLmNwcAppbmRleCAxY2NjZjhhLi41NjE2YjNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKQEAgLTQwLDcg
KzQwLDYgQEAKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8cHJvZmls
ZXIvUHJvZmlsZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9XZWFrR0NNYXBJbmxpbmVzLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggMmZjMDQxMi4uZDJmMmYwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTUyLDcg
KzUyLDYgQEAKICNpbmNsdWRlIDxkZWJ1Z2dlci9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGhlYXAv
U3Ryb25nSW5saW5lcy5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4K
LSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFs
aXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CkBAIC0yMTUsMTMgKzIxNCw2IEBAIHZvaWQgU2NyaXB0Q29udHJvbGxl
cjo6Y2xlYXJXaW5kb3dTaGVsbChET01XaW5kb3cqIG5ld0RPTVdpbmRvdywgYm9vbCBnb2luZ0lu
dG9QCiAgICAgICAgIGF0dGFjaERlYnVnZ2VyKHdpbmRvd1NoZWxsLCBudWxscHRyKTsKICAgICAg
ICAgd2luZG93U2hlbGwtPndpbmRvdygpLT5zZXRDb25zb2xlQ2xpZW50KG51bGxwdHIpOwogCi0g
ICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY2xlYXIgY29uc29sZSBwcm9maWxlcyBmb3IgZWFj
aCBmcmFtZSBhcyBzb29uIGFzIHRoZSBmcmFtZSBpcyBkZXN0cm95ZWQuCi0gICAgICAgIC8vIElu
c3RlYWQgb2YgY2xlYXJpbmcgYWxsIG9mIHRoZW0gd2hlbiB0aGUgbWFpbiBmcmFtZSBpcyBkZXN0
cm95ZWQuCi0gICAgICAgIGlmIChtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpIHsKLSAgICAgICAgICAg
IGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+
Y29uc29sZSgpLmNsZWFyUHJvZmlsZXMoKTsKLSAgICAgICAgfQotCiAgICAgICAgIHdpbmRvd1No
ZWxsLT53aW5kb3coKS0+d2lsbFJlbW92ZUZyb21XaW5kb3dTaGVsbCgpOwogICAgICAgICB3aW5k
b3dTaGVsbC0+c2V0V2luZG93KG5ld0RPTVdpbmRvdyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdFByb2ZpbGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I0
M2Y4Mi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9m
aWxlLmgKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEwLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFNjcmlwdFByb2ZpbGVfaAot
I2RlZmluZSBTY3JpcHRQcm9maWxlX2gKLQotI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi10eXBlZGVmIEpTQzo6UHJvZmlsZSBTY3JpcHRQcm9m
aWxlOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTY3JpcHRQcm9maWxl
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVO
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlTm9kZS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDEyODNkLi4wMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVOb2RlLmgKKysrIC9kZXYvbnVsbApA
QCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIFNjcmlwdFByb2ZpbGVOb2RlX2gKLSNkZWZpbmUgU2NyaXB0UHJvZmlsZU5v
ZGVfaAotCi0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZU5vZGUuaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi10eXBlZGVmIEpTQzo6UHJvZmlsZU5vZGUgU2NyaXB0UHJvZmlsZU5vZGU7Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNjcmlwdFByb2ZpbGVOb2RlX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KaW5kZXggMTI3N2M5Zi4uOWFhYjdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI2NCwxMiArMjY0LDYgQEAgc3Vi
IEFkZENsYXNzRm9yd2FyZElmTmVlZGVkCiB7CiAgICAgbXkgJGludGVyZmFjZU5hbWUgPSBzaGlm
dDsKIAotICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiU2NyaXB0UHJvZmlsZU5vZGUiKSB7Ci0g
ICAgICAgICRoZWFkZXJJbmNsdWRlc3siPHByb2ZpbGVyL1Byb2ZpbGVOb2RlLmg+In0gPSAxOwot
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAidHlwZWRlZiBKU0M6OlByb2ZpbGVOb2RlIFNj
cmlwdFByb2ZpbGVOb2RlO1xuXG4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgICMg
U1ZHQW5pbWF0ZWRMZW5ndGgvTnVtYmVyL2V0Yy4gYXJlIHR5cGVkZWZzIGFuZCBzaG91bGQgbm90
IGJlIGZvcndhcmQtZGVjbGFyZWQgYXMgY2xhc3Nlcy4KICAgICByZXR1cm4gaWYgJGNvZGVHZW5l
cmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRpbnRlcmZhY2VOYW1lKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRl
eCBlY2JmNzgwLi42ZGUxZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtNDIsNyArNDIsNiBAQAogI2luY2x1
ZGUgIkpTTm9kZS5oIgogI2luY2x1ZGUgIkpTU1ZHRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU1NW
R1BvaW50LmgiCi0jaW5jbHVkZSAiSlNTY3JpcHRQcm9maWxlLmgiCiAjaW5jbHVkZSAiSlNUZXN0
Q2FsbGJhY2suaCIKICNpbmNsdWRlICJKU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmgiCiAjaW5jbHVk
ZSAiSlNUZXN0Tm9kZS5oIgpAQCAtNTQsNyArNTMsNiBAQAogI2luY2x1ZGUgIlNWR0RvY3VtZW50
LmgiCiAjaW5jbHVkZSAiU1ZHUG9pbnQuaCIKICNpbmNsdWRlICJTVkdTdGF0aWNQcm9wZXJ0eVRl
YXJPZmYuaCIKLSNpbmNsdWRlICJTY3JpcHRQcm9maWxlLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXN0T2Jq
LmgiCkBAIC01NjEsOCArNTU5LDYgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFhQYXRoTlNSZXMKIEpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxh
YmxlU3RyaW5nTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqQ29uc3RydWN0b3JGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3Rh
dGljTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRo
b2QoSlNDOjpFeGVjU3RhdGUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBq
c1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhKU0M6OkV4ZWNT
dGF0ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3Rv
dHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UoSlNDOjpFeGVjU3RhdGUqKTsKIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhFbnVtQXJnKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9u
YWxFbnVtQXJnKEpTQzo6RXhlY1N0YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJn
QW5kRGVmYXVsdFZhbHVlKEpTQzo6RXhlY1N0YXRlKik7CkBAIC0xMTMzLDggKzExMjksNiBAQCBz
dGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXNb
XSA9CiAgICAgeyAibWV0aG9kV2l0aFhQYXRoTlNSZXNvbHZlclBhcmFtZXRlciIsIEpTQzo6RnVu
Y3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlv
bj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFy
YW1ldGVyKSwgKGludHB0cl90KSAoMSkgfSB9LAogICAgIHsgIm51bGxhYmxlU3RyaW5nTWV0aG9k
IiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nTWV0
aG9kKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgIm51bGxhYmxlU3RyaW5nU3BlY2lhbE1l
dGhvZCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmlu
Z1NwZWNpYWxNZXRob2QpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAibWV0aG9kV2l0aFNl
cXVlbmNlQXJnIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhTZXF1ZW5jZUFyZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJtZXRob2RSZXR1cm5p
bmdTZXF1ZW5jZSIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RS
ZXR1cm5pbmdTZXF1ZW5jZSksIChpbnRwdHJfdCkgKDEpIH0gfSwKICAgICB7ICJtZXRob2RXaXRo
RW51bUFyZyIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
RW51bUFyZyksIChpbnRwdHJfdCkgKDEpIH0gfSwKICAgICB7ICJtZXRob2RXaXRoT3B0aW9uYWxF
bnVtQXJnIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbEVudW1BcmcpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAibWV0aG9kV2l0aE9w
dGlvbmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZSIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2lj
LCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlKSwgKGlu
dHB0cl90KSAoMCkgfSB9LApAQCAtNDE2NCw0MCArNDE1OCw2IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJsZVN0cmluZ1NwZWNp
YWxNZXRoCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aFNlcXVlbmNlQXJnKEV4ZWNTdGF0ZSogc3RhdGUpCi17Ci0gICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBzdGF0ZS0+dGhpc1ZhbHVlKCk7Ci0gICAgYXV0byBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwotICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
Ci0gICAgICAgIHJldHVybiB0aHJvd1RoaXNUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJt
ZXRob2RXaXRoU2VxdWVuY2VBcmciKTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNh
c3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKLSAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhp
cy0+d3JhcHBlZCgpOwotICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+YXJndW1lbnRDb3VudCgpIDwg
MSkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Ioc3RhdGUsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKHN0YXRlKSk7Ci0gICAgYXV0byBzZXF1ZW5jZUFyZyA9ICh0b1JlZlB0ck5h
dGl2ZUFycmF5PFNjcmlwdFByb2ZpbGUsIEpTU2NyaXB0UHJvZmlsZT4oc3RhdGUsIHN0YXRlLT5h
cmd1bWVudCgwKSwgJkpTU2NyaXB0UHJvZmlsZTo6dG9XcmFwcGVkKSk7Ci0gICAgaWYgKFVOTElL
RUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaW1wbC5tZXRob2RXaXRoU2VxdWVuY2VBcmcoV1RGTW92
ZShzZXF1ZW5jZUFyZykpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQo
KSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBl
RnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShFeGVjU3RhdGUqIHN0YXRlKQotewotICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gc3RhdGUtPnRoaXNWYWx1ZSgpOwotICAgIGF1dG8gY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKLSAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9yKCpz
dGF0ZSwgIlRlc3RPYmoiLCAibWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UiKTsKLSAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTVGVzdE9iajo6aW5mbygpKTsKLSAgICBh
dXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwotICAgIGlmIChVTkxJS0VMWShzdGF0
ZS0+YXJndW1lbnRDb3VudCgpIDwgMSkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Ioc3Rh
dGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKHN0YXRlKSk7Ci0gICAgYXV0byBsb25n
QXJnID0gY29udmVydDxpbnQzMl90Pigqc3RhdGUsIHN0YXRlLT5hcmd1bWVudCgwKSwgTm9ybWFs
Q29udmVyc2lvbik7Ci0gICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCi0g
ICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgSlNWYWx1
ZSByZXN1bHQgPSBqc0FycmF5KHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgaW1w
bC5tZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShXVEZNb3ZlKGxvbmdBcmcpKSk7Ci0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwotfQotCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aEVudW1BcmcoRXhlY1N0YXRl
KiBzdGF0ZSkKIHsKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IHN0YXRlLT50aGlzVmFsdWUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApp
bmRleCBlOWNiYjZlLi5jM2UxNjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0xMTcsOSArMTE3LDYgQEAgZW51bSBUZXN0Q29u
ZmlkZW5jZSB7ICJoaWdoIiwgImtpbmRhLWxvdyIgfTsKICAgICBzdGF0aWMgRE9NU3RyaW5nPyBu
dWxsYWJsZVN0cmluZ1N0YXRpY01ldGhvZCgpOwogICAgIGdldHRlciBET01TdHJpbmc/IG51bGxh
YmxlU3RyaW5nU3BlY2lhbE1ldGhvZCh1bnNpZ25lZCBsb25nIGluZGV4KTsKIAotICAgIHZvaWQg
bWV0aG9kV2l0aFNlcXVlbmNlQXJnKHNlcXVlbmNlPFNjcmlwdFByb2ZpbGU+IHNlcXVlbmNlQXJn
KTsKLSAgICBzZXF1ZW5jZTxTY3JpcHRQcm9maWxlPiBtZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShs
b25nIGxvbmdBcmcpOwotCiAgICAgdm9pZCBtZXRob2RXaXRoRW51bUFyZyhUZXN0RW51bVR5cGUg
ZW51bUFyZyk7CiAgICAgdm9pZCBtZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnKG9wdGlvbmFsIFRl
c3RFbnVtVHlwZSBlbnVtQXJnKTsKICAgICB2b2lkIG1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdB
bmREZWZhdWx0VmFsdWUob3B0aW9uYWwgVGVzdEVudW1UeXBlIGVudW1BcmcgPSAiRW51bVZhbHVl
MSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA5NDhmYjEyLi4yNjRmYjQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtOTcsNyArOTcsNiBAQAogI2luY2x1ZGUgIldlYktp
dENTU0ZpbHRlclZhbHVlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTUmVnaW9uUnVsZS5oIgogI2lu
Y2x1ZGUgIldlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvUHJvZmlsZS5oPgogI2luY2x1ZGUgPGJpdHNldD4KICNpbmNsdWRlIDxsaW1pdHMuaD4KICNp
bmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyZWQy
NTBmMS4uNWI1ZDAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xODIsNyArMTgyLDYg
QEAKICNpbmNsdWRlICJYUGF0aE5TUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJYUGF0aFJlc3VsdC5o
IgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJv
ZmlsZS5oPgogI2luY2x1ZGUgPGN0aW1lPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxs
U3RhY2suaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5o
CmluZGV4IDQ4NDkyMzUuLmEwMTcwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaApAQCAtMzMsNyAr
MzMsNiBAQAogI2RlZmluZSBJbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uX2gKIAogI2lu
Y2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgotI2luY2x1ZGUgIlNjcmlwdFByb2Zp
bGUuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8
aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogCkBAIC04NSw5ICs4NCw5IEBAIGlubGluZSB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRQcm9maWxpbmcoUGFnZSYgcGFnZSwg
SlNDOjpFeGVjU3RhdGUqCiAgICAgc3RhcnRQcm9maWxpbmdJbXBsKGluc3RydW1lbnRpbmdBZ2Vu
dHNGb3JQYWdlKHBhZ2UpLCBleGVjLCB0aXRsZSk7CiB9CiAKLWlubGluZSBSZWZQdHI8SlNDOjpQ
cm9maWxlPiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BQcm9maWxpbmcoUGFnZSYgcGFn
ZSwgSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyAmdGl0bGUpCitpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BQcm9maWxpbmcoUGFnZSYgcGFnZSwgSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyAmdGl0bGUpCiB7Ci0gICAgcmV0dXJuIHN0
b3BQcm9maWxpbmdJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpLCBleGVjLCB0
aXRsZSk7CisgICAgc3RvcFByb2ZpbGluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2Uo
cGFnZSksIGV4ZWMsIHRpdGxlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGRi
MWNmYWQuLjA0Mzg1ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHAKQEAgLTcyLDcgKzcyLDYgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckFnZW50Lmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JIZWFwQWdlbnQuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclNj
cmlwdFByb2ZpbGVyQWdlbnQuaD4KLSNpbmNsdWRlIDxwcm9maWxlci9MZWdhY3lQcm9maWxlci5o
PgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1N0b3B3YXRjaC5o
PgogCkBAIC0xNzEsMTQgKzE3MCwxMSBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JD
b250cm9sbGVyKFBhZ2UmIHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwogICAgIG1f
aW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0V2ViQ29uc29sZUFnZW50KGNvbnNvbGVBZ2VudFB0ci5n
ZXQoKSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKFdURk1vdmUoY29uc29sZUFnZW50UHRyKSk7CiAK
LSAgICBhdXRvIHRpbWVsaW5lQWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ+KHBhZ2VDb250ZXh0LCBzY3JpcHRQcm9maWxlckFnZW50LCBoZWFwQWdlbnQs
IHBhZ2VBZ2VudCk7Ci0gICAgbV90aW1lbGluZUFnZW50ID0gdGltZWxpbmVBZ2VudFB0ci5nZXQo
KTsKLSAgICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZSh0aW1lbGluZUFnZW50UHRyKSk7Ci0KICAg
ICBhdXRvIGRlYnVnZ2VyQWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VEZWJ1Z2dlckFn
ZW50PihwYWdlQ29udGV4dCwgcGFnZUFnZW50LCBtX292ZXJsYXkuZ2V0KCkpOwogICAgIFBhZ2VE
ZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0gZGVidWdnZXJBZ2VudFB0ci5nZXQoKTsKICAg
ICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZShkZWJ1Z2dlckFnZW50UHRyKSk7CiAKKyAgICBtX2Fn
ZW50cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JUaW1lbGluZUFnZW50PihwYWdl
Q29udGV4dCwgc2NyaXB0UHJvZmlsZXJBZ2VudCwgaGVhcEFnZW50LCBwYWdlQWdlbnQpKTsKICAg
ICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JET01EZWJ1Z2dlckFn
ZW50PihwYWdlQ29udGV4dCwgbV9kb21BZ2VudCwgZGVidWdnZXJBZ2VudCkpOwogICAgIG1fYWdl
bnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2Vu
dD4ocGFnZUNvbnRleHQsIHBhZ2VBZ2VudCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1h
a2VfdW5pcXVlPEluc3BlY3RvckxheWVyVHJlZUFnZW50PihwYWdlQ29udGV4dCkpOwpAQCAtNDE0
LDI3ICs0MTAsNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldEluZGljYXRpbmcoYm9v
bCBpbmRpY2F0aW5nKQogI2VuZGlmCiB9CiAKLWJvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6bGVn
YWN5UHJvZmlsZXJFbmFibGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9sZWdhY3lQcm9maWxl
ckVuYWJsZWQ7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0TGVnYWN5UHJvZmls
ZXJFbmFibGVkKGJvb2wgZW5hYmxlKQotewotICAgIG1fbGVnYWN5UHJvZmlsZXJFbmFibGVkID0g
ZW5hYmxlOwotCi0gICAgRXJyb3JTdHJpbmcgdW51c2VkOwotICAgIGlmIChlbmFibGUpIHsKLSAg
ICAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRQZXJzaXN0ZW50SW5zcGVjdG9yVGltZWxp
bmVBZ2VudChtX3RpbWVsaW5lQWdlbnQpOwotICAgICAgICBtX3NjcmlwdERlYnVnU2VydmVyLnJl
Y29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7Ci0gICAgICAgIG1fdGltZWxpbmVBZ2VudC0+c3RhcnQo
dW51c2VkKTsKLSAgICB9IGVsc2UgewotICAgICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNl
dFBlcnNpc3RlbnRJbnNwZWN0b3JUaW1lbGluZUFnZW50KG51bGxwdHIpOwotICAgICAgICBtX3Nj
cmlwdERlYnVnU2VydmVyLnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKCk7Ci0gICAgICAgIG1fdGlt
ZWxpbmVBZ2VudC0+c3RvcCh1bnVzZWQpOwotICAgIH0KLX0KLQogYm9vbCBJbnNwZWN0b3JDb250
cm9sbGVyOjpkZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9w
YWdlLnNldHRpbmdzKCkuZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggY2JmNWMxOS4uYTU4OTZm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5o
CkBAIC02Myw3ICs2Myw2IEBAIGNsYXNzIEluc3BlY3RvckRPTUFnZW50OwogY2xhc3MgSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ7CiBjbGFzcyBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb247CiBjbGFz
cyBJbnNwZWN0b3JQYWdlQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JUaW1lbGluZUFnZW50OwogY2xh
c3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIE5vZGU7CiBjbGFzcyBQYWdlOwpAQCAtMTEx
LDkgKzExMCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzVW5kZXJUZXN0KGJvb2wgaXNVbmRl
clRlc3QpIHsgbV9pc1VuZGVyVGVzdCA9IGlzVW5kZXJUZXN0OyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBldmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGNvbnN0IFN0cmluZyYgc2NyaXB0KTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbGVnYWN5UHJvZmlsZXJFbmFibGVkKCkgY29uc3Q7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRMZWdhY3lQcm9maWxlckVuYWJsZWQoYm9vbCk7
Ci0KICAgICBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckNsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1faW5zcGVjdG9yQ2xpZW50OyB9CiAgICAgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQqIGluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JGcm9udGVuZENs
aWVudDsgfQogICAgIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KCkgY29uc3QgeyByZXR1
cm4gbV9wYWdlQWdlbnQ7IH0KQEAgLTE0OCwxMSArMTQ0LDkgQEAgcHJpdmF0ZToKICAgICBJbnNw
ZWN0b3I6Okluc3BlY3RvckFnZW50KiBtX2luc3BlY3RvckFnZW50IHsgbnVsbHB0ciB9OwogICAg
IEluc3BlY3RvckRPTUFnZW50KiBtX2RvbUFnZW50IHsgbnVsbHB0ciB9OwogICAgIEluc3BlY3Rv
clBhZ2VBZ2VudCogbV9wYWdlQWdlbnQgeyBudWxscHRyIH07Ci0gICAgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudCogbV90aW1lbGluZUFnZW50IHsgbnVsbHB0ciB9OwogCiAgICAgYm9vbCBtX2lzVW5k
ZXJUZXN0IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNBdXRvbWF0aWNJbnNwZWN0aW9uIHsgZmFs
c2UgfTsKLSAgICBib29sIG1fbGVnYWN5UHJvZmlsZXJFbmFibGVkIHsgZmFsc2UgfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggOTkwMDdlMC4uYTkzMzg2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKQEAgLTY3LDcgKzY3LDYgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0
QXJndW1lbnRzLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2lu
Y2x1ZGUgPGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oPgotI2luY2x1
ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0NvbnNvbGVUeXBlcy5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CkBAIC04OTQsMTEgKzg5MywxMCBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6c3RhcnRQcm9maWxpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbgogICAg
ICAgICB0aW1lbGluZUFnZW50LT5zdGFydEZyb21Db25zb2xlKGV4ZWMsIHRpdGxlKTsKIH0KIAot
UmVmUHRyPEpTQzo6UHJvZmlsZT4gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wUHJvZmls
aW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpzdG9wUHJvZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVt
ZW50aW5nQWdlbnRzLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkK
IHsKICAgICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3Ry
dW1lbnRpbmdBZ2VudHMucGVyc2lzdGVudEluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKLSAgICAg
ICAgcmV0dXJuIHRpbWVsaW5lQWdlbnQtPnN0b3BGcm9tQ29uc29sZShleGVjLCB0aXRsZSk7Ci0g
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHRpbWVsaW5lQWdlbnQtPnN0b3BGcm9tQ29uc29s
ZShleGVjLCB0aXRsZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRP
cGVuRGF0YWJhc2VJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMs
IFJlZlB0cjxEYXRhYmFzZT4mJiBkYXRhYmFzZSwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IGQ5ZDE0NDgu
LjdkNjc3ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTYxLDEwICs2MSw2IEBAIGNsYXNzIFNjcmlwdEFyZ3VtZW50
czsKIGNsYXNzIFNjcmlwdENhbGxTdGFjazsKIH0KIAotbmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBQ
cm9maWxlOwotfQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENTU1J1bGU7CkBAIC0y
MTgsNyArMjE0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGRpZEZpcmVBbmltYXRpb25G
cmFtZShjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKIAogICAgIHN0YXRp
YyB2b2lkIHN0YXJ0UHJvZmlsaW5nKFBhZ2UmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgdGl0bGUpOwotICAgIHN0YXRpYyBSZWZQdHI8SlNDOjpQcm9maWxlPiBzdG9wUHJvZmlsaW5n
KFBhZ2UmLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOworICAgIHN0YXRp
YyB2b2lkIHN0b3BQcm9maWxpbmcoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JiB0aXRsZSk7CiAKICAgICBzdGF0aWMgdm9pZCBkaWRPcGVuRGF0YWJhc2UoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFJlZlB0cjxEYXRhYmFzZT4mJiwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKIApAQCAtMzg3LDcgKzM4
Myw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgZGlkRmlyZUFuaW1hdGlvbkZyYW1lSW1w
bChjb25zdCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29raWUmKTsKIAogICAgIHN0YXRpYyB2
b2lkIHN0YXJ0UHJvZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKLSAgICBzdGF0aWMgUmVmUHRyPEpTQzo6UHJvZmls
ZT4gc3RvcFByb2ZpbGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CisgICAgc3RhdGljIHZvaWQgc3RvcFByb2ZpbGluZ0lt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0
aXRsZSk7CiAKICAgICBzdGF0aWMgdm9pZCBkaWRPcGVuRGF0YWJhc2VJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMmLCBSZWZQdHI8RGF0YWJhc2U+JiYsIGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAppbmRleCA3MDFi
YTdiLi4yYzhlMThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuY3BwCkBAIC00Nyw3ICs0Nyw2IEBACiAjaW5jbHVkZSA8aW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JIZWFwQWdlbnQuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvYWdlbnRz
L0luc3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQuaD4KLSNpbmNsdWRlIDxwcm9maWxlci9MZWdh
Y3lQcm9maWxlci5oPgogI2luY2x1ZGUgPHd0Zi9TdG9wd2F0Y2guaD4KIAogI2lmIFBMQVRGT1JN
KElPUykKQEAgLTI0Miw1OCArMjQxLDE0IEBAIGRvdWJsZSBJbnNwZWN0b3JUaW1lbGluZUFnZW50
Ojp0aW1lc3RhbXAoKQogICAgIHJldHVybiBtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRj
aCgpLT5lbGFwc2VkVGltZSgpOwogfQogCi12b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0
YXJ0RnJvbUNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyAmdGl0bGUp
Cit2b2lkIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0YXJ0RnJvbUNvbnNvbGUoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmKQogewogICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTUzNDk5PiBXZWIgSW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUgc2hvdWxkIHVzZSB0
aGUgbmV3IFNhbXBsaW5nIFByb2ZpbGVyCi0KLSAgICAvLyBPbmx5IGFsbG93IHJlY29yZGluZyBv
ZiBhIHByb2ZpbGUgaWYgaXQgaXMgYW5vbnltb3VzIChlbXB0eSB0aXRsZSkgb3IgZG9lcyBub3Qg
bWF0Y2gKLSAgICAvLyB0aGUgdGl0bGUgb2YgYW4gYWxyZWFkeSByZWNvcmRpbmcgcHJvZmlsZS4K
LSAgICBpZiAoIXRpdGxlLmlzRW1wdHkoKSkgewotICAgICAgICBmb3IgKGNvbnN0IFRpbWVsaW5l
UmVjb3JkRW50cnkmIHJlY29yZCA6IG1fcGVuZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jkcykgewot
ICAgICAgICAgICAgU3RyaW5nIHJlY29yZFRpdGxlOwotICAgICAgICAgICAgcmVjb3JkLmRhdGEt
PmdldFN0cmluZyhBU0NJSUxpdGVyYWwoInRpdGxlIiksIHJlY29yZFRpdGxlKTsKLSAgICAgICAg
ICAgIGlmIChyZWNvcmRUaXRsZSA9PSB0aXRsZSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIW1fZW5hYmxlZCAmJiBtX3BlbmRpbmdDb25zb2xl
UHJvZmlsZVJlY29yZHMuaXNFbXB0eSgpKQotICAgICAgICBpbnRlcm5hbFN0YXJ0KCk7Ci0KLSAg
ICBKU0M6OkxlZ2FjeVByb2ZpbGVyOjpwcm9maWxlcigpLT5zdGFydFByb2ZpbGluZyhleGVjLCB0
aXRsZSwgbV9lbnZpcm9ubWVudC5leGVjdXRpb25TdG9wd2F0Y2goKSk7Ci0KLSAgICBtX3BlbmRp
bmdDb25zb2xlUHJvZmlsZVJlY29yZHMuYXBwZW5kKGNyZWF0ZVJlY29yZEVudHJ5KFRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6Y3JlYXRlQ29uc29sZVByb2ZpbGVEYXRhKHRpdGxlKSwgVGltZWxpbmVS
ZWNvcmRUeXBlOjpDb25zb2xlUHJvZmlsZSwgdHJ1ZSwgZnJhbWVGcm9tRXhlY1N0YXRlKGV4ZWMp
KSk7CiB9CiAKLVJlZlB0cjxKU0M6OlByb2ZpbGU+IEluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0
b3BGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkK
K3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RvcEZyb21Db25zb2xlKEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgU3RyaW5nJikKIHsKICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzE1MzQ5OT4gV2ViIEluc3BlY3RvcjogY29uc29sZS5wcm9maWxlIHNob3VsZCB1c2UgdGhl
IG5ldyBTYW1wbGluZyBQcm9maWxlcgotCi0gICAgLy8gU3RvcCBwcm9maWxlcyBpbiByZXZlcnNl
IG9yZGVyLiBJZiB0aGUgdGl0bGUgaXMgZW1wdHksIHRoZW4gc3RvcCB0aGUgbGFzdCBwcm9maWxl
LgotICAgIC8vIE90aGVyd2lzZSwgbWF0Y2ggdGhlIHRpdGxlIG9mIHRoZSBwcm9maWxlIHRvIHN0
b3AuCi0gICAgZm9yIChwdHJkaWZmX3QgaSA9IG1fcGVuZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jk
cy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewotICAgICAgICBjb25zdCBUaW1lbGluZVJlY29y
ZEVudHJ5JiByZWNvcmQgPSBtX3BlbmRpbmdDb25zb2xlUHJvZmlsZVJlY29yZHNbaV07Ci0KLSAg
ICAgICAgU3RyaW5nIHJlY29yZFRpdGxlOwotICAgICAgICByZWNvcmQuZGF0YS0+Z2V0U3RyaW5n
KEFTQ0lJTGl0ZXJhbCgidGl0bGUiKSwgcmVjb3JkVGl0bGUpOwotCi0gICAgICAgIGlmICh0aXRs
ZS5pc0VtcHR5KCkgfHwgcmVjb3JkVGl0bGUgPT0gdGl0bGUpIHsKLSAgICAgICAgICAgIFJlZlB0
cjxKU0M6OlByb2ZpbGU+IHByb2ZpbGUgPSBKU0M6OkxlZ2FjeVByb2ZpbGVyOjpwcm9maWxlcigp
LT5zdG9wUHJvZmlsaW5nKGV4ZWMsIHRpdGxlKTsKLSAgICAgICAgICAgIGlmIChwcm9maWxlKQot
ICAgICAgICAgICAgICAgIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6YXBwZW5kUHJvZmlsZShyZWNv
cmQuZGF0YS5nZXQoKSwgcHJvZmlsZS5jb3B5UmVmKCkpOwotCi0gICAgICAgICAgICBkaWRDb21w
bGV0ZVJlY29yZEVudHJ5KHJlY29yZCk7Ci0KLSAgICAgICAgICAgIG1fcGVuZGluZ0NvbnNvbGVQ
cm9maWxlUmVjb3Jkcy5yZW1vdmUoaSk7Ci0KLSAgICAgICAgICAgIGlmICghbV9lbmFibGVkRnJv
bUZyb250ZW5kICYmIG1fcGVuZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jkcy5pc0VtcHR5KCkpCi0g
ICAgICAgICAgICAgICAgaW50ZXJuYWxTdG9wKCk7Ci0KLSAgICAgICAgICAgIHJldHVybiBwcm9m
aWxlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIHZvaWQg
SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6d2lsbENhbGxGdW5jdGlvbihjb25zdCBTdHJpbmcmIHNj
cmlwdE5hbWUsIGludCBzY3JpcHRMaW5lLCBGcmFtZSogZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuaAppbmRleCA4ODM4OGZjLi5k
ZThkNzJmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5oCkBAIC00MSwxMCArNDEsNiBAQAogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3Jp
cHREZWJ1Z0xpc3RlbmVyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi1uYW1lc3BhY2Ug
SlNDIHsKLWNsYXNzIFByb2ZpbGU7Ci19Ci0KIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogY2xhc3Mg
SW5zcGVjdG9ySGVhcEFnZW50OwogY2xhc3MgSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudDsK
QEAgLTExNCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBNZXRob2RzIGNhbGxlZCBmcm9t
IFdlYkNvcmUuCiAgICAgdm9pZCBzdGFydEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nICZ0aXRsZSk7Ci0gICAgUmVmUHRyPEpTQzo6UHJvZmlsZT4gc3RvcEZyb21Db25z
b2xlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CisgICAgdm9pZCBzdG9w
RnJvbUNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKIAogICAg
IC8vIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbiBjYWxsYmFja3MuCiAgICAgdm9pZCBkaWRJbnN0
YWxsVGltZXIoaW50IHRpbWVySWQsIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMgdGltZW91dCwg
Ym9vbCBzaW5nbGVTaG90LCBGcmFtZSopOwpAQCAtMjA3LDggKzIwMyw2IEBAIHByaXZhdGU6CiAg
ICAgaW50IG1faWQgeyAxIH07CiAgICAgaW50IG1fbWF4Q2FsbFN0YWNrRGVwdGggeyA1IH07CiAK
LSAgICBWZWN0b3I8VGltZWxpbmVSZWNvcmRFbnRyeT4gbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVS
ZWNvcmRzOwotCiAgICAgYm9vbCBtX2VuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9lbmFi
bGVkRnJvbUZyb250ZW5kIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggMTk3ZDJlMS4uYTg2ZWQxMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCkBAIC00NSw3ICs0
NSw2IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0TWFuYWdlci5oPgogI2lu
Y2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxpbnNwZWN0b3Iv
U2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgotI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEluc3Bl
Y3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcApp
bmRleCBhNWZhZTRjLi40ZjRmYTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Bh
Z2VSdW50aW1lQWdlbnQuY3BwCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaD4KICNpbmNsdWRl
IDxpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIv
UHJvZmlsZS5oPgogCiB1c2luZyBJbnNwZWN0b3I6OlByb3RvY29sOjpSdW50aW1lOjpFeGVjdXRp
b25Db250ZXh0RGVzY3JpcHRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9TY3JpcHRQcm9maWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQ
cm9maWxlLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTE4NGE1YS4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwKKysrIC9k
ZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi1bCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgU2tpcFZUYWJsZVZh
bGlkYXRpb24sCi0gICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi1dIGludGVyZmFjZSBT
Y3JpcHRQcm9maWxlIHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRpdGxlOwot
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHVpZDsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgU2NyaXB0UHJvZmlsZU5vZGUgcm9vdE5vZGU7Ci19OwotCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2RlLmlkbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDBlNTNkYi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIE5vSW50
ZXJmYWNlT2JqZWN0LAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCi0gICAgRXhwb3J0
TWFjcm89V0VCQ09SRV9FWFBPUlQsCi1dIGludGVyZmFjZSBTY3JpcHRQcm9maWxlTm9kZSB7Ci0g
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgaWQ7Ci0KLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIGZ1bmN0aW9uTmFtZTsKLQotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgdXJsOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxp
bmVOdW1iZXI7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgY29sdW1uTnVt
YmVyOwotCi0gICAgc2VxdWVuY2U8U2NyaXB0UHJvZmlsZU5vZGU+IGNoaWxkcmVuKCk7Ci19Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9y
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNw
cAppbmRleCBmNGM2N2MzLi42OGY3NTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApAQCAtMzksNyArMzksNiBAQAogI2luY2x1
ZGUgPGluc3BlY3Rvci9TY3JpcHRCcmVha3BvaW50Lmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1Nj
cmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0
b3J5Lmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
SW5zcGVjdG9yOwogCkBAIC0xNTIsNjMgKzE1MSw0IEBAIHZvaWQgVGltZWxpbmVSZWNvcmRGYWN0
b3J5OjphcHBlbmRMYXlvdXRSb290KEluc3BlY3Rvck9iamVjdCogZGF0YSwgY29uc3QgRmxvYXRR
CiAgICAgZGF0YS0+c2V0QXJyYXkoQVNDSUlMaXRlcmFsKCJyb290IiksIGNyZWF0ZVF1YWQocXVh
ZCkpOwogfQogCi1zdGF0aWMgUmVmPFByb3RvY29sOjpUaW1lbGluZTo6Q1BVUHJvZmlsZU5vZGVB
Z2dyZWdhdGVDYWxsSW5mbz4gYnVpbGRBZ2dyZWdhdGVDYWxsSW5mb0luc3BlY3Rvck9iamVjdChj
b25zdCBKU0M6OlByb2ZpbGVOb2RlKiBub2RlKQotewotICAgIGRvdWJsZSBzdGFydFRpbWUgPSBu
b2RlLT5jYWxscygpWzBdLnN0YXJ0VGltZSgpOwotICAgIGRvdWJsZSBlbmRUaW1lID0gbm9kZS0+
Y2FsbHMoKS5sYXN0KCkuc3RhcnRUaW1lKCkgKyBub2RlLT5jYWxscygpLmxhc3QoKS5lbGFwc2Vk
VGltZSgpOwotCi0gICAgZG91YmxlIHRvdGFsVGltZSA9IDA7Ci0gICAgZm9yIChjb25zdCBKU0M6
OlByb2ZpbGVOb2RlOjpDYWxsJiBjYWxsIDogbm9kZS0+Y2FsbHMoKSkKLSAgICAgICAgdG90YWxU
aW1lICs9IGNhbGwuZWxhcHNlZFRpbWUoKTsKLQotICAgIHJldHVybiBQcm90b2NvbDo6VGltZWxp
bmU6OkNQVVByb2ZpbGVOb2RlQWdncmVnYXRlQ2FsbEluZm86OmNyZWF0ZSgpCi0gICAgICAgIC5z
ZXRDYWxsQ291bnQobm9kZS0+Y2FsbHMoKS5zaXplKCkpCi0gICAgICAgIC5zZXRTdGFydFRpbWUo
c3RhcnRUaW1lKQotICAgICAgICAuc2V0RW5kVGltZShlbmRUaW1lKQotICAgICAgICAuc2V0VG90
YWxUaW1lKHRvdGFsVGltZSkKLSAgICAgICAgLnJlbGVhc2UoKTsKLX0KLQotc3RhdGljIFJlZjxQ
cm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlPiBidWlsZEluc3BlY3Rvck9iamVjdChj
b25zdCBKU0M6OlByb2ZpbGVOb2RlKiBub2RlKQotewotICAgIGF1dG8gcmVzdWx0ID0gUHJvdG9j
b2w6OlRpbWVsaW5lOjpDUFVQcm9maWxlTm9kZTo6Y3JlYXRlKCkKLSAgICAgICAgLnNldElkKG5v
ZGUtPmlkKCkpCi0gICAgICAgIC5zZXRDYWxsSW5mbyhidWlsZEFnZ3JlZ2F0ZUNhbGxJbmZvSW5z
cGVjdG9yT2JqZWN0KG5vZGUpKQotICAgICAgICAucmVsZWFzZSgpOwotCi0gICAgaWYgKCFub2Rl
LT5mdW5jdGlvbk5hbWUoKS5pc0VtcHR5KCkpCi0gICAgICAgIHJlc3VsdC0+c2V0RnVuY3Rpb25O
YW1lKG5vZGUtPmZ1bmN0aW9uTmFtZSgpKTsKLQotICAgIGlmICghbm9kZS0+dXJsKCkuaXNFbXB0
eSgpKSB7Ci0gICAgICAgIHJlc3VsdC0+c2V0VXJsKG5vZGUtPnVybCgpKTsKLSAgICAgICAgcmVz
dWx0LT5zZXRMaW5lTnVtYmVyKG5vZGUtPmxpbmVOdW1iZXIoKSk7Ci0gICAgICAgIHJlc3VsdC0+
c2V0Q29sdW1uTnVtYmVyKG5vZGUtPmNvbHVtbk51bWJlcigpKTsKLSAgICB9Ci0KLSAgICBpZiAo
IW5vZGUtPmNoaWxkcmVuKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGF1dG8gY2hpbGRyZW4gPSBQ
cm90b2NvbDo6QXJyYXk8UHJvdG9jb2w6OlRpbWVsaW5lOjpDUFVQcm9maWxlTm9kZT46OmNyZWF0
ZSgpOwotICAgICAgICBmb3IgKFJlZlB0cjxKU0M6OlByb2ZpbGVOb2RlPiBwcm9maWxlTm9kZSA6
IG5vZGUtPmNoaWxkcmVuKCkpCi0gICAgICAgICAgICBjaGlsZHJlbi0+YWRkSXRlbShidWlsZElu
c3BlY3Rvck9iamVjdChwcm9maWxlTm9kZS5nZXQoKSkpOwotICAgICAgICByZXN1bHQtPnNldENo
aWxkcmVuKFdURk1vdmUoY2hpbGRyZW4pKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0Owot
fQotCi1zdGF0aWMgUmVmPFByb3RvY29sOjpUaW1lbGluZTo6Q1BVUHJvZmlsZT4gYnVpbGRQcm9m
aWxlSW5zcGVjdG9yT2JqZWN0KGNvbnN0IEpTQzo6UHJvZmlsZSogcHJvZmlsZSkKLXsKLSAgICBh
dXRvIHJvb3ROb2RlcyA9IFByb3RvY29sOjpBcnJheTxQcm90b2NvbDo6VGltZWxpbmU6OkNQVVBy
b2ZpbGVOb2RlPjo6Y3JlYXRlKCk7Ci0gICAgZm9yIChSZWZQdHI8SlNDOjpQcm9maWxlTm9kZT4g
cHJvZmlsZU5vZGUgOiBwcm9maWxlLT5yb290Tm9kZSgpLT5jaGlsZHJlbigpKQotICAgICAgICBy
b290Tm9kZXMtPmFkZEl0ZW0oYnVpbGRJbnNwZWN0b3JPYmplY3QocHJvZmlsZU5vZGUuZ2V0KCkp
KTsKLQotICAgIHJldHVybiBQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGU6OmNyZWF0ZSgp
Ci0gICAgICAgIC5zZXRSb290Tm9kZXMoV1RGTW92ZShyb290Tm9kZXMpKQotICAgICAgICAucmVs
ZWFzZSgpOwotfQotCi12b2lkIFRpbWVsaW5lUmVjb3JkRmFjdG9yeTo6YXBwZW5kUHJvZmlsZShJ
bnNwZWN0b3JPYmplY3QqIGRhdGEsIFJlZlB0cjxKU0M6OlByb2ZpbGU+JiYgcHJvZmlsZSkKLXsK
LSAgICBkYXRhLT5zZXRWYWx1ZShBU0NJSUxpdGVyYWwoInByb2ZpbGUiKSwgYnVpbGRQcm9maWxl
SW5zcGVjdG9yT2JqZWN0KHByb2ZpbGUuZ2V0KCkpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3Jk
RmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9y
eS5oCmluZGV4IDA0MjE0YzMuLjRjMDIyNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKQEAgLTM2LDEwICszNiw2IEBACiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotbmFt
ZXNwYWNlIEpTQyB7Ci1jbGFzcyBQcm9maWxlOwotfQotCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsK
IHN0cnVjdCBTY3JpcHRCcmVha3BvaW50QWN0aW9uOwogfQpAQCAtNjUsNyArNjEsNiBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4gY3JlYXRlUGFp
bnREYXRhKGNvbnN0IEZsb2F0UXVhZCYpOwogCiAgICAgc3RhdGljIHZvaWQgYXBwZW5kTGF5b3V0
Um9vdChJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCogZGF0YSwgY29uc3QgRmxvYXRRdWFkJik7
Ci0gICAgc3RhdGljIHZvaWQgYXBwZW5kUHJvZmlsZShJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVj
dCosIFJlZlB0cjxKU0M6OlByb2ZpbGU+JiYpOwogCiBwcml2YXRlOgogICAgIFRpbWVsaW5lUmVj
b3JkRmFjdG9yeSgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IGU3ODFiN2Mu
Ljc4ZDZmYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTEwMSw3ICsxMDEsNiBA
QAogI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIK
ICNpbmNsdWRlICJXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCIKLSNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPGlu
c3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2Fs
bFN0YWNrRmFjdG9yeS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMzIwZjgyOC4uNDYzZmJhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCkBAIC05Niw3ICs5Niw2IEBACiAjaW5jbHVkZSAiVmlzaXRlZExp
bmtTdG9yZS5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgogI2luY2x1ZGUgIldpZGdldC5o
IgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGll
bnQuY3BwCmluZGV4IDVjZmE5N2IuLjlkMGUwYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbnNvbGVDbGllbnQuY3BwCkBAIC0xOTEsOCArMTkxLDcgQEAgdm9pZCBQYWdlQ29uc29sZUNs
aWVudDo6cHJvZmlsZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkK
IHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OnByb2ZpbGVFbmQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5v
cmcvYi8xNTM0OTk+IFdlYiBJbnNwZWN0b3I6IGNvbnNvbGUucHJvZmlsZSBzaG91bGQgdXNlIHRo
ZSBuZXcgU2FtcGxpbmcgUHJvZmlsZXIKLSAgICBpZiAoUmVmUHRyPEpTQzo6UHJvZmlsZT4gcHJv
ZmlsZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFByb2ZpbGluZyhtX3BhZ2UsIGV4
ZWMsIHRpdGxlKSkKLSAgICAgICAgbV9wcm9maWxlcy5hcHBlbmQoV1RGTW92ZShwcm9maWxlKSk7
CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wUHJvZmlsaW5nKG1fcGFnZSwgZXhl
YywgdGl0bGUpOwogfQogCiB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0YWtlSGVhcFNuYXBzaG90
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKQEAgLTIxNiw5ICsyMTUsNCBA
QCB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWZQ
dHI8U2NyaXB0QXJndW1lbnRzPiYmIGFyZwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
Y29uc29sZVRpbWVTdGFtcChtX3BhZ2UubWFpbkZyYW1lKCksIFdURk1vdmUoYXJndW1lbnRzKSk7
CiB9CiAKLXZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmNsZWFyUHJvZmlsZXMoKQotewotICAgIG1f
cHJvZmlsZXMuY2xlYXIoKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCmluZGV4IGNlNWM1MTguLmVhZWYzMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKQEAgLTMwLDcgKzMwLDYgQEAKICNk
ZWZpbmUgUGFnZUNvbnNvbGVDbGllbnRfaAogCiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENh
bGxTdGFjay5oPgotI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxydW50
aW1lL0NvbnNvbGVDbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC00Myw4
ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgUGFn
ZTsKIAotdHlwZWRlZiBWZWN0b3I8UmVmUHRyPEpTQzo6UHJvZmlsZT4+IFByb2ZpbGVzQXJyYXk7
Ci0KIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25zb2xlQ2xpZW50IGZpbmFsIDogcHVibGlj
IEpTQzo6Q29uc29sZUNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6CkBAIC02MSw5ICs1OCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFJlZlB0cjxJbnNw
ZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7CiAgICAgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VT
b3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25n
IHJlcXVlc3RJZGVudGlmaWVyID0gMCwgRG9jdW1lbnQqID0gbnVsbHB0cik7CiAKLSAgICBjb25z
dCBQcm9maWxlc0FycmF5JiBwcm9maWxlcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvZmlsZXM7IH0K
LSAgICB2b2lkIGNsZWFyUHJvZmlsZXMoKTsKLQogcHJvdGVjdGVkOgogICAgIHZvaWQgbWVzc2Fn
ZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3Rh
dGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwogICAg
IHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1
bWVudHM+JiYpIG92ZXJyaWRlOwpAQCAtNzYsNyArNzAsNiBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZh
dGU6CiAgICAgUGFnZSYgbV9wYWdlOwotICAgIFByb2ZpbGVzQXJyYXkgbV9wcm9maWxlczsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCAwZDNmOWIwLi5kNDk0NGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC0xMjUsNyArMTI1LDYgQEAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgi
CiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIK
LSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8Ynl0ZWNvZGUv
Q29kZUJsb2NrLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckFnZW50QmFzZS5oPgog
I2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaD4KQEAgLTM4OSw3
ICszODgsNiBAQCB2b2lkIEludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlJiBw
YWdlKQogICAgIFdlYkNvcmU6Om92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8
U3RyaW5nPigpKTsKICAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc092ZXJsYXlTY3JvbGxi
YXJzKGZhbHNlKTsKICAgICBXZWJDb3JlOjpTZXR0aW5nczo6c2V0VXNlc01vY2tTY3JvbGxBbmlt
YXRvcihmYWxzZSk7Ci0gICAgcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuc2V0TGVnYWN5UHJv
ZmlsZXJFbmFibGVkKGZhbHNlKTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgcGFnZS5n
cm91cCgpLmNhcHRpb25QcmVmZXJlbmNlcygpLnNldENhcHRpb25zU3R5bGVTaGVldE92ZXJyaWRl
KGVtcHR5U3RyaW5nKCkpOwogICAgIHBhZ2UuZ3JvdXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKS5z
ZXRUZXN0aW5nTW9kZShmYWxzZSk7CkBAIC0xNzM0LDExICsxNzMyLDYgQEAgdW5zaWduZWQgSW50
ZXJuYWxzOjpjb3VudE1hdGNoZXNGb3JUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQg
ZmluZE9wdGlvbnMKICAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPmVkaXRvcigpLmNvdW50
TWF0Y2hlc0ZvclRleHQodGV4dCwgbnVsbHB0ciwgZmluZE9wdGlvbnMsIDEwMDAsIG1hcmssIG51
bGxwdHIpOwogfQogCi1jb25zdCBQcm9maWxlc0FycmF5JiBJbnRlcm5hbHM6OmNvbnNvbGVQcm9m
aWxlcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGNvbnRleHREb2N1bWVudCgpLT5wYWdlKCktPmNv
bnNvbGUoKS5wcm9maWxlcygpOwotfQotCiB1bnNpZ25lZCBJbnRlcm5hbHM6Om51bWJlck9mTGl2
ZU5vZGVzKCkgY29uc3QKIHsKICAgICB1bnNpZ25lZCBub2RlQ291bnQgPSAwOwpAQCAtMTc2Nywx
NyArMTc2MCw2IEBAIHZvaWQgSW50ZXJuYWxzOjpjbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQo
KQogICAgIG1faW5zcGVjdG9yRnJvbnRlbmQgPSBudWxscHRyOwogfQogCi12b2lkIEludGVybmFs
czo6c2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJiBlYykKLXsKLSAgICBQYWdlKiBwYWdlID0gY29udGV4dERvY3VtZW50KCktPmZy
YW1lKCktPnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FD
Q0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBwYWdlLT5pbnNwZWN0b3JD
b250cm9sbGVyKCkuc2V0TGVnYWN5UHJvZmlsZXJFbmFibGVkKGVuYWJsZWQpOwotfQotCiB2b2lk
IEludGVybmFsczo6c2V0SW5zcGVjdG9ySXNVbmRlclRlc3QoYm9vbCBpc1VuZGVyVGVzdCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgUGFnZSogcGFnZSA9IGNvbnRleHREb2N1bWVudCgpLT5m
cmFtZSgpLT5wYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA4ZjFlYTNk
Li5jOWRhNzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTI2NywxNCArMjY3
LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGluc2VydEF1dGhvckNTUyhjb25zdCBTdHJpbmcmLCBF
eGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgdm9pZCBpbnNlcnRVc2VyQ1NTKGNvbnN0IFN0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAotICAgIGNvbnN0IFByb2ZpbGVzQXJyYXkmIGNv
bnNvbGVQcm9maWxlcygpIGNvbnN0OwotCiAgICAgdW5zaWduZWQgbnVtYmVyT2ZMaXZlTm9kZXMo
KSBjb25zdDsKICAgICB1bnNpZ25lZCBudW1iZXJPZkxpdmVEb2N1bWVudHMoKSBjb25zdDsKIAog
ICAgIFJlZlB0cjxET01XaW5kb3c+IG9wZW5EdW1teUluc3BlY3RvckZyb250ZW5kKGNvbnN0IFN0
cmluZyYgdXJsKTsKICAgICB2b2lkIGNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOwotICAg
IHZvaWQgc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRJbnNwZWN0b3JJc1VuZGVyVGVzdChib29sIGlz
VW5kZXJUZXN0LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBTdHJpbmcgY291bnRlclZhbHVlKEVs
ZW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA2NjdjOGQwLi41
OTA4OWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0yNjAsMTYgKzI2
MCwxMCBAQCBlbnVtIEF1dG9GaWxsQnV0dG9uVHlwZSB7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0g
dm9pZCBzZXREZXZpY2VQcm94aW1pdHkoRE9NU3RyaW5nIGV2ZW50VHlwZSwgdW5yZXN0cmljdGVk
IGRvdWJsZSB2YWx1ZSwgdW5yZXN0cmljdGVkIGRvdWJsZSBtaW4sIHVucmVzdHJpY3RlZCBkb3Vi
bGUgbWF4KTsKICNlbmRpZgogCi0gICAgLy8gQXMgcGVyIHNwZWM6IGh0dHA6Ly93d3cudzMub3Jn
L1RSL1dlYklETC8jaWRsLXNlcXVlbmNlCi0gICAgLy8gIlNlcXVlbmNlcyBtdXN0IG5vdCBiZSB1
c2VkIGFzIHRoZSB0eXBlIG9mIGFuIGF0dHJpYnV0ZSwgY29uc3RhbnQgb3IgZXhjZXB0aW9uIGZp
ZWxkLiIKLSAgICAvLyBGSVhNRTogdGhpcyB3aWxsIGxlYWQgdG8gQlVHIGludGVybmFscy5jb25z
b2xlUHJvZmlsZXMgIT09IGludGVybmFscy5jb25zb2xlUHJvZmlsZXMgYXMgcHJvZmlsZSB3aWxs
IGFsd2F5cyByZXR1cm5zIG5ldyBhcnJheS4KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU2NyaXB0
UHJvZmlsZVtdIGNvbnNvbGVQcm9maWxlczsKLQogICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZM
aXZlTm9kZXMoKTsKICAgICB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2ZURvY3VtZW50cygpOwog
ICAgIERPTVdpbmRvdyBvcGVuRHVtbXlJbnNwZWN0b3JGcm9udGVuZChET01TdHJpbmcgdXJsKTsK
ICAgICB2b2lkIGNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOwotICAgIFtSYWlzZXNFeGNl
cHRpb25dIHZvaWQgc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbGVhbiBl
bmFibGVkKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNldEluc3BlY3RvcklzVW5kZXJU
ZXN0KGJvb2xlYW4gaXNVbmRlclRlc3QpOwogCiAgICAgRE9NU3RyaW5nIGNvdW50ZXJWYWx1ZShF
bGVtZW50IGVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnQuY3BwCmluZGV4IDQ4MjEwMTQuLmJlMTU2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKQEAgLTM2LDcgKzM2LDYg
QEAKICNpbmNsdWRlICJXaGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNWYWx1ZVJlZi5o
PgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxpbnRlcnBy
ZXRlci9DYWxsRnJhbWUuaD4KICNpbmNsdWRlIDxydW50aW1lL0lkZW50aWZpZXJJbmxpbmVzLmg+
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldExpYnhzbHQuY3BwCmluZGV4IDk2
NzcwYTYuLjRiMjQ2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNo
ZWV0TGlieHNsdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4
c2x0LmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIlhNTERvY3VtZW50UGFyc2VyU2Nv
cGUuaCIKICNpbmNsdWRlICJYU0xJbXBvcnRSdWxlLmgiCiAjaW5jbHVkZSAiWFNMVFByb2Nlc3Nv
ci5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxsaWJ4
bWwvdXJpLmg+CiAjaW5jbHVkZSA8bGlieHNsdC94c2x0dXRpbHMuaD4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXggOGExODRjMy4uZTRhMzNkMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCkBAIC00MCw3
ICs0MCw2IEBACiAjaW5jbHVkZSAiWFNMVEV4dGVuc2lvbnMuaCIKICNpbmNsdWRlICJYU0xUVW5p
Y29kZVNvcnQuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8bGlieHNsdC9pbXBvcnRzLmg+CiAjaW5jbHVkZSA8bGli
eHNsdC9zZWN1cml0eS5oPgogI2luY2x1ZGUgPGxpYnhzbHQvdmFyaWFibGVzLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKaW5kZXggOWM0M2IwNC4uNjlkYjAxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDE2LTA1LTEzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIExlZ2FjeVByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM1NjUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYkluc3BlY3Rvci5pZGw6
CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgICogV2ViSW5zcGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvcjo6aXNKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3I6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJJbnNwZWN0b3IuaDoKKwogMjAxNi0wNS0xMiAgS29u
c3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5kZXgucnU+CiAKICAgICAgICAgVXNlIHJlZmVy
ZW5jZSBpbnN0ZWFkIG9mIHBvaW50ZXIgaW4gRnJhbWVMb2FkZXJDbGllbnQ6OnNhdmVWaWV3U3Rh
dGVUb0l0ZW0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJJ
bnNwZWN0b3IuaWRsIGIvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViSW5zcGVjdG9y
LmlkbAppbmRleCA3NDQwZmU4Li40ZDhmMDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9JbnRlcmZhY2VzL0lXZWJJbnNwZWN0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0lu
dGVyZmFjZXMvSVdlYkluc3BlY3Rvci5pZGwKQEAgLTUyLDkgKzUyLDYgQEAgaW50ZXJmYWNlIElX
ZWJJbnNwZWN0b3IgOiBJVW5rbm93bgogICAgIEhSRVNVTFQgaXNQcm9maWxpbmdKYXZhU2NyaXB0
KEJPT0wqIGlzUHJvZmlsaW5nKTsKICAgICBIUkVTVUxUIHRvZ2dsZVByb2ZpbGluZ0phdmFTY3Jp
cHQoKTsKIAotICAgIEhSRVNVTFQgaXNKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChCT09MKiBp
c1Byb2ZpbGluZ0VuYWJsZWQpOwotICAgIEhSRVNVTFQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQoQk9PTCBlbmFibGVkKTsKLQogICAgIEhSRVNVTFQgaXNUaW1lbGluZVByb2ZpbGluZ0Vu
YWJsZWQoQk9PTCogaXNFbmFibGVkKTsKICAgICBIUkVTVUxUIHNldFRpbWVsaW5lUHJvZmlsaW5n
RW5hYmxlZChCT09MIGVuYWJsZWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
V2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkluc3BlY3Rvci5jcHAKaW5k
ZXggOTFhNzhiMy4uZjYyMTlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViSW5z
cGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuY3BwCkBAIC0y
MDIsMzggKzIwMiw2IEBAIEhSRVNVTFQgV2ViSW5zcGVjdG9yOjp0b2dnbGVQcm9maWxpbmdKYXZh
U2NyaXB0KCkKICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBXZWJJbnNwZWN0b3I6Omlz
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoX091dF8gQk9PTCogaXNQcm9maWxpbmdFbmFibGVk
KQotewotICAgIGlmICghaXNQcm9maWxpbmdFbmFibGVkKQotICAgICAgICByZXR1cm4gRV9QT0lO
VEVSOwotCi0gICAgKmlzUHJvZmlsaW5nRW5hYmxlZCA9IEZBTFNFOwotCi0gICAgaWYgKCFtX2lu
c3BlY3RlZFdlYlZpZXcpCi0gICAgICAgIHJldHVybiBTX09LOwotCi0gICAgUGFnZSogaW5zcGVj
dGVkUGFnZSA9IG1faW5zcGVjdGVkV2ViVmlldy0+cGFnZSgpOwotICAgIGlmICghaW5zcGVjdGVk
UGFnZSkKLSAgICAgICAgcmV0dXJuIFNfT0s7Ci0KLSAgICAqaXNQcm9maWxpbmdFbmFibGVkID0g
aW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmxlZ2FjeVByb2ZpbGVyRW5hYmxl
ZCgpOwotICAgIHJldHVybiBTX09LOwotfQotCi1IUkVTVUxUIFdlYkluc3BlY3Rvcjo6c2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoQk9PTCBlbmFibGVkKQotewotICAgIGlmICghbV9pbnNw
ZWN0ZWRXZWJWaWV3KQotICAgICAgICByZXR1cm4gU19PSzsKLQotICAgIFBhZ2UqIGluc3BlY3Rl
ZFBhZ2UgPSBtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKTsKLSAgICBpZiAoIWluc3BlY3RlZFBh
Z2UpCi0gICAgICAgIHJldHVybiBTX09LOwotCi0gICAgaW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9y
Q29udHJvbGxlcigpLnNldExlZ2FjeVByb2ZpbGVyRW5hYmxlZChlbmFibGVkKTsKLQotICAgIHJl
dHVybiBTX09LOwotfQotCiBIUkVTVUxUIFdlYkluc3BlY3Rvcjo6ZXZhbHVhdGVJbkZyb250ZW5k
KF9Jbl8gQlNUUiBiU2NyaXB0KQogewogICAgIGlmICghbV9pbnNwZWN0ZWRXZWJWaWV3KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJJbnNwZWN0b3IuaAppbmRleCBkZjcwN2NmLi4yNzk0ZjcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJJbnNwZWN0b3IuaApAQCAtNjAsOSArNjAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIGlzUHJvZmlsaW5nSmF2YVNjcmlwdChfT3V0XyBCT09MKik7
CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHRvZ2dsZVByb2ZpbGluZ0ph
dmFTY3JpcHQoKTsKIAotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBpc0ph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKF9PdXRfIEJPT0wqKTsKLSAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoQk9PTCk7
Ci0KICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZXZhbHVhdGVJbkZyb250
ZW5kKF9Jbl8gQlNUUiBzY3JpcHQpOwogCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIGlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVkKF9PdXRfIEJPT0wqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Vmlldy5jcHAKaW5kZXggNjcxZGRlMy4uM2I1NWIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAg
LTEyMSw3ICsxMjEsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNFbGVtZW50Lmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9KU1NjcmlwdFByb2ZpbGUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4K
</data>
<flag name="review"
          id="302992"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
    <flag name="commit-queue"
          id="302993"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278928</attachid>
            <date>2016-05-14 00:49:20 -0700</date>
            <delta_ts>2016-05-20 21:56:55 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>for-landing-1.patch</filename>
            <type>text/plain</type>
            <size>349013</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBkNzI3NmVlLi41OGZiM2Qy
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTYtMDUtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW1vdmUgTGVnYWN5UHJvZmlsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MzU2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFt
LgorCisgICAgICAgICogTWFudWFsVGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyLXRlc3QtY2FsbC5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIE1hbnVhbFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci10
ZXN0LW1hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbDogUmVtb3ZlZC4KKwogMjAxNi0w
NS0xMyAgWW9hdiBXZWlzcyAgPHlvYXZAeW9hdi53cz4KIAogICAgICAgICBUdXJuIG9uIFdFQl9U
SU1JTkcgZm9yIGFsbCBwb3J0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVjYTEwOTcuLjVlNjlhMmMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDMgQEAKKzIwMTYtMDUtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgTGVnYWN5UHJvZmlsZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzU2NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE1hcmsgTGFtLgorCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQt
aGFuZGxlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9h
bm9ueW1vdXMtZXZlbnQtaGFuZGxlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMt
ZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4t
ZnVuY3Rpb25zLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVy
L2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFs
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91
cy1mdW5jdGlvbi1jYWxscy1ldmFsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9m
aWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdp
dGgtZGlzcGxheS1uYW1lcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
YXBwbHktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYXBw
bHkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0
aW9uLWNhbGxzLWFub255bW91cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXIt
ZGVmaW5lZC1mdW5jdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rpb24uaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGwtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXIt
bGVhay5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbC5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhh
dC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhh
dC1zdGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY29tcGFyZS1tdWx0aXBs
ZS1wcm9maWxlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY29uc3Ry
dWN0b3ItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY29u
c3RydWN0b3IuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2RlYWQtdGlt
ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9kZWFkLXRp
bWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13
cml0ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9kb2N1
bWVudC1kb3Qtd3JpdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2V2
ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmls
ZXIvZXZlbnQtaGFuZGxlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
ZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFs
LW9uLXNhbWUtbGluZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvaW5s
aW5lLWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1z
Y29wZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5k
LWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQt
c2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGZhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2Fs
bHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbXVsdGlw
bGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVk
LWZyb20tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGZhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10
aGUtc2FtZS1mdW5jdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
bXVsdGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3By
b2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNw
bGF5LW5hbWVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9uZXN0ZWQt
YW5vbnltb3VzLWZ1bmN0b24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1z
dG9wLXByb2ZpbGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9uby1l
eGVjdXRpb24tY29udGV4dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1m
aWxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2Zp
bGUtY2FsbHMtaW4taW5jbHVkZWQtZmlsZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRp
b24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmctZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQt
bG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxv
Y2F0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3By
b2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
ZmFzdC9wcm9maWxlci9yZXNvdXJjZXMvb3RoZXItZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci13aW5kb3cuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1j
YWxsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3NpbXBs
ZS1ldmVudC1jYWxsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zaW1w
bGUtbm8tbGV2ZWwtY2hhbmdlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBmYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1z
dG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24t
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3RhcnQtYW5k
LXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1z
dG9wLXByb2ZpbGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3Rv
cC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2Fs
bC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdG9wLXRo
ZW4tZnVuY3Rpb24tY2FsbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
dGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQ6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRz
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3R3by1leGVj
dXRpb24tY29udGV4dHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Vz
ZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0aW9u
LWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvd2luZG93LWRvdC1ldmFsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBmYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4
cGVjdGF0aW9uczoKKwogMjAxNi0wNS0xMyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFsbCBzY3JvbGxpbmcgaGVpZ2h0L3dpZHRoIHZhbHVlcyBzaG91bGQgYmUg
aW50ZWdyYWwgcm91bmRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
YW5vbnltb3VzLWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFuZGxlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg0OGJmMzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFuZGxlci1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGlzIHBhZ2UgaGFzIGFuIGFub255bW91cyBldmVudCBo
YW5kbGVyLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJv
d3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4g
SXQgc2hvdWxkIHNob3cgdGhlIGFub255bW91cyBmdW5jdGlvbiBhdCB0aGUgc2FtZSBsZXZlbCBh
cyB0aGUgb25sb2FkIGhhbmRsZXIuIAotCi1Qcm9maWxlIHRpdGxlOiBBbm9ueW1vdXMgZXZlbnQg
aGFuZGxlcgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBhbm9u
eW1vdXMtZXZlbnQtaGFuZGxlci5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZ2V0RWxlbWVudEJ5
SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGNsaWNrIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICBvbmNsaWNrIGFub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwgKGxpbmUgMTU6
NTEpCi0gICAgICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhhbmRs
ZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhhbmRs
ZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmJjZmZhNS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1oYW5kbGVyLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQot
ewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGV2ZW50IGhhbmRsZXIiKTsKLQotICAg
IHZhciBidXR0b25XaXRoQW5vbnltb3VzSGFuZGxlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJidXR0b25XaXRoQW5Bbm9ueW1vdXNFdmVudEhhbmRsZXIiKQotICAgIGJ1dHRvbldpdGhBbm9u
eW1vdXNIYW5kbGVyLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGluc2VydE5ld1Rl
eHQoKTsKLSAgICB9Ci0KLSAgICBidXR0b25XaXRoQW5vbnltb3VzSGFuZGxlci5jbGljaygpOwot
Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0i
c3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIGhhcyBhbiBhbm9ueW1vdXMgZXZlbnQgaGFuZGxlci4K
LTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJy
b3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxl
LiAgSXQgc2hvdWxkIHNob3cgdGhlIGFub255bW91cyBmdW5jdGlvbiBhdCB0aGUgc2FtZSBsZXZl
bCBhcyB0aGUgb25sb2FkCi1oYW5kbGVyLgotPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9ImJ1dHRv
bldpdGhBbkFub255bW91c0V2ZW50SGFuZGxlciIgdmFsdWU9IkJ1dHRvbiB3aXRoIGFuIGFub255
bW91cyBldmVudCBoYW5kbGVyIj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1m
dW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlm
ZmVyZW50LWNvbnRleHRzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggM2NiYmYwNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255
bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBj
YWxscyBhbiBhbm9ueW1vdXMgZnVuY3Rpb24gZnJvbSBkaWZmZXJlbnQgY29udGV4dHMuIAotCi1U
byBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9h
ZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBCZW5lYXRoIG9ubG9h
ZCBhbmQgc3RhcnRUZXN0IGl0IHNob3VsZCBzaG93IHRocmVlIGNoaWxkcmVuLCBhbiBhbm9ueW1v
dXMgZnVuY3Rpb24sIHNjcmlwdCBjb250ZXh0LCBhbmQgdGhlIGVuZFRlc3QgY2FsbC4KLQotUHJv
ZmlsZSB0aXRsZTogU2FtZSBhbm9ueW1vdXMgZnVuY3Rpb24gY2FsbGVkIGZyb20gZGlmZmVyZW50
IGNvbnRleHRzCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGFu
b255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMuaHRtbCAobGlu
ZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
IGV2YWwgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIChwcm9ncmFtKSAobm8gZmlsZSkg
KGxpbmUgMToxKQotICAgICAgICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICAgICAgICBpbnNlcnROZXdUZXh0
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAg
ICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
IGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBnZXRF
bGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVu
dC1jb250ZXh0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVu
Y3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDNhYjgzMTcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRz
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2Fj
eUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3Qo
KQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU2FtZSBhbm9ueW1vdXMgZnVuY3Rpb24gY2FsbGVk
IGZyb20gZGlmZmVyZW50IGNvbnRleHRzIik7Ci0KLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwot
ICAgIGV2YWwoImFub255bW91c0Z1bmN0aW9uKCkiKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFn
ZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIGZ1bmN0aW9uIGZyb20gZGlmZmVyZW50
IGNvbnRleHRzLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBp
dCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAot
dGhlIHByb2ZpbGUuICBCZW5lYXRoIG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNob3VsZCBzaG93
IHRocmVlIGNoaWxkcmVuLCBhbgotYW5vbnltb3VzIGZ1bmN0aW9uLCBzY3JpcHQgY29udGV4dCwg
YW5kIHRoZSBlbmRUZXN0IGNhbGwuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMt
ZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0
aW9ucy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxMjA2MDAu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rp
b24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDE2ICswLDAgQEAKLVRoaXMgcGFnZSBoYXMgYW4gYW5vbnltb3VzIEphdmFTY3JpcHQgZnVu
Y3Rpb24gdGhhdCBjYWxscyBidWlsdC1pbiBmdW5jdGlvbnMuIAotCi1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBCZW5lYXRoIG9ubG9hZCBhbmQgc3RhcnRUZXN0
IGl0IHNob3VsZCBzaG93IHRocmVlIGNoaWxkcmVuLCBhbiBhbm9ueW1vdXMgZnVuY3Rpb24sIHNj
cmlwdCBjb250ZXh0LCBhbmQgdGhlIGVuZFRlc3QgY2FsbC4KLQotUHJvZmlsZSB0aXRsZTogQW5v
bnltb3VzIGZ1bmN0aW9uIGNhbGxzIGJ1aWx0LWluIGZ1bmN0aW9ucwotVGhyZWFkXzEgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBhbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVp
bHQtaW4tZnVuY3Rpb25zLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlv
biBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgIGlu
c2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0g
ICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5k
Q2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1idWlsdC1p
bi1mdW5jdGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWJjNzNiNS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlv
bi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFs
cykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJBbm9u
eW1vdXMgZnVuY3Rpb24gY2FsbHMgYnVpbHQtaW4gZnVuY3Rpb25zIik7Ci0gICAgYW5vbnltb3Vz
RnVuY3Rpb24oKTsKLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIGFuIGFub255bW91cyBKYXZh
U2NyaXB0IGZ1bmN0aW9uIHRoYXQgY2FsbHMgYnVpbHQtaW4gZnVuY3Rpb25zLgotPGJyPgotPGJy
PgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBCZW5lYXRo
IG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNob3VsZCBzaG93IHRocmVlIGNoaWxkcmVuLCBhbgot
YW5vbnltb3VzIGZ1bmN0aW9uLCBzY3JpcHQgY29udGV4dCwgYW5kIHRoZSBlbmRUZXN0IGNhbGwu
Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlv
bi1jYWxscy1ldmFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OWEwZmQ0Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91
cy1mdW5jdGlvbi1jYWxscy1ldmFsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE4
ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIGZ1bmN0
aW9uIHdoaWNoIGNhbGxzIGV2YWwoKS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxv
YWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sg
YXQgdGhlIHByb2ZpbGUuIEJlbmVhdGggb25sb2FkIGFuZCBzdGFydFRlc3QgaXQgc2hvdWxkIHNo
b3cgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2hpY2ggaGFzIGEgKHByb2dyYW0pIGNoaWxkLgot
Ci1Qcm9maWxlIHRpdGxlOiBBbm9ueW1vdXMgZnVuY3Rpb24gY2FsbGVzIGV2YWwKLVRocmVhZF8x
IChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgYW5vbnltb3VzLWZ1bmN0aW9uLWNh
bGxzLWV2YWwuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIHZhcmlhYmxlVGhhdFBvaW50c1RvQW5B
bm9ueW1vdXNGdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5odG1sIChsaW5l
IDE0OjU5KQotICAgICAgICAgZXZhbCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
KHByb2dyYW0pIChubyBmaWxlKSAobGluZSAxOjEpCi0gICAgICAgICAgICAgICBpbnNlcnROZXdU
ZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAg
ICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
ICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBn
ZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2YWwu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTlmNzY2Ni4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFs
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2Fj
eUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3Qo
KQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGZ1bmN0aW9uIGNhbGxlcyBldmFs
Iik7Ci0KLSAgICB2YXIgdmFyaWFibGVUaGF0UG9pbnRzVG9BbkFub255bW91c0Z1bmN0aW9uID0g
ZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWwoImluc2VydE5ld1RleHQoKSIpOwotICAgIH0KLQot
ICAgIHZhcmlhYmxlVGhhdFBvaW50c1RvQW5Bbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGVuZFRl
c3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgp
Ij4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIGZ1bmN0aW9uIHdo
aWNoIGNhbGxzIGV2YWwoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQKLXRoZSBwcm9maWxlLiAgQmVuZWF0aCBvbmxvYWQgYW5kIHN0YXJ0VGVzdCBpdCBzaG91
bGQgc2hvdyBhbiAoYW5vbnltb3VzIGZ1bmN0aW9uKQotd2hpY2ggaGFzIGEgKHByb2dyYW0pIGNo
aWxkLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRp
c3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9u
eW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiOGQ4MDcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZh
U2NyaXB0IGNhbGxzIGFub255bW91cyBmdW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzLiAKLQot
VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxv
YWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gWW91IHNob3VsZCBz
ZWUgZnVuY3Rpb25zIG5hbWVkICJbeF0gaXRlcmF0aW9ucyBmdW5jdGlvbiIsIGFuZCBubyBhbm9u
eW1vdXMgZnVuY3Rpb25zLgotCi1Qcm9maWxlIHRpdGxlOiBBbm9ueW1vdXMgZnVuY3Rpb25zIHdp
dGggZGlzcGxheSBuYW1lcwotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0
VGVzdCBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDIy
OjE5KQotICAgICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IgYW5vbnltb3VzLWZ1bmN0aW9u
cy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMDozNikKLSAgICAgIDAgaXRlcmF0aW9u
cyBmdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChs
aW5lIDEyOjU5KQotICAgICAgMSBpdGVyYXRpb25zIGZ1bmN0aW9uIGFub255bW91cy1mdW5jdGlv
bnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMTI6NTkpCi0gICAgICAyIGl0ZXJhdGlv
bnMgZnVuY3Rpb24gYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAo
bGluZSAxMjo1OSkKLSAgICAgIDIwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnltb3VzLWZ1bmN0
aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMjo1OSkKLSAgICAgIDEwMDAgaXRl
cmF0aW9ucyBmdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5o
dG1sIChsaW5lIDEyOjU5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I5ZmMzNC4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMtd2l0aC1kaXNw
bGF5LW5hbWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxz
LnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBh
bm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcihpdGVyYXRpb25zKQotewotICAgIHZhciB2YXJpYWJs
ZVRoYXRQb2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgOwotICAgIH0KLSAgICAK
LSAgICB2YXJpYWJsZVRoYXRQb2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24uZGlzcGxheU5hbWUg
PSBpdGVyYXRpb25zICsgIiBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKLSAgICAKLSAgICByZXR1cm4g
dmFyaWFibGVUaGF0UG9pbnRzVG9BbkFub255bW91c0Z1bmN0aW9uOwotfQotCi1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGZ1bmN0aW9ucyB3
aXRoIGRpc3BsYXkgbmFtZXMiKTsKLQotICAgIGFub255bW91c0Z1bmN0aW9uR2VuZXJhdG9yKDAp
KCk7Ci0gICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IoMSkoKTsKLSAgICBhbm9ueW1vdXNG
dW5jdGlvbkdlbmVyYXRvcigyKSgpOwotICAgIGFub255bW91c0Z1bmN0aW9uR2VuZXJhdG9yKDIw
KSgpOwotICAgIGFub255bW91c0Z1bmN0aW9uR2VuZXJhdG9yKDEwMDApKCk7Ci0KLSAgICBlbmRU
ZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3Qo
KSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGFub255bW91cyBmdW5jdGlvbnMgd2l0
aCBkaXNwbGF5IG5hbWVzLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwg
bG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9v
ayBhdAotdGhlIHByb2ZpbGUuICBZb3Ugc2hvdWxkIHNlZSBmdW5jdGlvbnMgbmFtZWQgIlt4XSBp
dGVyYXRpb25zIGZ1bmN0aW9uIiwgYW5kIG5vIGFub255bW91cyBmdW5jdGlvbnMuCi08ZGl2IGlk
PSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9hcHBseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2FwcGx5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NzA4YmQwNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2FwcGx5LWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRoaXMgcGFnZSdzIEph
dmFTY3JpcHQgaGFzIGEgY2FsbCB0byBhcHBseSgpIGluIGl0LiAKLQotVG8gcnVuIHRoaXMgdGVz
dCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3Bl
Y3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxk
IGJlIGEgY2FsbCB0byBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFuZCBhIGNhbGwgdG8gYXBwbHko
KS4KLQotUHJvZmlsZSB0aXRsZTogVXNpbmcgdGhlIGFwcGx5KCkgbWV0aG9kCi1UaHJlYWRfMSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGFwcGx5Lmh0bWwgKGxpbmUgMTA6MTkp
Ci0gICAgICBmYWtlT2JqZWN0IGFwcGx5Lmh0bWwgKGxpbmUgMTc6MjEpCi0gICAgICAgICBmYWtl
SW50ZXJpb3JGdW5jdGlvbiBhcHBseS5odG1sIChsaW5lIDIzOjMwKQotICAgICAgZW5kVGVzdCBw
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvYXBwbHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOThkNDFh
Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2FwcGx5Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAg
IGNvbnNvbGUucHJvZmlsZSgiVXNpbmcgdGhlIGFwcGx5KCkgbWV0aG9kIik7Ci0gICAgdmFyIG15
T2JqZWN0ID0gbmV3IGZha2VPYmplY3QoMSwgMik7Ci0gICAgZW5kVGVzdCgpOwotfQotCi1mdW5j
dGlvbiBmYWtlT2JqZWN0ICh4LCB5KQotewotICAgIHRoaXMueCA9IHg7Ci0gICAgZmFrZUludGVy
aW9yRnVuY3Rpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLX0KLQotZnVuY3Rpb24gZmFrZUlu
dGVyaW9yRnVuY3Rpb24oeCwgeSkKLXsKLSAgICB0aGlzLnkgPSB5OwotfQotCi08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZh
U2NyaXB0IGhhcyBhIGNhbGwgdG8gYXBwbHkoKSBpbiBpdC4KLTxicj4KLTxicj4KLVRvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBX
ZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhl
cmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFuZAotYSBjYWxs
IHRvIGFwcGx5KCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1j
YWxscy1hbm9ueW1vdXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9i
dWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAyYTZiYWYzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRoaXMgcGFnZSB1c2VzIGEgYnVpbHQt
aW4gZnVuY3Rpb24gdG8gY2FsbCBhbiBhbm9ueW1vdXMgZnVuY3Rpb24uIAotCi1UbyBydW4gdGhp
cyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2Vi
SW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSBtYXAoKSBz
aG91bGQgYmUgdGhlIHNpYmxpbmcgb2YgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2hpY2ggaGFz
IGFycmF5T3BlcmF0b3JGdW5jdGlvbigpIGFzIGEgY2hpbGQuCi0KLVByb2ZpbGUgdGl0bGU6IEJ1
aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlvbgotVGhyZWFkXzEgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBidWlsdC1pbi1mdW5jdGlvbi1jYWxscy1h
bm9ueW1vdXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIEFycmF5IChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICBtYXAgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIE9iamVjdCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgdG9MZW5ndGggKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgIHRvSW50ZWdlciAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgTnVtYmVyIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAoYW5vbnltb3Vz
IGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgaXNBcnJheSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgIHNwZWNpZXNHZXR0ZXIgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgIEFycmF5IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBteUZ1bmN0aW9uIGJ1
aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sIChsaW5lIDE0OjMwKQotICAgICAg
ICAgICAgYXJyYXlPcGVyYXRvckZ1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
IChsaW5lIDI1OjMxKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
YnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNWFlZDQ4Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3Jp
cHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAg
IGNvbnNvbGUucHJvZmlsZSgiQnVpbHQtaW4gZnVuY3Rpb24gY2FsbHMgYW4gYW5vbnltb3VzIGZ1
bmN0aW9uIik7Ci0KLSAgICB2YXIgbXlGdW5jdGlvbiA9IGZ1bmN0aW9uKGFycmF5RWxlbWVudCkg
ewotICAgICAgICByZXR1cm4gYXJyYXlPcGVyYXRvckZ1bmN0aW9uKGFycmF5RWxlbWVudCk7Ci0g
ICAgfQotCi0gICAgdmFyIG15QXJyYXkgPSBuZXcgQXJyYXkgKDAsIDEsIDIpOwotICAgIG15QXJy
YXkubWFwKG15RnVuY3Rpb24pOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIHVzZXMgYSBidWls
dC1pbiBmdW5jdGlvbiB0byBjYWxsIGFuIGFub255bW91cyBmdW5jdGlvbi4KLTxicj4KLTxicj4K
LVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBs
b2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHBy
b2ZpbGUgbWFwKCkgc2hvdWxkIGJlIHRoZSBzaWJsaW5nIG9mIGFuIChhbm9ueW1vdXMgZnVuY3Rp
b24pCi13aGljaCBoYXMgYXJyYXlPcGVyYXRvckZ1bmN0aW9uKCkgYXMgYSBjaGlsZC4KLTxkaXYg
aWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1m
dW5jdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWlu
LWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3MTU1ZTcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVu
Y3Rpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhpcyBw
YWdlIHVzZXMgYSBidWlsdC1pbiBmdW5jdGlvbiB0byBjYWxsIGEgdXNlciBkZWZpbmVkIGZ1bmN0
aW9uLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3Nl
ciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4g
dGhlIHByb2ZpbGUgbWFwKCkgc2hvdWxkIGhhdmUgYXJyYXlPcGVyYXRvckZ1bmN0aW9uKCkgYXMg
YSBjaGlsZC4KLQotUHJvZmlsZSB0aXRsZTogQnVpbHQtaW4gZnVuY3Rpb24gY2FsbHMgYSB1c2Vy
IGRlZmluZWQgZnVuY3Rpb24KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFy
dFRlc3QgYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLmh0bWwg
KGxpbmUgMTA6MTkpCi0gICAgICBBcnJheSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgbWFw
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBPYmplY3QgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgIHRvTGVuZ3RoIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICB0
b0ludGVnZXIgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIE51bWJlciAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGlzQXJyYXkgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICAgICBzcGVjaWVzR2V0dGVyIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBBcnJheSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgYXJyYXlPcGVyYXRvckZ1bmN0aW9uIHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI1OjMxKQotICAgICAgZW5kVGVzdCBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZp
bmVkLWZ1bmN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1
bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjNjYzYjY5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0aW9uLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewot
ICAgIGNvbnNvbGUucHJvZmlsZSgiQnVpbHQtaW4gZnVuY3Rpb24gY2FsbHMgYSB1c2VyIGRlZmlu
ZWQgZnVuY3Rpb24iKTsKLQotICAgIHZhciBteUFycmF5ID0gbmV3IEFycmF5ICgwLCAxLCAyKTsK
LSAgICBteUFycmF5Lm1hcChhcnJheU9wZXJhdG9yRnVuY3Rpb24pOwotCi0gICAgZW5kVGVzdCgp
OwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgot
VGhpcyBwYWdlIHVzZXMgYSBidWlsdC1pbiBmdW5jdGlvbiB0byBjYWxsIGEgdXNlciBkZWZpbmVk
IGZ1bmN0aW9uLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBp
dCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAot
dGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSBtYXAoKSBzaG91bGQgaGF2ZSBhcnJheU9wZXJh
dG9yRnVuY3Rpb24oKSBhcyBhIGNoaWxkLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzg2ZmQ5Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxMiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBhIGNhbGwgdG8gY2Fs
bCgpIGluIGl0LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUg
YnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmls
ZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0KCkg
d2l0aCBjYWxsKCkgYXMgaXRzIGNoaWxkIGFuZCBhIGZha2VJbnRlcmlvckZ1bmN0aW9uKCkgYXMg
Y2FsbCgpJ3MgY2hpbGQuCi0KLVByb2ZpbGUgdGl0bGU6IFVzaW5nIHRoZSBjYWxsKCkgbWV0aG9k
Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGNhbGwuaHRtbCAo
bGluZSAxMDoxOSkKLSAgICAgIGZha2VPYmplY3QgY2FsbC5odG1sIChsaW5lIDE5OjIxKQotICAg
ICAgICAgZmFrZUludGVyaW9yRnVuY3Rpb24gY2FsbC5odG1sIChsaW5lIDI1OjMwKQotICAgICAg
ZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFr
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDM2NDdiZi4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGlzIHBhZ2UgdGVz
dHMgdGhhdCB0aGUgZ2VuZXJhdGlvbiBvZiBieXRlY29kZSBhbGxvY2F0ZXMgcmVnaXN0ZXJzIGNv
cnJlY3RseSB3aGVuIHByb2ZpbGluZyBpcyBlbmFibGVkLiBUbyBydW4gdGhlIHRlc3QgbWFudWFs
bHksIGVuYWJsZSBwcm9maWxpbmcgaW4gdGhlIHdlYiBpbnNwZWN0b3IgYW5kIHJlbG9hZCB0aGlz
IHBhZ2UuCi0KLVBBU1M6IGxvY2FsQ2FsbFRlc3QoMSwgMikgc2hvdWxkIGJlIDIgYW5kIGlzLgot
Ci1QQVNTOiBnbG9iYWxDYWxsVGVzdCgxLCAyKSBzaG91bGQgYmUgMiBhbmQgaXMuCi0KLVBBU1M6
IHNjb3BlZENhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQotUEFTUzogcmVzb2x2
ZUNhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQotUEFTUzogYnJhY2tldENhbGxU
ZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQotUEFTUzogZG90Q2FsbFRlc3QoMSwgMikg
c2hvdWxkIGJlIDIgYW5kIGlzLgotCi1QQVNTOiBuZXdUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFu
ZCBpcy4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVn
aXN0ZXItbGVhay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsLXJlZ2lzdGVy
LWxlYWsuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzY2YjQ0MS4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVhay5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAKLTxib2R5PgotPGhlYWQ+Ci08c2NyaXB0
PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwot
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBsb2cocykKLXsKLSAgICBpZiAodGhp
cy5kb2N1bWVudCkKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzICsgIlxuIikpOwotICAgIGVsc2UK
LSAgICAgICAgcHJpbnQocyArICJcbiIpOwotfQotCi1mdW5jdGlvbiBzaG91bGRCZShhLCBhRGVz
Y3JpcHRpb24sIGIpCi17Ci0gICAgaWYgKGEgPT09IGIpCi0gICAgICAgIGxvZygiUEFTUzogIiAr
IGFEZXNjcmlwdGlvbiArICIgc2hvdWxkIGJlICIgKyBiICsgIiBhbmQgaXMuXG4iKTsKLSAgICBl
bHNlCi0gICAgICAgIGxvZygiRkFJTDogIiArIGFEZXNjcmlwdGlvbiArICIgc2hvdWxkIGJlICIg
KyBiICsgIiBidXQgaW5zdGVhZCBpcyAiICsgYSArICIuXG4iKTsKLX0KLQotZnVuY3Rpb24gbG9j
YWxDYWxsVGVzdChhLCBiKQotewotICAgIGZ1bmN0aW9uIGxvY2FsQ2FsbChvKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIG8udG9TdHJpbmcoKTsKLSAgICB9Ci0gICAgcmV0dXJuIFtsb2NhbENhbGwo
YSksIGJdWzFdOwotfQotCi1mdW5jdGlvbiBnbG9iYWxDYWxsKG8pCi17Ci0gICAgcmV0dXJuIG8u
dG9TdHJpbmcoKTsKLX0KLQotZnVuY3Rpb24gZ2xvYmFsQ2FsbFRlc3QoYSwgYikKLXsKLSAgICBy
ZXR1cm4gW2dsb2JhbENhbGwoYSksIGJdWzFdOwotfQotCi1mdW5jdGlvbiBzY29wZWRDYWxsVGVz
dChhLCBiKQotewotICAgIGZ1bmN0aW9uIHNjb3BlZENhbGwobykKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBvLnRvU3RyaW5nKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZigpCi0gICAgewotICAg
ICAgICByZXR1cm4gW3Njb3BlZENhbGwoYSksIGJdWzFdOwotICAgIH0KLQotICAgIHJldHVybiBm
KCk7Ci19Ci0KLWZ1bmN0aW9uIHJlc29sdmVDYWxsVGVzdChhLCBiKQotewotICAgIG8gPSB7IHJl
c29sdmVkQ2FsbDogZnVuY3Rpb24obykgeyByZXR1cm4gby50b1N0cmluZygpOyB9fTsKLSAgICB3
aXRoIChvKSB7Ci0gICAgICAgIHJldHVybiBbcmVzb2x2ZWRDYWxsKG8pLCBiXVsxXTsKLSAgICB9
Ci19Ci0KLWZ1bmN0aW9uIGJyYWNrZXRDYWxsVGVzdChhLCBiKQotewotICAgIHJldHVybiBbYVsi
dG9TdHJpbmciXSgpLCBiXVsxXTsKLX0KLQotZnVuY3Rpb24gZG90Q2FsbFRlc3QoYSwgYikKLXsK
LSAgICByZXR1cm4gW2EudG9TdHJpbmcoKSwgYl1bMV07Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDb25z
dHJ1Y3RvcihvKQotewotICAgIHJldHVybiBvLnRvU3RyaW5nKCk7Ci19Ci0KLWZ1bmN0aW9uIG5l
d1Rlc3QoYSwgYikKLXsKLSAgICByZXR1cm4gW25ldyB0ZXN0Q29uc3RydWN0b3IoYSksIGJdWzFd
OwotfQotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIHNob3VsZEJlKGxvY2FsQ2FsbFRl
c3QoMSwgMiksICJsb2NhbENhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxkQmUoZ2xvYmFs
Q2FsbFRlc3QoMSwgMiksICJnbG9iYWxDYWxsVGVzdCgxLCAyKSIsIDIpOwotICAgIHNob3VsZEJl
KHNjb3BlZENhbGxUZXN0KDEsIDIpLCAic2NvcGVkQ2FsbFRlc3QoMSwgMikiLCAyKTsKLSAgICBz
aG91bGRCZShyZXNvbHZlQ2FsbFRlc3QoMSwgMiksICJyZXNvbHZlQ2FsbFRlc3QoMSwgMikiLCAy
KTsKLSAgICBzaG91bGRCZShicmFja2V0Q2FsbFRlc3QoMSwgMiksICJicmFja2V0Q2FsbFRlc3Qo
MSwgMikiLCAyKTsKLSAgICBzaG91bGRCZShkb3RDYWxsVGVzdCgxLCAyKSwgImRvdENhbGxUZXN0
KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxkQmUobmV3VGVzdCgxLCAyKSwgIm5ld1Rlc3QoMSwgMiki
LCAyKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+
Ci08cD4KLVRoaXMgcGFnZSB0ZXN0cyB0aGF0IHRoZSBnZW5lcmF0aW9uIG9mIGJ5dGVjb2RlIGFs
bG9jYXRlcyByZWdpc3RlcnMgY29ycmVjdGx5IHdoZW4gcHJvZmlsaW5nIGlzIGVuYWJsZWQuIFRv
IHJ1biB0aGUgdGVzdCBtYW51YWxseSwgZW5hYmxlIHByb2ZpbGluZyBpbiB0aGUgd2ViIGluc3Bl
Y3RvciBhbmQgcmVsb2FkIHRoaXMgcGFnZS4KLTwvcD4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJl
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9jYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjEwNWM3YS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAg
ICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0K
LWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJVc2luZyB0aGUg
Y2FsbCgpIG1ldGhvZCIpOwotCi0gICAgdmFyIG15T2JqZWN0ID0gbmV3IGZha2VPYmplY3QoMSwg
Mik7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGZha2VPYmplY3QgKHgsIHkpCi17
Ci0gICAgdGhpcy54ID0geDsKLSAgICBmYWtlSW50ZXJpb3JGdW5jdGlvbi5jYWxsKHRoaXMsIHkp
OwotfQotCi1mdW5jdGlvbiBmYWtlSW50ZXJpb3JGdW5jdGlvbih5KQotewotICAgIHRoaXMueSA9
IHk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+
Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBhIGNhbGwgdG8gY2FsbCgpIGluIGl0LgotPGJy
PgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3Nl
ciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJ
biB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZha2VPYmplY3QoKSB3aXRo
IGNhbGwoKSBhcwotaXRzIGNoaWxkIGFuZCBhIGZha2VJbnRlcmlvckZ1bmN0aW9uKCkgYXMgY2Fs
bCgpJ3MgY2hpbGQuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsaW5nLXRoZS1mdW5jdGlv
bi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQt
c3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmMyYmIxOC4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUt
cHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDEyICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgc3RhcnRzIHByb2ZpbGluZyBm
cm9tIHdpdGhpbiBhIGZ1bmN0aW9uIHdoaWNoIGlzIHRoZW4gY2FsbGVkIGxhdGVyIGZyb20gYW5v
dGhlciBjb250ZXh0LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0
aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJv
ZmlsZS4gSW4gdGhlIHByb2ZpbGVyIHlvdSBzaG91bGQgc2VlIGEgY2FsbCB0byBpbmRpcmVjdGlv
bigpIGFuZCBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCkKLQotUHJvZmls
ZSB0aXRsZTogQ2FsbGluZyB0aGUgc2FtZSBmdW5jdGlvbiB3aGVyZSB0aGUgcHJvZmlsZSBzdGFy
dGVkIGZyb20gYW5vdGhlciBmdW5jdGlvbgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgIGluZGlyZWN0aW9uIGNhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJv
ZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwgKGxpbmUgMTc6MjEpCi0gICAgICBmdW5jdGlv
bldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyIGNhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQt
c3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwgKGxpbmUgMjM6NDcp
Ci0gICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyIGNhbGxpbmctdGhlLWZ1
bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwg
KGxpbmUgMjM6NDcpCi0gICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChs
aW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxs
aW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1z
Y29wZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsaW5nLXRoZS1mdW5jdGlv
bi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzU2N2YyLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFydGVkLXRoZS1w
cm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFs
cykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgaW5kaXJlY3Rpb24oKTsKLSAgICBm
dW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCk7Ci0gICAgZW5kVGVzdCgpOwot
fQotCi1mdW5jdGlvbiBpbmRpcmVjdGlvbigpCi17Ci0gICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5k
U3RvcHNUaGVQcm9maWxlcigpOwotfQotCi12YXIgZmlyc3RUaW1lID0gdHJ1ZTsKLWZ1bmN0aW9u
IGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKQotewotICAgIGlmIChmaXJz
dFRpbWUpIHsKLSAgICAgICAgY29uc29sZS5wcm9maWxlKCJDYWxsaW5nIHRoZSBzYW1lIGZ1bmN0
aW9uIHdoZXJlIHRoZSBwcm9maWxlIHN0YXJ0ZWQgZnJvbSBhbm90aGVyIGZ1bmN0aW9uIik7Ci0g
ICAgICAgIGZpcnN0VGltZSA9IGZhbHNlOwotICAgIH0KLQotICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDAwMDA7IGkrKykKLSAgICAgICAgdmFyIGIgPSBpICsgMjsKLX0KLQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2
YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgZnVuY3Rpb24gd2hpY2ggaXMg
dGhlbiBjYWxsZWQKLWxhdGVyIGZyb20gYW5vdGhlciBjb250ZXh0LgotPGJyPgotPGJyPgotVG8g
cnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQg
dGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmls
ZXIgeW91IHNob3VsZCBzZWUgYSBjYWxsIHRvIGluZGlyZWN0aW9uKCkgYW5kCi1mdW5jdGlvbldp
Y2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCkKLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Nv
bXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYzNiYmUyMC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBtdWx0aXBsZSBwcm9maWxl
cyB3aXRoIHRoZSBzYW1lIG5hbWUuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2Fk
IGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0
IHRoZSBwcm9maWxlLiBJdCBzaG91bGQgbm90IGNyYXNoIG9yIGhhbmcgYW5kIHRoZXJlIHNob3Vs
ZCBiZSBtdWx0aXBsZSBydW5zIG9mIHRoZSBzYW1lIG5hbWVkIHByb2ZpbGUuCi0KLVByb2ZpbGUg
dGl0bGU6IFRlc3QKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qg
Y29tcGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sIChsaW5lIDIyOjE5KQotICAgICAgdGVzdCBj
b21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwgKGxpbmUgMTE6MTQpCi0gICAgICAgICB0ZXN0
MiBjb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwgKGxpbmUgMTc6MTUpCi0KLVByb2ZpbGUg
dGl0bGU6IFRlc3QKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qg
Y29tcGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sIChsaW5lIDIyOjE5KQotICAgICAgdGVzdCBj
b21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwgKGxpbmUgMTE6MTQpCi0gICAgICAgICB0ZXN0
MiBjb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwgKGxpbmUgMTc6MTUpCi0KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmls
ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTYwMmI0NC4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLXZhciBqID0gMDsKLWZ1bmN0aW9u
IHRlc3QobGVuKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkKLSAgICAgICAg
KytqOwotICAgIHRlc3QyKDIwMDAgLSBsZW4pOwotfQotCi1mdW5jdGlvbiB0ZXN0MihsZW4pIHsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKQotICAgICAgICAtLWo7Ci19Ci0KLWZ1
bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJUZXN0Iik7Ci0gICAg
dGVzdCgxMDApOwotICAgIGNvbnNvbGUucHJvZmlsZUVuZCgiVGVzdCIpOwotCi0gICAgY29uc29s
ZS5wcm9maWxlKCJUZXN0Iik7Ci0gICAgdGVzdCgxMDAwKTsKLSAgICBjb25zb2xlLnByb2ZpbGVF
bmQoIlRlc3QiKTsKLQotICAgIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUoKTsKLX0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFn
ZSBoYXMgbXVsdGlwbGUgcHJvZmlsZXMgd2l0aCB0aGUgc2FtZSBuYW1lLgotPGJyPgotPGJyPgot
VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxv
YWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJdCBzaG91bGQg
bm90IGNyYXNoIG9yIGhhbmcgYW5kIHRoZXJlIHNob3VsZCBiZSBtdWx0aXBsZSBydW5zIG9mIHRo
ZQotc2FtZSBuYW1lZCBwcm9maWxlLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0
b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25zdHJ1Y3Rvci1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzZDg5NjMuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25zdHJ1Y3Rvci1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0
IGhhcyBhIGNhbGwgdG8gbmV3KCkgaW4gaXQuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5
LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBs
b29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxs
IHRvIGZha2VPYmplY3QoKSBhbmQgQXJyYXkoKSBpbiBpdC4KLQotUHJvZmlsZSB0aXRsZTogVXNp
bmcgYSBjb25zdHJ1Y3Rvci4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFy
dFRlc3QgY29uc3RydWN0b3IuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGZha2VPYmplY3QgY29u
c3RydWN0b3IuaHRtbCAobGluZSAxOToyMSkKLSAgICAgICAgIEFycmF5IChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25zdHJ1
Y3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25zdHJ1Y3Rvci5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYzYzOTA4Li4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDM2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93
LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93Lmlu
dGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxl
KCJVc2luZyBhIGNvbnN0cnVjdG9yLiIpOwotCi0gICAgdmFyIG15T2JqZWN0ID0gbmV3IGZha2VP
YmplY3QoMSwgMik7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGZha2VPYmplY3Qg
KHgsIHkpCi17Ci0gICAgdmFyIG15QXJyYXkgPSBuZXcgQXJyYXkoKQotICAgIG15QXJyYXlbMF0g
PSA1OwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCki
PgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgYSBjYWxsIHRvIG5ldygpIGluIGl0LgotPGJy
PgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3Nl
ciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJ
biB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZha2VPYmplY3QoKSBhbmQg
QXJyYXkoKQotaW4gaXQuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZGU2NGY2Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDEzICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgSGFzIHNvbWUgZGVh
ZCB0aW1lIGluIHRoZSBwcm9maWxlLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9h
ZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBh
dCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgbGFyZ2UgYW1v
dW50IG9mIHRoZSAlIHNwZW50IGluIChub24tSmF2YVNjcmlwdCkuCi0KLVByb2ZpbGUgdGl0bGU6
IERlYWQgdGltZSBpbiBwcm9maWxlLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
IG9ubG9hZCBkZWFkLXRpbWUuaHRtbCAobGluZSAyMTo0NCkKLSAgICAgIHN0YXJ0VGVzdCBkZWFk
LXRpbWUuaHRtbCAobGluZSAxMjoxOSkKLSAgICAgICAgIHNldFRpbWVvdXQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgIChwcm9ncmFtKSBkZWFkLXRpbWUuaHRtbCAobGluZSAxOjEpCi0gICAgICBl
bmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGE2NjRjZTAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9kZWFkLXRpbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
LX0KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAg
ICBjb25zb2xlLnByb2ZpbGUoIkRlYWQgdGltZSBpbiBwcm9maWxlLiIpOwotICAgIHNldFRpbWVv
dXQoImVuZFRlc3QoKSIsIDEyMzQpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkg
b25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IEhhcyBzb21lIGRl
YWQgdGltZSBpbiB0aGUgcHJvZmlsZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJl
IGEgbGFyZ2UgYW1vdW50IG9mIHRoZSAlIHNwZW50IGluIAotKG5vbi1KYXZhU2NyaXB0KS4KLTxk
aXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODQ5ZjFiZC4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLQotUHJvZmlsZSB0aXRsZTogQ2FsbCBEb2N1
bWVudC53cml0ZSgpCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0
IGRvY3VtZW50LWRvdC13cml0ZS5odG1sIChsaW5lIDEwOjE5KQotICAgICAgd3JpdGUgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2RvY3VtZW50LWRvdC13cml0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kb2N1
bWVudC1kb3Qtd3JpdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY1NGY0
MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13
cml0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRM
ZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRU
ZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkNhbGwgRG9jdW1lbnQud3JpdGUoKSIpOwot
Ci0gICAgZG9jdW1lbnQud3JpdGUoIjxkaXYgaWQ9XCJvdXRwdXRcIj48L2Rpdj4iKTsKLQotICAg
IGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0
VGVzdCgpIj4KLVRoaXMgcGFnZSBjYWxscyBkb2N1bWVudC53cml0ZSgpLgotPGJyPgotPGJyPgot
VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxv
YWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJZiB0aGVyZSBp
cyBhIHByb2ZpbGUgaXQgc2hvdWxkIHNob3cgd3JpdGUoKS4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXItZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNWM0OGNkLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGlzIHBhZ2UgaGFzIGFuIGV2ZW50IGhhbmRs
ZXIuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2Vy
IHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0
aGUgcHJvZmlsZSBpbnNlcnRuZXdUZXh0KCkgc2hvdWxkIGJlIGEgc2libGluZyB0byBvbmxvYWQo
KS4gCi0KLVByb2ZpbGUgdGl0bGU6IEV2ZW50IGhhbmRsZXIKLVRocmVhZF8xIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICBzdGFydFRlc3QgZXZlbnQtaGFuZGxlci5odG1sIChsaW5lIDEwOjE5KQot
ICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGFkZEV2ZW50
TGlzdGVuZXIgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGNsaWNrIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9ldmVudC1oYW5kbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGY2YTQ2MWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9l
dmVudC1oYW5kbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJu
YWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlv
biBzdGFydFRlc3QoKQoteyAgICAKLSAgICBjb25zb2xlLnByb2ZpbGUoIkV2ZW50IGhhbmRsZXIi
KTsKLQotICAgIHZhciBteUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJidXR0b25X
aXRoQW5FdmVudExpc3RlbmVyIik7Ci0gICAgbXlCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCBpbnNlcnROZXdUZXh0LCBmYWxzZSk7Ci0gICAgbXlCdXR0b24uY2xpY2soKTsKLQotICAg
IGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0
VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgYW4gZXZlbnQgaGFuZGxlci4KLTxicj4KLTxicj4KLVRv
IHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2Fk
IHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2Zp
bGUgaW5zZXJ0bmV3VGV4dCgpIHNob3VsZCBiZSBhIHNpYmxpbmcgdG8gb25sb2FkKCkuCi08aW5w
dXQgdHlwZT0iYnV0dG9uIiBpZD0iYnV0dG9uV2l0aEFuRXZlbnRMaXN0ZW5lciIgdmFsdWU9IkJ1
dHRvbiB3aXRoIGFuIGV2ZW50IGxpc3RlbmVyIj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4
ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9uLXNhbWUt
bGluZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5NWMyNjEu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9leGVjdXRpb24tY29udGV4
dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTYgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhIGNhbGwgdG8gZXZhbCBhbmQgYSBzY3JpcHQgdGFn
IG9uIHRoZSBzYW1lIGxpbmUuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0
IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRo
ZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgbXVsdGlwbGUgKHByb2dy
YW0pIGVsZW1lbnRzIGFuZCBvbmUgdGhhdCByZXByZXNlbnRzIHRoZSBldmFsKCkuCi0KLVByb2Zp
bGUgdGl0bGU6IFR3byBFeGVjdXRpb24gQ29udGV4dHMgb24gdGhlIHNhbWUgbGluZQotVGhyZWFk
XzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBleGVjdXRpb24tY29udGV4dC1h
bmQtZXZhbC1vbi1zYW1lLWxpbmUuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGV2YWxGdW5jdGlv
biAobm8gZmlsZSkgKGxpbmUgMToyMikKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVt
ZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9leGVjdXRpb24tY29udGV4
dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
ZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGE3NWIyOWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9leGVjdXRpb24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNj
cmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0g
ICAgY29uc29sZS5wcm9maWxlKCJUd28gRXhlY3V0aW9uIENvbnRleHRzIG9uIHRoZSBzYW1lIGxp
bmUiKTsKLQotICAgIGV2YWxGdW5jdGlvbigpOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3Jp
cHQ+Ci08c2NyaXB0PgotZXZhbCgiZnVuY3Rpb24gZXZhbEZ1bmN0aW9uKCkgeyBpbnNlcnROZXdU
ZXh0KCk7IH0iKTsKLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVz
dCgpIj4KLVRoaXMgcGFnZSBoYXMgYSBjYWxsIHRvIGV2YWwgYW5kIGEgc2NyaXB0IHRhZyBvbiB0
aGUgc2FtZSBsaW5lLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9h
ZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBh
dAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgbXVsdGlwbGUg
KHByb2dyYW0pIGVsZW1lbnRzIGFuZAotb25lIHRoYXQgcmVwcmVzZW50cyB0aGUgZXZhbCgpLgot
PGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwMjNlNWYuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGlzIHBhZ2UgaGFzIGFuIGlu
bGluZSBldmVudCBoYW5kbGVyLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBp
dCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0
aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgb25jbGljaygpIHNob3VsZCBiZSBhIHNpYmxpbmcg
dG8gb25sb2FkKCkgYW5kIG9uY2xpY2soKSBzaG91bGQgaGF2ZSBldmVudExpc3RlbmVyKCkgYXMg
YSBjaGlsZC4gCi0KLVByb2ZpbGUgdGl0bGU6IElubGluZSBldmVudCBoYW5kbGVyCi1UaHJlYWRf
MSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGlubGluZS1ldmVudC1oYW5kbGVy
Lmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgY2xpY2sgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIG9uY2xpY2sg
aW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbCAobGluZSAzMToxMjcpCi0gICAgICAgICAgICBldmVu
dExpc3RlbmVyIGlubGluZS1ldmVudC1oYW5kbGVyLmh0bWwgKGxpbmUgMTc6MjMpCi0gICAgICAg
ICAgICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAo
bGluZSAyOTozNCkKLSAgICAgICAgICAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICAgICAgICAgICBjcmVh
dGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBjcmVh
dGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgYXBw
ZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGdldEVs
ZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBlbmRUZXN0IHBy
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDAxNDYzLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDM0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3By
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93
LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17ICAgIAotICAgIGNvbnNvbGUu
cHJvZmlsZSgiSW5saW5lIGV2ZW50IGhhbmRsZXIiKTsKLQotICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJldmVudExpc3RlbmVyU2V0SW5saW5lIikuY2xpY2soKTsKLX0KLQotZnVuY3Rpb24g
ZXZlbnRMaXN0ZW5lcigpIHsgICAgCi0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBlbmRU
ZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3Qo
KSI+Ci1UaGlzIHBhZ2UgaGFzIGFuIGlubGluZSBldmVudCBoYW5kbGVyLgotPGJyPgotPGJyPgot
VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxv
YWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJv
ZmlsZSBvbmNsaWNrKCkgc2hvdWxkIGJlIGEgc2libGluZyB0byBvbmxvYWQoKSBhbmQgb25jbGlj
aygpCi1zaG91bGQgaGF2ZSBldmVudExpc3RlbmVyKCkgYXMgYSBjaGlsZC4KLTxpbnB1dCB0eXBl
PSJidXR0b24iIG9uY2xpY2s9ImV2ZW50TGlzdGVuZXIoKSIgaWQ9ImV2ZW50TGlzdGVuZXJTZXRJ
bmxpbmUiIHZhbHVlPSJFdmVudCBMaXN0ZW5lciBTZXQgSW5saW5lIj4KLTxkaXYgaWQ9Im91dHB1
dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNkNDVkMS4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2Nv
cGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotVGhpcyBwYWdl
J3MgSmF2YVNjcmlwdCBoYXMgbWFueSBmdW5jdGlvbiBjYWxscyBpbiB0aGUgc2FtZSBzY29wZS4g
Ci0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBw
cm9maWxlIG1hbnkgZnVuY3Rpb25zIHNob3VsZCBiZSB0aGUgY2hpbGRyZW4gb2Ygc3RhcnRUZXN0
LiBVc2UgdGhlIHNvcnRpbmcgY2FwYWJpbGl0ZXMgdG8gbWFrZSBzdXJlIHRoZSBzaW1pbGFybHkg
bmFtZWQgZnVuY3Rpb25zIGFyZSBzb3J0ZWQgY29ycmVjdGx5LgotCi1Qcm9maWxlIHRpdGxlOiBN
YW55IENhbGxzIEluIFRoZSBTYW1lIFNjb3BlCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgc3RhcnRUZXN0IG1hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbCAobGluZSAx
MDoxOSkKLSAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMTc6MjMpCi0gICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
YXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGdldEVsZW1lbnRCeUlk
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBpbnNlcnRHaXZlblRleHQgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgOToyNSkKLSAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGFycmF5T3BlcmF0
b3JGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyNTozMSkKLSAg
ICAgIGludGVybWVkaWFyeUZ1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChs
aW5lIDMyOjMwKQotICAgICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICAgICBpbnNlcnROZXdUZXh0IHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgICAgY3Jl
YXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgY3JlYXRlVGV4
dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxl
bWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgZW5kIG1hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbCAobGluZSAyNjoxMykK
LSAgICAgIGVuZFQgbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sIChsaW5lIDMxOjE0
KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3
KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1p
bi10aGUtc2FtZS1zY29wZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNh
bGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDA3MTliY2UuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNh
bGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwot
Ci1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiTWFueSBDYWxs
cyBJbiBUaGUgU2FtZSBTY29wZSIpOwotCi0gICAgaW5zZXJ0TmV3VGV4dCgpOwotICAgIGluc2Vy
dEdpdmVuVGV4dCgiVGhpcyB3YXMgYSB0cml1bXBoLiIpOwotICAgIGFycmF5T3BlcmF0b3JGdW5j
dGlvbig3KTsKLSAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbigpOwotICAgIGFub255bW91c0Z1bmN0
aW9uKCk7Ci0gICAgZW5kKCkKLSAgICBlbmRUKCk7Ci0gICAgZW5kVCgpOwotCi0gICAgZW5kVGVz
dCgpOwotfQotCi1mdW5jdGlvbiBlbmQoKQotewotICAgIHZhciB4ID0gMDsKLX0KLQotZnVuY3Rp
b24gZW5kVCgpCi17Ci0gICAgdmFyIHkgPSAxOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBt
YW55IGZ1bmN0aW9uIGNhbGxzIGluIHRoZSBzYW1lIHNjb3BlLgotPGJyPgotPGJyPgotVG8gcnVu
IHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhl
IFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSBt
YW55IGZ1bmN0aW9ucyBzaG91bGQgYmUgdGhlIGNoaWxkcmVuIG9mIHN0YXJ0VGVzdC4KLVVzZSB0
aGUgc29ydGluZyBjYXBhYmlsaXRlcyB0byBtYWtlIHN1cmUgdGhlIHNpbWlsYXJseSBuYW1lZCBm
dW5jdGlvbnMgYXJlIHNvcnRlZAotY29ycmVjdGx5LgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZl
cmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDUxZWM4MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1m
dW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBA
Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIHRoZSBzYW1lIGFub255bW91cyBmdW5jdGlv
biBmcm9tIG11bHRpcGxlIGFuZCBkaWZmZXJlbnRseSBzY29wZWQgbG9jYXRpb25zLiAKLQotVG8g
cnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQg
dGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUg
dGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0IHdpdGggZmFrZUludGVyaW9yRnVu
Y3Rpb24gYXMgaXRzIGNoaWxkLCBidXQgY2FsbCgpIHNob3VsZCBub3QgYmUgc2hvd24uCi0KLVBy
b2ZpbGUgdGl0bGU6IE11bHRpcGxlIGFuZCBkaWZmZXJlbnQgc2NvcGVkIGNhbGxzIHRvIHRoZSBz
YW1lIGFub255bW91cyBmdW5jdGlvbgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
IHN0YXJ0VGVzdCBtdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1vdXMtZnVuY3Rp
b24tY2FsbHMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3
VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAg
ICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0
ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgIGludGVybWVkaWFyeUZ1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIChsaW5lIDMyOjMwKQotICAgICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICAgICBpbnNl
cnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAg
ICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
IGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBnZXRFbGVt
ZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1
bmN0aW9uLWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFu
ZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMmQwMDVhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1
bmN0aW9uLWNhbGxzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJu
YWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlv
biBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiTXVsdGlwbGUgYW5kIGRpZmZl
cmVudCBzY29wZWQgY2FsbHMgdG8gdGhlIHNhbWUgYW5vbnltb3VzIGZ1bmN0aW9uIik7Ci0KLSAg
ICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGFub255bW91c0Z1bmN0aW9uKCk7Ci0KLSAgICBp
bnRlcm1lZGlhcnlGdW5jdGlvbigpOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNj
cmlwdCBjYWxscyB0aGUgc2FtZSBhbm9ueW1vdXMgZnVuY3Rpb24gZnJvbSBtdWx0aXBsZSBhbmQg
ZGlmZmVyZW50bHkgc2NvcGVkIGxvY2F0aW9ucy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRl
c3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNw
ZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hv
dWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0IHdpdGgKLWZha2VJbnRlcmlvckZ1bmN0aW9uIGFz
IGl0cyBjaGlsZCwgYnV0IGNhbGwoKSBzaG91bGQgbm90IGJlIHNob3duLgotPGRpdiBpZD0ib3V0
cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlm
ZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGI5ZmRjZWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZh
U2NyaXB0IGNhbGxzIHRoZSBzYW1lIGZ1bmN0aW9uIGZyb20gbXVsdGlwbGUgYW5kIGRpZmZlcmVu
dGx5IHNjb3BlZCBsb2NhdGlvbnMuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2Fk
IGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0
IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgdHdvIGNhbGxzIHRv
IGluc2VydE5ld1RleHQgdW5kZXIgc3RhcnRUZXN0KCkgYW5kIG9uZSB1bmRlciBhbiAoYW5vbnlt
b3VzIGZ1bmN0aW9uKSB1bmRlciBpbnRlcm1lZGlhcnlGdW5jdGlvbigpLgotCi1Qcm9maWxlIHRp
dGxlOiBNdWx0aXBsZSBhbmQgZGlmZmVyZW50IHNjb3BlZCBjYWxscyB0byB0aGUgc2FtZSBmdW5j
dGlvbgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBtdWx0aXBs
ZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy5odG1sIChsaW5lIDEwOjE5KQot
ICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAx
NzoyMykKLSAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBhcHBlbmRD
aGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgIGludGVybWVkaWFyeUZ1bmN0aW9uIHByb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIChsaW5lIDMyOjMwKQotICAgICAgICAgYW5vbnltb3VzRnVuY3Rpb24g
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICAgICBp
bnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQot
ICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBnZXRF
bGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24t
Y2FsbHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZl
cmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZmMyZTIyMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211
bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNv
bGUucHJvZmlsZSgiTXVsdGlwbGUgYW5kIGRpZmZlcmVudCBzY29wZWQgY2FsbHMgdG8gdGhlIHNh
bWUgZnVuY3Rpb24iKTsKLQotICAgIGluc2VydE5ld1RleHQoKTsKLSAgICBpbnNlcnROZXdUZXh0
KCk7Ci0KLSAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbigpOwotCi0gICAgZW5kVGVzdCgpOwotfQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBw
YWdlJ3MgSmF2YVNjcmlwdCBjYWxscyB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIG11bHRpcGxlIGFu
ZCBkaWZmZXJlbnRseSBzY29wZWQgbG9jYXRpb25zLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMg
dGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYklu
c3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBz
aG91bGQgYmUgdHdvIGNhbGxzIHRvIGluc2VydE5ld1RleHQgdW5kZXIKLXN0YXJ0VGVzdCgpIGFu
ZCBvbmUgdW5kZXIgYW4gKGFub255bW91cyBmdW5jdGlvbikgdW5kZXIgaW50ZXJtZWRpYXJ5RnVu
Y3Rpb24oKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255bW91cy1mdW5j
dGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1m
cm9tLXRoZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZTQwMTQwNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rp
b24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhpcyBwYWdl
J3MgSmF2YVNjcmlwdCBjYWxscyB0aGUgZGlmZmVyZW50IGFub255bW91cyBmdW5jdGlvbnMgdGhl
IHNhbWUgc2NvcGUuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRo
ZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9m
aWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHR3byBlbnRyaWVzIG5h
bWVkIHRvIChhbm9ueW1vdXMgZnVuY3Rpb24pLCBhcyBvcHBvc2VkIHRvIG9uZSBlbnRyeSBjYWxs
ZWQgdHdpY2UuCi0KLVByb2ZpbGUgdGl0bGU6IE11bHRpcGxlIGNhbGxzIHRvIGRpZmZlcmVudCBh
bm9ueW1vdXMgZnVuY3Rpb25zCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3Rh
cnRUZXN0IG11bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUt
ZnVuY3Rpb24uaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3
VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAg
ICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0
ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgIGFub3RoZXJBbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyAobGluZSAzMDo0MSkKLSAgICAgICAgIGluc2VydEdpdmVuVGV4dCBw
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA5OjI1KQotICAgICAgICAgICAgY3Jl
YXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5v
ZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAx
OjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUt
YW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNh
bGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGZiMWNmMmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9t
dWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9u
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2Fj
eUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3Qo
KQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiTXVsdGlwbGUgY2FsbHMgdG8gZGlmZmVyZW50IGFu
b255bW91cyBmdW5jdGlvbnMiKTsKLQotICAgIGFub255bW91c0Z1bmN0aW9uKCk7Ci0gICAgYW5v
dGhlckFub255bW91c0Z1bmN0aW9uKCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4K
LTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZh
U2NyaXB0IGNhbGxzIHRoZSBkaWZmZXJlbnQgYW5vbnltb3VzIGZ1bmN0aW9ucyB0aGUgc2FtZSBz
Y29wZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4g
dGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBw
cm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0d28gZW50cmll
cyBuYW1lZCB0byAoYW5vbnltb3VzIGZ1bmN0aW9uKSwKLWFzIG9wcG9zZWQgdG8gb25lIGVudHJ5
IGNhbGxlZCB0d2ljZS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlMjNmNGMuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhpcyB0ZXN0IGhhcyBKUyBl
eGVjdXRpbmcgaW4gYW5vdGhlciB3aW5kb3cuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5
LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBs
b29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxs
IHRvIGZ1bmN0aW9uSW5PdGhlckZyYW1lKCkuCi0KLVByb2ZpbGUgdGl0bGU6IE90aGVyIHdpbmRv
dyBleGVjdXRpbmcgSmF2YVNjcmlwdAotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
IHN0YXJ0VGVzdCBtdWx0aXBsZS1mcmFtZXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGdldEVs
ZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBmdW5jdGlvbkluT3RoZXJGcmFt
ZSBvdGhlci1mcmFtZS5odG1sIChsaW5lIDQ6MzApCi0gICAgICAgICBmdW5jdGlvbkluUGFyZW50
RnJhbWUgbXVsdGlwbGUtZnJhbWVzLmh0bWwgKGxpbmUgMjE6MzEpCi0gICAgICBpbnNlcnRHaXZl
blRleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgOToyNSkKLSAgICAgICAg
IGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGNyZWF0ZVRleHRO
b2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykK
LQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1l
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFtZXMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFiNGZmNi4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5k
b3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5n
RW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnBy
b2ZpbGUoIk90aGVyIHdpbmRvdyBleGVjdXRpbmcgSmF2YVNjcmlwdCIpOwotCi0gICAgdmFyIG15
RnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdWJGcmFtZSIpOwotICAgIHZhciBz
ZWNyZXQgPSBteUZyYW1lLmNvbnRlbnRXaW5kb3cuZnVuY3Rpb25Jbk90aGVyRnJhbWUoKTsKLSAg
ICBpbnNlcnRHaXZlblRleHQoc2VjcmV0KTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rp
b24gZnVuY3Rpb25JblBhcmVudEZyYW1lKCkgewotICAgIHJldHVybiAiUGkiOwotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyB0ZXN0IGhh
cyBKUyBleGVjdXRpbmcgaW4gYW5vdGhlciB3aW5kb3cuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhp
cyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2Vi
SW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJl
IHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25Jbk90aGVyRnJhbWUoKS4KLTxkaXYgaWQ9Im91
dHB1dCI+PC9kaXY+Ci08aWZyYW1lIHNyYz0icmVzb3VyY2VzL290aGVyLWZyYW1lLmh0bWwiIGlk
PSJteVN1YkZyYW1lIj48L2lmcmFtZT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1l
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVkLWZ1bmN0aW9u
cy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxOTBhNjRjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxNiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIG5hbWVk
IGZ1bmN0aW9ucyBhbmQgY2hhbmdlcyB0aGVpciBkaXNwbGF5IG5hbWVzLiAKLQotVG8gcnVuIHRo
aXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdl
Ykluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gWW91IHNob3VsZCBzZWUgZnVuY3Rp
b25zIG5hbWVkICJbeF0gaXRlcmF0aW9uW3NdIGZ1bmN0aW9uIiwgYW5kIG5vdCAiZnVuY3Rpb25b
eF0iCi0KLVByb2ZpbGUgdGl0bGU6IE5hbWVkIGZ1bmN0aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMK
LVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmFtZWQtZnVuY3Rp
b25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDUzOjE5KQotICAgICAgMCBpdGVyYXRp
b25zIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGlu
ZSAxMDoxOSkKLSAgICAgIDEgaXRlcmF0aW9uIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRo
LWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxNzoxOSkKLSAgICAgIDIgaXRlcmF0aW9ucyBmdW5j
dGlvbiBuYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMjQ6MTkp
Ci0gICAgICAyMCBpdGVyYXRpb25zIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3Bs
YXktbmFtZXMuaHRtbCAobGluZSAzMToyMCkKLSAgICAgIDEwMDAgaXRlcmF0aW9ucyBmdW5jdGlv
biBuYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMzg6MjIpCi0g
ICAgICBib2d1c0Rpc3BsYXlOYW1lRnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxh
eS1uYW1lcy5odG1sIChsaW5lIDQ2OjM0KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVz
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhZjJlYzAuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5
LW5hbWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBmdW5j
dGlvbjAoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMDsgKytpKSA7Ci19Ci0KLWZ1bmN0
aW9uMC5kaXNwbGF5TmFtZSA9ICIwIGl0ZXJhdGlvbnMgZnVuY3Rpb24iOwotCi1mdW5jdGlvbiBm
dW5jdGlvbjEoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTsgKytpKSA7Ci19Ci0KLWZ1
bmN0aW9uMS5kaXNwbGF5TmFtZSA9ICIxIGl0ZXJhdGlvbiBmdW5jdGlvbiI7Ci0KLWZ1bmN0aW9u
IGZ1bmN0aW9uMigpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyOyArK2kpIDsKLX0KLQot
ZnVuY3Rpb24yLmRpc3BsYXlOYW1lID0gIjIgaXRlcmF0aW9ucyBmdW5jdGlvbiI7Ci0KLWZ1bmN0
aW9uIGZ1bmN0aW9uMjAoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjA7ICsraSkgOwot
fQotCi1mdW5jdGlvbjIwLmRpc3BsYXlOYW1lID0gIjIwIGl0ZXJhdGlvbnMgZnVuY3Rpb24iOwot
Ci1mdW5jdGlvbiBmdW5jdGlvbjEwMDAoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDsgKytpKSA7Ci19Ci0KLWZ1bmN0aW9uMTAwMC5kaXNwbGF5TmFtZSA9ICIxMDAwIGl0ZXJhdGlv
bnMgZnVuY3Rpb24iOwotCi0KLWZ1bmN0aW9uIGJvZ3VzRGlzcGxheU5hbWVGdW5jdGlvbigpCi17
Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAwOyArK2kpIDsKLX0KLQotYm9ndXNEaXNwbGF5TmFt
ZUZ1bmN0aW9uLmRpc3BsYXlOYW1lID0gYm9ndXNEaXNwbGF5TmFtZUZ1bmN0aW9uOwotCi1mdW5j
dGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiTmFtZWQgZnVuY3Rpb25z
IHdpdGggZGlzcGxheSBuYW1lcyIpOwotCi0gICAgZnVuY3Rpb24wKCk7Ci0gICAgZnVuY3Rpb24x
KCk7Ci0gICAgZnVuY3Rpb24yKCk7Ci0gICAgZnVuY3Rpb24yMCgpOwotICAgIGZ1bmN0aW9uMTAw
MCgpOwotICAgIGJvZ3VzRGlzcGxheU5hbWVGdW5jdGlvbigpOwotCi0gICAgZW5kVGVzdCgpOwot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhp
cyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBuYW1lZCBmdW5jdGlvbnMgYW5kIGNoYW5nZXMgdGhl
aXIgZGlzcGxheSBuYW1lcy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQKLXRoZSBwcm9maWxlLiAgWW91IHNob3VsZCBzZWUgZnVuY3Rpb25zIG5hbWVkICJbeF0g
aXRlcmF0aW9uW3NdIGZ1bmN0aW9uIiwgYW5kIG5vdCAiZnVuY3Rpb25beF0iCi08ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24tZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjI5YTQyLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFT
Y3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIHdoaWNoIGNhbGxzIGEgbmVzdGVkIGFub255bW91cyBm
dW5jdGlvbi4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJy
b3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUu
IEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhbiAoYW5vbnltb3VzIGZ1bmN0aW9uKSB3
aXRoIGEgY2hpbGQgKGFub255bW91cyBmdW5jdGlvbikuCi0KLVByb2ZpbGUgdGl0bGU6IE5lc3Rl
ZCBhbm9ueW1vdXMgZnVuY3Rpb25zIGNhbGxlZAotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgIHN0YXJ0VGVzdCBuZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbCAobGluZSAxMDox
OSkKLSAgICAgIEFub255bW91c0Z1bmN0aW9uV2ljaENhbGxzQW5Bbm9ueW1vdXNGdW5jdGlvbiBu
ZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbCAobGluZSAxNDo2NSkKLSAgICAgICAgIGFub255
bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQot
ICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAo
bGluZSAxNzoyMykKLSAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRl
c3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24u
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjZiOTI1YS4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVuY3Rvbi5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZh
U2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsK
LSAgICBjb25zb2xlLnByb2ZpbGUoIk5lc3RlZCBhbm9ueW1vdXMgZnVuY3Rpb25zIGNhbGxlZCIp
OwotCi0gICAgdmFyIEFub255bW91c0Z1bmN0aW9uV2ljaENhbGxzQW5Bbm9ueW1vdXNGdW5jdGlv
biA9IGZ1bmN0aW9uKCkgewotICAgICAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIH0KLQot
ICAgIEFub255bW91c0Z1bmN0aW9uV2ljaENhbGxzQW5Bbm9ueW1vdXNGdW5jdGlvbigpOwotCi0g
ICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3Rh
cnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBhbiBhbm9ueW1vdXMgd2hp
Y2ggY2FsbHMgYSBuZXN0ZWQgYW5vbnltb3VzIGZ1bmN0aW9uLgotPGJyPgotPGJyPgotVG8gcnVu
IHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhl
IFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0
aGVyZSBzaG91bGQgYmUgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2l0aCBhIGNoaWxkCi0oYW5v
bnltb3VzIGZ1bmN0aW9uKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1zdGFydC1h
bmQtc3RvcC1wcm9maWxlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L25lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE1YTMwOWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTg2ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2Fs
bHMgY29uc29sZS5wcm9maWxlKCkgdGhyZWUgdGltZXMgdGhlbiBjb25zb2xlLnByb2ZpbGVFbmQo
KSB0aHJlZSB0aW1lcy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4g
dGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHBy
b2ZpbGUuIEluIHRoZSBwcm9maWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJvZmlsZXMuCi0K
LVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgdGhpcmQgdGltZS4KLVRocmVh
ZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVzdGVkLXN0YXJ0LWFuZC1z
dG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQotUHJvZmlsZSB0aXRsZTogU3RhcnQg
dGhlIHByb2ZpbGVyIHRoZSB0aGlyZCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgIHN0YXJ0VGVzdCBuZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbCAobGlu
ZSAxMDoxOSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMToxNykKLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBzZWNvbmQg
dGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVzdGVk
LXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRUZXN0
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0gICAgICAgICBwcm9m
aWxlRW5kIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBwcmludFByb2ZpbGVzRGF0YVdp
dGhvdXRUaW1lIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDYyOjM4KQotICAg
ICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
Y3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENo
aWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0
aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6MzcpCi0gICAg
ICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBw
cmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJp
bmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAo
YW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBj
cmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgYXBw
ZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNoaWxkcmVu
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBwcmludFByb2ZpbGVOb2Rl
V2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6MzcpCi0g
ICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5vbnlt
b3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAg
ICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBj
cmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAg
YXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGNo
aWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgbm90aWZ5RG9uZSAobm8gZmlsZSkgKGxpbmUg
MDowKQotCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgdGhpcmQgdGlt
ZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVzdGVkLXN0
YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRUZXN0IHBy
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLVByb2ZpbGUgdGl0bGU6
IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25kIHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG5lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci5o
dG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAxOjE3KQotICAgICAgICAgcHJvZmlsZUVuZCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyAobGluZSA2MjozOCkKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHByb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAgcmVwbGFjZSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3Rz
Rm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAg
ICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgICAgIGFub255bW91cyAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgY3Jl
YXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGFwcGVuZENo
aWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1l
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAg
ICAgICAgcmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAg
aGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFub255bW91cyAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHByb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAgICAgICAgcmVwbGFj
ZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgaGFzT2JzZXJ2
YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGFub255bW91cyAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgIG5vdGlmeURvbmUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLQotUHJvZmlsZSB0aXRsZTogU3Rh
cnQgdGhlIHByb2ZpbGVyIHRoZSBmaXJzdCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgIHN0YXJ0VGVzdCBuZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbCAo
bGluZSAxMDoxOSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMToxNykKLSAgICAgICAgIHByb2ZpbGVFbmQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMgKGxpbmUgNjI6MzgpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0
cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIChh
bm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRl
eHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAg
IHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGhhc09i
c2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVT
aWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAg
IHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24p
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1v
dXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRl
eHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICBhcHBl
bmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgY2hp
bGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50
UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRl
RWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGls
ZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRy
ZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50
UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFi
bGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1v
dXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxh
Y2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRD
aGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2Ug
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2Rl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZm
ZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRy
ZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmlu
Z1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9u
eW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hp
bGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBub3RpZnlEb25lIChubyBmaWxlKSAobGluZSAw
OjApCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3Rh
cnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVz
dGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDJlNzg3MjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9u
ZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMx
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVy
bmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJT
dGFydCB0aGUgcHJvZmlsZXIgdGhlIGZpcnN0IHRpbWUuIik7Ci0gICAgY29uc29sZS5wcm9maWxl
KCJTdGFydCB0aGUgcHJvZmlsZXIgdGhlIHNlY29uZCB0aW1lLiIpOwotICAgIGNvbnNvbGUucHJv
ZmlsZSgiU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSB0aGlyZCB0aW1lLiIpOwotICAgIGVuZFRlc3Qo
KTsKLSAgICBlbmRUZXN0KCk7Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBj
YWxscyBjb25zb2xlLnByb2ZpbGUoKSB0aHJlZSB0aW1lcyB0aGVuIGNvbnNvbGUucHJvZmlsZUVu
ZCgpCi10aHJlZSB0aW1lcy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGVyIHRoZXJlIHNob3VsZCBiZSB0aHJl
ZSBwcm9maWxlcy4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNv
bnRleHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NTVkY2Ni
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhlY3V0aW9uLWNv
bnRleHQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1UaGlzIHBh
Z2UgaGFzIGEgbm8gcHJvZmlsaW5nIGluZm9ybWF0aW9uLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBt
YW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3Rv
ciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gWW91IHNob3VsZCBub3Qgc2VlIGFueSBwcm9maWxl
IGRhdGUgaW4gdGhlIFdlYkluc3BlY3Rvci4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDE5Yzg1MzkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9uby1leGVjdXRpb24tY29udGV4dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBA
QAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQot
ICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsK
LTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InByaW50UHJvZmlsZXNEYXRhV2l0
aG91dFRpbWUoKSI+Ci1UaGlzIHBhZ2UgaGFzIGEgbm8gcHJvZmlsaW5nIGluZm9ybWF0aW9uLgot
PGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJv
d3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUu
ICBZb3Ugc2hvdWxkIG5vdCBzZWUgYW55IHByb2ZpbGUgZGF0ZSBpbiB0aGUgV2ViSW5zcGVjdG9y
LgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0LWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhkZDY3MC4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2UgaGFz
IGEgc2luZ2xlIHNjcmlwdCB0YWcgd2l0aCBzb21lIHNpbXBsZSBKYXZhU2NyaXB0LiAKLQotVG8g
cnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQg
dGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4KLQotUHJvZmlsZSB0aXRs
ZTogT25lIEV4ZWN1dGlvbiBDb250ZXh0Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgc3RhcnRUZXN0IG9uZS1leGVjdXRpb24tY29udGV4dC5odG1sIChsaW5lIDEwOjE5KQotICAg
ICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250
ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4
dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTVmODczLi4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewot
ICAgIGNvbnNvbGUucHJvZmlsZSgiT25lIEV4ZWN1dGlvbiBDb250ZXh0Iik7Ci0gICAgZW5kVGVz
dCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3Qo
KSI+Ci1UaGlzIHBhZ2UgaGFzIGEgc2luZ2xlIHNjcmlwdCB0YWcgd2l0aCBzb21lIHNpbXBsZSBK
YXZhU2NyaXB0LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBp
dCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAot
dGhlIHByb2ZpbGUuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWlu
Y2x1ZGVkLWZpbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9m
aWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjNDJkMTcxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSBjYWxscyB0aGUgcHJvZmlsZXIgZnJv
bSB0aGUgaW5jbHVkZWQgZmlsZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQg
aXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQg
dGhlIHByb2ZpbGUuIElmIHRoZXJlIGlzIGEgcHJvZmlsZSB0aGF0IGlzIHN1ZmZpY2llbnQgZm9y
IHRoaXMgdGVzdC4KLQotUHJvZmlsZSB0aXRsZTogUHJvZmlsZSBjYWxsIGluIGluY2x1ZGVkIGZp
bGUKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFByb2ZpbGUgcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNDI6MjIpCi0gICBlbmRUZXN0IHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxl
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmMGY4ZjIuLjAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZp
bGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVn
YWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVz
dCgpCi17Ci0gICAgc3RhcnRQcm9maWxlKCJQcm9maWxlIGNhbGwgaW4gaW5jbHVkZWQgZmlsZSIp
OwotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9
InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBjYWxscyB0aGUgcHJvZmlsZXIgZnJvbSB0aGUgaW5j
bHVkZWQgZmlsZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQg
aXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQK
LXRoZSBwcm9maWxlLiAgSWYgdGhlcmUgaXMgYSBwcm9maWxlIHRoYXQgaXMgc3VmZmljaWVudCBm
b3IgdGhpcyB0ZXN0LgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci08L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMThkYWNkYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2UgY3JlYXRlcyBhIHByb2ZpbGUgd2l0aG91dCBh
IHRpdGxlLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJv
d3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4g
SWYgdGhlcmUgaXMgYSBwcm9maWxlIHRoYXQgaXMgc3VmZmljaWVudCBmb3IgdGhpcyB0ZXN0Lgot
Ci1Qcm9maWxlIHRpdGxlOiAKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFy
dFRlc3QgcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRU
ZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhNTI1YmMuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1p
ZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29u
c29sZS5wcm9maWxlKCk7Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0K
LTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIGNyZWF0ZXMgYSBwcm9maWxl
IHdpdGhvdXQgYSB0aXRsZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQKLXRoZSBwcm9maWxlLiAgSWYgdGhlcmUgaXMgYSBwcm9maWxlIHRoYXQgaXMgc3VmZmlj
aWVudCBmb3IgdGhpcyB0ZXN0LgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci08
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmls
aW5nLW91dHNpZGUtdGhlLW5lc3RpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxp
bmctb3V0c2lkZS10aGUtbmVzdGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDE1NmEyYjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0
c2lkZS10aGUtbmVzdGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCww
IEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJvbSB3aXRoaW4g
YSBuZXN0ZWQgbG9jYXRpb24gYnV0IHN0b3BzIHRoZSBwcm9maWxlciBmcm9tIGEgZGlmZmVyZW50
IGxldmVsIG9mIG5lc3RpbmcuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0
IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRo
ZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZ1bmN0
aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKS4KLQotUHJvZmlsZSB0aXRsZTogUHJv
ZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24gQnV0IFN0b3AgUHJvZmlsaW5nIE91dHNpZGUg
VGhlIE5lc3RpbmcKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBmdW5jdGlvbldp
Y2hTdGFydHNUaGVQcm9maWxlciBwcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQt
c3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy5odG1sIChsaW5lIDE2OjM5KQotICAg
ZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0
ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRp
b24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNDhiNWY3Ny4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXBy
b2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGZ1bmN0aW9uV2ljaFN0YXJ0c1Ro
ZVByb2ZpbGVyKCk7Ci0gICAgZW5kVGVzdCgpOwotfQotCi1mdW5jdGlvbiBmdW5jdGlvbldpY2hT
dGFydHNUaGVQcm9maWxlcigpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJQcm9maWxpbmcgRnJv
bSBBIE5lc3RlZCBMb2NhdGlvbiBCdXQgU3RvcCBQcm9maWxpbmcgT3V0c2lkZSBUaGUgTmVzdGlu
ZyIpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgaSsrKQotICAgICAgICB2
YXIgYiA9IGkgKyAyOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJz
dGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJv
bSB3aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24gYnV0IHN0b3BzIHRoZSBwcm9maWxlcgotZnJvbSBh
IGRpZmZlcmVudCBsZXZlbCBvZiBuZXN0aW5nLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVz
dCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3Bl
Y3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91
bGQgYmUgYSBjYWxsIHRvIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKS4K
LTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20t
YS1uZXN0ZWQtbG9jYXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0ODQyODNiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJv
ZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTAgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5n
IGZyb20gd2l0aGluIGEgbmVzdGVkIGxvY2F0aW9uLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEg
Y2FsbCB0byBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCkuCi0KLVByb2Zp
bGUgdGl0bGU6IFByb2ZpbGluZyBGcm9tIEEgTmVzdGVkIExvY2F0aW9uCi1UaHJlYWRfMSAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQcm9maWxl
ciBwcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi5odG1sIChsaW5lIDE1OjQ3KQotICAg
ICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1u
ZXN0ZWQtbG9jYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5n
LWZyb20tYS1uZXN0ZWQtbG9jYXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMjgxZmQwMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2Zp
bGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGZ1bmN0aW9uV2ljaFN0YXJ0c0Fu
ZFN0b3BzVGhlUHJvZmlsZXIoKTsKLX0KLQotZnVuY3Rpb24gZnVuY3Rpb25XaWNoU3RhcnRzQW5k
U3RvcHNUaGVQcm9maWxlcigpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJQcm9maWxpbmcgRnJv
bSBBIE5lc3RlZCBMb2NhdGlvbiIpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAw
MDsgaSsrKQotICAgICAgICB2YXIgYiA9IGkgKyAyOwotCi0gICAgZW5kVGVzdCgpOwotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBh
Z2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJvbSB3aXRoaW4gYSBuZXN0ZWQgbG9j
YXRpb24uCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGlu
IHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUg
cHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rp
b25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvcmVzb3VyY2VzL290aGVyLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3Jlc291cmNlcy9vdGhlci1mcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlODM2ZmJmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3Vy
Y2VzL290aGVyLWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdD4KLWZ1bmN0aW9uIGZ1bmN0aW9uSW5PdGhlckZyYW1lKCkgewot
ICAgICAgICByZXR1cm4gcGFyZW50LmZ1bmN0aW9uSW5QYXJlbnRGcmFtZSgpOwotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotVGhpcyBmaWxlIGNvbnRhaW5zIHNvbWUgSmF2YVNjcmlw
dC4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci13aW5kb3cuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL290aGVyLXdpbmRvdy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDg0MWE4Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL290aGVyLXdpbmRvdy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJw
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFyIGlu
dGVyZXN0aW5nS25vd2xlZGdlOwotZnVuY3Rpb24gb3RoZXJUZXN0U3RhcnQoKQotewotICAgIGlu
dGVyZXN0aW5nS25vd2xlZGdlID0gaXNFcXVhbFRvRml2ZSgzKTsKLSAgICBvcGVuZXIud2luZG93
RmluaXNoZWRMb2FkaW5nKCk7Ci19Ci0KLWZ1bmN0aW9uIGZ1bmN0aW9uSW5PdGhlcldpbmRvdygp
IHsKLSAgICAgICAgcmV0dXJuIGludGVyZXN0aW5nS25vd2xlZGdlOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ib3RoZXJUZXN0U3RhcnQoKSI+Ci1UaGlzIGZpbGUgZXhl
Y3V0ZXMgc29tZSBKYXZhU2NyaXB0LgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL3Byb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjM1NDJm
Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL3Byb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAot
ZnVuY3Rpb24gZW5kVGVzdCgpIHsKLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKLSAgICBwcmlu
dFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCk7Ci0KLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
Ci0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfQotCi1mdW5jdGlvbiBpbnNlcnRH
aXZlblRleHQodGV4dCkgewotICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJwIik7Ci0gICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKHRleHQpKTsKLSAgICBwYXJhZ3JhcGguc3R5bGUuZGlzcGxheSA9ICJub25lIjsgLy8gSGlk
ZGVuIHNpbmNlIHRoaXMgaXNuJ3QgaW1wb3J0YW50IGluIHRoZSB0ZXN0IHJlc3VsdHMuCi0KLSAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBwZW5kQ2hpbGQocGFyYWdyYXBo
KTsKLX0KLQotZnVuY3Rpb24gaW5zZXJ0TmV3VGV4dCgpIHsKLSAgICB2YXIgcGFyYWdyYXBoID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwotICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGhpcyBpcyBpbnNlcnRlZCBUZXh0IikpOwotICAgIHBh
cmFncmFwaC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyAvLyBIaWRkZW4gc2luY2UgdGhpcyBpc24n
dCBpbXBvcnRhbnQgaW4gdGhlIHRlc3QgcmVzdWx0cy4KLQotICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJvdXRwdXQiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOwotfQotCi1mdW5jdGlvbiBh
cnJheU9wZXJhdG9yRnVuY3Rpb24oYXJyYXlFbGVtZW50KSB7Ci0gICAgcmV0dXJuIGFycmF5RWxl
bWVudCArIDU7Ci19Ci0KLXZhciBhbm9ueW1vdXNGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHsgaW5z
ZXJ0TmV3VGV4dCgpOyB9OwotdmFyIGFub3RoZXJBbm9ueW1vdXNGdW5jdGlvbiA9IGZ1bmN0aW9u
ICgpIHsgaW5zZXJ0R2l2ZW5UZXh0KCJBbm90aGVyIGFub255bW91cyBmdW5jdGlvbiB3YXMgY2Fs
bGVkLiIpIH07Ci0KLWZ1bmN0aW9uIGludGVybWVkaWFyeUZ1bmN0aW9uKCkKLXsKLSAgICBhbm9u
eW1vdXNGdW5jdGlvbigpOwotfQotCi1mdW5jdGlvbiBpc0VxdWFsVG9GaXZlKGlucHV0KQotewot
ICAgIHJldHVybiBpbnB1dCA9PT0gNTsKLX0KLQotZnVuY3Rpb24gc3RhcnRQcm9maWxlKHRpdGxl
KQotewotICAgIGNvbnNvbGUucHJvZmlsZSh0aXRsZSk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50SGVh
dnlQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpCi17Ci0gICAgdmFyIHByZUVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJwcmUiKTsKLSAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKLQotICAgIHZhciBwcm9maWxlcyA9IGludGVy
bmFscy5jb25zb2xlUHJvZmlsZXM7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9maWxlcy5s
ZW5ndGg7ICsraSkgewotICAgICAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJQcm9maWxlIHRpdGxlOiAiICsgcHJvZmlsZXNbaV0udGl0bGUgKyAiXG4i
KSk7Ci0gICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZShwcmVFbGVtZW50LCBwcm9m
aWxlc1tpXS5oZWF2eVByb2ZpbGUucm9vdE5vZGUsIDApOwotICAgICAgICBwcmVFbGVtZW50LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKLSAgICB9Ci0KLSAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBwZW5kQ2hpbGQocHJlRWxlbWVudCk7
Ci19Ci0KLWZ1bmN0aW9uIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUoKQotewotICAgIHZh
ciBwcmVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7Ci0gICAgcHJlRWxl
bWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXG4iKSk7Ci0KLSAgICB2
YXIgcHJvZmlsZXMgPSBpbnRlcm5hbHMuY29uc29sZVByb2ZpbGVzOwotICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcHJvZmlsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgcHJlRWxlbWVudC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUHJvZmlsZSB0aXRsZTogIiArIHByb2Zp
bGVzW2ldLnRpdGxlICsgIlxuIikpOwotICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRp
bWUocHJlRWxlbWVudCwgcHJvZmlsZXNbaV0ucm9vdE5vZGUsIDApOwotICAgICAgICBwcmVFbGVt
ZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKLSAgICB9Ci0K
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBwZW5kQ2hpbGQocHJlRWxl
bWVudCk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZShwcmVFbGVt
ZW50LCBub2RlLCBpbmRlbnRMZXZlbCkKLXsKLSAgICB2YXIgc3BhY2UgPSAiIjsKLSAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGluZGVudExldmVsOyArK2kpCi0gICAgICAgIHNwYWNlICs9ICIgICAi
Ci0KLSAgICArK2luZGVudExldmVsOwotCi0gICAgdmFyIHN0cmlwcGVkVVJMID0gbm9kZS51cmwu
cmVwbGFjZSgvLipcLy8sICIiKTsKLSAgICBpZiAoIXN0cmlwcGVkVVJMKQotICAgICAgICBzdHJp
cHBlZFVSTCA9ICIobm8gZmlsZSkiOwotCi0gICAgdmFyIGxpbmUgPSBzcGFjZSArIG5vZGUuZnVu
Y3Rpb25OYW1lICsgIiAiICsgc3RyaXBwZWRVUkwgKyAiIChsaW5lICIgKyBub2RlLmxpbmVOdW1i
ZXIgKyAiOiIgKyBub2RlLmNvbHVtbk51bWJlciArICIpXG4iOwotICAgIHByZUVsZW1lbnQuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobGluZSkpOwotCi0gICAgdmFyIGNoaWxk
cmVuID0gbm9kZS5jaGlsZHJlbigpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4u
bGVuZ3RoOyArK2kpCi0gICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZShwcmVFbGVt
ZW50LCBjaGlsZHJlbltpXSwgaW5kZW50TGV2ZWwpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzRjZWUzZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgaGFzIGFuIG9ubG9h
ZCBldmVudC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJy
b3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUu
IFRoZXJlIHNob3VsZCBiZSBvbmx5IG9uZSBvbmxvYWQgbm9kZS4KLQotUHJvZmlsZSB0aXRsZTog
QSBzaW1wbGUgcHJvZmlsZSB0ZXN0IHdoZXJlIGFuIGV2ZW50IGhhcHBlbnMuCi1UaHJlYWRfMSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHNpbXBsZS1ldmVudC1jYWxsLmh0bWwg
KGxpbmUgMTA6MTkpCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
IChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9z
aW1wbGUtZXZlbnQtY2FsbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUt
ZXZlbnQtY2FsbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNGJkYjUwLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLWV2ZW50LWNhbGwu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgp
Ci17Ci0gICAgY29uc29sZS5wcm9maWxlKCJBIHNpbXBsZSBwcm9maWxlIHRlc3Qgd2hlcmUgYW4g
ZXZlbnQgaGFwcGVucy4iKTsKLSAgICAvLyBGSVhNRTogdGhpcyBpcyBub3QgdGVzdGluZyB3aGF0
IGl0IHNheXMgaXQgaXMuCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0K
LTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMg
YW4gb25sb2FkIGV2ZW50LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwg
bG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9v
ayBhdAotdGhlIHByb2ZpbGUuICBUaGVyZSBzaG91bGQgYmUgb25seSBvbmUgb25sb2FkIG5vZGUu
Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVsLWNoYW5nZS1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiYzM4YTUuLjAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdl
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSdz
IEphdmFTY3JpcHQgc3RhcnRzIGFuZCBzdG9wcyBwcm9maWxpbmcgZnJvbSB0aGUgc2FtZSBzY29w
ZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIFRoZXJl
IHNob3VsZCBiZSBubyBmdW5jdGlvbiBjYWxscyBiZXR3ZWVuIGNvbnNvbGUucHJvZmlsZSgpIGFu
ZCBjb25zb2xlLnByb2ZpbGVFbmQoKS4KLQotUHJvZmlsZSB0aXRsZTogQSBzaW1wbGUgcHJvZmls
ZSB0ZXN0IHdoZXJlIG5vIHNjb3BlIGNoYWduZXMKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAw
OjApCi0gICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyIHNpbXBsZS1uby1s
ZXZlbC1jaGFuZ2UuaHRtbCAobGluZSAxNTo0NykKLSAgICAgIGdldEVsZW1lbnRCeUlkIChubyBm
aWxlKSAobGluZSAwOjApCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTM2MmM4My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBs
ZS1uby1sZXZlbC1jaGFuZ2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBp
bnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1
bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQ
cm9maWxlcigpOwotfQotCi1mdW5jdGlvbiBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVBy
b2ZpbGVyKCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkEgc2ltcGxlIHByb2ZpbGUgdGVzdCB3
aGVyZSBubyBzY29wZSBjaGFnbmVzIik7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
MDAwOyBpKyspCi0gICAgICAgIHZhciBiID0gaSArIDI7Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgib3V0cHV0Iik7Ci0KLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsKLSAgICBwcmlu
dFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJv
ZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBh
bmQgc3RvcHMgcHJvZmlsaW5nIGZyb20gdGhlIHNhbWUgc2NvcGUuCi08YnI+Ci08YnI+Ci1UbyBy
dW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0
aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIFRoZXJlIHNob3VsZCBi
ZSBubyBmdW5jdGlvbiBjYWxscyBiZXR3ZWVuIGNvbnNvbGUucHJvZmlsZSgpIGFuZAotY29uc29s
ZS5wcm9maWxlRW5kKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1w
cm9maWxlci1tdWx0aXBsZS10aW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjgxZTRiZi4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxl
LXRpbWVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLVRoaXMg
cGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxlKCkgYW5kIGNvbnNvbGUucHJv
ZmlsZUVuZCgpIHRocmVlIHRpbWVzLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9h
ZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBh
dCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGVyIHRoZXJlIHNob3VsZCBiZSB0aHJlZSBwcm9m
aWxlcy4KLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBmaXJzdCB0aW1l
LgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBzdGFydC1hbmQt
c3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1sIChsaW5lIDEwOjE5KQotICAgICAgYW5v
bnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQp
Ci0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChs
aW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRF
bGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0
IHRoZSBwcm9maWxlciB0aGUgZmlyc3QgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAw
OjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMu
aHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0
ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2Rl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTox
NykKLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBzZWNvbmQgdGltZS4K
LVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0
b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255
bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQot
ICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGlu
ZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxl
bWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCi1Qcm9maWxlIHRpdGxlOiBTdGFydCB0
aGUgcHJvZmlsZXIgdGhlIGZpcnN0IHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgc3RhcnRUZXN0IHN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0
bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVF
bGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcp
Ci0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25kIHRpbWUuCi1U
aHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0LWFuZC1zdG9w
LXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9ueW1v
dXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAg
ICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
MTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1l
bnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBw
cm9maWxlciB0aGUgdGhpcmQgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbCAo
bGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1l
bnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXBy
b2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0
YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDE2OWE3NjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotIDxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAg
Y29uc29sZS5wcm9maWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgdGhlIGZpcnN0IHRpbWUuIik7Ci0g
ICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBlbmRUZXN0KCk7Ci0gICAgY29uc29sZS5wcm9m
aWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgdGhlIHNlY29uZCB0aW1lLiIpOwotICAgIGFub255bW91
c0Z1bmN0aW9uKCk7Ci0gICAgZW5kVGVzdCgpOwotICAgIGNvbnNvbGUucHJvZmlsZSgiU3RhcnQg
dGhlIHByb2ZpbGVyIHRoZSB0aGlyZCB0aW1lLiIpOwotICAgIGFub255bW91c0Z1bmN0aW9uKCk7
Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0i
c3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBjb25zb2xlLnByb2Zp
bGUoKSBhbmQgY29uc29sZS5wcm9maWxlRW5kKCkgdGhyZWUgdGltZXMuCi08YnI+Ci08YnI+Ci1U
byBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9h
ZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9m
aWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJvZmlsZXMuCi08ZGl2IGlkPSJvdXRwdXQiPjwv
ZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxp
bmctaW4tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3YThmNWE2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3Jp
cHQgc3RhcnRzIHByb2ZpbGluZyBmcm9tIHdpdGhpbiBhIG5lc3RlZCBsb2NhdGlvbi4gCi0KLVRv
IHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2Fk
IHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxl
IHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25XaWNoU3RvcHNUaGVQcm9maWxlcigp
LgotCi1Qcm9maWxlIHRpdGxlOiBQcm9maWxpbmcgRnJvbSBBIE5lc3RlZCBMb2NhdGlvbgotVGhy
ZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBzdGFydC1hbmQtc3RvcC1w
cm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGZ1
bmN0aW9uV2ljaFN0b3BzVGhlUHJvZmlsZXIgc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRo
ZS1zYW1lLWZ1bmN0aW9uLmh0bWwgKGxpbmUgMTc6MzgpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUt
ZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3At
cHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDNlYzA3MzEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAg
Y29uc29sZS5wcm9maWxlKCJQcm9maWxpbmcgRnJvbSBBIE5lc3RlZCBMb2NhdGlvbiIpOwotCi0g
ICAgZnVuY3Rpb25XaWNoU3RvcHNUaGVQcm9maWxlcigpOwotfQotCi1mdW5jdGlvbiBmdW5jdGlv
bldpY2hTdG9wc1RoZVByb2ZpbGVyKCkKLXsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
MDAwOyBpKyspCi0gICAgICAgIHZhciBiID0gaSArIDI7Ci0KLSAgICBjb25zb2xlLnByb2ZpbGVF
bmQoIlByb2ZpbGluZyBGcm9tIEEgTmVzdGVkIExvY2F0aW9uIik7Ci0gICAgcHJpbnRQcm9maWxl
c0RhdGFXaXRob3V0VGltZSgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25s
b2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxp
bmcgZnJvbSB3aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24uCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhp
cyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2Vi
SW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJl
IHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25XaWNoU3RvcHNUaGVQcm9maWxlcigpLgotPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxpbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXBy
b2ZpbGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkYmMx
MmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9u
dC1zdG9wLXByb2ZpbGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAg
QEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxlKCkgYnV0IG5v
dCBjb25zb2xlLnByb2ZpbGVFbmQoKS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxv
YWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sg
YXQgdGhlIHByb2ZpbGUuIFlvdSBzaG91bGQgc2VlIHRoZSBwcm9maWxlIHJ1bm5pbmcgKHdoZW4g
dGhhdCBmZWF0dXJlIGlzIGltcGxlbWVudGVkIDYwNjA1NTYpLiBUaGVuIG5hdmlnYXRlIHRvIGFu
b3RoZXIgcGFnZSBhbmQgY2hlY2sgdGhlIFdlYkluc3BlY3RvciBhZ2Fpbi4gU2FmYXJpIHNob3Vs
ZCBub3QgaGF2ZSBjcmFzaGVkIGFuZCB0aGUgSW5zcGVjdG9yIHNob3VsZCBub3Qgc2hvdyBhIHBy
b2ZpbGUgKHVubGVzcyB3ZSBhbGxvdyBjcm9zcy1sb2FkIHByb2ZpbGluZyBpbiB0aGUgZnV0dXJl
IDU5NTE0NzggJiA1OTU0OTEyKS4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxMzZkNzMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMzAgKzAsMCBAQAotIDxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1p
ZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29u
c29sZS5wcm9maWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgYnV0IGRvbid0IHN0b3AgaXQuIik7Ci0g
ICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1l
KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+
Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGNvbnNvbGUucHJvZmlsZSgpIGJ1dCBub3Qg
Y29uc29sZS5wcm9maWxlRW5kKCkuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVh
bGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFu
ZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIFlvdSBzaG91bGQgc2VlIHRoZSBwcm9maWxlIHJ1bm5p
bmcgKHdoZW4gdGhhdCBmZWF0dXJlIGlzIGltcGxlbWVudGVkIDYwNjA1NTYpLgotVGhlbiBuYXZp
Z2F0ZSB0byBhbm90aGVyIHBhZ2UgYW5kIGNoZWNrIHRoZSBXZWJJbnNwZWN0b3IgYWdhaW4uIFNh
ZmFyaSBzaG91bGQgbm90Ci1oYXZlIGNyYXNoZWQgYW5kIHRoZSBJbnNwZWN0b3Igc2hvdWxkIG5v
dCBzaG93IGEgcHJvZmlsZSAodW5sZXNzIHdlIGFsbG93IGNyb3NzLWxvYWQKLXByb2ZpbGluZyBp
biB0aGUgZnV0dXJlIDU5NTE0NzggJmFtcDsgNTk1NDkxMikuCi08ZGl2IGlkPSJvdXRwdXQiPjwv
ZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9zdG9wLXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzMjVkYTQuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRlci1zZXRU
aW1lb3V0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLVRoaXMg
cGFnZSdzIEphdmFTY3JpcHQgc3RvcHMgcHJvZmlsaW5nIGZyb20gYSB0aW1lb3V0LiAKLQotVG8g
cnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQg
dGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUg
ZW5kUHJvZmlsZSgpIHNob3VsZCBub3QgYmUgYSBjaGlsZCBvZiAocHJvZ3JhbSkuCi0KLVByb2Zp
bGUgdGl0bGU6IFN0b3AgcHJvZmlsaW5nIGZyb20gYSB0aW1lb3V0Ci1UaHJlYWRfMSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgb25sb2FkIHN0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQu
aHRtbCAobGluZSAyMTo0NCkKLSAgICAgIHN0YXJ0VGVzdCBzdG9wLXByb2ZpbGluZy1hZnRlci1z
ZXRUaW1lb3V0Lmh0bWwgKGxpbmUgMTI6MTkpCi0gICAgICAgICBzZXRUaW1lb3V0IChubyBmaWxl
KSAobGluZSAwOjApCi0gICAocHJvZ3JhbSkgc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91
dC5odG1sIChsaW5lIDE6MSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWZkNThlLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotfQotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRy
dWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU3Rv
cCBwcm9maWxpbmcgZnJvbSBhIHRpbWVvdXQiKTsgICAgCi0gICAgc2V0VGltZW91dCgiZW5kVGVz
dCgpIiwgMjApOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFy
dFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0b3BzIHByb2ZpbGluZyBmcm9tIGEg
dGltZW91dC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQg
aW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRo
ZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgZW5kUHJvZmlsZSgpIHNob3VsZCBub3QgYmUgYSBj
aGlsZCBvZiAocHJvZ3JhbSkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVu
Y3Rpb24tY2FsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0b3At
dGhlbi1mdW5jdGlvbi1jYWxsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMWMwNTA0NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0
b3AtdGhlbi1mdW5jdGlvbi1jYWxsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEw
ICswLDAgQEAKLVRoaXMgcGFnZSBoYXMgYW4gYW5vbnltb3VzIEphdmFTY3JpcHQgZnVuY3Rpb24g
dGhhdCBjYWxscyBidWlsdC1pbiBmdW5jdGlvbnMuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVh
bGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFu
ZCBsb29rIGF0IHRoZSBwcm9maWxlLiBUaGVyZSBzaG91bGQgYmUgdHdvIG5vZGVzIGluIHRoZSBw
cm9maWxlLCBhICIocHJvZ3JhbSkiIG5vZGUgd2l0aCBvbmUgY2hpbGQgdGhhdCBpcyAidGVzdCIu
Ci0KLVByb2ZpbGUgdGl0bGU6IFRlc3QKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAocHJvZ3JhbSkgKG5vIGZpbGUpIChsaW5lIDE6MTYpCi0gICAgICB0ZXN0IHN0b3AtdGhlbi1m
dW5jdGlvbi1jYWxsLmh0bWwgKGxpbmUgMTE6MTQpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA5MTZhMTlhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDQzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3By
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93
LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQodHJ1ZSk7Ci0KLXZhciBqID0gMDsKLWZ1bmN0aW9uIHRlc3QobGVuKSB7Ci0gICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkKLSAgICAgICAgKytqOwotfQotCi1mdW5jdGlvbiB0
ZXN0MihsZW4pIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKQotICAgICAgICAt
LWo7Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgdmFyIHNjcmlwdCA9ICJjb25z
b2xlLnByb2ZpbGUoJ1Rlc3QnKTtcbiI7Ci0gICAgc2NyaXB0ICs9ICJ0ZXN0KDEwMDApO1xuIjsK
LSAgICBzY3JpcHQgKz0gImNvbnNvbGUucHJvZmlsZUVuZCgnVGVzdCcpO1xuIjsKLSAgICBzY3Jp
cHQgKz0gInRlc3QyKDEwMDApO1xuIjsKLQotICAgIGV2YWwoc2NyaXB0KTsKLQotICAgIHByaW50
UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgYW4gYW5vbnltb3VzIEphdmFT
Y3JpcHQgZnVuY3Rpb24gdGhhdCBjYWxscyBidWlsdC1pbiBmdW5jdGlvbnMuCi08YnI+Ci08YnI+
Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4g
bG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gVGhlcmUgc2hv
dWxkIGJlIHR3byBub2RlcyBpbiB0aGUgcHJvZmlsZSwgYSAiKHByb2dyYW0pIiBub2RlIHdpdGgg
b25lIGNoaWxkIHRoYXQgaXMgInRlc3QiLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ct
ZXhjZXB0aW9uLWZyb20tZXZhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3Rocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDdjOWVhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwyMyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFRlc3QgZXhjZXB0aW9uLgot
VGhpcyBwYWdlIHRocm93cyBhbiBleGNlcHRpb24gZnJvbSB3aXRoaW4gZXZhbCgpLiAKLQotVG8g
cnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQg
dGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gVGhlIHByb2ZpbGVyIHNo
b3VsZCBub3QgY3Jhc2ggYW5kIHN0aWxsIHNob3cgdGhlIHN0YWNrIHVuZGVyIGluc2VydG5ld1Rl
eHQoKS4KLQotUHJvZmlsZSB0aXRsZTogVGhyb3cgd2l0aGluIGFuIGV2YWwuCi1UaHJlYWRfMSAo
bm8gZmlsZSkgKGxpbmUgMCkKLSAgIChwcm9ncmFtKSB0aHJvdy1leGNlcHRpb24tZnJvbS1ldmFs
Lmh0bWwgKGxpbmUgMTkpCi0gICAgICAocHJvZ3JhbSkgdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZh
bC5odG1sIChsaW5lIDEwKQotICAgICAgICAgKHByb2dyYW0pIHRocm93LWV4Y2VwdGlvbi1mcm9t
LWV2YWwuaHRtbCAobGluZSA0KQotICAgICAgICAgKHByb2dyYW0pIHRocm93LWV4Y2VwdGlvbi1m
cm9tLWV2YWwuaHRtbCAobGluZSAxOSkKLSAgICAgICAgICAgIGV2YWwgKG5vIGZpbGUpIChsaW5l
IDApCi0gICAgICAgICAgICAgICAocHJvZ3JhbSkgKG5vIGZpbGUpIChsaW5lIDEpCi0gICBvbmxv
YWQgdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sIChsaW5lIDI0KQotICAgICAgc3RhcnRU
ZXN0IHRocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbCAobGluZSAxMykKLSAgICAgICAgIGlu
c2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTcpCi0gICAg
ICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwKQotICAgICAgICAgICAgY3Jl
YXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAo
bm8gZmlsZSkgKGxpbmUgMCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAo
bGluZSAwKQotICAgICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAo
bGluZSAxKQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ct
ZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2FibGVkIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg3ZWFjOWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwot
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldExlZ2FjeUph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1jb25zb2xlLnByb2ZpbGUoIlRocm93
IHdpdGhpbiBhbiBldmFsLiIpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGluc2Vy
dE5ld1RleHQoKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLWV2
YWwoInRocm93KCdUZXN0IGV4Y2VwdGlvbi4nKTsiKTsKLTwvc2NyaXB0PgotPC9oZWFkPgotCi08
Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSB0aHJvd3MgYW4gZXhjZXB0aW9u
IGZyb20gd2l0aGluIGV2YWwoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgVGhlIHByb2ZpbGVyIHNob3VsZCBub3QgY3Jhc2ggYW5k
IHN0aWxsIHNob3cgdGhlIHN0YWNrIHVuZGVyCi1pbnNlcnRuZXdUZXh0KCkuCi08ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxZTlkZDEuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRoaXMgcGFnZSBoYXMgdHdvIHNjcmlw
dCB0YWdzIHdpdGggc29tZSBzaW1wbGUgSmF2YVNjcmlwdC4gCi0KLVRvIHJ1biB0aGlzIHRlc3Qg
bWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0
b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBi
ZSB0d28gKHByb2dyYW0pIGVsZW1lbnRzLgotCi1Qcm9maWxlIHRpdGxlOiBUd28gRXhlY3V0aW9u
IENvbnRleHRzCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHR3
by1leGVjdXRpb24tY29udGV4dHMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGludGVybWVkaWFy
eUZ1bmN0aW9uIHR3by1leGVjdXRpb24tY29udGV4dHMuaHRtbCAobGluZSAxNzozMCkKLSAgICAg
ICAgIHRlc3RFbmQgdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sIChsaW5lIDMzOjE3KQotCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250
ZXh0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRl
eHRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4NTE2NTUuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQot
ewotICAgIGNvbnNvbGUucHJvZmlsZSgiVHdvIEV4ZWN1dGlvbiBDb250ZXh0cyIpOwotCi0gICAg
aW50ZXJtZWRpYXJ5RnVuY3Rpb24oKTsKLX0KLQotZnVuY3Rpb24gaW50ZXJtZWRpYXJ5RnVuY3Rp
b24oKQotewotICAgIHRlc3RFbmQoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBv
bmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgdHdvIHNjcmlwdCB0YWdzIHdpdGgg
c29tZSBzaW1wbGUgSmF2YVNjcmlwdC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJl
IHR3byAocHJvZ3JhbSkgZWxlbWVudHMuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5
PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3RFbmQoKSB7Ci0gICAgY29uc29sZS5wcm9maWxlRW5k
KCk7Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwotfQotPC9zY3JpcHQ+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3VzZXItZGVmaW5l
ZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4t
ZnVuY3Rpb25zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDZj
ZTU1MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3VzZXItZGVmaW5l
ZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBKYXZhU2NyaXB0IHRoYXQgY2Fs
bHMgYnVpbHQtaW4gZnVuY3Rpb25zLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9h
ZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBh
dCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGNhbGxzIHRvIGNy
ZWF0ZUVsZW1lbnQoKSBjcmVhdGVUZXh0Tm9kZSgpIGFwcGVuZENoaWxkKCkgYW5kIHRlc3RFbmQo
KSwgYW1vbmcgb3RoZXJzLgotVGhpcyBpcyBpbnNlcnRlZCBUZXh0Ci0KLQotUHJvZmlsZSB0aXRs
ZTogVXNlciBkZWZpbmVkIGZ1bmN0aW9uIGNhbGxlcyBidWlsdC1pbiBmdW5jdGlvbnMKLVRocmVh
ZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgdXNlci1kZWZpbmVkLWZ1bmN0
aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIChsaW5lIDEwOjE5KQotICAgICAgY3Jl
YXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgY3JlYXRlVGV4dE5vZGUgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVz
dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNhbGxz
LWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2Vy
LWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3NTI3YjcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rp
b25zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExl
Z2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRl
c3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVXNlciBkZWZpbmVkIGZ1bmN0aW9uIGNhbGxl
cyBidWlsdC1pbiBmdW5jdGlvbnMiKTsKLQotICAgIHZhciBuZXdQID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgicCIpOwotICAgIHZhciB0ZXh0Tm9kZSA9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
IlRoaXMgaXMgaW5zZXJ0ZWQgVGV4dCIpOwotICAgIG5ld1AuYXBwZW5kQ2hpbGQodGV4dE5vZGUp
OwotICAgIHZhciBvdXRwdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7Ci0g
ICAgb3V0cHV0LmFwcGVuZENoaWxkKG5ld1ApOwotICAgIAotICAgIGVuZFRlc3QoKTsKLX0KLTwv
c2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFn
ZSBoYXMgSmF2YVNjcmlwdCB0aGF0IGNhbGxzIGJ1aWx0LWluIGZ1bmN0aW9ucy4KLTxicj4KLTxi
cj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhl
IHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGNhbGxzIHRvIGNyZWF0ZUVsZW1lbnQoKSBjcmVhdGVU
ZXh0Tm9kZSgpCi1hcHBlbmRDaGlsZCgpIGFuZCB0ZXN0RW5kKCksIGFtb25nIG90aGVycy4KLTxk
aXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjZTg4ZGMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci93aW5kb3ctZG90LWV2YWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhIGNhbGwgdG8gd2luZG93LmV2YWwo
KS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRo
ZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZXZhbCgpLgotCi1Qcm9maWxlIHRp
dGxlOiBDYWxsIHdpbmRvdy5ldmFsKCkKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICBzdGFydFRlc3Qgd2luZG93LWRvdC1ldmFsLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBldmFs
RnVuY3Rpb24gKG5vIGZpbGUpIChsaW5lIDE6MjIpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHBy
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3Jl
YXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5v
ZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAx
OjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2luZG93LWRv
dC1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2EyYjNjLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2luZG93LWRvdC1ldmFsLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSwzMiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0Pgot
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9m
aWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNv
bGUucHJvZmlsZSgiQ2FsbCB3aW5kb3cuZXZhbCgpIik7Ci0KLSAgICBldmFsRnVuY3Rpb24oKTsK
LQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLXdpbmRvdy5ldmFsKCJm
dW5jdGlvbiBldmFsRnVuY3Rpb24oKSB7IGluc2VydE5ld1RleHQoKTsgfSIpOwotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIGhhcyBh
IGNhbGwgdG8gd2luZG93LmV2YWwoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJl
IGEgY2FsbCB0byBldmFsKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA0M2Yz
Yzk2Li40ZWQyYWFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMTAyMSw5ICsxMDIxLDYgQEAgd2Via2l0Lm9yZy9iLzE0MjE1NiBjc3MzL3NoYXBlcy9z
cGVjLWV4YW1wbGVzL3NoYXBlLW91dHNpZGUtMDExLmh0bWwgWyBGYWlsdXJlIFAKIHdlYmtpdC5v
cmcvYi8xNDIxNTYgY3NzMy9zaGFwZXMvc3BlYy1leGFtcGxlcy9zaGFwZS1vdXRzaWRlLTAxMi5o
dG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xNDIxNTYgY3NzMy9zaGFwZXMvc3Bl
Yy1leGFtcGxlcy9zaGFwZS1vdXRzaWRlLTAxOS5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIAotd2Vi
a2l0Lm9yZy9iLzE0MjE1NyBmYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1sIFsgRmFpbHVyZSBQ
YXNzIF0KLXdlYmtpdC5vcmcvYi8xNDIxNTcgZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1h
ZnRlci1zZXRUaW1lb3V0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotCiB3ZWJraXQub3JnL2IvOTU1
NTEgZmFzdC9mb3Jtcy9kYXRhbGlzdC91cGRhdGUtcmFuZ2Utd2l0aC1kYXRhbGlzdC5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KIAogd2Via2l0Lm9yZy9iLzEyOTgyMCBzdmcvY2xpcC1w
YXRoL21hc2stbmVzdGVkLWNsaXAtcGF0aC0wMDYuc3ZnIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJl
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggN2JmYWVj
MC4uZWU3MDU4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEyMDEsOSArMTIwMSw2IEBAIHdlYmtpdC5vcmcvYi8xMzYwNjYgYW5pbWF0aW9ucy9taXNz
aW5nLWtleWZyYW1lLXByb3BlcnRpZXMuaHRtbCBbIENyYXNoIFBhc3MgXQogd2Via2l0Lm9yZy9i
LzEzNjA2NiBhbmltYXRpb25zL21pc3NpbmctdmFsdWVzLWZpcnN0LWtleWZyYW1lLmh0bWwgWyBD
cmFzaCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMzYwNjYgYW5pbWF0aW9ucy9zdGF0ZS1hdC1lbmQt
ZXZlbnQuaHRtbCBbIENyYXNoIFBhc3MgXQogCi13ZWJraXQub3JnL2IvMTM2MDY3IGZhc3QvcHJv
ZmlsZXIvZGVhZC10aW1lLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotd2Via2l0Lm9yZy9iLzEzNjA2
NyBmYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbCBbIEZh
aWx1cmUgUGFzcyBdCi0KIHdlYmtpdC5vcmcvYi8xMzYwNzAgZmFzdC9mb3Jtcy9sYWJlbC9sYWJl
bC1iZWNvbWVzLXZpc2libGUtd2hpbGUtY2xpY2tpbmctb24tbGFiZWwuaHRtbCBbIEZhaWx1cmUg
UGFzcyBdCiAKIHdlYmtpdC5vcmcvYi8xMzY1ODAgbWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMu
aHRtbCBbIFRpbWVvdXQgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mt
c2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzgwMWVhOC4uYzNiNzVlOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMTg5Miw3ICsxODkyLDYgQEAgZmFzdC9wYXJzZXIvbmVzdGVkLWZyYWdtZW50LXBhcnNl
ci1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L3ByZWxvYWRlci9kb2N1bWVudC13cml0ZS0y
Lmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvcHJlbG9hZGVyL2RvY3VtZW50LXdyaXRlLmh0bWwgWyBG
YWlsdXJlIF0KIGZhc3QvcHJlbG9hZGVyL2ltYWdlLXNyY3NldC5odG1sIFsgRmFpbHVyZSBdCi1m
YXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1dC1zdG9wLXBy
b2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvcmVnaW9u
cy9hYnNvbHV0ZS1pbi1yZWxhdGl2ZS1vdmVyZmxvdy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiBmYXN0L3JlZ2lvbnMvYWJzb2x1dGUtcG9zLWVsZW0taW4tcmVnaW9uLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIGZhc3QvcmVnaW9ucy9hbmltYXRpb24tZWxlbWVudC1pbi1yZWdpb24tZmxv
d2VkLXRvLW90aGVyLXRocmVhZC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQg
YS9NYW51YWxUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXItdGVzdC1jYWxsLmh0bWwgYi9NYW51YWxU
ZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXItdGVzdC1jYWxsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDU3MmEyZTkuLjAwMDAwMDAKLS0tIGEvTWFudWFsVGVzdHMvaW5zcGVjdG9y
L3Byb2ZpbGVyLXRlc3QtY2FsbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWNvbnNvbGUucHJvZmlsZSgiVXNpbmcg
dGhlIGNhbGwoKSBtZXRob2QiKTsKLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgdmFyIG15
T2JqZWN0ID0gbmV3IGZha2VPYmplY3QoMSwgMik7Ci0gICAgZW5kVGVzdCgpOwotfQotCi1mdW5j
dGlvbiBmYWtlT2JqZWN0ICh4LCB5KQotewotICAgIHRoaXMueCA9IHg7Ci0gICAgZmFrZUludGVy
aW9yRnVuY3Rpb24uY2FsbCh0aGlzLCB5KTsKLX0KLQotZnVuY3Rpb24gZmFrZUludGVyaW9yRnVu
Y3Rpb24oeSkKLXsKLSAgICB0aGlzLnkgPSB5OwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBh
IGNhbGwgdG8gY2FsbCgpIGluIGl0LgotPGJyPgotPGJyPgotVG8gdXNlIHRoaXMgdGVzdCwgbG9h
ZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBh
dAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRv
IGZha2VPYmplY3QoKSB3aXRoIGNhbGwoKSBhcwotaXRzIGNoaWxkIGFuZCBhIGZha2VJbnRlcmlv
ckZ1bmN0aW9uKCkgYXMgY2FsbCgpJ3MgY2hpbGQuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTWFudWFsVGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyLXRlc3QtbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sIGIvTWFudWFsVGVzdHMv
aW5zcGVjdG9yL3Byb2ZpbGVyLXRlc3QtbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYTViZTQyLi4wMDAwMDAwCi0tLSBhL01h
bnVhbFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci10ZXN0LW1hbnktY2FsbHMtaW4tdGhlLXNhbWUt
c2NvcGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci1jb25zb2xlLnByb2ZpbGUoIk1hbnkgQ2FsbHMgSW4gVGhlIFNh
bWUgU2NvcGUiKTsKLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgaW5zZXJ0TmV3VGV4dCgp
OwotICAgIGluc2VydEdpdmVuVGV4dCgiVGhpcyB3YXMgYSB0cml1bXBoLiIpOwotICAgIGFycmF5
T3BlcmF0b3JGdW5jdGlvbig3KTsKLSAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbigpOwotICAgIGFu
b255bW91c0Z1bmN0aW9uKCk7Ci0gICAgZW5kKCkKLSAgICBlbmRUKCk7Ci0gICAgZW5kVCgpOwot
ICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gZW5kKCkKLXsKLSAgICB2YXIgeCA9IDA7Ci19
Ci0KLWZ1bmN0aW9uIGVuZFQoKQotewotICAgIHZhciB5ID0gMTsKLX0KLQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNj
cmlwdCBoYXMgbWFueSBmdW5jdGlvbiBjYWxscyBpbiB0aGUgc2FtZSBzY29wZS4KLTxicj4KLTxi
cj4KLVRvIHVzZSB0aGlzIHRlc3QsIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRo
ZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUg
bWFueSBmdW5jdGlvbnMgc2hvdWxkIGJlIHRoZSBjaGlsZHJlbiBvZiBzdGFydFRlc3QuCi1Vc2Ug
dGhlIHNvcnRpbmcgY2FwYWJpbGl0ZXMgdG8gbWFrZSBzdXJlIHRoZSBzaW1pbGFybHkgbmFtZWQg
ZnVuY3Rpb25zIGFyZSBzb3J0ZWQKLWNvcnJlY3RseS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+
Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTUHJvZmlsZXJQcml2YXRlLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYWMxMTJhZS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTUHJvZmlsZXJQcml2YXRlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTUHJvZmlsZXJQcml2YXRlLmgiCi0KLSNpbmNs
dWRlICJBUElDYXN0LmgiCi0jaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKLSNpbmNsdWRlICJP
cGFxdWVKU1N0cmluZy5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi12b2lkIEpTU3RhcnRQ
cm9maWxpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJpbmdSZWYgdGl0bGUpCi17Ci0gICAgLy8g
VXNlIGFuIGluZGVwZW5kZW50IHN0b3B3YXRjaCBmb3IgQVBJLWluaXRpYXRlZCBwcm9maWxpbmcs
IHNpbmNlIHRoZSB1c2VyIHdpbGwgZXhwZWN0IGl0Ci0gICAgLy8gdG8gYmUgcmVsYXRpdmUgdG8g
d2hlbiB0aGVpciBjb21tYW5kIHdhcyBpc3N1ZWQuCi0gICAgUmVmUHRyPFN0b3B3YXRjaD4gc3Rv
cHdhdGNoID0gU3RvcHdhdGNoOjpjcmVhdGUoKTsKLSAgICBzdG9wd2F0Y2gtPnN0YXJ0KCk7Ci0g
ICAgTGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCktPnN0YXJ0UHJvZmlsaW5nKHRvSlMoY3R4KSwg
dGl0bGUtPnN0cmluZygpLCBzdG9wd2F0Y2gucmVsZWFzZSgpKTsKLX0KLQotdm9pZCBKU0VuZFBy
b2ZpbGluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmluZ1JlZiB0aXRsZSkKLXsKLSAgICBFeGVj
U3RhdGUqIGV4ZWMgPSB0b0pTKGN0eCk7Ci0gICAgTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0g
TGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCk7Ci0gICAgcHJvZmlsZXItPnN0b3BQcm9maWxpbmco
ZXhlYywgdGl0bGUtPnN0cmluZygpKTsKLX0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1Byb2ZpbGVyUHJpdmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1Byb2ZpbGVyUHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNGYy
NmEyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNQcm9maWxlclBy
aXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgSlNQcm9maWxlcl9oCi0jZGVm
aW5lIEpTUHJvZmlsZXJfaAotCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNCYXNlLmg+Ci0K
LSNpZm5kZWYgX19jcGx1c3BsdXMKLSNpbmNsdWRlIDxzdGRib29sLmg+Ci0jZW5kaWYKLQotI2lm
ZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0vKiEKLUBmdW5jdGlvbiBK
U1N0YXJ0UHJvZmlsaW5nCi1AYWJzdHJhY3QgRW5hYmxlcyB0aGUgcHJvZmxlci4KLUBwYXJhbSBj
dHggVGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIHVzZS4KLUBwYXJhbSB0aXRsZSBUaGUgdGl0bGUg
b2YgdGhlIHByb2ZpbGUuCi1AcmVzdWx0IFRoZSBwcm9maWxlciBpcyB0dXJuZWQgb24uCi0qLwot
SlNfRVhQT1JUIHZvaWQgSlNTdGFydFByb2ZpbGluZyhKU0NvbnRleHRSZWYgY3R4LCBKU1N0cmlu
Z1JlZiB0aXRsZSk7Ci0KLS8qIQotQGZ1bmN0aW9uIEpTRW5kUHJvZmlsaW5nCi1AYWJzdHJhY3Qg
RGlzYWJsZXMgdGhlIHByb2ZsZXIuCi1AcGFyYW0gY3R4IFRoZSBleGVjdXRpb24gY29udGV4dCB0
byB1c2UuCi1AcGFyYW0gdGl0bGUgVGhlIHRpdGxlIG9mIHRoZSBwcm9maWxlLgotQHJlc3VsdCBU
aGUgcHJvZmlsZXIgaXMgdHVybmVkIG9mZi4gSWYgdGhlcmUgaXMgbm8gbmFtZSwgdGhlIG1vc3Qg
cmVjZW50bHkgc3RhcnRlZAotICAgICAgICBwcm9maWxlIGlzIHN0b3BwZWQuIElmIHRoZSBuYW1l
IGRvZXMgbm90IG1hdGNoIGFueSBwcm9maWxlIHRoZW4gbm8gcHJvZmlsZQotICAgICAgICBpcyBz
dG9wcGVkLgotKi8KLUpTX0VYUE9SVCB2b2lkIEpTRW5kUHJvZmlsaW5nKEpTQ29udGV4dFJlZiBj
dHgsIEpTU3RyaW5nUmVmIHRpdGxlKTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYK
LQotI2VuZGlmIC8qIEpTUHJvZmlsZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IGJmNTIxODEuLjYxNjIxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTU0LDcgKzU0LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBB
UEkvSlNDbGFzc1JlZi5jcHAKICAgICBBUEkvSlNDb250ZXh0UmVmLmNwcAogICAgIEFQSS9KU09i
amVjdFJlZi5jcHAKLSAgICBBUEkvSlNQcm9maWxlclByaXZhdGUuY3BwCiAgICAgQVBJL0pTVHlw
ZWRBcnJheS5jcHAKICAgICBBUEkvSlNTY3JpcHRSZWYuY3BwCiAgICAgQVBJL0pTU3RyaW5nUmVm
LmNwcApAQCAtNTg2LDEwICs1ODUsNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAg
IHBhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmNwcAogICAgIHBhcnNlci9WYXJpYWJsZUVudmly
b25tZW50LmNwcAogCi0gICAgcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwCi0gICAgcHJvZmls
ZXIvUHJvZmlsZS5jcHAKLSAgICBwcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAotICAgIHBy
b2ZpbGVyL1Byb2ZpbGVOb2RlLmNwcAogICAgIHByb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3Bw
CiAgICAgcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmNwcAogICAgIHByb2ZpbGVy
L1Byb2ZpbGVyQnl0ZWNvZGVzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNjJhNmFk
Mi4uNmNhODE0MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTI5IEBACiAy
MDE2LTA1LTEzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAg
ICAgUmVtb3ZlIExlZ2FjeVByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTM1NjUKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4K
KworICAgICAgICBKYXZhU2NyaXB0Q29yZSBub3cgcHJvdmlkZXMgYSBzYW1wbGluZyBwcm9maWxl
ciBhbmQgaXQgaXMgZW5hYmxlZAorICAgICAgICBieSBhbGwgcG9ydHMuIFdlYiBJbnNwZWN0b3Ig
c3dpdGNoZWQgbW9udGhzIGFnbyB0byB1c2luZyB0aGUKKyAgICAgICAgc2FtcGxpbmcgcHJvZmls
ZXIgYW5kIGRpc3BsYXlpbmcgaXRzIGRhdGEuIFJlbW92ZSB0aGUgbGVnYWN5CisgICAgICAgIHBy
b2ZpbGVyLCBhcyBpdCBpcyBubyBsb25nZXIgYmVpbmcgdXNlZCBieSBhbnl0aGluZyBvdGhlciB0
aGVuCisgICAgICAgIGNvbnNvbGUucHJvZmlsZSBhbmQgdGVzdHMuIFdlIHdpbGwgdXBkYXRlIGNv
bnNvbGUucHJvZmlsZSdzCisgICAgICAgIGJlaGF2aW9yIHNvb24gdG8gaGF2ZSBuZXcgYmVoYXZp
b3IgYW5kIHVzZSB0aGUgc2FtcGxpbmcgZGF0YS4KKworICAgICAgICAqIEFQSS9KU1Byb2ZpbGVy
UHJpdmF0ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogQVBJL0pTUHJvZmlsZXJQcml2YXRlLmg6
IFJlbW92ZWQuCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBieXRlY29kZS9CeXRl
Y29kZUxpc3QuanNvbjoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5oOgorICAg
ICAgICAoSlNDOjpjb21wdXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29kZU9mZnNldCk6IERlbGV0ZWQuCisgICAgICAg
ICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1w
Qnl0ZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAqIGJ5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25F
eGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6Z2VuZXJhdGVVbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrKToKKyAgICAgICAgKEpTQzo6VW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OnVubGlu
a2VkQ29kZUJsb2NrRm9yKToKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZS5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHA6
CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcik6Cisg
ICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbCk6CisgICAgICAgIChKU0M6
OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3MpOgorICAgICAgICAoSlNDOjpCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRpb24pOgorICAgICAgICAo
SlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVjdFZhcmFyZ3MpOgorICAgICAgICAo
SlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVjdCk6CisgICAgICAgICogYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkNhbGxBcmd1bWVudHM6
OnByb2ZpbGVIb29rUmVnaXN0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCeXRlY29kZUdl
bmVyYXRvcjo6c2hvdWxkRW1pdFByb2ZpbGVIb29rcyk6IERlbGV0ZWQuCisgICAgICAgICogYnl0
ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkNhbGxGdW5jdGlvbkNh
bGxEb3ROb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAoSlNDOjpBcHBseUZ1bmN0aW9uQ2Fs
bERvdE5vZGU6OmVtaXRCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkNhbGxBcmd1bWVudHM6OkNh
bGxBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJz
dHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6IERlbGV0ZWQuCisgICAgICAgICogZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNl
cjo6cGFyc2VCbG9jayk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBkZmcvREZHQ2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUp
OiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OmRvZXNHQyk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6IERlbGV0ZWQuCisgICAg
ICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAg
ICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZSk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcDoKKyAgICAg
ICAgKEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRCYXNlOjpjYWxsRnVuY3Rpb25XaXRoRXZhbEVu
YWJsZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9wcm90b2NvbC9UaW1lbGluZS5qc29uOgorICAg
ICAgICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6VW53aW5k
RnVuY3Rvcjo6b3BlcmF0b3IoKSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkludGVycHJldGVy
OjpleGVjdXRlKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVD
YWxsKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0ZXI6OmV4ZWN1dGVDb25zdHJ1
Y3QpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OnByaXZhdGVDb21waWxlTWFpblBhc3MpOiBEZWxldGVkLgorICAgICAgICAqIGppdC9KSVQuaDoK
KyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9wcm9maWxlX3dpbGxfY2FsbCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9wcm9maWxlX2RpZF9jYWxsKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvSklUT3Bjb2RlczMy
XzY0LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Byb2ZpbGVfd2lsbF9jYWxsKTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Byb2ZpbGVfZGlkX2NhbGwpOiBE
ZWxldGVkLgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQv
SklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICogbGxpbnQvTExJ
bnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RF
Q0wpOiBEZWxldGVkLgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmg6CisgICAgICAg
ICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogcGFyc2VyL1BhcnNl
ck1vZGVzLmg6CisgICAgICAgICogcHJvZmlsZXIvQ2FsbElkZW50aWZpZXIuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwcm9maWxl
ci9Qcm9maWxlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlLmg6IFJl
bW92ZWQuCisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHA6IFJlbW92ZWQu
CisgICAgICAgICogcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oOiBSZW1vdmVkLgorICAgICAg
ICAqIHByb2ZpbGVyL1Byb2ZpbGVOb2RlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwcm9maWxl
ci9Qcm9maWxlTm9kZS5oOiBSZW1vdmVkLgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVySmV0
dGlzb25SZWFzb24uY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKTogRGVsZXRlZC4K
KyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmg6CisgICAgICAgICog
cnVudGltZS9Db2RlQ2FjaGUuY3BwOgorICAgICAgICAoSlNDOjpDb2RlQ2FjaGU6OmdldEdsb2Jh
bENvZGVCbG9jayk6CisgICAgICAgIChKU0M6OkNvZGVDYWNoZTo6Z2V0UHJvZ3JhbUNvZGVCbG9j
ayk6CisgICAgICAgIChKU0M6OkNvZGVDYWNoZTo6Z2V0RXZhbENvZGVCbG9jayk6CisgICAgICAg
IChKU0M6OkNvZGVDYWNoZTo6Z2V0TW9kdWxlUHJvZ3JhbUNvZGVCbG9jayk6CisgICAgICAgICog
cnVudGltZS9Db2RlQ2FjaGUuaDoKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuY3BwOgor
ICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpuZXdDb2RlQmxvY2tGb3IpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6Y3JlYXRlUHJvZ3JhbUNvZGVCbG9jayk6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0OjpjcmVhdGVFdmFsQ29kZUJsb2NrKToKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6
OmNyZWF0ZU1vZHVsZVByb2dyYW1Db2RlQmxvY2spOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9i
amVjdDo6fkpTR2xvYmFsT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNHbG9iYWxP
YmplY3Q6Omhhc0xlZ2FjeVByb2ZpbGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0pT
R2xvYmFsT2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpzdXBwb3J0c0xl
Z2FjeVByb2ZpbGluZyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6Cisg
ICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpWTSk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OlNldEVuYWJsZWRQcm9maWxlckZ1bmN0b3I6Om9wZXJhdG9yKCkpOiBE
ZWxldGVkLgorICAgICAgICAoSlNDOjpWTTo6c2V0RW5hYmxlZFByb2ZpbGVyKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgIChKU0M6OlZNOjplbmFibGVkUHJvZmls
ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpWTTo6ZW5hYmxlZFByb2ZpbGVyQWRkcmVzcyk6
IERlbGV0ZWQuCisKKzIwMTYtMDUtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxl
LmNvbT4KKwogICAgICAgICBqc2M6IHNhbXBsaW5nUHJvZmlsZXJTdGFja1RyYWNlcygpIHdpdGhv
dXQgc3RhcnRpbmcgc2FtcGxpbmcgc2hvdWxkIG5vdCBjYXVzZSBqc2MgdG8gY3Jhc2gKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzcwNAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYxMmJmZDUuLjBmOWRlZTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDE1LDE0ICsxNDE1LDYgQEAKIAkJOTMzMDQwMDQwRTZB
NzQ5NDAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDNGRUEwRTZBNzJDMDAwNzg2RTZBIC8qIFNtYWxsU3Ry
aW5ncy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTkzMzA0MDJDMEU2QTc2NDAwMDc4NkU2QSAvKiBTbWFsbFN0cmluZ3MuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDNGRTgwRTZBNzJCNTAwNzg2
RTZBIC8qIFNtYWxsU3RyaW5ncy5jcHAgKi87IH07CiAJCTkzMzVGMjREMTJFNjc2NUIwMDJCNTU1
MyAvKiBTdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMzQ1QTg3MTJEODM4QzQwMDMwMkJFMyAvKiBTdHJpbmdS
ZWN1cnNpb25DaGVja2VyLmNwcCAqLzsgfTsKLQkJOTUzNEFBRkIwRTVCN0E5NjAwQjhBNDVCIC8q
IEpTUHJvZmlsZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NTJDNjNBQzBFNDc3N0Q2MDBDMTM5MzYgLyogSlNQcm9maWxlclByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5NTc0
MkY2NTBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTc0MkY2MzBERDExRjVBMDAwOTE3RkIgLyogUHJv
ZmlsZS5jcHAgKi87IH07Ci0JCTk1QUI4MzQyMERBNDMyMjUwMEJDODNGMyAvKiBMZWdhY3lQcm9m
aWxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NUFCODMyRTBEQTQyQ0FEMDBCQzgzRjMgLyogTGVnYWN5UHJvZmlsZXIuY3BwICovOyB9OwotCQk5
NUFCODM1NjBEQTQzQzMwMDBCQzgzRjMgLyogUHJvZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBQjgzNTQwREE0M0I0NDAwQkM4M0Yz
IC8qIFByb2ZpbGVOb2RlLmNwcCAqLzsgfTsKLQkJOTVDRDQ1NzYwRTFDNEZERDAwODUzNThFIC8q
IFByb2ZpbGVHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTVDRDQ1NzQwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3Iu
Y3BwICovOyB9OwotCQk5NUNENDU3NzBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVDRDQ1
NzUwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9ICgpOyB9OyB9OwotCQk5NUUzQkMwNTBFMUFFNjgyMDBCMkQxQzEgLyogQ2Fs
bElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk1RTNCQzA0MEUxQUU2ODIwMEIyRDFDMSAvKiBDYWxsSWRlbnRpZmllci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTk1RjZFNjk1MEU1QjVG
OTcwMDkxRTg2MCAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTk4OEJBOTBFNDc3QkVDMDBEMjhENEQgLyogSlNQ
cm9maWxlclByaXZhdGUuY3BwICovOyB9OwogCQk5NjAwOTdBNjBFQkFCQjU4MDA3QTcyOTcgLyog
TGFiZWxTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTYwMDk3QTUwRUJBQkI1ODAwN0E3Mjk3IC8qIExhYmVsU2NvcGUuaCAqLzsgfTsKIAkJOTY4
OENCMTUwRUQxMkI0RTAwMUQ2NDlGIC8qIEFzc2VtYmxlckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTY4OENCMTMwRUQxMkI0RTAwMUQ2NDlG
IC8qIEFzc2VtYmxlckJ1ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTk2ODhDQjE2MEVEMTJCNEUwMDFENjQ5RiAvKiBYODZBc3NlbWJsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk2ODhDQjE0
MEVEMTJCNEUwMDFENjQ5RiAvKiBYODZBc3NlbWJsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTg5MSw5ICsxODgzLDYgQEAKIAkJQkMxOEM0
NDYwRTE2RjVDRDAwQjM0NDYwIC8qIE9iamVjdFByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNjgwQzkwRTE2RDRFOTAwQTA2RTkyIC8q
IE9iamVjdFByb3RvdHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUJDMThDNDQ4MEUxNkY1Q0QwMEIzNDQ2MCAvKiBPcGVyYXRpb25zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjkyQTg3ODAyNTU1
OTdEMDFGRjYwRjcgLyogT3BlcmF0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDRCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQYXJzZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjBCM0FB
MDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzE4QzQ1MDBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvZmls
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU3NDJG
NjQwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2ZpbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzE4QzQ1MTBFMTZGNUNEMDBCMzQ0NjAgLyogUHJv
ZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1QUI4MzU1MERBNDNCNDQwMEJDODNGMyAvKiBQcm9maWxlTm9kZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDMThDNDUyMEUxNkY1Q0QwMEIz
NDQ2MCAvKiBMZWdhY3lQcm9maWxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTVBQjgzMkYwREE0MkNBRDAwQkM4M0YzIC8qIExlZ2FjeVByb2ZpbGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMx
OEM0NTQwRTE2RjVDRDAwQjM0NDYwIC8qIFByb3BlcnR5TmFtZUFycmF5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQwMEMxMDBBNjlCQUYyMDA1MDk4
ODcgLyogUHJvcGVydHlOYW1lQXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ1NTBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvcGVydHlT
bG90LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTYy
MUU2QzA4OUU4NTk3MDA3NjBGMzUgLyogUHJvcGVydHlTbG90LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0NTYwRTE2RjVDRDAwQjM0NDYw
IC8qIFByb3RlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDY1QzAyRkJCMDYzNzQ2MkEwMDNFN0VFNiAvKiBQcm90ZWN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM2MzMsMTggKzM2MjIsNyBAQAog
CQk5M0YwQjNBOTA5QkI0REMwMDA2OEZDRTMgLyogUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRjBCM0FBMDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzRjE5ODFBMDgyNDVBQUUwMDFFOUFCQyAvKiBLZXl3b3Jkcy50YWJsZSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEtleXdvcmRzLnRhYmxlOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07Ci0JCTk1MkM2M0FDMEU0Nzc3RDYwMEMxMzkz
NiAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1Byb2ZpbGVyUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NTc0
MkY2MzBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlLmNwcDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NTc0MkY2NDBERDExRjVBMDAwOTE3RkIg
LyogUHJvZmlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlLmg7
IHBhdGggPSBwcm9maWxlci9Qcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTk1OTg4QkE5MEU0NzdCRUMwMEQyOEQ0RCAvKiBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Byb2ZpbGVyUHJpdmF0ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk1QUI4MzJFMERBNDJDQUQwMEJDODNGMyAvKiBM
ZWdhY3lQcm9maWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBM
ZWdhY3lQcm9maWxlci5jcHA7IHBhdGggPSBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk1QUI4MzJGMERBNDJDQUQwMEJDODNGMyAvKiBM
ZWdhY3lQcm9maWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMZWdhY3lQ
cm9maWxlci5oOyBwYXRoID0gcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJOTVBQjgzNTQwREE0M0I0NDAwQkM4M0YzIC8qIFByb2ZpbGVOb2Rl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByb2ZpbGVOb2RlLmNw
cDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTVBQjgzNTUwREE0M0I0NDAwQkM4M0YzIC8qIFByb2ZpbGVOb2RlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2ZpbGVOb2RlLmg7IHBhdGggPSBwcm9maWxl
ci9Qcm9maWxlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUMxOEQzRTBD
OTBFN0VGMDBFNzJGNzMgLyogSlNSZXRhaW5QdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNSZXRhaW5QdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTVD
RDQ1NzQwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUHJvZmlsZUdlbmVyYXRvci5jcHA7IHBhdGggPSBw
cm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTVDRDQ1NzUwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvZmlsZUdlbmVyYXRvci5oOyBwYXRoID0gcHJv
ZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5
NUUzQkMwNDBFMUFFNjgyMDBCMkQxQzEgLyogQ2FsbElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gQ2FsbElkZW50aWZpZXIuaDsgcGF0aCA9IHByb2ZpbGVyL0Nh
bGxJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk2MDA5N0E1MEVC
QUJCNTgwMDdBNzI5NyAvKiBMYWJlbFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IExhYmVsU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTY4OENC
MTMwRUQxMkI0RTAwMUQ2NDlGIC8qIEFzc2VtYmxlckJ1ZmZlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBc3NlbWJsZXJCdWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTY4OENCMTQwRUQxMkI0RTAwMUQ2NDlGIC8qIFg4NkFzc2VtYmxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYODZBc3NlbWJsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTUyNjYsOCArNTI0NCw2IEBACiAJCQkJMTQ4MkI3RTIwQTQzMDc2
MDAwNTE3Q0ZDIC8qIEpTT2JqZWN0UmVmLmNwcCAqLywKIAkJCQkxNDgyQjdFMTBBNDMwNzYwMDA1
MTdDRkMgLyogSlNPYmplY3RSZWYuaCAqLywKIAkJCQlBNzlFREIwODExNTMxQ0Q2MDAxOUU5MTIg
LyogSlNPYmplY3RSZWZQcml2YXRlLmggKi8sCi0JCQkJOTU5ODhCQTkwRTQ3N0JFQzAwRDI4RDRE
IC8qIEpTUHJvZmlsZXJQcml2YXRlLmNwcCAqLywKLQkJCQk5NTJDNjNBQzBFNDc3N0Q2MDBDMTM5
MzYgLyogSlNQcm9maWxlclByaXZhdGUuaCAqLywKIAkJCQlBNTUyQzM3RDFBRERCOEZFMDAxMzk3
MjYgLyogSlNSZW1vdGVJbnNwZWN0b3IuY3BwICovLAogCQkJCUE1NTJDMzdFMUFEREI4RkUwMDEz
OTcyNiAvKiBKU1JlbW90ZUluc3BlY3Rvci5oICovLAogCQkJCTk1QzE4RDNFMEM5MEU3RUYwMEU3
MkY3MyAvKiBKU1JldGFpblB0ci5oICovLApAQCAtNjQzMCwxNSArNjQwNiw2IEBACiAJCTk1QUI4
MzFBMERBNDJDNjkwMEJDODNGMyAvKiBwcm9maWxlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJOTVFM0JDMDQwRTFBRTY4MjAwQjJEMUMxIC8qIENhbGxJ
ZGVudGlmaWVyLmggKi8sCi0JCQkJOTVBQjgzMkUwREE0MkNBRDAwQkM4M0YzIC8qIExlZ2FjeVBy
b2ZpbGVyLmNwcCAqLywKLQkJCQk5NUFCODMyRjBEQTQyQ0FEMDBCQzgzRjMgLyogTGVnYWN5UHJv
ZmlsZXIuaCAqLywKLQkJCQk5NTc0MkY2MzBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5jcHAg
Ki8sCi0JCQkJOTU3NDJGNjQwREQxMUY1QTAwMDkxN0ZCIC8qIFByb2ZpbGUuaCAqLywKLQkJCQk5
NUNENDU3NDBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRvci5jcHAgKi8sCi0JCQkJ
OTVDRDQ1NzUwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuaCAqLywKLQkJCQk5
NUFCODM1NDBEQTQzQjQ0MDBCQzgzRjMgLyogUHJvZmlsZU5vZGUuY3BwICovLAotCQkJCTk1QUI4
MzU1MERBNDNCNDQwMEJDODNGMyAvKiBQcm9maWxlTm9kZS5oICovLAogCQkJCTBGRjcyOTkyMTY2
QUQzNDcwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2RlLmNwcCAqLywKIAkJCQkwRkY3Mjk5MzE2
NkFEMzQ3MDAwRjVCQTMgLyogUHJvZmlsZXJCeXRlY29kZS5oICovLAogCQkJCTBGRjcyOTk0MTY2
QUQzNDcwMDBGNUJBMyAvKiBQcm9maWxlckJ5dGVjb2Rlcy5jcHAgKi8sCkBAIC03MTE1LDcgKzcw
ODIsNiBAQAogCQkJCTE0MjlEOERFMEVEMjIwNUIwMEI4OTYxOSAvKiBDYWxsRnJhbWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTYyRUM5QkI3MUI3RUIwN0MwMDMwM0FEMSAvKiBDYWxsRnJhbWVTaHVm
ZmxlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjJENzU1RDcxQjg0RkI0QTAwMTgwMUZBIC8q
IENhbGxGcmFtZVNodWZmbGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk5NUUzQkMwNTBFMUFFNjgy
MDBCMkQxQzEgLyogQ2FsbElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMEI4M0Ix
MTRCQ0Y3MTgwMDg4NUI0RiAvKiBDYWxsTGlua0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
OTMzMjlFMTRDQTdEQzUwMDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjI3NjczMjQxQjY4MEMxRTAwRkQ5RjJFIC8qIENhbGxNb2RlLmggaW4gSGVhZGVycyAq
LywKQEAgLTc3MzMsNyArNzY5OSw2IEBACiAJCQkJQTcyODBBMjgxMTU1N0UzMDAwRDU2OTU3IC8q
IEpTT2JqZWN0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdGOTkzNUYwRkQ3MzI1
MTAwQTBCMkQwIC8qIEpTT05PYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODdDREI5MTA3
MTJBRDQwMDA2MTRDRiAvKiBKU09OT2JqZWN0Lmx1dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTUz
NEFBRkIwRTVCN0E5NjAwQjhBNDVCIC8qIEpTUHJvZmlsZXJQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3QzE4NEUxQjE3QkVEQkQzMDA3Q0I2M0EgLyogSlNQcm9taXNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QzE4NEUyMzE3QkVFMjQwMDA3Q0I2M0EgLyogSlNQcm9taXNlQ29uc3RydWN0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5NkI3MzFFMUJEQTA4RUYwMDMzMUI4NCAvKiBKU1By
b21pc2VDb25zdHJ1Y3Rvci5sdXQuaCBpbiBIZWFkZXJzICovLApAQCAtNzc5OSw3ICs3NzY0LDYg
QEAKIAkJCQk5NjAwOTdBNjBFQkFCQjU4MDA3QTcyOTcgLyogTGFiZWxTY29wZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZCNTQ2NzcxNEY1OUI1QzAwMkMyOTg5IC8qIExhenlPcGVyYW5kVmFsdWVQ
cm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OURBMDBCMDFCRDU5OTRFMDBGNDU3NUMgLyog
bGF6eXdyaXRlci5weSBpbiBIZWFkZXJzICovLAotCQkJCUJDMThDNDUyMEUxNkY1Q0QwMEIzNDQ2
MCAvKiBMZWdhY3lQcm9maWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MzEwRTE2RjVD
RDAwQjM0NDYwIC8qIExleGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzUyRTBFMTZGQ0Ux
MDBCMzQ0NjAgLyogTGV4ZXIubHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlEQ0YzRDU2QjFDRDI5
NDcyMDAzRDVDNjUgLyogTGF6eUNsYXNzU3RydWN0dXJlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CkBAIC03OTA0LDkgKzc4NjgsNiBAQAogCQkJCTBGRTgzNDE4MUE2RUY5N0IwMEQwNDg0NyAvKiBQ
b2x5bW9ycGhpY0NhbGxTdHViUm91dGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5ODIwNjEx
NkJGRTM4MzAwMjQwRDAyIC8qIFByZWNpc2VKdW1wVGFyZ2V0cy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODY4OTE2QjAxNTVGMjg2MzAwQ0IyQjlBIC8qIFByaXZhdGVOYW1lLmggaW4gSGVhZGVycyAq
LywKLQkJCQlCQzE4QzQ1MDBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvZmlsZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJOTVDRDQ1NzcwRTFDNEZERDAwODUzNThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuaCBp
biBIZWFkZXJzICovLAotCQkJCUJDMThDNDUxMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9maWxlTm9k
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNzI5QTUxNjZBRDM1MTAwMEY1QkEzIC8qIFByb2Zp
bGVyQnl0ZWNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjcyOUI5MTY2QUQzNjAwMDBGNUJB
MyAvKiBQcm9maWxlckJ5dGVjb2Rlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxMzkxMkExNjc3
MUMzNjAwOUNDQjA3IC8qIFByb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC05MTUxLDcgKzkxMTIsNiBAQAogCQkJCTE0N0YzOUQ0MTA3RUMzNzYwMDQyN0E0OCAvKiBK
U09iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDgyQjdFNDBBNDMwNzYwMDA1MTdDRkMg
LyogSlNPYmplY3RSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdGOTkzNjAwRkQ3MzI1MTAw
QTBCMkQwIC8qIEpTT05PYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTVGNkU2OTUwRTVC
NUY5NzAwOTFFODYwIC8qIEpTUHJvZmlsZXJQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDMTg0RTFBMTdCRURCRDMwMDdDQjYzQSAvKiBKU1Byb21pc2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0MxODRFMjIxN0JFRTI0MDAwN0NCNjNBIC8qIEpTUHJvbWlzZUNvbnN0cnVjdG9yLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdDMDA4Q0RBMTg3MTI0QkIwMDk1NUMyNCAvKiBKU1Byb21p
c2VEZWZlcnJlZC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTkxOTQsNyArOTE1NCw2IEBACiAJCQkJ
MTQyODA4NzAxMDdFQzEzNDAwMTNFN0IyIC8qIEpTV3JhcHBlck9iamVjdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0ZEOEM5MjBFRUIyRUU3MDAyODM4NDggLyogSnVtcFRhYmxlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGQjU0Njc5MTRGNUM0NkIwMDJDMjk4OSAvKiBMYXp5T3BlcmFuZFZh
bHVlUHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5NUFCODM0MjBEQTQzMjI1MDBCQzgz
RjMgLyogTGVnYWN5UHJvZmlsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ4RjIxQjAxMDdF
QzU0MTAwNDJFQzJDIC8qIExleGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRjQyNzU3MTU5
MTRBMjAwMDRDQjlGRiAvKiBMaW5rQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RTJF
QTZDMEZCNDYwQ0YwMDYwMUYwNiAvKiBMaXRlcmFsUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtOTI2Miw5ICs5MjIxLDYgQEAKIAkJCQkwRkU4MzQxNzFBNkVGOTdCMDBEMDQ4NDcgLyogUG9s
eW1vcnBoaWNDYWxsU3R1YlJvdXRpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYzMzhFMTQx
QkYwMjc2QzAwMTNDODhGIC8qIEIzVmFsdWVLZXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY5
ODIwNjAxNkJGRTM4MTAwMjQwRDAyIC8qIFByZWNpc2VKdW1wVGFyZ2V0cy5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQk5NTc0MkY2NTBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQk5NUNENDU3NjBFMUM0RkREMDA4NTM1OEUgLyogUHJvZmlsZUdlbmVyYXRv
ci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5NUFCODM1NjBEQTQzQzMwMDBCQzgzRjMgLyogUHJv
ZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNzI5QUQxNjZBRDM1QzAwMEY1QkEz
IC8qIFByb2ZpbGVyQnl0ZWNvZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGNzI5QUUxNjZB
RDM1QzAwMEY1QkEzIC8qIFByb2ZpbGVyQnl0ZWNvZGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGMTM5MTI5MTY3NzFDMzMwMDlDQ0IwNyAvKiBQcm9maWxlckJ5dGVjb2RlU2VxdWVuY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVMaXN0Lmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVMaXN0Lmpzb24KaW5kZXggN2I0OWM2NC4uOTFhOTZjNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5qc29uCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgpAQCAtMTIzLDggKzEyMyw2
IEBACiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF90aHJvdyIsICJsZW5ndGgiIDogMiB9LAog
ICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfdGhyb3dfc3RhdGljX2Vycm9yIiwgImxlbmd0aCIg
OiAzIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9kZWJ1ZyIsICJsZW5ndGgiIDogMyB9
LAotICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHJvZmlsZV93aWxsX2NhbGwiLCAibGVuZ3Ro
IiA6IDIgfSwKLSAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX3Byb2ZpbGVfZGlkX2NhbGwiLCAi
bGVuZ3RoIiA6IDIgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2VuZCIsICJsZW5ndGgi
IDogMiB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfcHJvZmlsZV90eXBlIiwgImxlbmd0
aCIgOiA2IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9wcm9maWxlX2NvbnRyb2xfZmxv
dyIsICJsZW5ndGgiIDogMiB9LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Qnl0ZWNvZGVVc2VEZWYuaAppbmRleCA0YTE2NzJlLi43Y2YwZDU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaApAQCAtNjIsOCArNjIsNiBA
QCB2b2lkIGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQoCiAgICAgY2FzZSBvcF9nZXRfc2Nv
cGU6CiAgICAgY2FzZSBvcF90b190aGlzOgogICAgIGNhc2Ugb3BfY2hlY2tfdGR6OgotICAgIGNh
c2Ugb3BfcHJvZmlsZV93aWxsX2NhbGw6Ci0gICAgY2FzZSBvcF9wcm9maWxlX2RpZF9jYWxsOgog
ICAgIGNhc2Ugb3BfcHJvZmlsZV90eXBlOgogICAgIGNhc2Ugb3BfdGhyb3c6CiAgICAgY2FzZSBv
cF9lbmQ6CkBAIC0zMTIsOCArMzEwLDYgQEAgdm9pZCBjb21wdXRlRGVmc0ZvckJ5dGVjb2RlT2Zm
c2V0KENvZGVCbG9jayogY29kZUJsb2NrLCBCeXRlY29kZUJhc2ljQmxvY2sqIGJsb2MKICAgICBj
YXNlIG9wX2NvcHlfcmVzdDoKICAgICBjYXNlIG9wX3B1dF90b19zY29wZToKICAgICBjYXNlIG9w
X2VuZDoKLSAgICBjYXNlIG9wX3Byb2ZpbGVfd2lsbF9jYWxsOgotICAgIGNhc2Ugb3BfcHJvZmls
ZV9kaWRfY2FsbDoKICAgICBjYXNlIG9wX3Rocm93OgogICAgIGNhc2Ugb3BfdGhyb3dfc3RhdGlj
X2Vycm9yOgogICAgIGNhc2Ugb3Bfc2F2ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAKaW5kZXggM2E4MDhjYi4uNDFlOGNmOSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTE2NTQsMTYgKzE2NTQsNiBA
QCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKAogICAgICAgICAgICAgb3V0LnByaW50Zigi
JXMsICVkIiwgcmVnaXN0ZXJOYW1lKGNvbmRpdGlvbikuZGF0YSgpLCBsaW5lKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGNhc2Ugb3BfcHJvZmlsZV93aWxsX2NhbGw6
IHsKLSAgICAgICAgICAgIGludCBmdW5jdGlvbiA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAg
ICAgICAgcHJpbnRMb2NhdGlvbk9wQW5kUmVnaXN0ZXJPcGVyYW5kKG91dCwgZXhlYywgbG9jYXRp
b24sIGl0LCAicHJvZmlsZV93aWxsX2NhbGwiLCBmdW5jdGlvbik7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgICBjYXNlIG9wX3Byb2ZpbGVfZGlkX2NhbGw6IHsKLSAgICAg
ICAgICAgIGludCBmdW5jdGlvbiA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgcHJp
bnRMb2NhdGlvbk9wQW5kUmVnaXN0ZXJPcGVyYW5kKG91dCwgZXhlYywgbG9jYXRpb24sIGl0LCAi
cHJvZmlsZV9kaWRfY2FsbCIsIGZ1bmN0aW9uKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3BfZW5kOiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCkt
PnUub3BlcmFuZDsKICAgICAgICAgICAgIHByaW50TG9jYXRpb25PcEFuZFJlZ2lzdGVyT3BlcmFu
ZChvdXQsIGV4ZWMsIGxvY2F0aW9uLCBpdCwgImVuZCIsIHIwKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUuY3BwCmluZGV4IDY2Mjc4ODQuLjM0NjE5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNw
cApAQCAtNDksNyArNDksNyBAQCBjb25zdCBDbGFzc0luZm8gVW5saW5rZWRGdW5jdGlvbkV4ZWN1
dGFibGU6OnNfaW5mbyA9IHsgIlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYgogCiBzdGF0aWMgVW5s
aW5rZWRGdW5jdGlvbkNvZGVCbG9jayogZ2VuZXJhdGVVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2Nr
KAogICAgIFZNJiB2bSwgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNv
bnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwKLSAgICBDb2RlU3BlY2lhbGl6YXRpb25LaW5kIGtpbmQs
IERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUsCisg
ICAgQ29kZVNwZWNpYWxpemF0aW9uS2luZCBraW5kLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2Rl
LAogICAgIFVubGlua2VkRnVuY3Rpb25LaW5kIGZ1bmN0aW9uS2luZCwgUGFyc2VyRXJyb3ImIGVy
cm9yLCBTb3VyY2VQYXJzZU1vZGUgcGFyc2VNb2RlKQogewogICAgIEpTUGFyc2VyQnVpbHRpbk1v
ZGUgYnVpbHRpbk1vZGUgPSBleGVjdXRhYmxlLT5pc0J1aWx0aW5GdW5jdGlvbigpID8gSlNQYXJz
ZXJCdWlsdGluTW9kZTo6QnVpbHRpbiA6IEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW47
CkBAIC03MCw3ICs3MCw3IEBAIHN0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBnZW5l
cmF0ZVVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2soCiAKICAgICBVbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrKiByZXN1bHQgPSBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOjpjcmVhdGUoJnZtLCBG
dW5jdGlvbkNvZGUsIEV4ZWN1dGFibGVJbmZvKGZ1bmN0aW9uLT51c2VzRXZhbCgpLCBmdW5jdGlv
bi0+aXNTdHJpY3RNb2RlKCksIGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCwgZnVuY3Rpb25LaW5k
ID09IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9uLCBleGVjdXRhYmxlLT5jb25zdHJ1Y3RvcktpbmQo
KSwgZXhlY3V0YWJsZS0+c3VwZXJCaW5kaW5nKCksIHBhcnNlTW9kZSwgZXhlY3V0YWJsZS0+ZGVy
aXZlZENvbnRleHRUeXBlKCksIGZhbHNlLCBpc0NsYXNzQ29udGV4dCwgRXZhbENvbnRleHRUeXBl
OjpGdW5jdGlvbkV2YWxDb250ZXh0KSk7CiAKLSAgICBlcnJvciA9IEJ5dGVjb2RlR2VuZXJhdG9y
OjpnZW5lcmF0ZSh2bSwgZnVuY3Rpb24uZ2V0KCksIHJlc3VsdCwgZGVidWdnZXJNb2RlLCBwcm9m
aWxlck1vZGUsIGV4ZWN1dGFibGUtPnBhcmVudFNjb3BlVERaVmFyaWFibGVzKCkpOworICAgIGVy
cm9yID0gQnl0ZWNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlKHZtLCBmdW5jdGlvbi5nZXQoKSwgcmVz
dWx0LCBkZWJ1Z2dlck1vZGUsIGV4ZWN1dGFibGUtPnBhcmVudFNjb3BlVERaVmFyaWFibGVzKCkp
OwogCiAgICAgaWYgKGVycm9yLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBA
IC0xOTEsNyArMTkxLDcgQEAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUqIFVubGlua2VkRnVu
Y3Rpb25FeGVjdXRhYmxlOjpmcm9tR2xvYmFsQ29kZSgKIAogVW5saW5rZWRGdW5jdGlvbkNvZGVC
bG9jayogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OnVubGlua2VkQ29kZUJsb2NrRm9yKAog
ICAgIFZNJiB2bSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBDb2RlU3BlY2lhbGl6YXRpb25L
aW5kIHNwZWNpYWxpemF0aW9uS2luZCwgCi0gICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwg
UHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBTb3VyY2VQYXJz
ZU1vZGUgcGFyc2VNb2RlKQorICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFBhcnNlckVy
cm9yJiBlcnJvciwgU291cmNlUGFyc2VNb2RlIHBhcnNlTW9kZSkKIHsKICAgICBzd2l0Y2ggKHNw
ZWNpYWxpemF0aW9uS2luZCkgewogICAgIGNhc2UgQ29kZUZvckNhbGw6CkBAIC0yMDUsNyArMjA1
LDcgQEAgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGU6OnVubGlua2VkQ29kZUJsb2NrRm9yKAogICAgIH0KIAogICAgIFVubGlua2VkRnVuY3Rpb25D
b2RlQmxvY2sqIHJlc3VsdCA9IGdlbmVyYXRlVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jaygKLSAg
ICAgICAgdm0sIHRoaXMsIHNvdXJjZSwgc3BlY2lhbGl6YXRpb25LaW5kLCBkZWJ1Z2dlck1vZGUs
IHByb2ZpbGVyTW9kZSwgCisgICAgICAgIHZtLCB0aGlzLCBzb3VyY2UsIHNwZWNpYWxpemF0aW9u
S2luZCwgZGVidWdnZXJNb2RlLCAKICAgICAgICAgaXNCdWlsdGluRnVuY3Rpb24oKSA/IFVubGlu
a2VkQnVpbHRpbkZ1bmN0aW9uIDogVW5saW5rZWROb3JtYWxGdW5jdGlvbiwgCiAgICAgICAgIGVy
cm9yLCBwYXJzZU1vZGUpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAppbmRleCBiMzU5MTk0
Li42NDZiMGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEludmFsaWRUeXBlUHJvZmlsaW5nT2Zmc2V0cygpOwogCiAgICAg
VW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogdW5saW5rZWRDb2RlQmxvY2tGb3IoCi0gICAgICAg
IFZNJiwgY29uc3QgU291cmNlQ29kZSYsIENvZGVTcGVjaWFsaXphdGlvbktpbmQsIERlYnVnZ2Vy
TW9kZSwgUHJvZmlsZXJNb2RlLCAKKyAgICAgICAgVk0mLCBjb25zdCBTb3VyY2VDb2RlJiwgQ29k
ZVNwZWNpYWxpemF0aW9uS2luZCwgRGVidWdnZXJNb2RlLAogICAgICAgICBQYXJzZXJFcnJvciYs
IFNvdXJjZVBhcnNlTW9kZSk7CiAKICAgICBzdGF0aWMgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUqIGZyb21HbG9iYWxDb2RlKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAppbmRleCBlYzExMGY5Li45NGYyMjQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmNwcApAQCAtMTQ3LDkgKzE0Nyw4IEBAIFBhcnNlckVycm9yIEJ5dGVj
b2RlR2VuZXJhdG9yOjpnZW5lcmF0ZSgpCiAgICAgcmV0dXJuIFBhcnNlckVycm9yKFBhcnNlckVy
cm9yOjpFcnJvck5vbmUpOwogfQogCi1CeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0
b3IoVk0mIHZtLCBQcm9ncmFtTm9kZSogcHJvZ3JhbU5vZGUsIFVubGlua2VkUHJvZ3JhbUNvZGVC
bG9jayogY29kZUJsb2NrLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUg
cHJvZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiBwYXJlbnRTY29wZVREWlZh
cmlhYmxlcykKK0J5dGVjb2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIFBy
b2dyYW1Ob2RlKiBwcm9ncmFtTm9kZSwgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQq
IHBhcmVudFNjb3BlVERaVmFyaWFibGVzKQogICAgIDogbV9zaG91bGRFbWl0RGVidWdIb29rcyhP
cHRpb25zOjpmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgZGVidWdnZXJNb2Rl
ID09IERlYnVnZ2VyT24pCi0gICAgLCBtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MoT3B0aW9uczo6
Zm9yY2VQcm9maWxlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IHByb2ZpbGVyTW9kZSA9PSBQcm9m
aWxlck9uKQogICAgICwgbV9zY29wZU5vZGUocHJvZ3JhbU5vZGUpCiAgICAgLCBtX2NvZGVCbG9j
ayh2bSwgY29kZUJsb2NrKQogICAgICwgbV90aGlzUmVnaXN0ZXIoQ2FsbEZyYW1lOjp0aGlzQXJn
dW1lbnRPZmZzZXQoKSkKQEAgLTE5Myw5ICsxOTIsOCBAQCBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0
ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBQcm9ncmFtTm9kZSogcHJvZ3JhbU5vZGUsIFVubGlua2Vk
UAogICAgIH0KIH0KIAotQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2
bSwgRnVuY3Rpb25Ob2RlKiBmdW5jdGlvbk5vZGUsIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sq
IGNvZGVCbG9jaywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlIHByb2Zp
bGVyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogcGFyZW50U2NvcGVURFpWYXJpYWJs
ZXMpCitCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBGdW5jdGlv
bk5vZGUqIGZ1bmN0aW9uTm9kZSwgVW5saW5rZWRGdW5jdGlvbkNvZGVCbG9jayogY29kZUJsb2Nr
LCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiBw
YXJlbnRTY29wZVREWlZhcmlhYmxlcykKICAgICA6IG1fc2hvdWxkRW1pdERlYnVnSG9va3MoT3B0
aW9uczo6Zm9yY2VEZWJ1Z2dlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IGRlYnVnZ2VyTW9kZSA9
PSBEZWJ1Z2dlck9uKQotICAgICwgbV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKE9wdGlvbnM6OmZv
cmNlUHJvZmlsZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBwcm9maWxlck1vZGUgPT0gUHJvZmls
ZXJPbikKICAgICAsIG1fc2NvcGVOb2RlKGZ1bmN0aW9uTm9kZSkKICAgICAsIG1fY29kZUJsb2Nr
KHZtLCBjb2RlQmxvY2spCiAgICAgLCBtX2NvZGVUeXBlKEZ1bmN0aW9uQ29kZSkKQEAgLTIwNyw3
ICsyMDUsNyBAQCBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBG
dW5jdGlvbk5vZGUqIGZ1bmN0aW9uTm9kZSwgVW5saW5rZQogICAgIC8vIG9wX3dpbGxfY2FsbCAv
IG9wX2RpZF9jYWxsIHBhaXJzIGJlZm9yZSBhbmQgYWZ0ZXIgYSBjYWxsLCB3aGljaCBhcmUgbm90
CiAgICAgLy8gY29tcGF0aWJsZSB3aXRoIHRhaWwgY2FsbHMgKHdlIGhhdmUgbm8gd2F5IG9mIGVt
aXR0aW5nIG9wX2RpZF9jYWxsKS4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ4ODE5Ci0gICAgLCBtX2luVGFpbFBvc2l0aW9uKE9wdGlvbnM6OnVzZVRh
aWxDYWxscygpICYmICFpc0NvbnN0cnVjdG9yKCkgJiYgY29uc3RydWN0b3JLaW5kKCkgPT0gQ29u
c3RydWN0b3JLaW5kOjpOb25lICYmIGlzU3RyaWN0TW9kZSgpICYmICFtX3Nob3VsZEVtaXRQcm9m
aWxlSG9va3MpCisgICAgLCBtX2luVGFpbFBvc2l0aW9uKE9wdGlvbnM6OnVzZVRhaWxDYWxscygp
ICYmICFpc0NvbnN0cnVjdG9yKCkgJiYgY29uc3RydWN0b3JLaW5kKCkgPT0gQ29uc3RydWN0b3JL
aW5kOjpOb25lICYmIGlzU3RyaWN0TW9kZSgpKQogICAgICwgbV9uZWVkc1RvVXBkYXRlQXJyb3dG
dW5jdGlvbkNvbnRleHQoZnVuY3Rpb25Ob2RlLT51c2VzQXJyb3dGdW5jdGlvbigpIHx8IGZ1bmN0
aW9uTm9kZS0+dXNlc0V2YWwoKSkKICAgICAsIG1fZGVyaXZlZENvbnRleHRUeXBlKGNvZGVCbG9j
ay0+ZGVyaXZlZENvbnRleHRUeXBlKCkpCiB7CkBAIC01OTQsOSArNTkyLDggQEAgQnl0ZWNvZGVH
ZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJiB2bSwgRnVuY3Rpb25Ob2RlKiBmdW5jdGlv
bk5vZGUsIFVubGlua2UKICAgICBwdXNoTGV4aWNhbFNjb3BlKG1fc2NvcGVOb2RlLCBURFpDaGVj
a09wdGltaXphdGlvbjo6T3B0aW1pemUsIE5lc3RlZFNjb3BlVHlwZTo6SXNOb3ROZXN0ZWQsIG51
bGxwdHIsIHNob3VsZEluaXRpYWxpemVCbG9ja1Njb3BlZEZ1bmN0aW9ucyk7CiB9CiAKLUJ5dGVj
b2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIEV2YWxOb2RlKiBldmFsTm9k
ZSwgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBjb2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dl
ck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1l
bnQqIHBhcmVudFNjb3BlVERaVmFyaWFibGVzKQorQnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2Rl
R2VuZXJhdG9yKFZNJiB2bSwgRXZhbE5vZGUqIGV2YWxOb2RlLCBVbmxpbmtlZEV2YWxDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgY29uc3QgVmFyaWFibGVF
bnZpcm9ubWVudCogcGFyZW50U2NvcGVURFpWYXJpYWJsZXMpCiAgICAgOiBtX3Nob3VsZEVtaXRE
ZWJ1Z0hvb2tzKE9wdGlvbnM6OmZvcmNlRGVidWdnZXJCeXRlY29kZUdlbmVyYXRpb24oKSB8fCBk
ZWJ1Z2dlck1vZGUgPT0gRGVidWdnZXJPbikKLSAgICAsIG1fc2hvdWxkRW1pdFByb2ZpbGVIb29r
cyhPcHRpb25zOjpmb3JjZVByb2ZpbGVyQnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgcHJvZmlsZXJN
b2RlID09IFByb2ZpbGVyT24pCiAgICAgLCBtX3Njb3BlTm9kZShldmFsTm9kZSkKICAgICAsIG1f
Y29kZUJsb2NrKHZtLCBjb2RlQmxvY2spCiAgICAgLCBtX3RoaXNSZWdpc3RlcihDYWxsRnJhbWU6
OnRoaXNBcmd1bWVudE9mZnNldCgpKQpAQCAtNjUyLDkgKzY0OSw4IEBAIEJ5dGVjb2RlR2VuZXJh
dG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIEV2YWxOb2RlKiBldmFsTm9kZSwgVW5saW5r
ZWRFdmFsQ29kCiAgICAgcHVzaExleGljYWxTY29wZShtX3Njb3BlTm9kZSwgVERaQ2hlY2tPcHRp
bWl6YXRpb246Ok9wdGltaXplLCBOZXN0ZWRTY29wZVR5cGU6OklzTm90TmVzdGVkLCBudWxscHRy
LCBzaG91bGRJbml0aWFsaXplQmxvY2tTY29wZWRGdW5jdGlvbnMpOwogfQogCi1CeXRlY29kZUdl
bmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoVk0mIHZtLCBNb2R1bGVQcm9ncmFtTm9kZSogbW9k
dWxlUHJvZ3JhbU5vZGUsIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayogY29kZUJsb2Nr
LCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2RlLCBj
b25zdCBWYXJpYWJsZUVudmlyb25tZW50KiBwYXJlbnRTY29wZVREWlZhcmlhYmxlcykKK0J5dGVj
b2RlR2VuZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihWTSYgdm0sIE1vZHVsZVByb2dyYW1Ob2Rl
KiBtb2R1bGVQcm9ncmFtTm9kZSwgVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1l
bnQqIHBhcmVudFNjb3BlVERaVmFyaWFibGVzKQogICAgIDogbV9zaG91bGRFbWl0RGVidWdIb29r
cyhPcHRpb25zOjpmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uKCkgfHwgZGVidWdnZXJN
b2RlID09IERlYnVnZ2VyT24pCi0gICAgLCBtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MoT3B0aW9u
czo6Zm9yY2VQcm9maWxlckJ5dGVjb2RlR2VuZXJhdGlvbigpIHx8IHByb2ZpbGVyTW9kZSA9PSBQ
cm9maWxlck9uKQogICAgICwgbV9zY29wZU5vZGUobW9kdWxlUHJvZ3JhbU5vZGUpCiAgICAgLCBt
X2NvZGVCbG9jayh2bSwgY29kZUJsb2NrKQogICAgICwgbV90aGlzUmVnaXN0ZXIoQ2FsbEZyYW1l
Ojp0aGlzQXJndW1lbnRPZmZzZXQoKSkKQEAgLTMwNTMsOSArMzA0OSw2IEBAIFJlZ2lzdGVySUQq
IEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0Q2FsbChPcGNvZGVJRCBvcGNvZGVJRCwgUmVnaXN0ZXJJ
RCogZHN0LCBSZWdpCiAgICAgQVNTRVJUKG9wY29kZUlEID09IG9wX2NhbGwgfHwgb3Bjb2RlSUQg
PT0gb3BfY2FsbF9ldmFsIHx8IG9wY29kZUlEID09IG9wX3RhaWxfY2FsbCk7CiAgICAgQVNTRVJU
KGZ1bmMtPnJlZkNvdW50KCkpOwogICAgIAotICAgIGlmIChtX3Nob3VsZEVtaXRQcm9maWxlSG9v
a3MpCi0gICAgICAgIGVtaXRNb3ZlKGNhbGxBcmd1bWVudHMucHJvZmlsZUhvb2tSZWdpc3Rlcigp
LCBmdW5jKTsKLQogICAgIC8vIEdlbmVyYXRlIGNvZGUgZm9yIGFyZ3VtZW50cy4KICAgICB1bnNp
Z25lZCBhcmd1bWVudCA9IDA7CiAgICAgaWYgKGNhbGxBcmd1bWVudHMuYXJndW1lbnRzTm9kZSgp
KSB7CkBAIC0zMDY2LDcgKzMwNTksNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdENhbGwoT3Bjb2RlSUQgb3Bjb2RlSUQsIFJlZ2lzdGVySUQqIGRzdCwgUmVnaQogICAgICAg
ICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGFyZ3VtZW50UmVnaXN0ZXI7CiAgICAgICAgICAgICBh
cmd1bWVudFJlZ2lzdGVyID0gZXhwcmVzc2lvbi0+ZW1pdEJ5dGVjb2RlKCp0aGlzLCBjYWxsQXJn
dW1lbnRzLmFyZ3VtZW50UmVnaXN0ZXIoMCkpOwogICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVy
SUQ+IHRoaXNSZWdpc3RlciA9IGVtaXRNb3ZlKG5ld1RlbXBvcmFyeSgpLCBjYWxsQXJndW1lbnRz
LnRoaXNSZWdpc3RlcigpKTsKLSAgICAgICAgICAgIHJldHVybiBlbWl0Q2FsbFZhcmFyZ3Mob3Bj
b2RlSUQgPT0gb3BfdGFpbF9jYWxsID8gb3BfdGFpbF9jYWxsX3ZhcmFyZ3MgOiBvcF9jYWxsX3Zh
cmFyZ3MsIGRzdCwgZnVuYywgY2FsbEFyZ3VtZW50cy50aGlzUmVnaXN0ZXIoKSwgYXJndW1lbnRS
ZWdpc3Rlci5nZXQoKSwgbmV3VGVtcG9yYXJ5KCksIDAsIGNhbGxBcmd1bWVudHMucHJvZmlsZUhv
b2tSZWdpc3RlcigpLCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOworICAgICAgICAgICAg
cmV0dXJuIGVtaXRDYWxsVmFyYXJncyhvcGNvZGVJRCA9PSBvcF90YWlsX2NhbGwgPyBvcF90YWls
X2NhbGxfdmFyYXJncyA6IG9wX2NhbGxfdmFyYXJncywgZHN0LCBmdW5jLCBjYWxsQXJndW1lbnRz
LnRoaXNSZWdpc3RlcigpLCBhcmd1bWVudFJlZ2lzdGVyLmdldCgpLCBuZXdUZW1wb3JhcnkoKSwg
MCwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKICAgICAgICAgfQogICAgICAgICBmb3Ig
KDsgbjsgbiA9IG4tPm1fbmV4dCkKICAgICAgICAgICAgIGVtaXROb2RlKGNhbGxBcmd1bWVudHMu
YXJndW1lbnRSZWdpc3Rlcihhcmd1bWVudCsrKSwgbik7CkBAIC0zMDc3LDExICszMDcwLDYgQEAg
UmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsKE9wY29kZUlEIG9wY29kZUlE
LCBSZWdpc3RlcklEKiBkc3QsIFJlZ2kKICAgICBmb3IgKGludCBpID0gMDsgaSA8IEpTU3RhY2s6
OkNhbGxGcmFtZUhlYWRlclNpemU7ICsraSkKICAgICAgICAgY2FsbEZyYW1lLmFwcGVuZChuZXdU
ZW1wb3JhcnkoKSk7CiAKLSAgICBpZiAobV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7Ci0gICAg
ICAgIGVtaXRPcGNvZGUob3BfcHJvZmlsZV93aWxsX2NhbGwpOwotICAgICAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoY2FsbEFyZ3VtZW50cy5wcm9maWxlSG9va1JlZ2lzdGVyKCktPmluZGV4KCkp
OwotICAgIH0KLQogICAgIGVtaXRFeHByZXNzaW9uSW5mbyhkaXZvdCwgZGl2b3RTdGFydCwgZGl2
b3RFbmQpOwogCiAgICAgUmVmUHRyPExhYmVsPiBkb25lID0gbmV3TGFiZWwoKTsKQEAgLTMxMDcs
MzcgKzMwOTUsMjYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsKE9w
Y29kZUlEIG9wY29kZUlELCBSZWdpc3RlcklEKiBkc3QsIFJlZ2kKICAgICBpZiAoZXhwZWN0ZWRG
dW5jdGlvbiAhPSBOb0V4cGVjdGVkRnVuY3Rpb24pCiAgICAgICAgIGVtaXRMYWJlbChkb25lLmdl
dCgpKTsKIAotICAgIGlmIChtX3Nob3VsZEVtaXRQcm9maWxlSG9va3MpIHsKLSAgICAgICAgZW1p
dE9wY29kZShvcF9wcm9maWxlX2RpZF9jYWxsKTsKLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBw
ZW5kKGNhbGxBcmd1bWVudHMucHJvZmlsZUhvb2tSZWdpc3RlcigpLT5pbmRleCgpKTsKLSAgICB9
Ci0KICAgICByZXR1cm4gZHN0OwogfQogCi1SZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6
ZW1pdENhbGxWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0
ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZp
cnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBw
cm9maWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQp
CitSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzKFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdp
c3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90
IGZpcnN0VmFyQXJnT2Zmc2V0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQp
CiB7Ci0gICAgcmV0dXJuIGVtaXRDYWxsVmFyYXJncyhvcF9jYWxsX3ZhcmFyZ3MsIGRzdCwgZnVu
YywgdGhpc1JlZ2lzdGVyLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lzdGVyLCBmaXJzdFZhckFy
Z09mZnNldCwgcHJvZmlsZUhvb2tSZWdpc3RlciwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5k
KTsKKyAgICByZXR1cm4gZW1pdENhbGxWYXJhcmdzKG9wX2NhbGxfdmFyYXJncywgZHN0LCBmdW5j
LCB0aGlzUmVnaXN0ZXIsIGFyZ3VtZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIsIGZpcnN0VmFyQXJn
T2Zmc2V0LCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOwogfQogCi1SZWdpc3RlcklEKiBC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRpb24oUmVnaXN0ZXJJ
RCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lz
dGVySUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3Qg
Zmlyc3RWYXJBcmdPZmZzZXQsIFJlZ2lzdGVySUQqIHByb2ZpbGVIb29rUmVnaXN0ZXIsIGNvbnN0
IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90U3RhcnQs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlvbihSZWdpc3RlcklEKiBkc3QsIFJl
Z2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJn
dW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFy
Z09mZnNldCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlv
biYgZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKQogewotICAgIHJl
dHVybiBlbWl0Q2FsbFZhcmFyZ3MobV9pblRhaWxQb3NpdGlvbiA/IG9wX3RhaWxfY2FsbF92YXJh
cmdzIDogb3BfY2FsbF92YXJhcmdzLCBkc3QsIGZ1bmMsIHRoaXNSZWdpc3RlciwgYXJndW1lbnRz
LCBmaXJzdEZyZWVSZWdpc3RlciwgZmlyc3RWYXJBcmdPZmZzZXQsIHByb2ZpbGVIb29rUmVnaXN0
ZXIsIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7CisgICAgcmV0dXJuIGVtaXRDYWxsVmFy
YXJncyhtX2luVGFpbFBvc2l0aW9uID8gb3BfdGFpbF9jYWxsX3ZhcmFyZ3MgOiBvcF9jYWxsX3Zh
cmFyZ3MsIGRzdCwgZnVuYywgdGhpc1JlZ2lzdGVyLCBhcmd1bWVudHMsIGZpcnN0RnJlZVJlZ2lz
dGVyLCBmaXJzdFZhckFyZ09mZnNldCwgZGl2b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKIH0K
IAotUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3RWYXJhcmdzKFJl
Z2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVy
LCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBp
bnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVy
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZv
dFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCitSZWdpc3RlcklEKiBCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVjdFZhcmFyZ3MoUmVnaXN0ZXJJRCogZHN0LCBSZWdp
c3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVySUQqIGFyZ3Vt
ZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmlyc3RWYXJBcmdP
ZmZzZXQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0UG9zaXRpb24m
IGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKIHsKLSAgICByZXR1
cm4gZW1pdENhbGxWYXJhcmdzKG9wX2NvbnN0cnVjdF92YXJhcmdzLCBkc3QsIGZ1bmMsIHRoaXNS
ZWdpc3RlciwgYXJndW1lbnRzLCBmaXJzdEZyZWVSZWdpc3RlciwgZmlyc3RWYXJBcmdPZmZzZXQs
IHByb2ZpbGVIb29rUmVnaXN0ZXIsIGRpdm90LCBkaXZvdFN0YXJ0LCBkaXZvdEVuZCk7CisgICAg
cmV0dXJuIGVtaXRDYWxsVmFyYXJncyhvcF9jb25zdHJ1Y3RfdmFyYXJncywgZHN0LCBmdW5jLCB0
aGlzUmVnaXN0ZXIsIGFyZ3VtZW50cywgZmlyc3RGcmVlUmVnaXN0ZXIsIGZpcnN0VmFyQXJnT2Zm
c2V0LCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOwogfQogICAgIAotUmVnaXN0ZXJJRCog
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDYWxsVmFyYXJncyhPcGNvZGVJRCBvcGNvZGUsIFJlZ2lz
dGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBS
ZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQz
Ml90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBj
b25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0
YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpCitSZWdpc3RlcklEKiBCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdENhbGxWYXJhcmdzKE9wY29kZUlEIG9wY29kZSwgUmVnaXN0ZXJJRCog
ZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBSZWdpc3RlcklEKiB0aGlzUmVnaXN0ZXIsIFJlZ2lzdGVy
SUQqIGFyZ3VtZW50cywgUmVnaXN0ZXJJRCogZmlyc3RGcmVlUmVnaXN0ZXIsIGludDMyX3QgZmly
c3RWYXJBcmdPZmZzZXQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdCwgY29uc3QgSlNUZXh0
UG9zaXRpb24mIGRpdm90U3RhcnQsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdEVuZCkKIHsK
LSAgICBpZiAobV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7Ci0gICAgICAgIGVtaXRNb3ZlKHBy
b2ZpbGVIb29rUmVnaXN0ZXIsIGZ1bmMpOwotICAgICAgICBlbWl0T3Bjb2RlKG9wX3Byb2ZpbGVf
d2lsbF9jYWxsKTsKLSAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHByb2ZpbGVIb29rUmVn
aXN0ZXItPmluZGV4KCkpOwotICAgIH0KLSAgICAKICAgICBlbWl0RXhwcmVzc2lvbkluZm8oZGl2
b3QsIGRpdm90U3RhcnQsIGRpdm90RW5kKTsKIAogICAgIGlmIChvcGNvZGUgPT0gb3BfdGFpbF9j
YWxsX3ZhcmFyZ3MpCkBAIC0zMTU1LDEwICszMTMyLDYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRDYWxsVmFyYXJncyhPcGNvZGVJRCBvcGNvZGUsIFJlZ2lzdGVySUQqIGRz
dCwKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZmlyc3RWYXJBcmdPZmZzZXQpOwogICAgIGlu
c3RydWN0aW9ucygpLmFwcGVuZChhcnJheVByb2ZpbGUpOwogICAgIGluc3RydWN0aW9ucygpLmFw
cGVuZChwcm9maWxlKTsKLSAgICBpZiAobV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7Ci0gICAg
ICAgIGVtaXRPcGNvZGUob3BfcHJvZmlsZV9kaWRfY2FsbCk7Ci0gICAgICAgIGluc3RydWN0aW9u
cygpLmFwcGVuZChwcm9maWxlSG9va1JlZ2lzdGVyLT5pbmRleCgpKTsKLSAgICB9CiAgICAgcmV0
dXJuIGRzdDsKIH0KIApAQCAtMzI0OSw5ICszMjIyLDYgQEAgUmVnaXN0ZXJJRCogQnl0ZWNvZGVH
ZW5lcmF0b3I6OmVtaXRDb25zdHJ1Y3QoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5j
LAogewogICAgIEFTU0VSVChmdW5jLT5yZWZDb3VudCgpKTsKIAotICAgIGlmIChtX3Nob3VsZEVt
aXRQcm9maWxlSG9va3MpCi0gICAgICAgIGVtaXRNb3ZlKGNhbGxBcmd1bWVudHMucHJvZmlsZUhv
b2tSZWdpc3RlcigpLCBmdW5jKTsKLQogICAgIC8vIEdlbmVyYXRlIGNvZGUgZm9yIGFyZ3VtZW50
cy4KICAgICB1bnNpZ25lZCBhcmd1bWVudCA9IDA7CiAgICAgaWYgKEFyZ3VtZW50c05vZGUqIGFy
Z3VtZW50c05vZGUgPSBjYWxsQXJndW1lbnRzLmFyZ3VtZW50c05vZGUoKSkgewpAQCAtMzI2Miwx
OCArMzIzMiwxMyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVj
dChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsCiAgICAgICAgICAgICBhdXRvIGV4
cHJlc3Npb24gPSBzdGF0aWNfY2FzdDxTcHJlYWRFeHByZXNzaW9uTm9kZSo+KG4tPm1fZXhwcikt
PmV4cHJlc3Npb24oKTsKICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBhcmd1bWVudFJl
Z2lzdGVyOwogICAgICAgICAgICAgYXJndW1lbnRSZWdpc3RlciA9IGV4cHJlc3Npb24tPmVtaXRC
eXRlY29kZSgqdGhpcywgY2FsbEFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVyKDApKTsKLSAgICAg
ICAgICAgIHJldHVybiBlbWl0Q29uc3RydWN0VmFyYXJncyhkc3QsIGZ1bmMsIGNhbGxBcmd1bWVu
dHMudGhpc1JlZ2lzdGVyKCksIGFyZ3VtZW50UmVnaXN0ZXIuZ2V0KCksIG5ld1RlbXBvcmFyeSgp
LCAwLCBjYWxsQXJndW1lbnRzLnByb2ZpbGVIb29rUmVnaXN0ZXIoKSwgZGl2b3QsIGRpdm90U3Rh
cnQsIGRpdm90RW5kKTsKKyAgICAgICAgICAgIHJldHVybiBlbWl0Q29uc3RydWN0VmFyYXJncyhk
c3QsIGZ1bmMsIGNhbGxBcmd1bWVudHMudGhpc1JlZ2lzdGVyKCksIGFyZ3VtZW50UmVnaXN0ZXIu
Z2V0KCksIG5ld1RlbXBvcmFyeSgpLCAwLCBkaXZvdCwgZGl2b3RTdGFydCwgZGl2b3RFbmQpOwog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBmb3IgKEFyZ3VtZW50TGlzdE5vZGUqIG4gPSBh
cmd1bWVudHNOb2RlLT5tX2xpc3ROb2RlOyBuOyBuID0gbi0+bV9uZXh0KQogICAgICAgICAgICAg
ZW1pdE5vZGUoY2FsbEFyZ3VtZW50cy5hcmd1bWVudFJlZ2lzdGVyKGFyZ3VtZW50KyspLCBuKTsK
ICAgICB9CiAKLSAgICBpZiAobV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKSB7Ci0gICAgICAgIGVt
aXRPcGNvZGUob3BfcHJvZmlsZV93aWxsX2NhbGwpOwotICAgICAgICBpbnN0cnVjdGlvbnMoKS5h
cHBlbmQoY2FsbEFyZ3VtZW50cy5wcm9maWxlSG9va1JlZ2lzdGVyKCktPmluZGV4KCkpOwotICAg
IH0KLQogICAgIC8vIFJlc2VydmUgc3BhY2UgZm9yIGNhbGwgZnJhbWUuCiAgICAgVmVjdG9yPFJl
ZlB0cjxSZWdpc3RlcklEPiwgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSwgVW5zYWZlVmVj
dG9yT3ZlcmZsb3c+IGNhbGxGcmFtZTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IEpTU3RhY2s6
OkNhbGxGcmFtZUhlYWRlclNpemU7ICsraSkKQEAgLTMyOTgsMTEgKzMyNjMsNiBAQCBSZWdpc3Rl
cklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbnN0cnVjdChSZWdpc3RlcklEKiBkc3QsIFJl
Z2lzdGVySUQqIGZ1bmMsCiAgICAgaWYgKGV4cGVjdGVkRnVuY3Rpb24gIT0gTm9FeHBlY3RlZEZ1
bmN0aW9uKQogICAgICAgICBlbWl0TGFiZWwoZG9uZS5nZXQoKSk7CiAKLSAgICBpZiAobV9zaG91
bGRFbWl0UHJvZmlsZUhvb2tzKSB7Ci0gICAgICAgIGVtaXRPcGNvZGUob3BfcHJvZmlsZV9kaWRf
Y2FsbCk7Ci0gICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChjYWxsQXJndW1lbnRzLnByb2Zp
bGVIb29rUmVnaXN0ZXIoKS0+aW5kZXgoKSk7Ci0gICAgfQotCiAgICAgcmV0dXJuIGRzdDsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29k
ZUdlbmVyYXRvci5oCmluZGV4IDk5YmM3OTcuLjIyY2U0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTc1
LDExICs3NSw5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSZWdpc3RlcklEKiBhcmd1bWVu
dFJlZ2lzdGVyKHVuc2lnbmVkIGkpIHsgcmV0dXJuIG1fYXJndltpICsgMV0uZ2V0KCk7IH0KICAg
ICAgICAgdW5zaWduZWQgc3RhY2tPZmZzZXQoKSB7IHJldHVybiAtbV9hcmd2WzBdLT5pbmRleCgp
ICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsgfQogICAgICAgICB1bnNpZ25lZCBhcmd1
bWVudENvdW50SW5jbHVkaW5nVGhpcygpIHsgcmV0dXJuIG1fYXJndi5zaXplKCkgLSBtX3BhZGRp
bmc7IH0KLSAgICAgICAgUmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tSZWdpc3RlcigpIHsgcmV0dXJu
IG1fcHJvZmlsZUhvb2tSZWdpc3Rlci5nZXQoKTsgfQogICAgICAgICBBcmd1bWVudHNOb2RlKiBh
cmd1bWVudHNOb2RlKCkgeyByZXR1cm4gbV9hcmd1bWVudHNOb2RlOyB9CiAKICAgICBwcml2YXRl
OgotICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gbV9wcm9maWxlSG9va1JlZ2lzdGVyOwogICAg
ICAgICBBcmd1bWVudHNOb2RlKiBtX2FyZ3VtZW50c05vZGU7CiAgICAgICAgIFZlY3RvcjxSZWZQ
dHI8UmVnaXN0ZXJJRD4sIDgsIFVuc2FmZVZlY3Rvck92ZXJmbG93PiBtX2FyZ3Y7CiAgICAgICAg
IHVuc2lnbmVkIG1fcGFkZGluZzsKQEAgLTI2OSwxMCArMjY3LDEwIEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBEZWNsYXJhdGlvblN0YWNrczo6RnVuY3Rp
b25TdGFjayBGdW5jdGlvblN0YWNrOwogCi0gICAgICAgIEJ5dGVjb2RlR2VuZXJhdG9yKFZNJiwg
UHJvZ3JhbU5vZGUqLCBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqLCBEZWJ1Z2dlck1vZGUsIFBy
b2ZpbGVyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOwotICAgICAgICBCeXRlY29k
ZUdlbmVyYXRvcihWTSYsIEZ1bmN0aW9uTm9kZSosIFVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2sq
LCBEZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCop
OwotICAgICAgICBCeXRlY29kZUdlbmVyYXRvcihWTSYsIEV2YWxOb2RlKiwgVW5saW5rZWRFdmFs
Q29kZUJsb2NrKiwgRGVidWdnZXJNb2RlLCBQcm9maWxlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52
aXJvbm1lbnQqKTsKLSAgICAgICAgQnl0ZWNvZGVHZW5lcmF0b3IoVk0mLCBNb2R1bGVQcm9ncmFt
Tm9kZSosIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayosIERlYnVnZ2VyTW9kZSwgUHJv
ZmlsZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7CisgICAgICAgIEJ5dGVjb2Rl
R2VuZXJhdG9yKFZNJiwgUHJvZ3JhbU5vZGUqLCBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqLCBE
ZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKKyAgICAgICAgQnl0ZWNv
ZGVHZW5lcmF0b3IoVk0mLCBGdW5jdGlvbk5vZGUqLCBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2Nr
KiwgRGVidWdnZXJNb2RlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50Kik7CisgICAgICAgIEJ5
dGVjb2RlR2VuZXJhdG9yKFZNJiwgRXZhbE5vZGUqLCBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqLCBE
ZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKKyAgICAgICAgQnl0ZWNv
ZGVHZW5lcmF0b3IoVk0mLCBNb2R1bGVQcm9ncmFtTm9kZSosIFVubGlua2VkTW9kdWxlUHJvZ3Jh
bUNvZGVCbG9jayosIERlYnVnZ2VyTW9kZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOwog
CiAgICAgICAgIH5CeXRlY29kZUdlbmVyYXRvcigpOwogICAgICAgICAKQEAgLTU3Nyw4ICs1NzUs
OCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENhbGwoUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBFeHBlY3RlZEZ1bmN0aW9uLCBDYWxsQXJndW1l
bnRzJiwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYg
ZGl2b3RTdGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKICAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdENhbGxJblRhaWxQb3NpdGlvbihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVy
SUQqIGZ1bmMsIEV4cGVjdGVkRnVuY3Rpb24sIENhbGxBcmd1bWVudHMmLCBjb25zdCBKU1RleHRQ
b3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBK
U1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2FsbEV2
YWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBmdW5jLCBDYWxsQXJndW1lbnRzJiwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFy
dCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKLSAgICAgICAgUmVnaXN0ZXJJRCog
ZW1pdENhbGxWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0
ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZp
cnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBw
cm9maWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQp
OwotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlvbihSZWdp
c3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJlZ2lzdGVySUQqIHRoaXNSZWdpc3Rlciwg
UmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50
MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgUmVnaXN0ZXJJRCogcHJvZmlsZUhvb2tSZWdpc3Rlciwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RT
dGFydCwgY29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKKyAgICAgICAgUmVnaXN0ZXJJ
RCogZW1pdENhbGxWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVn
aXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQq
IGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBjb25zdCBKU1Rl
eHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2Fs
bFZhcmFyZ3NJblRhaWxQb3NpdGlvbihSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMs
IFJlZ2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3Rl
cklEKiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgY29uc3Qg
SlNUZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwg
Y29uc3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKIAogICAgICAgICBlbnVtIFByb3BlcnR5
RGVzY3JpcHRvck9wdGlvbiB7CiAgICAgICAgICAgICBQcm9wZXJ0eUNvbmZpZ3VyYWJsZSA9IDEs
CkBAIC03MDQsNyArNzAyLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgQ29kZVR5cGUg
Y29kZVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGVUeXBlOyB9CiAKLSAgICAgICAgYm9vbCBz
aG91bGRFbWl0UHJvZmlsZUhvb2tzKCkgeyByZXR1cm4gbV9zaG91bGRFbWl0UHJvZmlsZUhvb2tz
OyB9CiAgICAgICAgIGJvb2wgc2hvdWxkRW1pdERlYnVnSG9va3MoKSB7IHJldHVybiBtX3Nob3Vs
ZEVtaXREZWJ1Z0hvb2tzOyB9CiAgICAgICAgIAogICAgICAgICBib29sIGlzU3RyaWN0TW9kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY29kZUJsb2NrLT5pc1N0cmljdE1vZGUoKTsgfQpAQCAtODQ5LDgg
Kzg0Niw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZvaWQgZ2V0VmFyaWFibGVzVW5k
ZXJURFooVmFyaWFibGVFbnZpcm9ubWVudCYpOwogCi0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRD
b25zdHJ1Y3RWYXJhcmdzKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0
ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdpc3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZp
cnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBw
cm9maWxlSG9va1JlZ2lzdGVyLCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpT
VGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQp
OwotICAgICAgICBSZWdpc3RlcklEKiBlbWl0Q2FsbFZhcmFyZ3MoT3Bjb2RlSUQsIFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogZnVuYywgUmVnaXN0ZXJJRCogdGhpc1JlZ2lzdGVyLCBSZWdp
c3RlcklEKiBhcmd1bWVudHMsIFJlZ2lzdGVySUQqIGZpcnN0RnJlZVJlZ2lzdGVyLCBpbnQzMl90
IGZpcnN0VmFyQXJnT2Zmc2V0LCBSZWdpc3RlcklEKiBwcm9maWxlSG9va1JlZ2lzdGVyLCBjb25z
dCBKU1RleHRQb3NpdGlvbiYgZGl2b3QsIGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBkaXZvdFN0YXJ0
LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RFbmQpOworICAgICAgICBSZWdpc3RlcklEKiBl
bWl0Q29uc3RydWN0VmFyYXJncyhSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJl
Z2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklE
KiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdENh
bGxWYXJhcmdzKE9wY29kZUlELCBSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGZ1bmMsIFJl
Z2lzdGVySUQqIHRoaXNSZWdpc3RlciwgUmVnaXN0ZXJJRCogYXJndW1lbnRzLCBSZWdpc3RlcklE
KiBmaXJzdEZyZWVSZWdpc3RlciwgaW50MzJfdCBmaXJzdFZhckFyZ09mZnNldCwgY29uc3QgSlNU
ZXh0UG9zaXRpb24mIGRpdm90LCBjb25zdCBKU1RleHRQb3NpdGlvbiYgZGl2b3RTdGFydCwgY29u
c3QgSlNUZXh0UG9zaXRpb24mIGRpdm90RW5kKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgZW1p
dExvZ1NoYWRvd0NoaWNrZW5Qcm9sb2d1ZUlmTmVjZXNzYXJ5KCk7CiAgICAgICAgIHZvaWQgZW1p
dExvZ1NoYWRvd0NoaWNrZW5UYWlsSWZOZWNlc3NhcnkoKTsKQEAgLTg3Miw3ICs4NjksNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgVmVjdG9yPFVubGlua2VkSW5zdHJ1Y3Rpb24sIDAsIFVu
c2FmZVZlY3Rvck92ZXJmbG93PiBtX2luc3RydWN0aW9uczsKIAogICAgICAgICBib29sIG1fc2hv
dWxkRW1pdERlYnVnSG9va3M7Ci0gICAgICAgIGJvb2wgbV9zaG91bGRFbWl0UHJvZmlsZUhvb2tz
OwogCiAgICAgICAgIHN0cnVjdCBTeW1ib2xUYWJsZVN0YWNrRW50cnkgewogICAgICAgICAgICAg
U3ltYm9sVGFibGUqIG1fc3ltYm9sVGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKaW5kZXggZjI1MzBlZS4uM2JiZDJmMSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVn
ZW4uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcApAQCAtNzA3LDkgKzcwNyw2IEBAIENhbGxBcmd1bWVudHM6OkNhbGxBcmd1bWVudHMo
Qnl0ZWNvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgQXJndW1lbnRzTm9kZSogYXJndW1lCiAgICAg
OiBtX2FyZ3VtZW50c05vZGUoYXJndW1lbnRzTm9kZSkKICAgICAsIG1fcGFkZGluZygwKQogewot
ICAgIGlmIChnZW5lcmF0b3Iuc2hvdWxkRW1pdFByb2ZpbGVIb29rcygpKQotICAgICAgICBtX3By
b2ZpbGVIb29rUmVnaXN0ZXIgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7Ci0KICAgICBzaXpl
X3QgYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgPSAxICsgYWRkaXRpb25hbEFyZ3VtZW50czsg
Ly8gJ3RoaXMnIHJlZ2lzdGVyLgogICAgIGlmIChhcmd1bWVudHNOb2RlKSB7CiAgICAgICAgIGZv
ciAoQXJndW1lbnRMaXN0Tm9kZSogbm9kZSA9IGFyZ3VtZW50c05vZGUtPm1fbGlzdE5vZGU7IG5v
ZGU7IG5vZGUgPSBub2RlLT5tX25leHQpCkBAIC0xMDIxLDE2ICsxMDE4LDEzIEBAIFJlZ2lzdGVy
SUQqIENhbGxGdW5jdGlvbkNhbGxEb3ROb2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0
b3ImIGdlbmVyYXRvciwKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmV0dXJuVmFsdWUgPSBnZW5l
cmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpOwogICAgIHsKICAgICAgICAgaWYgKG1fYXJncy0+
bV9saXN0Tm9kZSAmJiBtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fZXhwciAmJiBtX2FyZ3MtPm1fbGlz
dE5vZGUtPm1fZXhwci0+aXNTcHJlYWRFeHByZXNzaW9uKCkpIHsKLSAgICAgICAgICAgIFJlZlB0
cjxSZWdpc3RlcklEPiBwcm9maWxlSG9va1JlZ2lzdGVyOwotICAgICAgICAgICAgaWYgKGdlbmVy
YXRvci5zaG91bGRFbWl0UHJvZmlsZUhvb2tzKCkpCi0gICAgICAgICAgICAgICAgcHJvZmlsZUhv
b2tSZWdpc3RlciA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKICAgICAgICAgICAgIFNwcmVh
ZEV4cHJlc3Npb25Ob2RlKiBzcHJlYWQgPSBzdGF0aWNfY2FzdDxTcHJlYWRFeHByZXNzaW9uTm9k
ZSo+KG1fYXJncy0+bV9saXN0Tm9kZS0+bV9leHByKTsKICAgICAgICAgICAgIEV4cHJlc3Npb25O
b2RlKiBzdWJqZWN0ID0gc3ByZWFkLT5leHByZXNzaW9uKCk7CiAgICAgICAgICAgICBSZWZQdHI8
UmVnaXN0ZXJJRD4gYXJndW1lbnRzUmVnaXN0ZXI7CiAgICAgICAgICAgICBhcmd1bWVudHNSZWdp
c3RlciA9IGdlbmVyYXRvci5lbWl0Tm9kZShzdWJqZWN0KTsKICAgICAgICAgICAgIGdlbmVyYXRv
ci5lbWl0RXhwcmVzc2lvbkluZm8oc3ByZWFkLT5kaXZvdCgpLCBzcHJlYWQtPmRpdm90U3RhcnQo
KSwgc3ByZWFkLT5kaXZvdEVuZCgpKTsKICAgICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0
aGlzUmVnaXN0ZXIgPSBnZW5lcmF0b3IuZW1pdEdldEJ5VmFsKGdlbmVyYXRvci5uZXdUZW1wb3Jh
cnkoKSwgYXJndW1lbnRzUmVnaXN0ZXIuZ2V0KCksIGdlbmVyYXRvci5lbWl0TG9hZCgwLCBqc051
bWJlcigwKSkpOwotICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRDYWxsVmFyYXJnc0luVGFpbFBv
c2l0aW9uKHJldHVyblZhbHVlLmdldCgpLCBiYXNlLmdldCgpLCB0aGlzUmVnaXN0ZXIuZ2V0KCks
IGFyZ3VtZW50c1JlZ2lzdGVyLmdldCgpLCBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIDEsIHBy
b2ZpbGVIb29rUmVnaXN0ZXIuZ2V0KCksIGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQo
KSk7CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdENhbGxWYXJhcmdzSW5UYWlsUG9zaXRpb24o
cmV0dXJuVmFsdWUuZ2V0KCksIGJhc2UuZ2V0KCksIHRoaXNSZWdpc3Rlci5nZXQoKSwgYXJndW1l
bnRzUmVnaXN0ZXIuZ2V0KCksIGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgMSwgZGl2b3QoKSwg
ZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKICAgICAgICAgfSBlbHNlIGlmIChtX2FyZ3MtPm1f
bGlzdE5vZGUgJiYgbV9hcmdzLT5tX2xpc3ROb2RlLT5tX2V4cHIpIHsKICAgICAgICAgICAgIEFy
Z3VtZW50TGlzdE5vZGUqIG9sZExpc3QgPSBtX2FyZ3MtPm1fbGlzdE5vZGU7CiAgICAgICAgICAg
ICBtX2FyZ3MtPm1fbGlzdE5vZGUgPSBtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fbmV4dDsKQEAgLTEw
OTQsOSArMTA4OCw2IEBAIFJlZ2lzdGVySUQqIEFwcGx5RnVuY3Rpb25DYWxsRG90Tm9kZTo6ZW1p
dEJ5dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsCiAgICAgICAgICAgICBBcmd1
bWVudExpc3ROb2RlKiBvbGRMaXN0ID0gbV9hcmdzLT5tX2xpc3ROb2RlOwogICAgICAgICAgICAg
aWYgKG1fYXJncy0+bV9saXN0Tm9kZS0+bV9leHByLT5pc1NwcmVhZEV4cHJlc3Npb24oKSkgewog
ICAgICAgICAgICAgICAgIFNwcmVhZEV4cHJlc3Npb25Ob2RlKiBzcHJlYWQgPSBzdGF0aWNfY2Fz
dDxTcHJlYWRFeHByZXNzaW9uTm9kZSo+KG1fYXJncy0+bV9saXN0Tm9kZS0+bV9leHByKTsKLSAg
ICAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcHJvZmlsZUhvb2tSZWdpc3RlcjsKLSAg
ICAgICAgICAgICAgICBpZiAoZ2VuZXJhdG9yLnNob3VsZEVtaXRQcm9maWxlSG9va3MoKSkKLSAg
ICAgICAgICAgICAgICAgICAgcHJvZmlsZUhvb2tSZWdpc3RlciA9IGdlbmVyYXRvci5uZXdUZW1w
b3JhcnkoKTsKICAgICAgICAgICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcmVhbEZ1bmN0aW9u
ID0gZ2VuZXJhdG9yLmVtaXRNb3ZlKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgYmFzZS5nZXQo
KSk7CiAgICAgICAgICAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGluZGV4ID0gZ2VuZXJhdG9y
LmVtaXRMb2FkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwganNOdW1iZXIoMCkpOwogICAgICAg
ICAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiB0aGlzUmVnaXN0ZXIgPSBnZW5lcmF0b3IuZW1p
dExvYWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBqc1VuZGVmaW5lZCgpKTsKQEAgLTExMjAs
NyArMTExMSw3IEBAIFJlZ2lzdGVySUQqIEFwcGx5RnVuY3Rpb25DYWxsRG90Tm9kZTo6ZW1pdEJ5
dGVjb2RlKEJ5dGVjb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsCiAgICAgICAgICAgICAgICAgICAg
IGdlbmVyYXRvci5lbWl0TGFiZWwoZW5kLmdldCgpKTsKICAgICAgICAgICAgICAgICB9OwogICAg
ICAgICAgICAgICAgIGdlbmVyYXRvci5lbWl0RW51bWVyYXRpb24odGhpcywgc3ByZWFkLT5leHBy
ZXNzaW9uKCksIGV4dHJhY3Rvcik7Ci0gICAgICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRDYWxs
VmFyYXJnc0luVGFpbFBvc2l0aW9uKHJldHVyblZhbHVlLmdldCgpLCByZWFsRnVuY3Rpb24uZ2V0
KCksIHRoaXNSZWdpc3Rlci5nZXQoKSwgYXJndW1lbnRzUmVnaXN0ZXIuZ2V0KCksIGdlbmVyYXRv
ci5uZXdUZW1wb3JhcnkoKSwgMCwgcHJvZmlsZUhvb2tSZWdpc3Rlci5nZXQoKSwgZGl2b3QoKSwg
ZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKKyAgICAgICAgICAgICAgICBnZW5lcmF0b3IuZW1p
dENhbGxWYXJhcmdzSW5UYWlsUG9zaXRpb24ocmV0dXJuVmFsdWUuZ2V0KCksIHJlYWxGdW5jdGlv
bi5nZXQoKSwgdGhpc1JlZ2lzdGVyLmdldCgpLCBhcmd1bWVudHNSZWdpc3Rlci5nZXQoKSwgZ2Vu
ZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAwLCBkaXZvdCgpLCBkaXZvdFN0YXJ0KCksIGRpdm90RW5k
KCkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fbmV4dCkg
ewogICAgICAgICAgICAgICAgIEFTU0VSVChtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fbmV4dC0+bV9l
eHByLT5pc1NpbXBsZUFycmF5KCkpOwogICAgICAgICAgICAgICAgIEFTU0VSVCghbV9hcmdzLT5t
X2xpc3ROb2RlLT5tX25leHQtPm1fbmV4dCk7CkBAIC0xMTQ1LDkgKzExMzYsNiBAQCBSZWdpc3Rl
cklEKiBBcHBseUZ1bmN0aW9uQ2FsbERvdE5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yLAogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJU
KG1fYXJncy0+bV9saXN0Tm9kZSAmJiBtX2FyZ3MtPm1fbGlzdE5vZGUtPm1fbmV4dCk7Ci0gICAg
ICAgIFJlZlB0cjxSZWdpc3RlcklEPiBwcm9maWxlSG9va1JlZ2lzdGVyOwotICAgICAgICBpZiAo
Z2VuZXJhdG9yLnNob3VsZEVtaXRQcm9maWxlSG9va3MoKSkKLSAgICAgICAgICAgIHByb2ZpbGVI
b29rUmVnaXN0ZXIgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CiAgICAgICAgIFJlZlB0cjxS
ZWdpc3RlcklEPiByZWFsRnVuY3Rpb24gPSBnZW5lcmF0b3IuZW1pdE1vdmUoZ2VuZXJhdG9yLnRl
bXBEZXN0aW5hdGlvbihkc3QpLCBiYXNlLmdldCgpKTsKICAgICAgICAgUmVmUHRyPFJlZ2lzdGVy
SUQ+IHRoaXNSZWdpc3RlciA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2FyZ3MtPm1fbGlzdE5vZGUt
Pm1fZXhwcik7CiAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklEPiBhcmdzUmVnaXN0ZXI7CkBAIC0x
MTU5LDcgKzExNDcsNyBAQCBSZWdpc3RlcklEKiBBcHBseUZ1bmN0aW9uQ2FsbERvdE5vZGU6OmVt
aXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLAogICAgICAgICB3aGlsZSAo
KGFyZ3MgPSBhcmdzLT5tX25leHQpKQogICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGFy
Z3MtPm1fZXhwcik7CiAKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRDYWxsVmFyYXJnc0luVGFpbFBv
c2l0aW9uKHJldHVyblZhbHVlLmdldCgpLCByZWFsRnVuY3Rpb24uZ2V0KCksIHRoaXNSZWdpc3Rl
ci5nZXQoKSwgYXJnc1JlZ2lzdGVyLmdldCgpLCBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIDAs
IHByb2ZpbGVIb29rUmVnaXN0ZXIuZ2V0KCksIGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RF
bmQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0Q2FsbFZhcmFyZ3NJblRhaWxQb3NpdGlvbihy
ZXR1cm5WYWx1ZS5nZXQoKSwgcmVhbEZ1bmN0aW9uLmdldCgpLCB0aGlzUmVnaXN0ZXIuZ2V0KCks
IGFyZ3NSZWdpc3Rlci5nZXQoKSwgZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCAwLCBkaXZvdCgp
LCBkaXZvdFN0YXJ0KCksIGRpdm90RW5kKCkpOwogICAgIH0KICAgICBpZiAoZW1pdENhbGxDaGVj
aykgewogICAgICAgICBnZW5lcmF0b3IuZW1pdEp1bXAoZW5kLmdldCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaAppbmRleCAwOTA5MWVjLi5kMDgzMmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0yODQ0
LDggKzI4NDQsNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+
OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgTG9nU2hhZG93
Q2hpY2tlblRhaWw6CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBQcm9maWxlV2lsbENhbGw6
Ci0gICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAgICBjYXNlIFByb2ZpbGVUeXBlOgogICAgIGNh
c2UgUHJvZmlsZUNvbnRyb2xGbG93OgogICAgIGNhc2UgUGhhbnRvbToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggNmQwNzlmNi4uODVk
OGQyMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKQEAgLTM3OTksMTYgKzM3OTksNiBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJs
b2NrKHVuc2lnbmVkIGxpbWl0KQogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfZGVidWcpOwog
ICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBvcF9wcm9maWxlX3dpbGxfY2FsbDogewotICAgICAg
ICAgICAgYWRkVG9HcmFwaChQcm9maWxlV2lsbENhbGwpOwotICAgICAgICAgICAgTkVYVF9PUENP
REUob3BfcHJvZmlsZV93aWxsX2NhbGwpOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBvcF9w
cm9maWxlX2RpZF9jYWxsOiB7Ci0gICAgICAgICAgICBhZGRUb0dyYXBoKFByb2ZpbGVEaWRDYWxs
KTsKLSAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3Byb2ZpbGVfZGlkX2NhbGwpOwotICAgICAg
ICB9Ci0KICAgICAgICAgY2FzZSBvcF9tb3Y6IHsKICAgICAgICAgICAgIE5vZGUqIG9wID0gZ2V0
KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CiAgICAg
ICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQpLCBvcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFi
aWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHAKaW5kZXggY2MyZDQ3NC4uMDY2NjlkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTI0LDggKzEyNCw2IEBAIENhcGFiaWxpdHlMZXZl
bCBjYXBhYmlsaXR5TGV2ZWwoT3Bjb2RlSUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2Nr
LCBJbnN0cnVjCiAgICAgY2FzZSBvcF9tb2Q6CiAgICAgY2FzZSBvcF9kaXY6CiAgICAgY2FzZSBv
cF9kZWJ1ZzoKLSAgICBjYXNlIG9wX3Byb2ZpbGVfd2lsbF9jYWxsOgotICAgIGNhc2Ugb3BfcHJv
ZmlsZV9kaWRfY2FsbDoKICAgICBjYXNlIG9wX3Byb2ZpbGVfdHlwZToKICAgICBjYXNlIG9wX3By
b2ZpbGVfY29udHJvbF9mbG93OgogICAgIGNhc2Ugb3BfbW92OgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCBmYTc2OTQwLi5kYTMwOThjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtMzcyLDggKzM3Miw2IEBAIHZv
aWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9y
JiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgY2FzZSBDaGVja1RpZXJVcEF0UmV0dXJuOgogICAg
IGNhc2UgQ2hlY2tUaWVyVXBBbmRPU1JFbnRlcjoKICAgICBjYXNlIExvb3BIaW50OgotICAgIGNh
c2UgUHJvZmlsZVdpbGxDYWxsOgotICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgY2FzZSBQ
cm9maWxlVHlwZToKICAgICBjYXNlIFByb2ZpbGVDb250cm9sRmxvdzoKICAgICBjYXNlIFN0b3Jl
QmFycmllcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dD
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAppbmRleCA2Y2Yw
ZDBiLi41ZmYyZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Rv
ZXNHQy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCkBA
IC0xNTAsOCArMTUwLDYgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQog
ICAgIGNhc2UgQ29uc3RydWN0Rm9yd2FyZFZhcmFyZ3M6CiAgICAgY2FzZSBUYWlsQ2FsbEZvcndh
cmRWYXJhcmdzOgogICAgIGNhc2UgVGFpbENhbGxGb3J3YXJkVmFyYXJnc0lubGluZWRDYWxsZXI6
Ci0gICAgY2FzZSBQcm9maWxlV2lsbENhbGw6Ci0gICAgY2FzZSBQcm9maWxlRGlkQ2FsbDoKICAg
ICBjYXNlIFByb2ZpbGVUeXBlOgogICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgogICAgIGNh
c2UgT3ZlcnJpZGVzSGFzSW5zdGFuY2U6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcAppbmRleCAwMzk1YTNmLi4xMzU5ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKQEAgLTE1MzUsOCArMTUzNSw2IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgTmV3T2JqZWN0OgogICAgICAgICBjYXNlIE5ld0FycmF5QnVmZmVy
OgogICAgICAgICBjYXNlIE5ld1JlZ2V4cDoKLSAgICAgICAgY2FzZSBQcm9maWxlV2lsbENhbGw6
Ci0gICAgICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgICAgIGNhc2UgRGVsZXRlQnlJZDoK
ICAgICAgICAgY2FzZSBEZWxldGVCeVZhbDoKICAgICAgICAgY2FzZSBJc0FycmF5T2JqZWN0Ogpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCmluZGV4IDE4MWM3OTAuLjE5Nzg3
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTMwMyw4ICsz
MDMsNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oTWF0ZXJp
YWxpemVDcmVhdGVBY3RpdmF0aW9uLCBOb2RlUmVzdWx0SlMgfCBOb2RlSGFzVmFyQXJncykgXAog
ICAgIFwKICAgICAvKiBOb2RlcyBmb3IgbWlzYyBvcGVyYXRpb25zLiAqL1wKLSAgICBtYWNybyhQ
cm9maWxlV2lsbENhbGwsIE5vZGVNdXN0R2VuZXJhdGUpIFwKLSAgICBtYWNybyhQcm9maWxlRGlk
Q2FsbCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKE92ZXJyaWRlc0hhc0luc3RhbmNl
LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhJbnN0
YW5jZU9mLCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKEluc3RhbmNlT2ZDdXN0b20s
IE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlUmVzdWx0Qm9vbGVhbikgXApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcAppbmRleCAxNjYxZTk0Li41MDY4NGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAt
MTAzNSw4ICsxMDM1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBERkc6Okp1bXA6CiAgICAg
ICAgIGNhc2UgQnJhbmNoOgogICAgICAgICBjYXNlIFN3aXRjaDoKLSAgICAgICAgY2FzZSBQcm9m
aWxlV2lsbENhbGw6Ci0gICAgICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgICAgIGNhc2Ug
UHJvZmlsZVR5cGU6CiAgICAgICAgIGNhc2UgUHJvZmlsZUNvbnRyb2xGbG93OgogICAgICAgICBj
YXNlIFRocm93UmVmZXJlbmNlRXJyb3I6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZVRvRXhlY3V0ZS5oCmluZGV4IGY5YmRlYjkuLjYyOWUwNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCkBAIC0yNTAsOCArMjUwLDYgQEAgYm9v
bCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBO
b2RlKiBub2RlKQogICAgIGNhc2UgTmV3QXJyYXlXaXRoU2l6ZToKICAgICBjYXNlIE5ld0FycmF5
QnVmZmVyOgogICAgIGNhc2UgTmV3UmVnZXhwOgotICAgIGNhc2UgUHJvZmlsZVdpbGxDYWxsOgot
ICAgIGNhc2UgUHJvZmlsZURpZENhbGw6CiAgICAgY2FzZSBQcm9maWxlVHlwZToKICAgICBjYXNl
IFByb2ZpbGVDb250cm9sRmxvdzoKICAgICBjYXNlIENoZWNrVHlwZUluZm9GbGFnczoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3Bw
CmluZGV4IGQ3NDBkNzcuLjMzOGFiYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAtNTE5Nyw4ICs1MTk3LDYgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBub1Jlc3Vs
dChub2RlKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFByb2ZpbGVXaWxsQ2FsbDoKLSAg
ICBjYXNlIFByb2ZpbGVEaWRDYWxsOgogICAgIGNhc2UgUGhhbnRvbUxvY2FsOgogICAgIGNhc2Ug
TG9vcEhpbnQ6CiAgICAgICAgIC8vIFRoaXMgaXMgYSBuby1vcC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDE0MDBlYTUuLjQ4
MjFjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcApAQCAtNDgxMiw4ICs0ODEyLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICBub1Jlc3VsdChub2RlKTsKICAgICAgICAgYnJlYWs7
CiAgICAgICAgIAotICAgIGNhc2UgUHJvZmlsZVdpbGxDYWxsOgotICAgIGNhc2UgUHJvZmlsZURp
ZENhbGw6CiAgICAgY2FzZSBQaGFudG9tTG9jYWw6CiAgICAgY2FzZSBMb29wSGludDoKICAgICAg
ICAgLy8gVGhpcyBpcyBhIG5vLW9wLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCmluZGV4IDE4NjRlODQuLjljYWE0ZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0QmFzZS5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1
ZXMuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3Qu
aCIKLSNpbmNsdWRlICJMZWdhY3lQcm9maWxlci5oIgogI2luY2x1ZGUgIlNjcmlwdEZ1bmN0aW9u
Q2FsbC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC03MiwxNyArNzEs
OCBAQCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRPYmplY3QmIEluamVjdGVkU2NyaXB0QmFzZTo6
aW5qZWN0ZWRTY3JpcHRPYmplY3QoKSBjb25zdAogSlNDOjpKU1ZhbHVlIEluamVjdGVkU2NyaXB0
QmFzZTo6Y2FsbEZ1bmN0aW9uV2l0aEV2YWxFbmFibGVkKERlcHJlY2F0ZWQ6OlNjcmlwdEZ1bmN0
aW9uQ2FsbCYgZnVuY3Rpb24sIGJvb2wmIGhhZEV4Y2VwdGlvbikgY29uc3QKIHsKICAgICBKU0M6
OkV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUgPSBtX2luamVjdGVkU2NyaXB0T2JqZWN0LnNjcmlwdFN0
YXRlKCk7Ci0gICAgSlNDOjpMZWdhY3lQcm9maWxlcjo6cHJvZmlsZXIoKS0+c3VzcGVuZFByb2Zp
bGluZyhzY3JpcHRTdGF0ZSk7Ci0KLSAgICBKU0M6OkpTVmFsdWUgcmVzdWx0VmFsdWU7Ci0gICAg
ewotICAgICAgICBKU0M6OkRlYnVnZ2VyRXZhbEVuYWJsZXIgZXZhbEVuYWJsZXIoc2NyaXB0U3Rh
dGUpOwotICAgICAgICByZXN1bHRWYWx1ZSA9IGZ1bmN0aW9uLmNhbGwoaGFkRXhjZXB0aW9uKTsK
LSAgICB9Ci0KLSAgICBKU0M6OkxlZ2FjeVByb2ZpbGVyOjpwcm9maWxlcigpLT51bnN1c3BlbmRQ
cm9maWxpbmcoc2NyaXB0U3RhdGUpOwotCi0gICAgcmV0dXJuIHJlc3VsdFZhbHVlOworICAgIEpT
Qzo6RGVidWdnZXJFdmFsRW5hYmxlciBldmFsRW5hYmxlcihzY3JpcHRTdGF0ZSk7CisgICAgcmV0
dXJuIGZ1bmN0aW9uLmNhbGwoaGFkRXhjZXB0aW9uKTsKIH0KIAogdm9pZCBJbmplY3RlZFNjcmlw
dEJhc2U6Om1ha2VDYWxsKERlcHJlY2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCYgZnVuY3Rpb24s
IFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbiBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvVGltZWxpbmUuanNvbgppbmRleCA4MjJmZjg2
Li42OTE2OWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3By
b3RvY29sL1RpbWVsaW5lLmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9wcm90b2NvbC9UaW1lbGluZS5qc29uCkBAIC01MSw0MCArNTEsNiBAQAogICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0eXBlIjogIm9iamVjdCIsICJkZXNjcmlwdGlvbiI6ICJF
dmVudCBkYXRhLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNoaWxkcmVuIiwgInR5
cGUiOiAiYXJyYXkiLCAib3B0aW9uYWwiOiB0cnVlLCAiaXRlbXMiOiB7ICIkcmVmIjogIlRpbWVs
aW5lRXZlbnQiIH0sICJkZXNjcmlwdGlvbiI6ICJOZXN0ZWQgcmVjb3Jkcy4iIH0KICAgICAgICAg
ICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjogIkNQVVByb2Zp
bGVOb2RlQWdncmVnYXRlQ2FsbEluZm8iLAotICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwK
LSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBZ2dyZWdhdGUgQ1BVIFByb2ZpbGUgY2FsbCBp
bmZvLiBIb2xkcyB0aW1lIGluZm9ybWF0aW9uIGZvciBhbGwgdGhlIGNhbGxzIHRoYXQgaGFwcGVu
ZWQgb24gYSBub2RlLiIsCi0gICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImNhbGxDb3VudCIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJUb3RhbCBudW1iZXIgb2YgY2FsbHMuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAic3RhcnRUaW1lIiwgInR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlN0YXJ0IHRp
bWUgZm9yIHRoZSBmaXJzdCBjYWxsLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVu
ZFRpbWUiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiRW5kIHRpbWUgZm9yIHRo
ZSBsYXN0IGNhbGwuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidG90YWxUaW1lIiwg
InR5cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIlRvdGFsIGV4ZWN1dGlvbiB0aW1lIGZv
ciBhbGwgY2FsbHMgY29tYmluZWQuIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJDUFVQcm9maWxlTm9kZSIsCi0gICAgICAgICAgICAi
dHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNQVSBQcm9maWxl
IG5vZGUuIEhvbGRzIGNhbGxzaXRlIGluZm9ybWF0aW9uLCBleGVjdXRpb24gc3RhdGlzdGljcyBh
bmQgY2hpbGQgbm9kZXMuIiwKLSAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiaWQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2NyaXB0aW9uIjog
IlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGNhbGwgc2l0ZS4iIH0sCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJjYWxsSW5mbyIsICIkcmVmIjogIkNQVVByb2ZpbGVOb2RlQWdncmVnYXRl
Q2FsbEluZm8iLCAiZGVzY3JpcHRpb24iOiAiQWdncmVnYXRlIGluZm8gYWJvdXQgYWxsIHRoZSBj
YWxscyB0aGF0IG1ha2luZyB1cCB0aGlzIG5vZGUuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiZnVuY3Rpb25OYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIkZ1bmN0aW9uIG5hbWUuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0
aW9uIjogIlVSTC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJsaW5lTnVtYmVyIiwg
InR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJMaW5l
IG51bWJlci4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb2x1bW5OdW1iZXIiLCAi
dHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNvbHVt
biBudW1iZXIuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2hpbGRyZW4iLCAidHlw
ZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiQ1BVUHJvZmlsZU5vZGUiIH0sICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDaGlsZCBub2Rlcy4iIH0KLSAgICAgICAgICAg
IF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjogIkNQVVByb2ZpbGUi
LAotICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJQcm9maWxlLiIsCi0gICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInJvb3ROb2RlcyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAi
JHJlZiI6ICJDUFVQcm9maWxlTm9kZSIgfSwgImRlc2NyaXB0aW9uIjogIlRvcCBsZXZlbCBub2Rl
cyBpbiB0aGUgc3RhY2suIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWRsZVRpbWUi
LCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiB0cnVlIH0KLSAgICAgICAgICAgIF0KICAg
ICAgICAgfQogICAgIF0sCiAgICAgImNvbW1hbmRzIjogWwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKaW5kZXggODkzMGFjMy4uYmY2MmVk
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0
ZXIuY3BwCkBAIC01Myw3ICs1Myw2IEBACiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNs
dWRlICJMTEludENMb29wLmgiCiAjaW5jbHVkZSAiTExJbnRUaHVua3MuaCIKLSNpbmNsdWRlICJM
ZWdhY3lQcm9maWxlci5oIgogI2luY2x1ZGUgIkxpdGVyYWxQYXJzZXIuaCIKICNpbmNsdWRlICJP
YmplY3RQcm90b3R5cGUuaCIKICNpbmNsdWRlICJQYXJzZXIuaCIKQEAgLTY3NSw3ICs2NzQsNiBA
QCBwdWJsaWM6CiAgICAgU3RhY2tWaXNpdG9yOjpTdGF0dXMgb3BlcmF0b3IoKShTdGFja1Zpc2l0
b3ImIHZpc2l0b3IpIGNvbnN0CiAgICAgewogICAgICAgICB2aXNpdG9yLnVud2luZFRvTWFjaGlu
ZUNvZGVCbG9ja0ZyYW1lKCk7Ci0gICAgICAgIFZNJiB2bSA9IG1fY2FsbEZyYW1lLT52bSgpOwog
ICAgICAgICBtX2NhbGxGcmFtZSA9IHZpc2l0b3ItPmNhbGxGcmFtZSgpOwogICAgICAgICBtX2Nv
ZGVCbG9jayA9IHZpc2l0b3ItPmNvZGVCbG9jaygpOwogCkBAIC02OTIsOSArNjkwLDYgQEAgcHVi
bGljOgogCiAgICAgICAgIGJvb2wgc2hvdWxkU3RvcFVud2luZGluZyA9IHZpc2l0b3ItPmNhbGxl
cklzVk1FbnRyeUZyYW1lKCk7CiAgICAgICAgIGlmIChzaG91bGRTdG9wVW53aW5kaW5nKSB7Ci0g
ICAgICAgICAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2Zp
bGVyKCkpCi0gICAgICAgICAgICAgICAgcHJvZmlsZXItPmV4Y2VwdGlvblVud2luZChtX2NhbGxG
cmFtZSk7Ci0KICAgICAgICAgICAgIGNvcHlDYWxsZWVTYXZlc1RvVk1FbnRyeUZyYW1lQ2FsbGVl
U2F2ZXNCdWZmZXIodmlzaXRvcik7CiAKICAgICAgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6
OkRvbmU7CkBAIC05NTQsMTUgKzk0OSw5IEBAIGZhaWxlZEpTT05QOgogICAgIFByb3RvQ2FsbEZy
YW1lIHByb3RvQ2FsbEZyYW1lOwogICAgIHByb3RvQ2FsbEZyYW1lLmluaXQoY29kZUJsb2NrLCBK
U0NhbGxlZTo6Y3JlYXRlKHZtLCBzY29wZS0+Z2xvYmFsT2JqZWN0KCksIHNjb3BlKSwgdGhpc09i
aiwgMSk7CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFBy
b2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIHByb2dy
YW0tPnNvdXJjZVVSTCgpLCBwcm9ncmFtLT5maXJzdExpbmUoKSwgcHJvZ3JhbS0+c3RhcnRDb2x1
bW4oKSk7Ci0KICAgICAvLyBFeGVjdXRlIHRoZSBjb2RlOgogICAgIEpTVmFsdWUgcmVzdWx0ID0g
cHJvZ3JhbS0+Z2VuZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1l
KTsKIAotICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmls
ZXIoKSkKLSAgICAgICAgcHJvZmlsZXItPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBwcm9ncmFtLT5z
b3VyY2VVUkwoKSwgcHJvZ3JhbS0+Zmlyc3RMaW5lKCksIHByb2dyYW0tPnN0YXJ0Q29sdW1uKCkp
OwotCiAgICAgcmV0dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsKIH0KIApAQCAtMTAxMSw5ICsx
MDAwLDYgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNhbGwoQ2FsbEZyYW1lKiBjYWxs
RnJhbWUsIEpTT2JqZWN0KiBmdW5jdGlvbiwgQ2FsbFQKICAgICBQcm90b0NhbGxGcmFtZSBwcm90
b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KG5ld0NvZGVCbG9jaywgZnVuY3Rp
b24sIHRoaXNWYWx1ZSwgYXJnc0NvdW50LCBhcmdzLmRhdGEoKSk7CiAKLSAgICBpZiAoTGVnYWN5
UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2Zp
bGVyLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUsIGZ1bmN0aW9uKTsKLQogICAgIEpTVmFsdWUgcmVz
dWx0OwogICAgIHsKICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZToKQEAgLTEwMjYsOSArMTAx
Miw2IEBAIEpTVmFsdWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGVDYWxsKENhbGxGcmFtZSogY2FsbEZy
YW1lLCBKU09iamVjdCogZnVuY3Rpb24sIENhbGxUCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBp
ZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAg
ICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgZnVuY3Rpb24pOwotCiAgICAgcmV0
dXJuIGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsKIH0KIApAQCAtMTA3OSw5ICsxMDYyLDYgQEAgSlNP
YmplY3QqIEludGVycHJldGVyOjpleGVjdXRlQ29uc3RydWN0KENhbGxGcmFtZSogY2FsbEZyYW1l
LCBKU09iamVjdCogY29uc3RydWMKICAgICBQcm90b0NhbGxGcmFtZSBwcm90b0NhbGxGcmFtZTsK
ICAgICBwcm90b0NhbGxGcmFtZS5pbml0KG5ld0NvZGVCbG9jaywgY29uc3RydWN0b3IsIG5ld1Rh
cmdldCwgYXJnc0NvdW50LCBhcmdzLmRhdGEoKSk7CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIq
IHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT53aWxs
RXhlY3V0ZShjYWxsRnJhbWUsIGNvbnN0cnVjdG9yKTsKLQogICAgIEpTVmFsdWUgcmVzdWx0Owog
ICAgIHsKICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgY29kZS4KQEAgLTEwOTUsOSArMTA3NSw2IEBA
IEpTT2JqZWN0KiBJbnRlcnByZXRlcjo6ZXhlY3V0ZUNvbnN0cnVjdChDYWxsRnJhbWUqIGNhbGxG
cmFtZSwgSlNPYmplY3QqIGNvbnN0cnVjCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoTGVn
YWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHBy
b2ZpbGVyLT5kaWRFeGVjdXRlKGNhbGxGcmFtZSwgY29uc3RydWN0b3IpOwotCiAgICAgaWYgKGNh
bGxGcmFtZS0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIEFTU0VSVChy
ZXN1bHQuaXNPYmplY3QoKSk7CkBAIC0xMTQwLDE4ICsxMTE3LDEyIEBAIEpTVmFsdWUgSW50ZXJw
cmV0ZXI6OmV4ZWN1dGUoQ2FsbEZyYW1lQ2xvc3VyZSYgY2xvc3VyZSkKIAogICAgIFN0YWNrU3Rh
dHM6OkNoZWNrUG9pbnQgc3RhY2tDaGVja1BvaW50OwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVy
KiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+d2ls
bEV4ZWN1dGUoY2xvc3VyZS5vbGRDYWxsRnJhbWUsIGNsb3N1cmUuZnVuY3Rpb24pOwotCiAgICAg
aWYgKFVOTElLRUxZKHZtLnNob3VsZFRyaWdnZXJUZXJtaW5hdGlvbihjbG9zdXJlLm9sZENhbGxG
cmFtZSkpKQogICAgICAgICByZXR1cm4gdGhyb3dUZXJtaW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9u
KGNsb3N1cmUub2xkQ2FsbEZyYW1lKTsKIAogICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGU6CiAgICAg
SlNWYWx1ZSByZXN1bHQgPSBjbG9zdXJlLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Z2VuZXJhdGVkSklU
Q29kZUZvckNhbGwoKS0+ZXhlY3V0ZSgmdm0sIGNsb3N1cmUucHJvdG9DYWxsRnJhbWUpOwogCi0g
ICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQot
ICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShjbG9zdXJlLm9sZENhbGxGcmFtZSwgY2xvc3Vy
ZS5mdW5jdGlvbik7Ci0KICAgICByZXR1cm4gY2hlY2tlZFJldHVybihyZXN1bHQpOwogfQogCkBA
IC0xMjQ5LDE1ICsxMjIwLDkgQEAgSlNWYWx1ZSBJbnRlcnByZXRlcjo6ZXhlY3V0ZShFdmFsRXhl
Y3V0YWJsZSogZXZhbCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUKICAgICBQcm90b0Nh
bGxGcmFtZSBwcm90b0NhbGxGcmFtZTsKICAgICBwcm90b0NhbGxGcmFtZS5pbml0KGNvZGVCbG9j
aywgSlNDYWxsZWU6OmNyZWF0ZSh2bSwgc2NvcGUtPmdsb2JhbE9iamVjdCgpLCBzY29wZSksIHRo
aXNWYWx1ZSwgMSk7CiAKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5h
YmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShjYWxsRnJhbWUs
IGV2YWwtPnNvdXJjZVVSTCgpLCBldmFsLT5maXJzdExpbmUoKSwgZXZhbC0+c3RhcnRDb2x1bW4o
KSk7Ci0KICAgICAvLyBFeGVjdXRlIHRoZSBjb2RlOgogICAgIEpTVmFsdWUgcmVzdWx0ID0gZXZh
bC0+Z2VuZXJhdGVkSklUQ29kZSgpLT5leGVjdXRlKCZ2bSwgJnByb3RvQ2FsbEZyYW1lKTsKIAot
ICAgIGlmIChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkK
LSAgICAgICAgcHJvZmlsZXItPmRpZEV4ZWN1dGUoY2FsbEZyYW1lLCBldmFsLT5zb3VyY2VVUkwo
KSwgZXZhbC0+Zmlyc3RMaW5lKCksIGV2YWwtPnN0YXJ0Q29sdW1uKCkpOwotCiAgICAgcmV0dXJu
IGNoZWNrZWRSZXR1cm4ocmVzdWx0KTsKIH0KIApAQCAtMTI5MiwxNSArMTI1Nyw5IEBAIEpTVmFs
dWUgSW50ZXJwcmV0ZXI6OmV4ZWN1dGUoTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFi
bGUsIENhbGxGcmFtZSogY2FsCiAgICAgUHJvdG9DYWxsRnJhbWUgcHJvdG9DYWxsRnJhbWU7CiAg
ICAgcHJvdG9DYWxsRnJhbWUuaW5pdChjb2RlQmxvY2ssIEpTQ2FsbGVlOjpjcmVhdGUodm0sIHNj
b3BlLT5nbG9iYWxPYmplY3QoKSwgc2NvcGUpLCBqc1VuZGVmaW5lZCgpLCAxKTsKIAotICAgIGlm
IChMZWdhY3lQcm9maWxlciogcHJvZmlsZXIgPSB2bS5lbmFibGVkUHJvZmlsZXIoKSkKLSAgICAg
ICAgcHJvZmlsZXItPndpbGxFeGVjdXRlKGNhbGxGcmFtZSwgZXhlY3V0YWJsZS0+c291cmNlVVJM
KCksIGV4ZWN1dGFibGUtPmZpcnN0TGluZSgpLCBleGVjdXRhYmxlLT5zdGFydENvbHVtbigpKTsK
LQogICAgIC8vIEV4ZWN1dGUgdGhlIGNvZGU6CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBleGVjdXRh
YmxlLT5nZW5lcmF0ZWRKSVRDb2RlKCktPmV4ZWN1dGUoJnZtLCAmcHJvdG9DYWxsRnJhbWUpOwog
Ci0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigp
KQotICAgICAgICBwcm9maWxlci0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIGV4ZWN1dGFibGUtPnNv
dXJjZVVSTCgpLCBleGVjdXRhYmxlLT5maXJzdExpbmUoKSwgZXhlY3V0YWJsZS0+c3RhcnRDb2x1
bW4oKSk7Ci0KICAgICByZXR1cm4gY2hlY2tlZFJldHVybihyZXN1bHQpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVC5jcHAKaW5kZXggMWQ1MGFiYS4uYWRhYTg2MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmNwcApAQCAtMjkwLDggKzI5MCw2IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGls
ZU1haW5QYXNzKCkKICAgICAgICAgREVGSU5FX09QKG9wX25zdHJpY3RlcSkKICAgICAgICAgREVG
SU5FX09QKG9wX2RlYykKICAgICAgICAgREVGSU5FX09QKG9wX2luYykKLSAgICAgICAgREVGSU5F
X09QKG9wX3Byb2ZpbGVfZGlkX2NhbGwpCi0gICAgICAgIERFRklORV9PUChvcF9wcm9maWxlX3dp
bGxfY2FsbCkKICAgICAgICAgREVGSU5FX09QKG9wX3Byb2ZpbGVfdHlwZSkKICAgICAgICAgREVG
SU5FX09QKG9wX3Byb2ZpbGVfY29udHJvbF9mbG93KQogICAgICAgICBERUZJTkVfT1Aob3BfcHVz
aF93aXRoX3Njb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggNTExNDAwNi4uNDNmYmVi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC01NjAsOCArNTYwLDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9uc3RyaWN0ZXEoSW5zdHJ1Y3Rpb24qKTsKICAg
ICAgICAgdm9pZCBlbWl0X29wX2RlYyhJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRf
b3BfaW5jKEluc3RydWN0aW9uKik7Ci0gICAgICAgIHZvaWQgZW1pdF9vcF9wcm9maWxlX2RpZF9j
YWxsKEluc3RydWN0aW9uKik7Ci0gICAgICAgIHZvaWQgZW1pdF9vcF9wcm9maWxlX3dpbGxfY2Fs
bChJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfcHJvZmlsZV90eXBlKEluc3Ry
dWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9wcm9maWxlX2NvbnRyb2xfZmxvdyhJbnN0
cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfcHVzaF93aXRoX3Njb3BlKEluc3RydWN0
aW9uKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCBmMGE3
NTE5Li42ZDQ1YmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAK
QEAgLTc3NCwyMiArNzc0LDYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX2NoZWNrX3RkeihJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2UKICAgICBzbG93UGF0
aENhbGwuY2FsbCgpOwogfQogCi12b2lkIEpJVDo6ZW1pdF9vcF9wcm9maWxlX3dpbGxfY2FsbChJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQotewotICAgIEp1bXAgcHJvZmlsZXJEb25l
ID0gYnJhbmNoVGVzdFB0cihaZXJvLCBBYnNvbHV0ZUFkZHJlc3MobV92bS0+ZW5hYmxlZFByb2Zp
bGVyQWRkcmVzcygpKSk7Ci0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1
Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMCk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Q
cm9maWxlV2lsbENhbGwsIHJlZ1QwKTsKLSAgICBwcm9maWxlckRvbmUubGluayh0aGlzKTsKLX0K
LQotdm9pZCBKSVQ6OmVtaXRfb3BfcHJvZmlsZV9kaWRfY2FsbChJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQotewotICAgIEp1bXAgcHJvZmlsZXJEb25lID0gYnJhbmNoVGVzdFB0ciha
ZXJvLCBBYnNvbHV0ZUFkZHJlc3MobV92bS0+ZW5hYmxlZFByb2ZpbGVyQWRkcmVzcygpKSk7Ci0g
ICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5k
LCByZWdUMCk7Ci0gICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Qcm9maWxlRGlkQ2FsbCwgcmVn
VDApOwotICAgIHByb2ZpbGVyRG9uZS5saW5rKHRoaXMpOwotfQotCiAKIC8vIFNsb3cgY2FzZXMK
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4
IGNmMDRjYTkuLjY0YWIwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
Y29kZXMzMl82NC5jcHAKQEAgLTEwNjAsMjQgKzEwNjAsNiBAQCB2b2lkIEpJVDo6ZW1pdFNsb3df
b3BfY2hlY2tfdGR6KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93
Q2FzZQogICAgIHNsb3dQYXRoQ2FsbC5jYWxsKCk7CiB9CiAKLXZvaWQgSklUOjplbWl0X29wX3By
b2ZpbGVfd2lsbF9jYWxsKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCi17Ci0gICAg
bG9hZDMyKG1fdm0tPmVuYWJsZWRQcm9maWxlckFkZHJlc3MoKSwgcmVnVDApOwotICAgIEp1bXAg
cHJvZmlsZXJEb25lID0gYnJhbmNoVGVzdFB0cihaZXJvLCByZWdUMCk7Ci0gICAgZW1pdExvYWQo
Y3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVnVDEsIHJlZ1QwKTsKLSAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvblByb2ZpbGVXaWxsQ2FsbCwgcmVnVDEsIHJlZ1QwKTsKLSAgICBw
cm9maWxlckRvbmUubGluayh0aGlzKTsKLX0KLQotdm9pZCBKSVQ6OmVtaXRfb3BfcHJvZmlsZV9k
aWRfY2FsbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQotewotICAgIGxvYWQzMiht
X3ZtLT5lbmFibGVkUHJvZmlsZXJBZGRyZXNzKCksIHJlZ1QwKTsKLSAgICBKdW1wIHByb2ZpbGVy
RG9uZSA9IGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDApOwotICAgIGVtaXRMb2FkKGN1cnJlbnRJ
bnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QxLCByZWdUMCk7Ci0gICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25Qcm9maWxlRGlkQ2FsbCwgcmVnVDEsIHJlZ1QwKTsKLSAgICBwcm9maWxlckRv
bmUubGluayh0aGlzKTsKLX0KLQogdm9pZCBKSVQ6OmVtaXRfb3BfaGFzX3N0cnVjdHVyZV9wcm9w
ZXJ0eShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAgIGludCBkc3QgPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggYmM4MWM1Yy4uMzkzMDRiZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC01Myw3ICs1Myw2IEBACiAj
aW5jbHVkZSAiSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNTdGFja0lu
bGluZXMuaCIKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgotI2luY2x1ZGUgIkxlZ2FjeVByb2Zp
bGVyLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJQb2x5bW9y
cGhpY0FjY2Vzcy5oIgogI2luY2x1ZGUgIlByb3BlcnR5TmFtZS5oIgpAQCAtMTI0MiwxMiArMTI0
MSw2IEBAIFNsb3dQYXRoUmV0dXJuVHlwZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXpl
KEV4ZWNTdGF0ZSogZXhlYywgaW50MzJfdCBieXRlCiAgICAgICAgIHJldHVybiBlbmNvZGVSZXN1
bHQoMCwgMCk7CiAgICAgfQogICAgIAotICAgIGlmICh2bS5lbmFibGVkUHJvZmlsZXIoKSkgewot
ICAgICAgICBDT0RFQkxPQ0tfTE9HX0VWRU5UKGNvZGVCbG9jaywgImRlbGF5T3B0aW1pemVUb0RG
RyIsICgicHJvZmlsZXIgaXMgZW5hYmxlZCIpKTsKLSAgICAgICAgdXBkYXRlQWxsUHJlZGljdGlv
bnNBbmRPcHRpbWl6ZUFmdGVyV2FybVVwKGNvZGVCbG9jayk7Ci0gICAgICAgIHJldHVybiBlbmNv
ZGVSZXN1bHQoMCwgMCk7Ci0gICAgfQotCiAgICAgRGVidWdnZXIqIGRlYnVnZ2VyID0gY29kZUJs
b2NrLT5nbG9iYWxPYmplY3QoKS0+ZGVidWdnZXIoKTsKICAgICBpZiAoZGVidWdnZXIgJiYgKGRl
YnVnZ2VyLT5pc1N0ZXBwaW5nKCkgfHwgY29kZUJsb2NrLT5iYXNlbGluZUFsdGVybmF0aXZlKCkt
Pmhhc0RlYnVnZ2VyUmVxdWVzdHMoKSkpIHsKICAgICAgICAgQ09ERUJMT0NLX0xPR19FVkVOVChj
b2RlQmxvY2ssICJkZWxheU9wdGltaXplVG9ERkciLCAoImRlYnVnZ2VyIGlzIHN0ZXBwaW5nIG9y
IGhhcyByZXF1ZXN0cyIpKTsKQEAgLTE1NTksMjQgKzE1NTIsNiBAQCB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUG9wU2NvcGUoRXhlY1N0YXRlKiBleGVjLCBpbnQzMl90IHNjb3BlUmVnKQog
ICAgIGV4ZWMtPnVuY2hlY2tlZFIoc2NvcGVSZWcpID0gc2NvcGUtPm5leHQoKTsKIH0KIAotdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2ZpbGVEaWRDYWxsKEV4ZWNTdGF0ZSogZXhlYywg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
Ci0gICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwotCi0gICAgaWYg
KExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAg
ICBwcm9maWxlci0+ZGlkRXhlY3V0ZShleGVjLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KSk7Ci19Ci0KLXZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlV2lsbENhbGwoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCi17Ci0gICAgVk0mIHZt
ID0gZXhlYy0+dm0oKTsKLSAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhl
Yyk7Ci0KLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2Zp
bGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT53aWxsRXhlY3V0ZShleGVjLCBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKSk7Ci19Ci0KIGludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25J
bnN0YW5jZU9mQ3VzdG9tKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlLCBKU09iamVjdCogY29uc3RydWN0b3IsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRIYXNJbnN0
YW5jZSkKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwpAQCAtMjM1OCw5ICsyMzMzLDYgQEAg
aW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNoZWNrSWZFeGNlcHRpb25Jc1VuY2F0Y2hh
YmxlQW5kTm90aWZ5UHJvZmlsZXIoRXgKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2Vy
KCZ2bSwgZXhlYyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoISF2bS5leGNlcHRpb24oKSk7CiAKLSAg
ICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0gdm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0g
ICAgICAgIHByb2ZpbGVyLT5leGNlcHRpb25VbndpbmQoZXhlYyk7Ci0KICAgICBpZiAoaXNUZXJt
aW5hdGVkRXhlY3V0aW9uRXhjZXB0aW9uKHZtLmV4Y2VwdGlvbigpKSkgewogICAgICAgICBnZW5l
cmljVW53aW5kKCZ2bSwgZXhlYyk7CiAgICAgICAgIHJldHVybiAxOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAppbmRleCAyMTI5NzAzLi41N2Y3OGI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMzcwLDggKzM3MCw2IEBA
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRHZXR0ZXJTZXR0ZXIoRXhlY1N0YXRlKiwg
SlNDZWxsKiwgVW5pcXVlZFN0cmluZ0ltCiAjZW5kaWYKIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25QdXNoRnVuY3Rpb25OYW1lU2NvcGUoRXhlY1N0YXRlKiwgaW50MzJfdCwgU3ltYm9sVGFi
bGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblBvcFNjb3BlKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKLXZvaWQg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Qcm9maWxlRGlkQ2FsbChFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwotdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblByb2Zp
bGVXaWxsQ2FsbChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
U3Vic2NyaXB0LCBCeVZhbEluZm8qKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJ
bmZvKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRp
b25HZXRCeVZhbFN0cmluZyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFN1YnNjcmlwdCwgQnlWYWxJbmZvKikgV1RGX0lOVEVSTkFM
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBiMzI2OGZlLi5lMTc1MzZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
anNjLmNwcApAQCAtODY0LDcgKzg2NCw3IEBAIHByb3RlY3RlZDoKIH07CiAKIGNvbnN0IENsYXNz
SW5mbyBHbG9iYWxPYmplY3Q6OnNfaW5mbyA9IHsgImdsb2JhbCIsICZKU0dsb2JhbE9iamVjdDo6
c19pbmZvLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEdsb2JhbE9iamVjdCkgfTsKLWNv
bnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEdsb2JhbE9iamVjdDo6c19nbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSA9IHsgJmFsbG93c0FjY2Vzc0Zyb20sICZzdXBwb3J0c0xlZ2FjeVByb2ZpbGlu
ZywgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZh
U2NyaXB0UnVudGltZUZsYWdzLCAwLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91
dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZtb2R1bGVMb2FkZXJGZXRjaCwgbnVsbHB0ciwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUg
R2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNjZXNz
RnJvbSwgJnN1cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZq
YXZhU2NyaXB0UnVudGltZUZsYWdzLCAwLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGlt
ZW91dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZtb2R1bGVMb2FkZXJGZXRjaCwgbnVsbHB0ciwg
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OwogCiAKIEdsb2JhbE9iamVjdDo6R2xvYmFsT2Jq
ZWN0KFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAppbmRleCBjY2M1OGQxLi44YmZhN2NkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKQEAgLTUw
LDcgKzUwLDYgQEAKICNpbmNsdWRlICJKU1dpdGhTY29wZS5oIgogI2luY2x1ZGUgIkxMSW50Q29t
bW9uLmgiCiAjaW5jbHVkZSAiTExJbnRFeGNlcHRpb25zLmgiCi0jaW5jbHVkZSAiTGVnYWN5UHJv
ZmlsZXIuaCIKICNpbmNsdWRlICJMb3dMZXZlbEludGVycHJldGVyLmgiCiAjaW5jbHVkZSAiT2Jq
ZWN0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJQcm90b0NhbGxGcmFtZS5oIgpAQCAtMTQyNiwy
MiArMTQyNSw2IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9kZWJ1ZykKICAgICBM
TElOVF9FTkQoKTsKIH0KIAotTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3Byb2ZpbGVf
d2lsbF9jYWxsKQotewotICAgIExMSU5UX0JFR0lOKCk7Ci0gICAgaWYgKExlZ2FjeVByb2ZpbGVy
KiBwcm9maWxlciA9IHZtLmVuYWJsZWRQcm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+d2ls
bEV4ZWN1dGUoZXhlYywgTExJTlRfT1AoMSkuanNWYWx1ZSgpKTsKLSAgICBMTElOVF9FTkQoKTsK
LX0KLQotTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwpCi17
Ci0gICAgTExJTlRfQkVHSU4oKTsKLSAgICBpZiAoTGVnYWN5UHJvZmlsZXIqIHByb2ZpbGVyID0g
dm0uZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVyLT5kaWRFeGVjdXRlKGV4ZWMs
IExMSU5UX09QKDEpLmpzVmFsdWUoKSk7Ci0gICAgTExJTlRfRU5EKCk7Ci19Ci0KIExMSU5UX1NM
T1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9oYW5kbGVfZXhjZXB0aW9uKQogewogICAgIExMSU5UX0JF
R0lOX05PX1NFVF9QQygpOwpAQCAtMTUzMCw5ICsxNTEzLDYgQEAgTExJTlRfU0xPV19QQVRIX0RF
Q0woc2xvd19wYXRoX2NoZWNrX2lmX2V4Y2VwdGlvbl9pc191bmNhdGNoYWJsZV9hbmRfbm90aWZ5
X3Byb2YKICAgICBMTElOVF9CRUdJTigpOwogICAgIFJFTEVBU0VfQVNTRVJUKCEhdm0uZXhjZXB0
aW9uKCkpOwogCi0gICAgaWYgKExlZ2FjeVByb2ZpbGVyKiBwcm9maWxlciA9IHZtLmVuYWJsZWRQ
cm9maWxlcigpKQotICAgICAgICBwcm9maWxlci0+ZXhjZXB0aW9uVW53aW5kKGV4ZWMpOwotCiAg
ICAgaWYgKGlzVGVybWluYXRlZEV4ZWN1dGlvbkV4Y2VwdGlvbih2bS5leGNlcHRpb24oKSkpCiAg
ICAgICAgIExMSU5UX1JFVFVSTl9UV08ocGMsIGJpdHdpc2VfY2FzdDx2b2lkKj4oc3RhdGljX2Nh
c3Q8dWludHB0cl90PigxKSkpOwogICAgIExMSU5UX1JFVFVSTl9UV08ocGMsIDApOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAppbmRleCBlM2Q0MWU0Li4y
NDk5NTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMu
aApAQCAtMTE3LDggKzExNyw2IEBAIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfdGhyb3cpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90aHJvd19z
dGF0aWNfZXJyb3IpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9oYW5k
bGVfd2F0Y2hkb2dfdGltZXIpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9kZWJ1Zyk7Ci1MTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3Byb2ZpbGVf
d2lsbF9jYWxsKTsKLUxMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHJvZmls
ZV9kaWRfY2FsbCk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2hhbmRs
ZV9leGNlcHRpb24pOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRf
ZnJvbV9zY29wZSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3B1dF90
b19zY29wZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20KaW5kZXggNDNiZjc3ZS4uYTA4NzhmOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtMTY2Miwy
OCArMTY2Miw2IEBAIF9sbGludF9vcF90aHJvd19zdGF0aWNfZXJyb3I6CiAgICAgZGlzcGF0Y2go
MykKIAogCi1fbGxpbnRfb3BfcHJvZmlsZV93aWxsX2NhbGw6Ci0gICAgdHJhY2VFeGVjdXRpb24o
KQotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAotICAgIGxvYWRwIENvZGVCbG9jazo6bV92
bVt0MF0sIHQwCi0gICAgbG9hZGkgVk06Om1fZW5hYmxlZFByb2ZpbGVyW3QwXSwgdDAKLSAgICBi
dHB6IHQwLCAub3BQcm9maWxlcldpbGxDYWxsRG9uZQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX3Byb2ZpbGVfd2lsbF9jYWxsKQotLm9wUHJvZmlsZXJXaWxsQ2FsbERvbmU6Ci0g
ICAgZGlzcGF0Y2goMikKLQotCi1fbGxpbnRfb3BfcHJvZmlsZV9kaWRfY2FsbDoKLSAgICB0cmFj
ZUV4ZWN1dGlvbigpCi0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCi0gICAgbG9hZHAgQ29k
ZUJsb2NrOjptX3ZtW3QwXSwgdDAKLSAgICBsb2FkaSBWTTo6bV9lbmFibGVkUHJvZmlsZXJbdDBd
LCB0MAotICAgIGJ0cHogdDAsIC5vcFByb2ZpbGVyRGlkQ2FsbERvbmUKLSAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9wcm9maWxlX2RpZF9jYWxsKQotLm9wUHJvZmlsZXJEaWRDYWxs
RG9uZToKLSAgICBkaXNwYXRjaCgyKQotCi0KIF9sbGludF9vcF9kZWJ1ZzoKICAgICB0cmFjZUV4
ZWN1dGlvbigpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlck1vZGVzLmgKaW5kZXggZjBjM2EyMi4uMmI3OTUzYSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXJNb2Rlcy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyTW9kZXMuaApAQCAtMzksNyArMzksNiBA
QCBlbnVtIGNsYXNzIENvbnN0cnVjdG9yS2luZCB7IE5vbmUsIEJhc2UsIERlcml2ZWQgfTsKIGVu
dW0gY2xhc3MgU3VwZXJCaW5kaW5nIHsgTmVlZGVkLCBOb3ROZWVkZWQgfTsKIGVudW0gY2xhc3Mg
VGhpc1REWk1vZGUgeyBBbHdheXNDaGVjaywgQ2hlY2tJZk5lZWRlZCB9OwogCi1lbnVtIFByb2Zp
bGVyTW9kZSB7IFByb2ZpbGVyT2ZmLCBQcm9maWxlck9uIH07CiBlbnVtIERlYnVnZ2VyTW9kZSB7
IERlYnVnZ2VyT2ZmLCBEZWJ1Z2dlck9uIH07CiAKIGVudW0gY2xhc3MgRnVuY3Rpb25Nb2RlIHsg
RnVuY3Rpb25FeHByZXNzaW9uLCBGdW5jdGlvbkRlY2xhcmF0aW9uLCBNZXRob2REZWZpbml0aW9u
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvQ2FsbElkZW50
aWZpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9DYWxsSWRlbnRpZmllci5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2OTFmYzYyLi4wMDAwMDAwCi0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9DYWxsSWRlbnRpZmllci5oCisrKyAvZGV2L251
bGwKQEAgLTEsMTEyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0KLSNpZm5kZWYgQ2FsbElkZW50aWZpZXJfaAotI2RlZmluZSBDYWxs
SWRlbnRpZmllcl9oCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgot
Ci1uYW1lc3BhY2UgSlNDIHsKLQotICAgIHN0cnVjdCBDYWxsSWRlbnRpZmllciB7Ci0gICAgICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIHB1YmxpYzoKLSAgICAgICAgQ2FsbElkZW50
aWZpZXIoKQotICAgICAgICAgICAgOiBtX2xpbmVOdW1iZXIoMCkKLSAgICAgICAgICAgICwgbV9j
b2x1bW5OdW1iZXIoMCkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgQ2FsbElkZW50
aWZpZXIoY29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUsIGNvbnN0IFN0cmluZyYgdXJsLCB1bnNp
Z25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIpCi0gICAgICAgICAgICA6IG1f
ZnVuY3Rpb25OYW1lKGZ1bmN0aW9uTmFtZSkKLSAgICAgICAgICAgICwgbV91cmwoIXVybC5pc051
bGwoKSA/IHVybCA6ICIiKQotICAgICAgICAgICAgLCBtX2xpbmVOdW1iZXIobGluZU51bWJlcikK
LSAgICAgICAgICAgICwgbV9jb2x1bW5OdW1iZXIoY29sdW1uTnVtYmVyKQotICAgICAgICB7Ci0g
ICAgICAgIH0KLQotICAgICAgICBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uTmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZnVuY3Rpb25OYW1lOyB9Ci0KLSAgICAgICAgY29uc3QgU3RyaW5nJiB1cmwoKSBj
b25zdCB7IHJldHVybiBtX3VybDsgfQotICAgICAgICB1bnNpZ25lZCBsaW5lTnVtYmVyKCkgY29u
c3QgeyByZXR1cm4gbV9saW5lTnVtYmVyOyB9Ci0gICAgICAgIHVuc2lnbmVkIGNvbHVtbk51bWJl
cigpIGNvbnN0IHsgcmV0dXJuIG1fY29sdW1uTnVtYmVyOyB9Ci0KLSAgICAgICAgaW5saW5lIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBDYWxsSWRlbnRpZmllciYgb3RoZXIpIGNvbnN0IHsgcmV0dXJu
IG90aGVyLm1fbGluZU51bWJlciA9PSBtX2xpbmVOdW1iZXIgJiYgb3RoZXIubV9jb2x1bW5OdW1i
ZXIgPT0gbV9jb2x1bW5OdW1iZXIgJiYgb3RoZXIubV9mdW5jdGlvbk5hbWUgPT0gbV9mdW5jdGlv
bk5hbWUgJiYgb3RoZXIubV91cmwgPT0gbV91cmw7IH0KLSAgICAgICAgaW5saW5lIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBDYWxsSWRlbnRpZmllciYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRo
aXMgPT0gb3RoZXIpOyB9Ci0KLSAgICAgICAgc3RydWN0IEhhc2ggewotICAgICAgICAgICAgc3Rh
dGljIHVuc2lnbmVkIGhhc2goY29uc3QgQ2FsbElkZW50aWZpZXImIGtleSkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBoYXNoQ29kZXNbNF0gPSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGtleS5tX2Z1bmN0aW9uTmFtZS5pbXBsKCktPmhhc2goKSwKLSAgICAgICAgICAg
ICAgICAgICAga2V5Lm1fdXJsLmltcGwoKS0+aGFzaCgpLAotICAgICAgICAgICAgICAgICAgICBr
ZXkubV9saW5lTnVtYmVyLAotICAgICAgICAgICAgICAgICAgICBrZXkubV9jb2x1bW5OdW1iZXIK
LSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdIYXNoZXI6
Omhhc2hNZW1vcnk8c2l6ZW9mKGhhc2hDb2Rlcyk+KGhhc2hDb2Rlcyk7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IENhbGxJZGVudGlmaWVyJiBh
LCBjb25zdCBDYWxsSWRlbnRpZmllciYgYikgeyByZXR1cm4gYSA9PSBiOyB9Ci0gICAgICAgICAg
ICBzdGF0aWMgY29uc3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7
Ci0gICAgICAgIH07Ci0KLSAgICAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0IHsgcmV0dXJuIEhh
c2g6Omhhc2goKnRoaXMpOyB9Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgIG9wZXJhdG9yIGNv
bnN0IGNoYXIqKCkgY29uc3QgeyByZXR1cm4gY19zdHIoKTsgfQotICAgICAgICBjb25zdCBjaGFy
KiBjX3N0cigpIGNvbnN0IHsgcmV0dXJuIG1fZnVuY3Rpb25OYW1lLnV0ZjgoKS5kYXRhKCk7IH0K
LSNlbmRpZgotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgU3RyaW5nIG1fZnVuY3Rpb25OYW1lOwot
ICAgICAgICBTdHJpbmcgbV91cmw7Ci0gICAgICAgIHVuc2lnbmVkIG1fbGluZU51bWJlcjsKLSAg
ICAgICAgdW5zaWduZWQgbV9jb2x1bW5OdW1iZXI7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2Ug
SlNDCi0KLW5hbWVzcGFjZSBXVEYgewotCi0gICAgdGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhh
c2g8SlNDOjpDYWxsSWRlbnRpZmllcj4geyB0eXBlZGVmIEpTQzo6Q2FsbElkZW50aWZpZXI6Okhh
c2ggSGFzaDsgfTsKLQotICAgIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8SlNDOjpDYWxs
SWRlbnRpZmllcj4gOiBHZW5lcmljSGFzaFRyYWl0czxKU0M6OkNhbGxJZGVudGlmaWVyPiB7Ci0g
ICAgICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShKU0M6OkNhbGxJZGVudGlm
aWVyJiBzbG90KQotICAgICAgICB7Ci0gICAgICAgICAgICBuZXcgKE5vdE51bGwsICZzbG90KSBK
U0M6OkNhbGxJZGVudGlmaWVyKFN0cmluZygpLCBTdHJpbmcoKSwgc3RkOjpudW1lcmljX2xpbWl0
czx1bnNpZ25lZD46Om1heCgpLCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkp
OwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3Qg
SlNDOjpDYWxsSWRlbnRpZmllciYgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biB2YWx1ZS5mdW5jdGlvbk5hbWUoKS5pc051bGwoKSAmJiB2YWx1ZS51cmwoKS5pc051bGwoKSAm
JiB2YWx1ZS5saW5lTnVtYmVyKCkgPT0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1h
eCgpICYmIHZhbHVlLmNvbHVtbk51bWJlcigpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWdu
ZWQ+OjptYXgoKTsKLSAgICAgICAgfQotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi0j
ZW5kaWYgIC8vIENhbGxJZGVudGlmaWVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3ODdkMzYyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9M
ZWdhY3lQcm9maWxlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyMDggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOCwgMjAxMiwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgot
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKLQotI2luY2x1ZGUg
IkNhbGxGcmFtZS5oIgotI2luY2x1ZGUgIkNvZGVCbG9jay5oIgotI2luY2x1ZGUgIkNvbW1vbklk
ZW50aWZpZXJzLmgiCi0jaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgotI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKLSNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgotI2luY2x1ZGUgIk5vZGVz
LmgiCi0jaW5jbHVkZSAiSlNDSW5saW5lcy5oIgotI2luY2x1ZGUgIlByb2ZpbGUuaCIKLSNpbmNs
dWRlICJQcm9maWxlR2VuZXJhdG9yLmgiCi0jaW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIKLQotbmFt
ZXNwYWNlIEpTQyB7Ci0KLXN0YXRpYyBjb25zdCBjaGFyKiBHbG9iYWxDb2RlRXhlY3V0aW9uID0g
Iihwcm9ncmFtKSI7Ci1zdGF0aWMgY29uc3QgY2hhciogQW5vbnltb3VzRnVuY3Rpb24gPSAiKGFu
b255bW91cyBmdW5jdGlvbikiOwotc3RhdGljIHVuc2lnbmVkIFByb2ZpbGVzVUlEID0gMDsKLQot
c3RhdGljIENhbGxJZGVudGlmaWVyIGNyZWF0ZUNhbGxJZGVudGlmaWVyRnJvbUZ1bmN0aW9uSW1w
KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgY29uc3QgU3RyaW5nJiBkZWZhdWx0U291cmNlVVJMLCB1
bnNpZ25lZCBkZWZhdWx0TGluZU51bWJlciwgdW5zaWduZWQgZGVmYXVsdENvbHVtbk51bWJlcik7
Ci0KLUxlZ2FjeVByb2ZpbGVyKiBMZWdhY3lQcm9maWxlcjo6c19zaGFyZWRMZWdhY3lQcm9maWxl
ciA9IG51bGxwdHI7Ci0KLUxlZ2FjeVByb2ZpbGVyKiBMZWdhY3lQcm9maWxlcjo6cHJvZmlsZXIo
KQotewotICAgIGlmICghc19zaGFyZWRMZWdhY3lQcm9maWxlcikKLSAgICAgICAgc19zaGFyZWRM
ZWdhY3lQcm9maWxlciA9IG5ldyBMZWdhY3lQcm9maWxlcigpOwotICAgIHJldHVybiBzX3NoYXJl
ZExlZ2FjeVByb2ZpbGVyOwotfQotCi12b2lkIExlZ2FjeVByb2ZpbGVyOjpzdGFydFByb2ZpbGlu
ZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFBhc3NSZWZQdHI8U3RvcHdh
dGNoPiBzdG9wd2F0Y2gpCi17Ci0gICAgaWYgKCFleGVjKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICAvLyBDaGVjayBpZiB3ZSBjdXJyZW50bHkgaGF2ZSBhIFByb2ZpbGUgZm9yIHRoaXMgZ2xvYmFs
IEV4ZWNTdGF0ZSBhbmQgdGl0bGUuCi0gICAgLy8gSWYgc28gcmV0dXJuIGVhcmx5IGFuZCBkb24n
dCBjcmVhdGUgYSBuZXcgUHJvZmlsZS4KLSAgICBKU0dsb2JhbE9iamVjdCogb3JpZ2luID0gZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X2N1cnJlbnRQcm9maWxlcy5zaXplKCk7ICsraSkgewotICAgICAgICBQcm9maWxlR2VuZXJhdG9y
KiBwcm9maWxlR2VuZXJhdG9yID0gbV9jdXJyZW50UHJvZmlsZXNbaV0uZ2V0KCk7Ci0gICAgICAg
IGlmIChwcm9maWxlR2VuZXJhdG9yLT5vcmlnaW4oKSA9PSBvcmlnaW4gJiYgcHJvZmlsZUdlbmVy
YXRvci0+dGl0bGUoKSA9PSB0aXRsZSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBleGVjLT52bSgpLnNldEVuYWJsZWRQcm9maWxlcih0aGlzKTsKLSAgICBSZWZQdHI8UHJvZmls
ZUdlbmVyYXRvcj4gcHJvZmlsZUdlbmVyYXRvciA9IFByb2ZpbGVHZW5lcmF0b3I6OmNyZWF0ZShl
eGVjLCB0aXRsZSwgKytQcm9maWxlc1VJRCwgc3RvcHdhdGNoKTsKLSAgICBtX2N1cnJlbnRQcm9m
aWxlcy5hcHBlbmQocHJvZmlsZUdlbmVyYXRvcik7Ci19Ci0KLVJlZlB0cjxQcm9maWxlPiBMZWdh
Y3lQcm9maWxlcjo6c3RvcFByb2ZpbGluZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYg
dGl0bGUpCi17Ci0gICAgaWYgKCFleGVjKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAg
IEpTR2xvYmFsT2JqZWN0KiBvcmlnaW4gPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7Ci0g
ICAgZm9yIChwdHJkaWZmX3QgaSA9IG1fY3VycmVudFByb2ZpbGVzLnNpemUoKSAtIDE7IGkgPj0g
MDsgLS1pKSB7Ci0gICAgICAgIFByb2ZpbGVHZW5lcmF0b3IqIHByb2ZpbGVHZW5lcmF0b3IgPSBt
X2N1cnJlbnRQcm9maWxlc1tpXS5nZXQoKTsKLSAgICAgICAgaWYgKHByb2ZpbGVHZW5lcmF0b3It
Pm9yaWdpbigpID09IG9yaWdpbiAmJiAodGl0bGUuaXNOdWxsKCkgfHwgcHJvZmlsZUdlbmVyYXRv
ci0+dGl0bGUoKSA9PSB0aXRsZSkpIHsKLSAgICAgICAgICAgIHByb2ZpbGVHZW5lcmF0b3ItPnN0
b3BQcm9maWxpbmcoKTsKLSAgICAgICAgICAgIFJlZlB0cjxQcm9maWxlPiByZXR1cm5Qcm9maWxl
ID0gcHJvZmlsZUdlbmVyYXRvci0+cHJvZmlsZSgpOwotCi0gICAgICAgICAgICBtX2N1cnJlbnRQ
cm9maWxlcy5yZW1vdmUoaSk7Ci0gICAgICAgICAgICBpZiAoIW1fY3VycmVudFByb2ZpbGVzLnNp
emUoKSkKLSAgICAgICAgICAgICAgICBleGVjLT52bSgpLnNldEVuYWJsZWRQcm9maWxlcihudWxs
cHRyKTsKLQotICAgICAgICAgICAgcmV0dXJuIHJldHVyblByb2ZpbGU7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6c3Rv
cFByb2ZpbGluZyhKU0dsb2JhbE9iamVjdCogb3JpZ2luKQotewotICAgIGZvciAocHRyZGlmZl90
IGkgPSBtX2N1cnJlbnRQcm9maWxlcy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewotICAgICAg
ICBQcm9maWxlR2VuZXJhdG9yKiBwcm9maWxlR2VuZXJhdG9yID0gbV9jdXJyZW50UHJvZmlsZXNb
aV0uZ2V0KCk7Ci0gICAgICAgIGlmIChwcm9maWxlR2VuZXJhdG9yLT5vcmlnaW4oKSA9PSBvcmln
aW4pIHsKLSAgICAgICAgICAgIHByb2ZpbGVHZW5lcmF0b3ItPnN0b3BQcm9maWxpbmcoKTsKLSAg
ICAgICAgICAgIG1fY3VycmVudFByb2ZpbGVzLnJlbW92ZShpKTsKLSAgICAgICAgICAgIGlmICgh
bV9jdXJyZW50UHJvZmlsZXMuc2l6ZSgpKQotICAgICAgICAgICAgICAgIG9yaWdpbi0+dm0oKS5z
ZXRFbmFibGVkUHJvZmlsZXIobnVsbHB0cik7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLXN0YXRp
YyBpbmxpbmUgdm9pZCBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmZ1bmN0
aW9uPHZvaWQoUHJvZmlsZUdlbmVyYXRvciopPiBjYWxsYmFjaywgY29uc3QgVmVjdG9yPFJlZlB0
cjxQcm9maWxlR2VuZXJhdG9yPj4mIHByb2ZpbGVzLCB1bnNpZ25lZCB0YXJnZXRQcm9maWxlR3Jv
dXApCi17Ci0gICAgZm9yIChjb25zdCBSZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4mIHByb2ZpbGUg
OiBwcm9maWxlcykgewotICAgICAgICBpZiAocHJvZmlsZS0+cHJvZmlsZUdyb3VwKCkgPT0gdGFy
Z2V0UHJvZmlsZUdyb3VwIHx8ICFwcm9maWxlLT5vcmlnaW4oKSkKLSAgICAgICAgICAgIGNhbGxi
YWNrKHByb2ZpbGUuZ2V0KCkpOwotICAgIH0KLX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6c3Vz
cGVuZFByb2ZpbGluZyhKU0M6OkV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBpZiAoIWV4ZWMpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGNhbGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdyb3VwKHN0
ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRvcjo6c2V0SXNTdXNwZW5kZWQsIHN0ZDo6cGxhY2Vob2xk
ZXJzOjpfMSwgdHJ1ZSksIG1fY3VycmVudFByb2ZpbGVzLCBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKLX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6dW5zdXNw
ZW5kUHJvZmlsaW5nKEpTQzo6RXhlY1N0YXRlKiBleGVjKQotewotICAgIGlmICghZXhlYykKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgY2FsbEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3Rk
OjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjpzZXRJc1N1c3BlbmRlZCwgc3RkOjpwbGFjZWhvbGRl
cnM6Ol8xLCBmYWxzZSksIG1fY3VycmVudFByb2ZpbGVzLCBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKLX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6d2lsbEV4
ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIEpTVmFsdWUgZnVuY3Rpb24pCi17Ci0g
ICAgQVNTRVJUKCFtX2N1cnJlbnRQcm9maWxlcy5pc0VtcHR5KCkpOwotCi0gICAgQ2FsbElkZW50
aWZpZXIgY2FsbElkZW50aWZpZXIgPSBjcmVhdGVDYWxsSWRlbnRpZmllcihjYWxsZXJDYWxsRnJh
bWUsIGZ1bmN0aW9uLCBTdHJpbmdJbXBsOjplbXB0eSgpLCAwLCAwKTsKLQotICAgIGNhbGxGdW5j
dGlvbkZvclByb2ZpbGVzV2l0aEdyb3VwKHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRvcjo6d2ls
bEV4ZWN1dGUsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgY2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRl
bnRpZmllciksIG1fY3VycmVudFByb2ZpbGVzLCBjYWxsZXJDYWxsRnJhbWUtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkpOwotfQotCi12b2lkIExlZ2FjeVByb2ZpbGVyOjp3
aWxsRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIHVuc2lnbmVkIHN0YXJ0aW5nTGluZU51bWJlciwgdW5zaWduZWQgc3RhcnRpbmdDb2x1
bW5OdW1iZXIpCi17Ci0gICAgQVNTRVJUKCFtX2N1cnJlbnRQcm9maWxlcy5pc0VtcHR5KCkpOwot
Ci0gICAgQ2FsbElkZW50aWZpZXIgY2FsbElkZW50aWZpZXIgPSBjcmVhdGVDYWxsSWRlbnRpZmll
cihjYWxsZXJDYWxsRnJhbWUsIEpTVmFsdWUoKSwgc291cmNlVVJMLCBzdGFydGluZ0xpbmVOdW1i
ZXIsIHN0YXJ0aW5nQ29sdW1uTnVtYmVyKTsKLQotICAgIGNhbGxGdW5jdGlvbkZvclByb2ZpbGVz
V2l0aEdyb3VwKHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRvcjo6d2lsbEV4ZWN1dGUsIHN0ZDo6
cGxhY2Vob2xkZXJzOjpfMSwgY2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciksIG1fY3Vy
cmVudFByb2ZpbGVzLCBjYWxsZXJDYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJv
ZmlsZUdyb3VwKCkpOwotfQotCi12b2lkIExlZ2FjeVByb2ZpbGVyOjpkaWRFeGVjdXRlKEV4ZWNT
dGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBKU1ZhbHVlIGZ1bmN0aW9uKQotewotICAgIEFTU0VSVCgh
bV9jdXJyZW50UHJvZmlsZXMuaXNFbXB0eSgpKTsKLQotICAgIENhbGxJZGVudGlmaWVyIGNhbGxJ
ZGVudGlmaWVyID0gY3JlYXRlQ2FsbElkZW50aWZpZXIoY2FsbGVyQ2FsbEZyYW1lLCBmdW5jdGlv
biwgU3RyaW5nSW1wbDo6ZW1wdHkoKSwgMCwgMCk7Ci0KLSAgICBjYWxsRnVuY3Rpb25Gb3JQcm9m
aWxlc1dpdGhHcm91cChzdGQ6OmJpbmQoJlByb2ZpbGVHZW5lcmF0b3I6OmRpZEV4ZWN1dGUsIHN0
ZDo6cGxhY2Vob2xkZXJzOjpfMSwgY2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciksIG1f
Y3VycmVudFByb2ZpbGVzLCBjYWxsZXJDYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+
cHJvZmlsZUdyb3VwKCkpOwotfQotCi12b2lkIExlZ2FjeVByb2ZpbGVyOjpkaWRFeGVjdXRlKEV4
ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWdu
ZWQgc3RhcnRpbmdMaW5lTnVtYmVyLCB1bnNpZ25lZCBzdGFydGluZ0NvbHVtbk51bWJlcikKLXsK
LSAgICBBU1NFUlQoIW1fY3VycmVudFByb2ZpbGVzLmlzRW1wdHkoKSk7Ci0KLSAgICBDYWxsSWRl
bnRpZmllciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJZGVudGlmaWVyKGNhbGxlckNhbGxG
cmFtZSwgSlNWYWx1ZSgpLCBzb3VyY2VVUkwsIHN0YXJ0aW5nTGluZU51bWJlciwgc3RhcnRpbmdD
b2x1bW5OdW1iZXIpOwotCi0gICAgY2FsbEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3Rk
OjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjpkaWRFeGVjdXRlLCBzdGQ6OnBsYWNlaG9sZGVyczo6
XzEsIGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIpLCBtX2N1cnJlbnRQcm9maWxlcywg
Y2FsbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsK
LX0KLQotdm9pZCBMZWdhY3lQcm9maWxlcjo6ZXhjZXB0aW9uVW53aW5kKEV4ZWNTdGF0ZSogaGFu
ZGxlckNhbGxGcmFtZSkKLXsKLSAgICBBU1NFUlQoIW1fY3VycmVudFByb2ZpbGVzLmlzRW1wdHko
KSk7Ci0KLSAgICBDYWxsSWRlbnRpZmllciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJZGVu
dGlmaWVyKGhhbmRsZXJDYWxsRnJhbWUsIEpTVmFsdWUoKSwgU3RyaW5nSW1wbDo6ZW1wdHkoKSwg
MCwgMCk7Ci0KLSAgICBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmJpbmQo
JlByb2ZpbGVHZW5lcmF0b3I6OmV4Y2VwdGlvblVud2luZCwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8x
LCBoYW5kbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciksIG1fY3VycmVudFByb2ZpbGVzLCBo
YW5kbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsK
LX0KLQotQ2FsbElkZW50aWZpZXIgTGVnYWN5UHJvZmlsZXI6OmNyZWF0ZUNhbGxJZGVudGlmaWVy
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBmdW5jdGlvblZhbHVlLCBjb25zdCBTdHJpbmcmIGRl
ZmF1bHRTb3VyY2VVUkwsIHVuc2lnbmVkIGRlZmF1bHRMaW5lTnVtYmVyLCB1bnNpZ25lZCBkZWZh
dWx0Q29sdW1uTnVtYmVyKQotewotICAgIGlmICghZnVuY3Rpb25WYWx1ZSkKLSAgICAgICAgcmV0
dXJuIENhbGxJZGVudGlmaWVyKEFTQ0lJTGl0ZXJhbChHbG9iYWxDb2RlRXhlY3V0aW9uKSwgZGVm
YXVsdFNvdXJjZVVSTCwgZGVmYXVsdExpbmVOdW1iZXIsIGRlZmF1bHRDb2x1bW5OdW1iZXIpOwot
ICAgIGlmICghZnVuY3Rpb25WYWx1ZS5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4gQ2FsbElk
ZW50aWZpZXIoQVNDSUlMaXRlcmFsKCIodW5rbm93bikiKSwgZGVmYXVsdFNvdXJjZVVSTCwgZGVm
YXVsdExpbmVOdW1iZXIsIGRlZmF1bHRDb2x1bW5OdW1iZXIpOwotICAgIGlmIChhc09iamVjdChm
dW5jdGlvblZhbHVlKS0+aW5oZXJpdHMoSlNGdW5jdGlvbjo6aW5mbygpKSB8fCBhc09iamVjdChm
dW5jdGlvblZhbHVlKS0+aW5oZXJpdHMoSW50ZXJuYWxGdW5jdGlvbjo6aW5mbygpKSkKLSAgICAg
ICAgcmV0dXJuIGNyZWF0ZUNhbGxJZGVudGlmaWVyRnJvbUZ1bmN0aW9uSW1wKGV4ZWMsIGFzT2Jq
ZWN0KGZ1bmN0aW9uVmFsdWUpLCBkZWZhdWx0U291cmNlVVJMLCBkZWZhdWx0TGluZU51bWJlciwg
ZGVmYXVsdENvbHVtbk51bWJlcik7Ci0gICAgaWYgKGFzT2JqZWN0KGZ1bmN0aW9uVmFsdWUpLT5p
bmhlcml0cyhKU0NhbGxlZTo6aW5mbygpKSkKLSAgICAgICAgcmV0dXJuIENhbGxJZGVudGlmaWVy
KEFTQ0lJTGl0ZXJhbChHbG9iYWxDb2RlRXhlY3V0aW9uKSwgZGVmYXVsdFNvdXJjZVVSTCwgZGVm
YXVsdExpbmVOdW1iZXIsIGRlZmF1bHRDb2x1bW5OdW1iZXIpOwotICAgIHJldHVybiBDYWxsSWRl
bnRpZmllcihhc09iamVjdChmdW5jdGlvblZhbHVlKS0+bWV0aG9kVGFibGUoKS0+Y2xhc3NOYW1l
KGFzT2JqZWN0KGZ1bmN0aW9uVmFsdWUpKSwgZGVmYXVsdFNvdXJjZVVSTCwgZGVmYXVsdExpbmVO
dW1iZXIsIGRlZmF1bHRDb2x1bW5OdW1iZXIpOwotfQotCi1DYWxsSWRlbnRpZmllciBjcmVhdGVD
YWxsSWRlbnRpZmllckZyb21GdW5jdGlvbkltcChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBm
dW5jdGlvbiwgY29uc3QgU3RyaW5nJiBkZWZhdWx0U291cmNlVVJMLCB1bnNpZ25lZCBkZWZhdWx0
TGluZU51bWJlciwgdW5zaWduZWQgZGVmYXVsdENvbHVtbk51bWJlcikKLXsKLSAgICBjb25zdCBT
dHJpbmcmIG5hbWUgPSBnZXRDYWxjdWxhdGVkRGlzcGxheU5hbWUoZXhlYywgZnVuY3Rpb24pOwot
ICAgIEpTRnVuY3Rpb24qIGpzRnVuY3Rpb24gPSBqc0R5bmFtaWNDYXN0PEpTRnVuY3Rpb24qPihm
dW5jdGlvbik7Ci0gICAgaWYgKGpzRnVuY3Rpb24gJiYgIWpzRnVuY3Rpb24tPmlzSG9zdE9yQnVp
bHRpbkZ1bmN0aW9uKCkpCi0gICAgICAgIHJldHVybiBDYWxsSWRlbnRpZmllcihuYW1lLmlzRW1w
dHkoKSA/IEFTQ0lJTGl0ZXJhbChBbm9ueW1vdXNGdW5jdGlvbikgOiBuYW1lLCBqc0Z1bmN0aW9u
LT5qc0V4ZWN1dGFibGUoKS0+c291cmNlVVJMKCksIGpzRnVuY3Rpb24tPmpzRXhlY3V0YWJsZSgp
LT5maXJzdExpbmUoKSwganNGdW5jdGlvbi0+anNFeGVjdXRhYmxlKCktPnN0YXJ0Q29sdW1uKCkp
OwotICAgIHJldHVybiBDYWxsSWRlbnRpZmllcihuYW1lLmlzRW1wdHkoKSA/IEFTQ0lJTGl0ZXJh
bChBbm9ueW1vdXNGdW5jdGlvbikgOiBuYW1lLCBkZWZhdWx0U291cmNlVVJMLCBkZWZhdWx0TGlu
ZU51bWJlciwgZGVmYXVsdENvbHVtbk51bWJlcik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWYwYWI0MS4uMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaAorKysgL2Rldi9udWxsCkBA
IC0xLDc3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTIsIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5l
aXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgot
ICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
LSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBMZWdhY3lQcm9maWxlcl9oCi0jZGVmaW5lIExlZ2Fj
eVByb2ZpbGVyX2gKLQotI2luY2x1ZGUgIlByb2ZpbGUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvU3RvcHdhdGNo
Lmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3Mg
RXhlY1N0YXRlOwotY2xhc3MgSlNHbG9iYWxPYmplY3Q7Ci1jbGFzcyBKU09iamVjdDsKLWNsYXNz
IEpTVmFsdWU7Ci1jbGFzcyBQcm9maWxlR2VuZXJhdG9yOwotc3RydWN0IENhbGxJZGVudGlmaWVy
OwotCi1jbGFzcyBMZWdhY3lQcm9maWxlciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
Ci1wdWJsaWM6Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIExlZ2FjeVByb2ZpbGVyKiBw
cm9maWxlcigpOwotICAgIHN0YXRpYyBDYWxsSWRlbnRpZmllciBjcmVhdGVDYWxsSWRlbnRpZmll
cihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlVVJMLCB1bnNp
Z25lZCBkZWZhdWx0TGluZU51bWJlciwgdW5zaWduZWQgZGVmYXVsdENvbHVtbk51bWJlcik7Ci0K
LSAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHN0YXJ0UHJvZmlsaW5nKEV4ZWNTdGF0ZSosIGNv
bnN0IFdURjo6U3RyaW5nJiB0aXRsZSwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+KTsKLSAgICBKU19F
WFBPUlRfUFJJVkFURSBSZWZQdHI8UHJvZmlsZT4gc3RvcFByb2ZpbGluZyhFeGVjU3RhdGUqLCBj
b25zdCBXVEY6OlN0cmluZyYgdGl0bGUpOwotICAgIHZvaWQgc3RvcFByb2ZpbGluZyhKU0dsb2Jh
bE9iamVjdCopOwotCi0gICAgLy8gVXNlZCB0byBpZ25vcmUgcHJvZmlsZSBub2RlIHN1YnRyZWVz
IHJvb3RlZCBhdCBJbmplY3RlZFNjcmlwdCBjYWxscy4KLSAgICBKU19FWFBPUlRfUFJJVkFURSB2
b2lkIHN1c3BlbmRQcm9maWxpbmcoRXhlY1N0YXRlKik7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUg
dm9pZCB1bnN1c3BlbmRQcm9maWxpbmcoRXhlY1N0YXRlKik7Ci0KLSAgICB2b2lkIHdpbGxFeGVj
dXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBKU1ZhbHVlIGZ1bmN0aW9uKTsKLSAgICB2
b2lkIHdpbGxFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBXVEY6OlN0
cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBzdGFydGluZ0xpbmVOdW1iZXIsIHVuc2lnbmVkIHN0
YXJ0aW5nQ29sdW1uTnVtYmVyKTsKLSAgICB2b2lkIGRpZEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxs
ZXJDYWxsRnJhbWUsIEpTVmFsdWUgZnVuY3Rpb24pOwotICAgIHZvaWQgZGlkRXhlY3V0ZShFeGVj
U3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIHNvdXJjZVVSTCwgdW5z
aWduZWQgc3RhcnRpbmdMaW5lTnVtYmVyLCB1bnNpZ25lZCBzdGFydGluZ0NvbHVtbk51bWJlcik7
Ci0KLSAgICB2b2lkIGV4Y2VwdGlvblVud2luZChFeGVjU3RhdGUqIGhhbmRsZXJDYWxsRnJhbWUp
OwotCi0gICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQcm9maWxlR2VuZXJhdG9yPj4mIGN1cnJlbnRQ
cm9maWxlcygpIHsgcmV0dXJuIG1fY3VycmVudFByb2ZpbGVzOyB9OwotCi1wcml2YXRlOgotICAg
IFZlY3RvcjxSZWZQdHI8UHJvZmlsZUdlbmVyYXRvcj4+IG1fY3VycmVudFByb2ZpbGVzOwotICAg
IHN0YXRpYyBMZWdhY3lQcm9maWxlciogc19zaGFyZWRMZWdhY3lQcm9maWxlcjsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gTGVnYWN5UHJvZmlsZXJfaApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmM2Q0NTBhLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMTQgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiUHJvZmlsZS5oIgotCi0jaW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIK
LSNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotUmVmPFByb2Zp
bGU+IFByb2ZpbGU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRv
dWJsZSBzdGFydFRpbWUpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUHJvZmlsZSh0aXRs
ZSwgdWlkLCBzdGFydFRpbWUpKTsKLX0KLQotUHJvZmlsZTo6UHJvZmlsZShjb25zdCBTdHJpbmcm
IHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSBzdGFydFRpbWUpCi0gICAgOiBtX3RpdGxlKHRp
dGxlKQotICAgICwgbV91aWQodWlkKQotewotICAgIC8vIEZJWE1FOiBXaGVuIG11bHRpLXRocmVh
ZGluZyBpcyBzdXBwb3J0ZWQgdGhpcyB3aWxsIGJlIGEgdmVjdG9yIGFuZCBjYWxscwotICAgIC8v
IGludG8gdGhlIHByb2ZpbGVyIHdpbGwgbmVlZCB0byBrbm93IHdoaWNoIHRocmVhZCBpdCBpcyBl
eGVjdXRpbmcgb24uCi0gICAgbV9yb290Tm9kZSA9IFByb2ZpbGVOb2RlOjpjcmVhdGUobnVsbHB0
ciwgQ2FsbElkZW50aWZpZXIoQVNDSUlMaXRlcmFsKCJUaHJlYWRfMSIpLCBTdHJpbmcoKSwgMCwg
MCksIG51bGxwdHIpOwotICAgIG1fcm9vdE5vZGUtPmFwcGVuZENhbGwoUHJvZmlsZU5vZGU6OkNh
bGwoc3RhcnRUaW1lKSk7Ci19Ci0KLVByb2ZpbGU6On5Qcm9maWxlKCkKLXsKLX0KLQotI2lmbmRl
ZiBOREVCVUcKLXZvaWQgUHJvZmlsZTo6ZGVidWdQcmludCgpCi17Ci0gICAgQ2FsY3VsYXRlUHJv
ZmlsZVN1YnRyZWVEYXRhRnVuY3RvciBmdW5jdG9yOwotICAgIG1fcm9vdE5vZGUtPmZvckVhY2hO
b2RlUG9zdG9yZGVyKGZ1bmN0b3IpOwotICAgIFByb2ZpbGVOb2RlOjpQcm9maWxlU3VidHJlZURh
dGEgZGF0YSA9IGZ1bmN0b3IucmV0dXJuVmFsdWUoKTsKLQotICAgIGRhdGFMb2dGKCJDYWxsIGdy
YXBoOlxuIik7Ci0gICAgbV9yb290Tm9kZS0+ZGVidWdQcmludFJlY3Vyc2l2ZWx5KDAsIGRhdGEp
OwotfQotCi10eXBlZGVmIFdURjo6S2V5VmFsdWVQYWlyPEZ1bmN0aW9uQ2FsbEhhc2hDb3VudDo6
VmFsdWVUeXBlLCB1bnNpZ25lZD4gTmFtZUNvdW50UGFpcjsKLQotc3RhdGljIGlubGluZSBib29s
IGZ1bmN0aW9uTmFtZUNvdW50UGFpckNvbXBhcmF0b3IoY29uc3QgTmFtZUNvdW50UGFpciYgYSwg
Y29uc3QgTmFtZUNvdW50UGFpciYgYikKLXsKLSAgICByZXR1cm4gYS52YWx1ZSA+IGIudmFsdWU7
Ci19Ci0KLXZvaWQgUHJvZmlsZTo6ZGVidWdQcmludFNhbXBsZVN0eWxlKCkKLXsKLSAgICB0eXBl
ZGVmIFZlY3RvcjxOYW1lQ291bnRQYWlyPiBOYW1lQ291bnRQYWlyVmVjdG9yOwotCi0gICAgQ2Fs
Y3VsYXRlUHJvZmlsZVN1YnRyZWVEYXRhRnVuY3RvciBmdW5jdG9yOwotICAgIG1fcm9vdE5vZGUt
PmZvckVhY2hOb2RlUG9zdG9yZGVyKGZ1bmN0b3IpOwotICAgIFByb2ZpbGVOb2RlOjpQcm9maWxl
U3VidHJlZURhdGEgZGF0YSA9IGZ1bmN0b3IucmV0dXJuVmFsdWUoKTsKLQotICAgIEZ1bmN0aW9u
Q2FsbEhhc2hDb3VudCBjb3VudGVkRnVuY3Rpb25zOwotICAgIGRhdGFMb2dGKCJDYWxsIGdyYXBo
OlxuIik7Ci0gICAgbV9yb290Tm9kZS0+ZGVidWdQcmludFNhbXBsZVN0eWxlUmVjdXJzaXZlbHko
MCwgY291bnRlZEZ1bmN0aW9ucywgZGF0YSk7Ci0KLSAgICBkYXRhTG9nRigiXG5Ub3RhbCBudW1i
ZXIgaW4gc3RhY2s6XG4iKTsKLSAgICBOYW1lQ291bnRQYWlyVmVjdG9yIHNvcnRlZEZ1bmN0aW9u
cyhjb3VudGVkRnVuY3Rpb25zLnNpemUoKSk7Ci0gICAgY29weVRvVmVjdG9yKGNvdW50ZWRGdW5j
dGlvbnMsIHNvcnRlZEZ1bmN0aW9ucyk7Ci0KLSAgICBzdGQ6OnNvcnQoc29ydGVkRnVuY3Rpb25z
LmJlZ2luKCksIHNvcnRlZEZ1bmN0aW9ucy5lbmQoKSwgZnVuY3Rpb25OYW1lQ291bnRQYWlyQ29t
cGFyYXRvcik7Ci0gICAgZm9yIChOYW1lQ291bnRQYWlyVmVjdG9yOjppdGVyYXRvciBpdCA9IHNv
cnRlZEZ1bmN0aW9ucy5iZWdpbigpOyBpdCAhPSBzb3J0ZWRGdW5jdGlvbnMuZW5kKCk7ICsraXQp
Ci0gICAgICAgIGRhdGFMb2dGKCIgICAgICAgICUtMTJkJXNcbiIsICgqaXQpLnZhbHVlLCBTdHJp
bmcoKCppdCkua2V5KS51dGY4KCkuZGF0YSgpKTsKLQotICAgIGRhdGFMb2dGKCJcblNvcnQgYnkg
dG9wIG9mIHN0YWNrLCBzYW1lIGNvbGxhcHNlZCAod2hlbiA+PSA1KTpcbiIpOwotfQotI2VuZGlm
Ci0KLX0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxY2I2NzAuLjAwMDAwMDAKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGUuaAorKysgL2Rldi9udWxs
CkBAIC0xLDY2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTQgQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotIAotI2lmbmRlZiBQcm9maWxlX2gKLSNkZWZpbmUgUHJvZmlsZV9oCi0KLSNp
bmNsdWRlICJQcm9maWxlTm9kZS5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1u
YW1lc3BhY2UgSlNDIHsKLQotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgUHJvZmlsZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPFByb2ZpbGU+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFByb2ZpbGU+
IGNyZWF0ZShjb25zdCBTdHJpbmcmIHRpdGxlLCB1bnNpZ25lZCB1aWQsIGRvdWJsZSk7Ci0gICAg
dmlydHVhbCB+UHJvZmlsZSgpOwotCi0gICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fdGl0bGU7IH0KLSAgICB1bnNpZ25lZCB1aWQoKSBjb25zdCB7IHJldHVybiBtX3Vp
ZDsgfQotCi0gICAgUHJvZmlsZU5vZGUqIHJvb3ROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9yb290
Tm9kZS5nZXQoKTsgfQotICAgIHZvaWQgc2V0Um9vdE5vZGUoUGFzc1JlZlB0cjxQcm9maWxlTm9k
ZT4gcm9vdE5vZGUpIHsgbV9yb290Tm9kZSA9IHJvb3ROb2RlOyB9Ci0KLSNpZm5kZWYgTkRFQlVH
Ci0gICAgdm9pZCBkZWJ1Z1ByaW50KCk7Ci0gICAgdm9pZCBkZWJ1Z1ByaW50U2FtcGxlU3R5bGUo
KTsKLSNlbmRpZgotCi1wcm90ZWN0ZWQ6Ci0gICAgUHJvZmlsZShjb25zdCBTdHJpbmcmIHRpdGxl
LCB1bnNpZ25lZCB1aWQsIGRvdWJsZSBzdGFydFRpbWUpOwotCi1wcml2YXRlOgotICAgIHZvaWQg
cmVtb3ZlUHJvZmlsZVN0YXJ0KCk7Ci0gICAgdm9pZCByZW1vdmVQcm9maWxlRW5kKCk7Ci0KLSAg
ICBTdHJpbmcgbV90aXRsZTsKLSAgICBSZWZQdHI8UHJvZmlsZU5vZGU+IG1fcm9vdE5vZGU7Ci0g
ICAgdW5zaWduZWQgbV91aWQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBKU0MKLQotI2VuZGlmIC8v
IFByb2ZpbGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVHZW5lcmF0b3IuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNWY4YTQzLi4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJh
dG9yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA4LCAyMDE0LCAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgIlByb2ZpbGVHZW5lcmF0b3IuaCIKLQotI2luY2x1ZGUgIkNhbGxGcmFt
ZS5oIgotI2luY2x1ZGUgIkNvZGVCbG9jay5oIgotI2luY2x1ZGUgIkpTR2xvYmFsT2JqZWN0Lmgi
Ci0jaW5jbHVkZSAiSlNTdHJpbmdSZWYuaCIKLSNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCi0jaW5j
bHVkZSAiTGVnYWN5UHJvZmlsZXIuaCIKLSNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0jaW5jbHVk
ZSAiUHJvZmlsZS5oIgotI2luY2x1ZGUgIlN0YWNrVmlzaXRvci5oIgotCi1uYW1lc3BhY2UgSlND
IHsKLQotUmVmPFByb2ZpbGVHZW5lcmF0b3I+IFByb2ZpbGVHZW5lcmF0b3I6OmNyZWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0
cjxTdG9wd2F0Y2g+IHN0b3B3YXRjaCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm9m
aWxlR2VuZXJhdG9yKGV4ZWMsIHRpdGxlLCB1aWQsIHN0b3B3YXRjaCkpOwotfQotCi1Qcm9maWxl
R2VuZXJhdG9yOjpQcm9maWxlR2VuZXJhdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5n
JiB0aXRsZSwgdW5zaWduZWQgdWlkLCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4gc3RvcHdhdGNoKQot
ICAgIDogbV9vcmlnaW4oZXhlYyA/IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSA6IG51bGxw
dHIpCi0gICAgLCBtX3Byb2ZpbGVHcm91cChleGVjID8gZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLT5wcm9maWxlR3JvdXAoKSA6IDApCi0gICAgLCBtX3N0b3B3YXRjaChzdG9wd2F0Y2gpCi0g
ICAgLCBtX2ZvdW5kQ29uc29sZVN0YXJ0UGFyZW50KGZhbHNlKQotICAgICwgbV9zdXNwZW5kZWQo
ZmFsc2UpCi17Ci0gICAgZG91YmxlIHN0YXJ0VGltZSA9IG1fc3RvcHdhdGNoLT5lbGFwc2VkVGlt
ZSgpOwotICAgIG1fcHJvZmlsZSA9IFByb2ZpbGU6OmNyZWF0ZSh0aXRsZSwgdWlkLCBzdGFydFRp
bWUpOwotICAgIG1fY3VycmVudE5vZGUgPSBtX3Jvb3ROb2RlID0gbV9wcm9maWxlLT5yb290Tm9k
ZSgpOwotICAgIGlmIChleGVjKQotICAgICAgICBhZGRQYXJlbnRGb3JDb25zb2xlU3RhcnQoZXhl
Yywgc3RhcnRUaW1lKTsKLX0KLQotY2xhc3MgQWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0RnVuY3Rv
ciB7Ci1wdWJsaWM6Ci0gICAgQWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0RnVuY3RvcihFeGVjU3Rh
dGUqIGV4ZWMsIFJlZlB0cjxQcm9maWxlTm9kZT4mIHJvb3ROb2RlLCBSZWZQdHI8UHJvZmlsZU5v
ZGU+JiBjdXJyZW50Tm9kZSwgZG91YmxlIHN0YXJ0VGltZSkKLSAgICAgICAgOiBtX2V4ZWMoZXhl
YykKLSAgICAgICAgLCBtX2hhc1NraXBwZWRGaXJzdEZyYW1lKGZhbHNlKQotICAgICAgICAsIG1f
Zm91bmRQYXJlbnQoZmFsc2UpCi0gICAgICAgICwgbV9yb290Tm9kZShyb290Tm9kZSkKLSAgICAg
ICAgLCBtX2N1cnJlbnROb2RlKGN1cnJlbnROb2RlKQotICAgICAgICAsIG1fc3RhcnRUaW1lKHN0
YXJ0VGltZSkKLSAgICB7Ci0gICAgfQotCi0gICAgYm9vbCBmb3VuZFBhcmVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fZm91bmRQYXJlbnQ7IH0KLQotICAgIFN0YWNrVmlzaXRvcjo6U3RhdHVzIG9wZXJh
dG9yKCkoU3RhY2tWaXNpdG9yJiB2aXNpdG9yKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKCFt
X2hhc1NraXBwZWRGaXJzdEZyYW1lKSB7Ci0gICAgICAgICAgICBtX2hhc1NraXBwZWRGaXJzdEZy
YW1lID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkNvbnRpbnVlOwot
ICAgICAgICB9Ci0KLSAgICAgICAgdW5zaWduZWQgbGluZSA9IDA7Ci0gICAgICAgIHVuc2lnbmVk
IGNvbHVtbiA9IDA7Ci0gICAgICAgIHZpc2l0b3ItPmNvbXB1dGVMaW5lQW5kQ29sdW1uKGxpbmUs
IGNvbHVtbik7Ci0gICAgICAgIG1fY3VycmVudE5vZGUgPSBQcm9maWxlTm9kZTo6Y3JlYXRlKG1f
ZXhlYywgTGVnYWN5UHJvZmlsZXI6OmNyZWF0ZUNhbGxJZGVudGlmaWVyKG1fZXhlYywgdmlzaXRv
ci0+Y2FsbGVlKCksIHZpc2l0b3ItPnNvdXJjZVVSTCgpLCBsaW5lLCBjb2x1bW4pLCBtX3Jvb3RO
b2RlLmdldCgpKTsKLSAgICAgICAgbV9jdXJyZW50Tm9kZS0+YXBwZW5kQ2FsbChQcm9maWxlTm9k
ZTo6Q2FsbChtX3N0YXJ0VGltZSkpOwotICAgICAgICBtX3Jvb3ROb2RlLT5zcGxpY2VOb2RlKG1f
Y3VycmVudE5vZGUuZ2V0KCkpOwotCi0gICAgICAgIG1fZm91bmRQYXJlbnQgPSB0cnVlOwotICAg
ICAgICByZXR1cm4gU3RhY2tWaXNpdG9yOjpEb25lOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBF
eGVjU3RhdGUqIG1fZXhlYzsKLSAgICBtdXRhYmxlIGJvb2wgbV9oYXNTa2lwcGVkRmlyc3RGcmFt
ZTsKLSAgICBtdXRhYmxlIGJvb2wgbV9mb3VuZFBhcmVudDsKLSAgICBSZWZQdHI8UHJvZmlsZU5v
ZGU+JiBtX3Jvb3ROb2RlOwotICAgIFJlZlB0cjxQcm9maWxlTm9kZT4mIG1fY3VycmVudE5vZGU7
Ci0gICAgZG91YmxlIG1fc3RhcnRUaW1lOwotfTsKLQotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjph
ZGRQYXJlbnRGb3JDb25zb2xlU3RhcnQoRXhlY1N0YXRlKiBleGVjLCBkb3VibGUgc3RhcnRUaW1l
KQotewotICAgIEFkZFBhcmVudEZvckNvbnNvbGVTdGFydEZ1bmN0b3IgZnVuY3RvcihleGVjLCBt
X3Jvb3ROb2RlLCBtX2N1cnJlbnROb2RlLCBzdGFydFRpbWUpOwotICAgIGV4ZWMtPml0ZXJhdGUo
ZnVuY3Rvcik7Ci0KLSAgICBtX2ZvdW5kQ29uc29sZVN0YXJ0UGFyZW50ID0gZnVuY3Rvci5mb3Vu
ZFBhcmVudCgpOwotfQotCi1jb25zdCBTdHJpbmcmIFByb2ZpbGVHZW5lcmF0b3I6OnRpdGxlKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9wcm9maWxlLT50aXRsZSgpOwotfQotCi12b2lkIFByb2Zp
bGVHZW5lcmF0b3I6OmJlZ2luQ2FsbEVudHJ5KFByb2ZpbGVOb2RlKiBub2RlLCBkb3VibGUgc3Rh
cnRUaW1lKQotewotICAgIEFTU0VSVF9BUkcobm9kZSwgbm9kZSk7Ci0KLSAgICBpZiAoc3RkOjpp
c25hbihzdGFydFRpbWUpKQotICAgICAgICBzdGFydFRpbWUgPSBtX3N0b3B3YXRjaC0+ZWxhcHNl
ZFRpbWUoKTsKLQotICAgIG5vZGUtPmFwcGVuZENhbGwoUHJvZmlsZU5vZGU6OkNhbGwoc3RhcnRU
aW1lKSk7Ci19Ci0KLXZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6ZW5kQ2FsbEVudHJ5KFByb2ZpbGVO
b2RlKiBub2RlKQotewotICAgIEFTU0VSVF9BUkcobm9kZSwgbm9kZSk7Ci0KLSAgICBQcm9maWxl
Tm9kZTo6Q2FsbCYgbGFzdCA9IG5vZGUtPmxhc3RDYWxsKCk7Ci0KLSAgICBkb3VibGUgcHJldmlv
dXNFbGFwc2VkVGltZSA9IHN0ZDo6aXNuYW4obGFzdC5lbGFwc2VkVGltZSgpKSA/IDAuMCA6IGxh
c3QuZWxhcHNlZFRpbWUoKTsKLSAgICBkb3VibGUgbmV3bHlFbGFwc2VkVGltZSA9IG1fc3RvcHdh
dGNoLT5lbGFwc2VkVGltZSgpIC0gbGFzdC5zdGFydFRpbWUoKTsKLSAgICBsYXN0LnNldEVsYXBz
ZWRUaW1lKHByZXZpb3VzRWxhcHNlZFRpbWUgKyBuZXdseUVsYXBzZWRUaW1lKTsKLX0KLQotdm9p
ZCBQcm9maWxlR2VuZXJhdG9yOjp3aWxsRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFt
ZSwgY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJZGVudGlmaWVyKQotewotICAgIGlmICghbV9v
cmlnaW4pCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChtX3N1c3BlbmRlZCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBjYWxsZWVOb2RlID0gbnVsbHB0cjsK
LQotICAgIC8vIEZpbmQgb3IgY3JlYXRlIGEgbm9kZSBmb3IgdGhlIGNhbGxlZSBjYWxsIGZyYW1l
LgotICAgIGZvciAoY29uc3QgUmVmUHRyPFByb2ZpbGVOb2RlPiYgY2hpbGQgOiBtX2N1cnJlbnRO
b2RlLT5jaGlsZHJlbigpKSB7Ci0gICAgICAgIGlmIChjaGlsZC0+Y2FsbElkZW50aWZpZXIoKSA9
PSBjYWxsSWRlbnRpZmllcikKLSAgICAgICAgICAgIGNhbGxlZU5vZGUgPSBjaGlsZDsKLSAgICB9
Ci0KLSAgICBpZiAoIWNhbGxlZU5vZGUpIHsKLSAgICAgICAgY2FsbGVlTm9kZSA9IFByb2ZpbGVO
b2RlOjpjcmVhdGUoY2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciwgbV9jdXJyZW50Tm9k
ZS5nZXQoKSk7Ci0gICAgICAgIG1fY3VycmVudE5vZGUtPmFkZENoaWxkKGNhbGxlZU5vZGUpOwot
ICAgIH0KLQotICAgIG1fY3VycmVudE5vZGUgPSBjYWxsZWVOb2RlOwotICAgIGJlZ2luQ2FsbEVu
dHJ5KGNhbGxlZU5vZGUuZ2V0KCksIG1fc3RvcHdhdGNoLT5lbGFwc2VkVGltZSgpKTsKLX0KLQot
dm9pZCBQcm9maWxlR2VuZXJhdG9yOjpkaWRFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZy
YW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIpCi17Ci0gICAgaWYgKCFt
X29yaWdpbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fc3VzcGVuZGVkKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICAvLyBNYWtlIGEgbmV3IG5vZGUgaWYgdGhlIGNhbGxlciBub2RlIGhh
cyBuZXZlciBzZWVuIHRoaXMgY2FsbGVlIGNhbGwgZnJhbWUgYmVmb3JlLgotICAgIC8vIFRoaXMg
Y2FuIGhhcHBlbiBpZiB8Y29uc29sZS5wcm9maWxlKCl8IGlzIGNhbGxlZCBzZXZlcmFsIGZyYW1l
cyBkZWVwIGluIHRoZSBjYWxsIHN0YWNrLgotICAgIEFTU0VSVChtX2N1cnJlbnROb2RlKTsKLSAg
ICBpZiAobV9jdXJyZW50Tm9kZS0+Y2FsbElkZW50aWZpZXIoKSAhPSBjYWxsSWRlbnRpZmllcikg
ewotICAgICAgICBSZWZQdHI8UHJvZmlsZU5vZGU+IGNhbGxlZU5vZGUgPSBQcm9maWxlTm9kZTo6
Y3JlYXRlKGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIsIG1fY3VycmVudE5vZGUuZ2V0
KCkpOwotICAgICAgICBiZWdpbkNhbGxFbnRyeShjYWxsZWVOb2RlLmdldCgpLCBtX2N1cnJlbnRO
b2RlLT5sYXN0Q2FsbCgpLnN0YXJ0VGltZSgpKTsKLSAgICAgICAgZW5kQ2FsbEVudHJ5KGNhbGxl
ZU5vZGUuZ2V0KCkpOwotICAgICAgICBtX2N1cnJlbnROb2RlLT5zcGxpY2VOb2RlKGNhbGxlZU5v
ZGUucmVsZWFzZSgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGVuZENhbGxFbnRy
eShtX2N1cnJlbnROb2RlLmdldCgpKTsKLSAgICBtX2N1cnJlbnROb2RlID0gbV9jdXJyZW50Tm9k
ZS0+cGFyZW50KCk7Ci19Ci0KLXZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6ZXhjZXB0aW9uVW53aW5k
KEV4ZWNTdGF0ZSogaGFuZGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImKQotewot
ICAgIGlmIChtX3N1c3BlbmRlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gSWYgdGhlIGN1
cnJlbnQgbm9kZSB3YXMgY2FsbGVkIGJ5IHRoZSBoYW5kbGVyICg9PSkgb3IgYW55Ci0gICAgLy8g
bW9yZSBuZXN0ZWQgZnVuY3Rpb24gKD4pIHRoZSB3ZSBoYXZlIGV4aXRlZCBlYXJseSBmcm9tIGl0
LgotICAgIEFTU0VSVChtX2N1cnJlbnROb2RlKTsKLSAgICB3aGlsZSAobV9jdXJyZW50Tm9kZS0+
Y2FsbGVyQ2FsbEZyYW1lKCkgPj0gaGFuZGxlckNhbGxGcmFtZSkgewotICAgICAgICBkaWRFeGVj
dXRlKG1fY3VycmVudE5vZGUtPmNhbGxlckNhbGxGcmFtZSgpLCBtX2N1cnJlbnROb2RlLT5jYWxs
SWRlbnRpZmllcigpKTsKLSAgICAgICAgQVNTRVJUKG1fY3VycmVudE5vZGUpOwotICAgIH0KLX0K
LQotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjpzdG9wUHJvZmlsaW5nKCkKLXsKLSAgICBmb3IgKFBy
b2ZpbGVOb2RlKiBub2RlID0gbV9jdXJyZW50Tm9kZS5nZXQoKTsgbm9kZSAhPSBtX3Byb2ZpbGUt
PnJvb3ROb2RlKCk7IG5vZGUgPSBub2RlLT5wYXJlbnQoKSkKLSAgICAgICAgZW5kQ2FsbEVudHJ5
KG5vZGUpOwotCi0gICAgaWYgKG1fZm91bmRDb25zb2xlU3RhcnRQYXJlbnQpIHsKLSAgICAgICAg
cmVtb3ZlUHJvZmlsZVN0YXJ0KCk7Ci0gICAgICAgIHJlbW92ZVByb2ZpbGVFbmQoKTsKLSAgICB9
Ci0KLSAgICBBU1NFUlQobV9jdXJyZW50Tm9kZSk7Ci0KLSAgICAvLyBTZXQgdGhlIGN1cnJlbnQg
bm9kZSB0byB0aGUgcGFyZW50LCBiZWNhdXNlIHdlIGFyZSBpbiBhIGNhbGwgdGhhdAotICAgIC8v
IHdpbGwgbm90IGdldCBkaWRFeGVjdXRlIGNhbGwuCi0gICAgbV9jdXJyZW50Tm9kZSA9IG1fY3Vy
cmVudE5vZGUtPnBhcmVudCgpOwotfQotCi0vLyBUaGUgY29uc29sZS5wcm9maWxlIHRoYXQgc3Rh
cnRlZCB0aGlzIFByb2ZpbGVHZW5lcmF0b3Igd2lsbCBiZSB0aGUgZmlyc3QgY2hpbGQuCi12b2lk
IFByb2ZpbGVHZW5lcmF0b3I6OnJlbW92ZVByb2ZpbGVTdGFydCgpCi17Ci0gICAgUHJvZmlsZU5v
ZGUqIGN1cnJlbnROb2RlID0gbnVsbHB0cjsKLSAgICBmb3IgKFByb2ZpbGVOb2RlKiBuZXh0ID0g
bV9yb290Tm9kZS5nZXQoKTsgbmV4dDsgbmV4dCA9IG5leHQtPmZpcnN0Q2hpbGQoKSkKLSAgICAg
ICAgY3VycmVudE5vZGUgPSBuZXh0OwotCi0gICAgaWYgKGN1cnJlbnROb2RlLT5jYWxsSWRlbnRp
ZmllcigpLmZ1bmN0aW9uTmFtZSgpICE9ICJwcm9maWxlIikKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgY3VycmVudE5vZGUtPnBhcmVudCgpLT5yZW1vdmVDaGlsZChjdXJyZW50Tm9kZSk7Ci19Ci0K
LS8vIFRoZSBjb25zb2xlLnByb2ZpbGVFbmQgdGhhdCBzdG9wcGVkIHRoaXMgUHJvZmlsZUdlbmVy
YXRvciB3aWxsIGJlIHRoZSBsYXN0IGNoaWxkLgotdm9pZCBQcm9maWxlR2VuZXJhdG9yOjpyZW1v
dmVQcm9maWxlRW5kKCkKLXsKLSAgICBQcm9maWxlTm9kZSogY3VycmVudE5vZGUgPSBudWxscHRy
OwotICAgIGZvciAoUHJvZmlsZU5vZGUqIG5leHQgPSBtX3Jvb3ROb2RlLmdldCgpOyBuZXh0OyBu
ZXh0ID0gbmV4dC0+bGFzdENoaWxkKCkpCi0gICAgICAgIGN1cnJlbnROb2RlID0gbmV4dDsKLQot
ICAgIGlmIChjdXJyZW50Tm9kZS0+Y2FsbElkZW50aWZpZXIoKS5mdW5jdGlvbk5hbWUoKSAhPSAi
cHJvZmlsZUVuZCIpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVChjdXJyZW50Tm9kZS0+
Y2FsbElkZW50aWZpZXIoKSA9PSAoY3VycmVudE5vZGUtPnBhcmVudCgpLT5jaGlsZHJlbigpW2N1
cnJlbnROb2RlLT5wYXJlbnQoKS0+Y2hpbGRyZW4oKS5zaXplKCkgLSAxXSktPmNhbGxJZGVudGlm
aWVyKCkpOwotICAgIGN1cnJlbnROb2RlLT5wYXJlbnQoKS0+cmVtb3ZlQ2hpbGQoY3VycmVudE5v
ZGUpOwotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAzODdlZDVmLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9Qcm9maWxlR2VuZXJhdG9yLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4NCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQcm9maWxl
R2VuZXJhdG9yX2gKLSNkZWZpbmUgUHJvZmlsZUdlbmVyYXRvcl9oCi0KLSNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9TdG9wd2F0Y2guaD4KLSNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLSAgICBjbGFzcyBEZWJ1Z2dlckNh
bGxGcmFtZTsKLSAgICBjbGFzcyBFeGVjU3RhdGU7Ci0gICAgY2xhc3MgSlNHbG9iYWxPYmplY3Q7
Ci0gICAgY2xhc3MgUHJvZmlsZTsKLSAgICBjbGFzcyBQcm9maWxlTm9kZTsKLSAgICBzdHJ1Y3Qg
Q2FsbElkZW50aWZpZXI7Ci0KLSAgICBjbGFzcyBQcm9maWxlR2VuZXJhdG9yIDogcHVibGljIFJl
ZkNvdW50ZWQ8UHJvZmlsZUdlbmVyYXRvcj4gIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRp
YyBSZWY8UHJvZmlsZUdlbmVyYXRvcj4gY3JlYXRlKEV4ZWNTdGF0ZSosIGNvbnN0IFdURjo6U3Ry
aW5nJiB0aXRsZSwgdW5zaWduZWQgdWlkLCBQYXNzUmVmUHRyPFN0b3B3YXRjaD4pOwotCi0gICAg
ICAgIC8vIE1lbWJlcnMKLSAgICAgICAgY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlKCkgY29uc3Q7
Ci0gICAgICAgIFBhc3NSZWZQdHI8UHJvZmlsZT4gcHJvZmlsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvZmlsZTsgfQotICAgICAgICBKU0dsb2JhbE9iamVjdCogb3JpZ2luKCkgY29uc3QgeyByZXR1
cm4gbV9vcmlnaW47IH0KLSAgICAgICAgdW5zaWduZWQgcHJvZmlsZUdyb3VwKCkgY29uc3QgeyBy
ZXR1cm4gbV9wcm9maWxlR3JvdXA7IH0KLQotICAgICAgICB2b2lkIHdpbGxFeGVjdXRlKEV4ZWNT
dGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYpOwotICAgICAgICB2
b2lkIGRpZEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVu
dGlmaWVyJik7Ci0gICAgICAgIHZvaWQgZXhjZXB0aW9uVW53aW5kKEV4ZWNTdGF0ZSogaGFuZGxl
ckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImKTsKLQotICAgICAgICB2b2lkIHNldElz
U3VzcGVuZGVkKGJvb2wgc3VzcGVuZGVkKSB7IEFTU0VSVChtX3N1c3BlbmRlZCAhPSBzdXNwZW5k
ZWQpOyBtX3N1c3BlbmRlZCA9IHN1c3BlbmRlZDsgfQotCi0gICAgICAgIHZvaWQgc3RvcFByb2Zp
bGluZygpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgUHJvZmlsZUdlbmVyYXRvcihFeGVjU3Rh
dGUqLCBjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCwgUGFzc1JlZlB0cjxT
dG9wd2F0Y2g+KTsKLSAgICAgICAgdm9pZCBhZGRQYXJlbnRGb3JDb25zb2xlU3RhcnQoRXhlY1N0
YXRlKiwgZG91YmxlKTsKLQotICAgICAgICB2b2lkIHJlbW92ZVByb2ZpbGVTdGFydCgpOwotICAg
ICAgICB2b2lkIHJlbW92ZVByb2ZpbGVFbmQoKTsKLQotICAgICAgICB2b2lkIGJlZ2luQ2FsbEVu
dHJ5KFByb2ZpbGVOb2RlKiwgZG91YmxlIHN0YXJ0VGltZSk7Ci0gICAgICAgIHZvaWQgZW5kQ2Fs
bEVudHJ5KFByb2ZpbGVOb2RlKik7Ci0KLSAgICAgICAgUmVmUHRyPFByb2ZpbGU+IG1fcHJvZmls
ZTsKLSAgICAgICAgSlNHbG9iYWxPYmplY3QqIG1fb3JpZ2luOwotICAgICAgICB1bnNpZ25lZCBt
X3Byb2ZpbGVHcm91cDsKLSAgICAgICAgUmVmUHRyPFN0b3B3YXRjaD4gbV9zdG9wd2F0Y2g7Ci0g
ICAgICAgIFJlZlB0cjxQcm9maWxlTm9kZT4gbV9yb290Tm9kZTsKLSAgICAgICAgUmVmUHRyPFBy
b2ZpbGVOb2RlPiBtX2N1cnJlbnROb2RlOwotICAgICAgICBib29sIG1fZm91bmRDb25zb2xlU3Rh
cnRQYXJlbnQ7Ci0gICAgICAgIGJvb2wgbV9zdXNwZW5kZWQ7Ci0gICAgfTsKLQotfSAvLyBuYW1l
c3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBQcm9maWxlR2VuZXJhdG9yX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlTm9kZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5YmNmMzc1Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlTm9kZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxOTkgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgot
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUHJvZmlsZU5vZGUuaCIKLQotI2luY2x1ZGUgIkxl
Z2FjeVByb2ZpbGVyLmgiCi0jaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+Ci0jaW5jbHVkZSA8d3Rm
L0RhdGFMb2cuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0KLXVzaW5nIG5h
bWVzcGFjZSBXVEY7Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1Qcm9maWxlTm9kZTo6UHJvZmlsZU5v
ZGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IENhbGxJZGVudGlmaWVyJiBjYWxs
SWRlbnRpZmllciwgUHJvZmlsZU5vZGUqIHBhcmVudE5vZGUpCi0gICAgOiBtX2NhbGxlckNhbGxG
cmFtZShjYWxsZXJDYWxsRnJhbWUpCi0gICAgLCBtX2NhbGxJZGVudGlmaWVyKGNhbGxJZGVudGlm
aWVyKQotICAgICwgbV9wYXJlbnQocGFyZW50Tm9kZSkKLSNpZm5kZWYgTkRFQlVHCi0gICAgLCBt
X25leHRTaWJsaW5nKG51bGxwdHIpCi0jZW5kaWYKLXsKLX0KLQotUHJvZmlsZU5vZGU6OlByb2Zp
bGVOb2RlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBQcm9maWxlTm9kZSogbm9kZVRvQ29w
eSkKLSAgICA6IG1fY2FsbGVyQ2FsbEZyYW1lKGNhbGxlckNhbGxGcmFtZSkKLSAgICAsIG1fY2Fs
bElkZW50aWZpZXIobm9kZVRvQ29weS0+Y2FsbElkZW50aWZpZXIoKSkKLSAgICAsIG1fcGFyZW50
KG5vZGVUb0NvcHktPnBhcmVudCgpKQotICAgICwgbV9jYWxscyhub2RlVG9Db3B5LT5jYWxscygp
KQotI2lmbmRlZiBOREVCVUcKLSAgICAsIG1fbmV4dFNpYmxpbmcobnVsbHB0cikKLSNlbmRpZgot
ewotfQotCi12b2lkIFByb2ZpbGVOb2RlOjphZGRDaGlsZChQYXNzUmVmUHRyPFByb2ZpbGVOb2Rl
PiBwcnBDaGlsZCkKLXsKLSAgICBSZWZQdHI8UHJvZmlsZU5vZGU+IGNoaWxkID0gcHJwQ2hpbGQ7
Ci0gICAgY2hpbGQtPnNldFBhcmVudCh0aGlzKTsKLSNpZm5kZWYgTkRFQlVHCi0gICAgaWYgKG1f
Y2hpbGRyZW4uc2l6ZSgpKQotICAgICAgICBtX2NoaWxkcmVuLmxhc3QoKS0+c2V0TmV4dFNpYmxp
bmcoY2hpbGQuZ2V0KCkpOwotI2VuZGlmCi0gICAgbV9jaGlsZHJlbi5hcHBlbmQoY2hpbGQucmVs
ZWFzZSgpKTsKLX0KLQotdm9pZCBQcm9maWxlTm9kZTo6cmVtb3ZlQ2hpbGQoUHJvZmlsZU5vZGUq
IG5vZGUpCi17Ci0gICAgaWYgKCFub2RlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NoaWxk
cmVuLnJlbW92ZUZpcnN0TWF0Y2hpbmcoW25vZGVdIChjb25zdCBSZWZQdHI8UHJvZmlsZU5vZGU+
JiBjdXJyZW50KSB7Ci0gICAgICAgIHJldHVybiAqbm9kZSA9PSBjdXJyZW50LmdldCgpOwotICAg
IH0pOwotCi0jaWZuZGVmIE5ERUJVRwotICAgIHNpemVfdCBzaXplID0gbV9jaGlsZHJlbi5zaXpl
KCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIG1fY2hp
bGRyZW5baV0tPnNldE5leHRTaWJsaW5nKGkgKyAxID09IHNpemUgPyBudWxscHRyIDogbV9jaGls
ZHJlbltpICsgMV0uZ2V0KCkpOwotI2VuZGlmCi19Ci0KLXZvaWQgUHJvZmlsZU5vZGU6OnNwbGlj
ZU5vZGUoUGFzc1JlZlB0cjxQcm9maWxlTm9kZT4gcHJwTm9kZSkKLXsKLSAgICBSZWZQdHI8UHJv
ZmlsZU5vZGU+IG5vZGUgPSBwcnBOb2RlOwotCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG1fY2hpbGRyZW4uc2l6ZSgpOyArK2kpCi0gICAgICAgIG5vZGUtPmFkZENoaWxkKG1fY2hpbGRy
ZW5baV0ucmVsZWFzZSgpKTsKLQotICAgIG1fY2hpbGRyZW4uY2xlYXIoKTsKLSAgICBtX2NoaWxk
cmVuLmFwcGVuZChub2RlLnJlbGVhc2UoKSk7Ci19Ci0KLSNpZm5kZWYgTkRFQlVHCi1Qcm9maWxl
Tm9kZSogUHJvZmlsZU5vZGU6OnRyYXZlcnNlTmV4dE5vZGVQb3N0T3JkZXIoKSBjb25zdAotewot
ICAgIFByb2ZpbGVOb2RlKiBuZXh0ID0gbV9uZXh0U2libGluZzsKLSAgICBpZiAoIW5leHQpCi0g
ICAgICAgIHJldHVybiBtX3BhcmVudDsKLSAgICB3aGlsZSAoUHJvZmlsZU5vZGUqIGZpcnN0Q2hp
bGQgPSBuZXh0LT5maXJzdENoaWxkKCkpCi0gICAgICAgIG5leHQgPSBmaXJzdENoaWxkOwotICAg
IHJldHVybiBuZXh0OwotfQotCi12b2lkIFByb2ZpbGVOb2RlOjpkZWJ1Z1ByaW50KCkKLXsKLSAg
ICBDYWxjdWxhdGVQcm9maWxlU3VidHJlZURhdGFGdW5jdG9yIGZ1bmN0b3I7Ci0gICAgZm9yRWFj
aE5vZGVQb3N0b3JkZXIoZnVuY3Rvcik7Ci0gICAgUHJvZmlsZU5vZGU6OlByb2ZpbGVTdWJ0cmVl
RGF0YSBkYXRhID0gZnVuY3Rvci5yZXR1cm5WYWx1ZSgpOwotCi0gICAgZGVidWdQcmludFJlY3Vy
c2l2ZWx5KDAsIGRhdGEpOwotfQotCi12b2lkIFByb2ZpbGVOb2RlOjpkZWJ1Z1ByaW50U2FtcGxl
U3R5bGUoKQotewotICAgIEZ1bmN0aW9uQ2FsbEhhc2hDb3VudCBjb3VudGVkRnVuY3Rpb25zOwot
Ci0gICAgQ2FsY3VsYXRlUHJvZmlsZVN1YnRyZWVEYXRhRnVuY3RvciBmdW5jdG9yOwotICAgIGZv
ckVhY2hOb2RlUG9zdG9yZGVyKGZ1bmN0b3IpOwotICAgIFByb2ZpbGVOb2RlOjpQcm9maWxlU3Vi
dHJlZURhdGEgZGF0YSA9IGZ1bmN0b3IucmV0dXJuVmFsdWUoKTsKLQotICAgIGRlYnVnUHJpbnRT
YW1wbGVTdHlsZVJlY3Vyc2l2ZWx5KDAsIGNvdW50ZWRGdW5jdGlvbnMsIGRhdGEpOwotfQotCi12
b2lkIFByb2ZpbGVOb2RlOjpkZWJ1Z1ByaW50UmVjdXJzaXZlbHkoaW50IGluZGVudExldmVsLCBj
b25zdCBQcm9maWxlU3VidHJlZURhdGEmIGRhdGEpCi17Ci0gICAgLy8gUHJpbnQgZnVuY3Rpb24g
bmFtZXMKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGVudExldmVsOyArK2kpCi0gICAgICAg
IGRhdGFMb2dGKCIgICIpOwotCi0gICAgYXV0byBpdCA9IGRhdGEuc2VsZkFuZFRvdGFsVGltZXMu
ZmluZCh0aGlzKTsKLSAgICBBU1NFUlQoaXQgIT0gZGF0YS5zZWxmQW5kVG90YWxUaW1lcy5lbmQo
KSk7Ci0KLSAgICBkb3VibGUgbm9kZVNlbGZUaW1lID0gaXQtPnZhbHVlLmZpcnN0OwotICAgIGRv
dWJsZSBub2RlVG90YWxUaW1lID0gaXQtPnZhbHVlLnNlY29uZDsKLSAgICBkb3VibGUgcm9vdFRv
dGFsVGltZSA9IGRhdGEucm9vdFRvdGFsVGltZTsKLQotICAgIGRhdGFMb2dGKCJGdW5jdGlvbiBO
YW1lICVzICV6dSBTZWxmVGltZSAlLjNmbXMvJS4zZiUlIFRvdGFsVGltZSAlLjNmbXMvJS4zZiUl
IE5leHQgU2libGluZyAlc1xuIiwKLSAgICAgICAgZnVuY3Rpb25OYW1lKCkudXRmOCgpLmRhdGEo
KSwKLSAgICAgICAgbV9jYWxscy5zaXplKCksIG5vZGVTZWxmVGltZSwgbm9kZVNlbGZUaW1lIC8g
cm9vdFRvdGFsVGltZSAqIDEwMC4wLCBub2RlVG90YWxUaW1lLCBub2RlVG90YWxUaW1lIC8gcm9v
dFRvdGFsVGltZSAqIDEwMC4wLAotICAgICAgICBtX25leHRTaWJsaW5nID8gbV9uZXh0U2libGlu
Zy0+ZnVuY3Rpb25OYW1lKCkudXRmOCgpLmRhdGEoKSA6ICIiKTsKLQotICAgICsraW5kZW50TGV2
ZWw7Ci0KLSAgICAvLyBQcmludCBjaGlsZHJlbidzIG5hbWVzIGFuZCBpbmZvcm1hdGlvbgotICAg
IGZvciAoU3RhY2tJdGVyYXRvciBjdXJyZW50Q2hpbGQgPSBtX2NoaWxkcmVuLmJlZ2luKCk7IGN1
cnJlbnRDaGlsZCAhPSBtX2NoaWxkcmVuLmVuZCgpOyArK2N1cnJlbnRDaGlsZCkKLSAgICAgICAg
KCpjdXJyZW50Q2hpbGQpLT5kZWJ1Z1ByaW50UmVjdXJzaXZlbHkoaW5kZW50TGV2ZWwsIGRhdGEp
OwotfQotCi0vLyBwcmludCB0aGUgcHJvZmlsZWQgZGF0YSBpbiBhIGZvcm1hdCB0aGF0IG1hdGNo
ZXMgdGhlIHRvb2wgc2FtcGxlJ3Mgb3V0cHV0LgotZG91YmxlIFByb2ZpbGVOb2RlOjpkZWJ1Z1By
aW50U2FtcGxlU3R5bGVSZWN1cnNpdmVseShpbnQgaW5kZW50TGV2ZWwsIEZ1bmN0aW9uQ2FsbEhh
c2hDb3VudCYgY291bnRlZEZ1bmN0aW9ucywgY29uc3QgUHJvZmlsZVN1YnRyZWVEYXRhJiBkYXRh
KQotewotICAgIGRhdGFMb2dGKCIgICAgIik7Ci0KLSAgICBhdXRvIGl0ID0gZGF0YS5zZWxmQW5k
VG90YWxUaW1lcy5maW5kKHRoaXMpOwotICAgIEFTU0VSVChpdCAhPSBkYXRhLnNlbGZBbmRUb3Rh
bFRpbWVzLmVuZCgpKTsKLSAgICBkb3VibGUgbm9kZVRvdGFsVGltZSA9IGl0LT52YWx1ZS5zZWNv
bmQ7Ci0KLSAgICAvLyBQcmludCBmdW5jdGlvbiBuYW1lcwotICAgIGNvbnN0IGNoYXIqIG5hbWUg
PSBmdW5jdGlvbk5hbWUoKS51dGY4KCkuZGF0YSgpOwotICAgIGRvdWJsZSBzYW1wbGVDb3VudCA9
IG5vZGVUb3RhbFRpbWUgKiAxMDAwOwotICAgIGlmIChpbmRlbnRMZXZlbCkgewotICAgICAgICBm
b3IgKGludCBpID0gMDsgaSA8IGluZGVudExldmVsOyArK2kpCi0gICAgICAgICAgICBkYXRhTG9n
RigiICAiKTsKLQotICAgICAgICAgY291bnRlZEZ1bmN0aW9ucy5hZGQoZnVuY3Rpb25OYW1lKCku
aW1wbCgpKTsKLQotICAgICAgICBkYXRhTG9nRigiJS4wZiAlc1xuIiwgc2FtcGxlQ291bnQgPyBz
YW1wbGVDb3VudCA6IDEsIG5hbWUpOwotICAgIH0gZWxzZQotICAgICAgICBkYXRhTG9nRigiJXNc
biIsIG5hbWUpOwotCi0gICAgKytpbmRlbnRMZXZlbDsKLQotICAgIC8vIFByaW50IGNoaWxkcmVu
J3MgbmFtZXMgYW5kIGluZm9ybWF0aW9uCi0gICAgZG91YmxlIHN1bU9mQ2hpbGRyZW5zQ291bnQg
PSAwLjA7Ci0gICAgZm9yIChTdGFja0l0ZXJhdG9yIGN1cnJlbnRDaGlsZCA9IG1fY2hpbGRyZW4u
YmVnaW4oKTsgY3VycmVudENoaWxkICE9IG1fY2hpbGRyZW4uZW5kKCk7ICsrY3VycmVudENoaWxk
KQotICAgICAgICBzdW1PZkNoaWxkcmVuc0NvdW50ICs9ICgqY3VycmVudENoaWxkKS0+ZGVidWdQ
cmludFNhbXBsZVN0eWxlUmVjdXJzaXZlbHkoaW5kZW50TGV2ZWwsIGNvdW50ZWRGdW5jdGlvbnMs
IGRhdGEpOwotCi0gICAgc3VtT2ZDaGlsZHJlbnNDb3VudCAqPSAxMDAwOyAgICAvLwotICAgIC8v
IFByaW50IHJlbWFpbmRlciBvZiBzYW1wbGVzIHRvIG1hdGNoIHNhbXBsZSdzIG91dHB1dAotICAg
IGlmIChzdW1PZkNoaWxkcmVuc0NvdW50IDwgc2FtcGxlQ291bnQpIHsKLSAgICAgICAgZGF0YUxv
Z0YoIiAgICAiKTsKLSAgICAgICAgd2hpbGUgKGluZGVudExldmVsLS0pCi0gICAgICAgICAgICBk
YXRhTG9nRigiICAiKTsKLQotICAgICAgICBkYXRhTG9nRigiJS4wZiAlc1xuIiwgc2FtcGxlQ291
bnQgLSBzdW1PZkNoaWxkcmVuc0NvdW50LCBmdW5jdGlvbk5hbWUoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICB9Ci0KLSAgICByZXR1cm4gbm9kZVRvdGFsVGltZTsKLX0KLSNlbmRpZgotCi19IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlTm9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2Rl
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhZDE0OWUuLjAwMDAwMDAKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgKKysrIC9kZXYvbnVs
bApAQCAtMSwxOTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0g
KiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQot
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFByb2ZpbGVOb2RlX2gKLSNkZWZpbmUgUHJvZmlsZU5v
ZGVfaAotCi0jaW5jbHVkZSAiQ2FsbElkZW50aWZpZXIuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaENv
dW50ZWRTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotCi0g
ICAgY2xhc3MgRXhlY1N0YXRlOwotICAgIGNsYXNzIFByb2ZpbGVOb2RlOwotCi0gICAgdHlwZWRl
ZiBIYXNoQ291bnRlZFNldDxTdHJpbmdJbXBsKj4gRnVuY3Rpb25DYWxsSGFzaENvdW50OwotCi0g
ICAgY2xhc3MgUHJvZmlsZU5vZGUgOiBwdWJsaWMgUmVmQ291bnRlZDxQcm9maWxlTm9kZT4gewot
ICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxQcm9maWxlTm9kZT4gY3JlYXRlKEV4ZWNT
dGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZp
ZXIsIFByb2ZpbGVOb2RlKiBwYXJlbnROb2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBQcm9maWxlTm9kZShjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlm
aWVyLCBwYXJlbnROb2RlKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0aWMgUmVmPFByb2Zp
bGVOb2RlPiBjcmVhdGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIFByb2ZpbGVOb2RlKiBu
b2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQcm9maWxl
Tm9kZShjYWxsZXJDYWxsRnJhbWUsIG5vZGUpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0cnVj
dCBDYWxsIHsKLSAgICAgICAgcHVibGljOgotICAgICAgICAgICAgQ2FsbChkb3VibGUgc3RhcnRU
aW1lLCBkb3VibGUgZWxhcHNlZFRpbWUgPSBOQU4pCi0gICAgICAgICAgICAgICAgOiBtX3N0YXJ0
VGltZShzdGFydFRpbWUpCi0gICAgICAgICAgICAgICAgLCBtX2VsYXBzZWRUaW1lKGVsYXBzZWRU
aW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBkb3VibGUg
c3RhcnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydFRpbWU7IH0KLSAgICAgICAgICAgIHZv
aWQgc2V0U3RhcnRUaW1lKGRvdWJsZSB0aW1lKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIEFTU0VSVF9BUkcodGltZSwgdGltZSA+PSAwLjAgfHwgc3RkOjppc25hbih0aW1lKSk7Ci0g
ICAgICAgICAgICAgICAgbV9zdGFydFRpbWUgPSB0aW1lOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2VsYXBzZWRUaW1l
OyB9Ci0gICAgICAgICAgICB2b2lkIHNldEVsYXBzZWRUaW1lKGRvdWJsZSB0aW1lKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIEFTU0VSVF9BUkcodGltZSwgdGltZSA+PSAwLjAgfHwg
c3RkOjppc25hbih0aW1lKSk7Ci0gICAgICAgICAgICAgICAgbV9lbGFwc2VkVGltZSA9IHRpbWU7
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgcHJpdmF0ZToKLSAgICAgICAgICAgIGRvdWJsZSBt
X3N0YXJ0VGltZTsKLSAgICAgICAgICAgIGRvdWJsZSBtX2VsYXBzZWRUaW1lOwotICAgICAgICB9
OwotCi0gICAgICAgIGJvb2wgb3BlcmF0b3I9PShQcm9maWxlTm9kZSogbm9kZSkgeyByZXR1cm4g
bV9jYWxsSWRlbnRpZmllciA9PSBub2RlLT5jYWxsSWRlbnRpZmllcigpOyB9Ci0KLSAgICAgICAg
RXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2NhbGxlckNhbGxG
cmFtZTsgfQotICAgICAgICBjb25zdCBDYWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyOyB9Ci0gICAgICAgIHVuc2lnbmVkIGlkKCkg
Y29uc3QgeyByZXR1cm4gbV9jYWxsSWRlbnRpZmllci5oYXNoKCk7IH0KLSAgICAgICAgY29uc3Qg
U3RyaW5nJiBmdW5jdGlvbk5hbWUoKSBjb25zdCB7IHJldHVybiBtX2NhbGxJZGVudGlmaWVyLmZ1
bmN0aW9uTmFtZSgpOyB9Ci0gICAgICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29uc3QgeyByZXR1
cm4gbV9jYWxsSWRlbnRpZmllci51cmwoKTsgfQotICAgICAgICB1bnNpZ25lZCBsaW5lTnVtYmVy
KCkgY29uc3QgeyByZXR1cm4gbV9jYWxsSWRlbnRpZmllci5saW5lTnVtYmVyKCk7IH0KLSAgICAg
ICAgdW5zaWduZWQgY29sdW1uTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsSWRlbnRpZmll
ci5jb2x1bW5OdW1iZXIoKTsgfQotCi0gICAgICAgIFByb2ZpbGVOb2RlKiBwYXJlbnQoKSBjb25z
dCB7IHJldHVybiBtX3BhcmVudDsgfQotICAgICAgICB2b2lkIHNldFBhcmVudChQcm9maWxlTm9k
ZSogcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9Ci0KLSAgICAgICAgY29uc3QgVmVjdG9y
PENhbGw+JiBjYWxscygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbHM7IH0KLSAgICAgICAgQ2FsbCYg
bGFzdENhbGwoKSB7IEFTU0VSVCghbV9jYWxscy5pc0VtcHR5KCkpOyByZXR1cm4gbV9jYWxscy5s
YXN0KCk7IH0KLSAgICAgICAgdm9pZCBhcHBlbmRDYWxsKENhbGwgY2FsbCkgeyBtX2NhbGxzLmFw
cGVuZChjYWxsKTsgfQotCi0gICAgICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UHJvZmlsZU5vZGU+
PiYgY2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuOyB9Ci0gICAgICAgIFByb2Zp
bGVOb2RlKiBmaXJzdENoaWxkKCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZHJlbi5zaXplKCkgPyBt
X2NoaWxkcmVuLmZpcnN0KCkuZ2V0KCkgOiBudWxscHRyOyB9Ci0gICAgICAgIFByb2ZpbGVOb2Rl
KiBsYXN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuLnNpemUoKSA/IG1fY2hpbGRy
ZW4ubGFzdCgpLmdldCgpIDogbnVsbHB0cjsgfQotCi0gICAgICAgIHZvaWQgcmVtb3ZlQ2hpbGQo
UHJvZmlsZU5vZGUqKTsKLSAgICAgICAgdm9pZCBhZGRDaGlsZChQYXNzUmVmUHRyPFByb2ZpbGVO
b2RlPik7Ci0gICAgICAgIC8vIFJlcGFyZW50IG91ciBjaGlsZCBub2RlcyB0byB0aGUgcGFzc2Vk
IG5vZGUsIGFuZCBtYWtlIGl0IGEgY2hpbGQgbm9kZSBvZiB8dGhpc3wuCi0gICAgICAgIHZvaWQg
c3BsaWNlTm9kZShQYXNzUmVmUHRyPFByb2ZpbGVOb2RlPik7Ci0KLSNpZm5kZWYgTkRFQlVHCi0g
ICAgICAgIHN0cnVjdCBQcm9maWxlU3VidHJlZURhdGEgewotICAgICAgICAgICAgSGFzaE1hcDxQ
cm9maWxlTm9kZSosIHN0ZDo6cGFpcjxkb3VibGUsIGRvdWJsZT4+IHNlbGZBbmRUb3RhbFRpbWVz
OwotICAgICAgICAgICAgZG91YmxlIHJvb3RUb3RhbFRpbWU7Ci0gICAgICAgIH07Ci0KLSAgICAg
ICAgLy8gVXNlIHRoZXNlIGZ1bmN0aW9ucyB0byBkdW1wIHRoZSBzdWJ0cmVlIHJvb3RlZCBhdCB0
aGlzIG5vZGUuCi0gICAgICAgIHZvaWQgZGVidWdQcmludCgpOwotICAgICAgICB2b2lkIGRlYnVn
UHJpbnRTYW1wbGVTdHlsZSgpOwotCi0gICAgICAgIC8vIFRoZXNlIGFyZSB1c2VkIHRvIHJlY3Vy
c2l2ZWx5IHByaW50IGVudGlyZSBzdWJ0cmVlcyB1c2luZyBwcmVjb21wdXRlZCBzZWxmIGFuZCB0
b3RhbCB0aW1lcy4KLSAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0b3I+IHZvaWQgZm9y
RWFjaE5vZGVQb3N0b3JkZXIoRnVuY3RvciYpOwotCi0gICAgICAgIHZvaWQgZGVidWdQcmludFJl
Y3Vyc2l2ZWx5KGludCBpbmRlbnRMZXZlbCwgY29uc3QgUHJvZmlsZVN1YnRyZWVEYXRhJik7Ci0g
ICAgICAgIGRvdWJsZSBkZWJ1Z1ByaW50U2FtcGxlU3R5bGVSZWN1cnNpdmVseShpbnQgaW5kZW50
TGV2ZWwsIEZ1bmN0aW9uQ2FsbEhhc2hDb3VudCYsIGNvbnN0IFByb2ZpbGVTdWJ0cmVlRGF0YSYp
OwotI2VuZGlmCi0KLSAgICBwcml2YXRlOgotICAgICAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8
UHJvZmlsZU5vZGU+Pjo6Y29uc3RfaXRlcmF0b3IgU3RhY2tJdGVyYXRvcjsKLQotICAgICAgICBQ
cm9maWxlTm9kZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZp
ZXImLCBQcm9maWxlTm9kZSogcGFyZW50Tm9kZSk7Ci0gICAgICAgIFByb2ZpbGVOb2RlKEV4ZWNT
dGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBQcm9maWxlTm9kZSogbm9kZVRvQ29weSk7Ci0KLSNpZm5k
ZWYgTkRFQlVHCi0gICAgICAgIFByb2ZpbGVOb2RlKiBuZXh0U2libGluZygpIGNvbnN0IHsgcmV0
dXJuIG1fbmV4dFNpYmxpbmc7IH0KLSAgICAgICAgdm9pZCBzZXROZXh0U2libGluZyhQcm9maWxl
Tm9kZSogbmV4dFNpYmxpbmcpIHsgbV9uZXh0U2libGluZyA9IG5leHRTaWJsaW5nOyB9Ci0KLSAg
ICAgICAgUHJvZmlsZU5vZGUqIHRyYXZlcnNlTmV4dE5vZGVQb3N0T3JkZXIoKSBjb25zdDsKLSNl
bmRpZgotCi0gICAgICAgIEV4ZWNTdGF0ZSogbV9jYWxsZXJDYWxsRnJhbWU7Ci0gICAgICAgIENh
bGxJZGVudGlmaWVyIG1fY2FsbElkZW50aWZpZXI7Ci0gICAgICAgIFByb2ZpbGVOb2RlKiBtX3Bh
cmVudDsKLSAgICAgICAgVmVjdG9yPENhbGw+IG1fY2FsbHM7Ci0gICAgICAgIFZlY3RvcjxSZWZQ
dHI8UHJvZmlsZU5vZGU+PiBtX2NoaWxkcmVuOwotCi0jaWZuZGVmIE5ERUJVRwotICAgICAgICBQ
cm9maWxlTm9kZSogbV9uZXh0U2libGluZzsKLSNlbmRpZgotICAgIH07Ci0KLSNpZm5kZWYgTkRF
QlVHCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0b3I+IGlubGluZSB2b2lkIFByb2ZpbGVO
b2RlOjpmb3JFYWNoTm9kZVBvc3RvcmRlcihGdW5jdG9yJiBmdW5jdG9yKQotICAgIHsKLSAgICAg
ICAgUHJvZmlsZU5vZGUqIGN1cnJlbnROb2RlID0gdGhpczsKLSAgICAgICAgLy8gR28gZG93biB0
byB0aGUgZmlyc3Qgbm9kZSBvZiB0aGUgdHJhdmVyc2FsLCBhbmQgc2xvd2x5IHdhbGsgYmFjayB1
cC4KLSAgICAgICAgZm9yIChQcm9maWxlTm9kZSogbmV4dE5vZGUgPSBjdXJyZW50Tm9kZTsgbmV4
dE5vZGU7IG5leHROb2RlID0gbmV4dE5vZGUtPmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgICAgIGN1
cnJlbnROb2RlID0gbmV4dE5vZGU7Ci0KLSAgICAgICAgUHJvZmlsZU5vZGUqIGVuZE5vZGUgPSB0
aGlzOwotICAgICAgICB3aGlsZSAoY3VycmVudE5vZGUgJiYgY3VycmVudE5vZGUgIT0gZW5kTm9k
ZSkgewotICAgICAgICAgICAgZnVuY3RvcihjdXJyZW50Tm9kZSk7Ci0gICAgICAgICAgICBjdXJy
ZW50Tm9kZSA9IGN1cnJlbnROb2RlLT50cmF2ZXJzZU5leHROb2RlUG9zdE9yZGVyKCk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBmdW5jdG9yKGVuZE5vZGUpOwotICAgIH0KLQotICAgIHN0cnVjdCBD
YWxjdWxhdGVQcm9maWxlU3VidHJlZURhdGFGdW5jdG9yIHsKLSAgICAgICAgdm9pZCBvcGVyYXRv
cigpKFByb2ZpbGVOb2RlKiBub2RlKQotICAgICAgICB7Ci0gICAgICAgICAgICBkb3VibGUgc2Vs
ZlRpbWUgPSAwLjA7Ci0gICAgICAgICAgICBmb3IgKGNvbnN0IFByb2ZpbGVOb2RlOjpDYWxsJiBj
YWxsIDogbm9kZS0+Y2FsbHMoKSkKLSAgICAgICAgICAgICAgICBzZWxmVGltZSArPSBjYWxsLmVs
YXBzZWRUaW1lKCk7Ci0KLSAgICAgICAgICAgIGRvdWJsZSB0b3RhbFRpbWUgPSBzZWxmVGltZTsK
LSAgICAgICAgICAgIGZvciAoUmVmUHRyPFByb2ZpbGVOb2RlPiBjaGlsZCA6IG5vZGUtPmNoaWxk
cmVuKCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGl0ID0gbV9kYXRhLnNlbGZBbmRUb3RhbFRp
bWVzLmZpbmQoY2hpbGQuZ2V0KCkpOwotICAgICAgICAgICAgICAgIGlmIChpdCAhPSBtX2RhdGEu
c2VsZkFuZFRvdGFsVGltZXMuZW5kKCkpCi0gICAgICAgICAgICAgICAgICAgIHRvdGFsVGltZSAr
PSBpdC0+dmFsdWUuc2Vjb25kOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBBU1NFUlQo
bm9kZSk7Ci0gICAgICAgICAgICBtX2RhdGEuc2VsZkFuZFRvdGFsVGltZXMuc2V0KG5vZGUsIHN0
ZDo6bWFrZV9wYWlyKHNlbGZUaW1lLCB0b3RhbFRpbWUpKTsKLSAgICAgICAgfQotCi0gICAgICAg
IFByb2ZpbGVOb2RlOjpQcm9maWxlU3VidHJlZURhdGEgcmV0dXJuVmFsdWUoKSB7IHJldHVybiBX
VEZNb3ZlKG1fZGF0YSk7IH0KLQotICAgICAgICBQcm9maWxlTm9kZTo6UHJvZmlsZVN1YnRyZWVE
YXRhIG1fZGF0YTsKLSAgICB9OwotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5k
aWYgLy8gUHJvZmlsZU5vZGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24uY3BwCmluZGV4IDMwNjhmZjMuLjM3NTFm
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckpl
dHRpc29uUmVhc29uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXJKZXR0aXNvblJlYXNvbi5jcHAKQEAgLTQ3LDkgKzQ3LDYgQEAgdm9pZCBwcmludEludGVy
bmFsKFByaW50U3RyZWFtJiBvdXQsIEpldHRpc29uUmVhc29uIHJlYXNvbikKICAgICBjYXNlIEpl
dHRpc29uRHVlVG9EZWJ1Z2dlclN0ZXBwaW5nOgogICAgICAgICBvdXQucHJpbnQoIkRlYnVnZ2Vy
U3RlcHBpbmciKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSmV0dGlzb25EdWVUb0xlZ2Fj
eVByb2ZpbGVyOgotICAgICAgICBvdXQucHJpbnQoIkxlZ2FjeVByb2ZpbGVyIik7Ci0gICAgICAg
IHJldHVybjsKICAgICBjYXNlIEpldHRpc29uRHVlVG9CYXNlbGluZUxvb3BSZW9wdGltaXphdGlv
blRyaWdnZXI6CiAgICAgICAgIG91dC5wcmludCgiQmFzZWxpbmVMb29wUmVvcHRpbWl6YXRpb25U
cmlnZ2VyIik7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckpldHRpc29uUmVhc29uLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZXJKZXR0aXNvblJlYXNvbi5oCmluZGV4IDZhNzkzMjYuLjUz
MDBhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxl
ckpldHRpc29uUmVhc29uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVySmV0dGlzb25SZWFzb24uaApAQCAtMzMsNyArMzMsNiBAQCBlbnVtIEpldHRpc29uUmVh
c29uIHsKICAgICBKZXR0aXNvbkR1ZVRvV2Vha1JlZmVyZW5jZSwKICAgICBKZXR0aXNvbkR1ZVRv
RGVidWdnZXJCcmVha3BvaW50LAogICAgIEpldHRpc29uRHVlVG9EZWJ1Z2dlclN0ZXBwaW5nLAot
ICAgIEpldHRpc29uRHVlVG9MZWdhY3lQcm9maWxlciwKICAgICBKZXR0aXNvbkR1ZVRvQmFzZWxp
bmVMb29wUmVvcHRpbWl6YXRpb25UcmlnZ2VyLAogICAgIEpldHRpc29uRHVlVG9CYXNlbGluZUxv
b3BSZW9wdGltaXphdGlvblRyaWdnZXJPbk9TUkVudHJ5RmFpbCwKICAgICBKZXR0aXNvbkR1ZVRv
T1NSRXhpdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVD
YWNoZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCmlu
ZGV4IDI4MTI3M2UuLjNiNzdkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvZGVDYWNoZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Q29kZUNhY2hlLmNwcApAQCAtODEsMTMgKzgxLDEzIEBAIHRlbXBsYXRlIDw+IHN0cnVjdCBDYWNo
ZVR5cGVzPFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jaz4gewogfTsKIAogdGVtcGxhdGUg
PGNsYXNzIFVubGlua2VkQ29kZUJsb2NrVHlwZSwgY2xhc3MgRXhlY3V0YWJsZVR5cGU+Ci1Vbmxp
bmtlZENvZGVCbG9ja1R5cGUqIENvZGVDYWNoZTo6Z2V0R2xvYmFsQ29kZUJsb2NrKFZNJiB2bSwg
RXhlY3V0YWJsZVR5cGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQ
YXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1v
ZGUsIFRoaXNURFpNb2RlIHRoaXNURFpNb2RlLCBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQ
cm9maWxlck1vZGUgcHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IsIEV2YWxDb250ZXh0
VHlwZSBldmFsQ29udGV4dFR5cGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqIHZhcmlhYmxl
c1VuZGVyVERaKQorVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBDb2RlQ2FjaGU6OmdldEdsb2JhbENv
ZGVCbG9jayhWTSYgdm0sIEV4ZWN1dGFibGVUeXBlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VD
b2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3Ry
aWN0TW9kZSBzdHJpY3RNb2RlLCBUaGlzVERaTW9kZSB0aGlzVERaTW9kZSwgRGVidWdnZXJNb2Rl
IGRlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBFdmFsQ29udGV4dFR5cGUgZXZhbENv
bnRleHRUeXBlLCBjb25zdCBWYXJpYWJsZUVudmlyb25tZW50KiB2YXJpYWJsZXNVbmRlclREWikK
IHsKICAgICBTb3VyY2VDb2RlS2V5IGtleSA9IFNvdXJjZUNvZGVLZXkoc291cmNlLCBTdHJpbmco
KSwgQ2FjaGVUeXBlczxVbmxpbmtlZENvZGVCbG9ja1R5cGU+Ojpjb2RlVHlwZSwgYnVpbHRpbk1v
ZGUsIHN0cmljdE1vZGUsIHRoaXNURFpNb2RlKTsKICAgICBTb3VyY2VDb2RlVmFsdWUqIGNhY2hl
ID0gbV9zb3VyY2VDb2RlLmZpbmRDYWNoZUFuZFVwZGF0ZUFnZShrZXkpOwogICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgZG8gc29tZXRoaW5nIHNtYXJ0IGZvciBURFogaW5zdGVhZCBvZiBqdXN0IGRp
c2FibGluZyBjYWNoaW5nLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTQwMTAKLSAgICBib29sIGNhbkNhY2hlID0gZGVidWdnZXJNb2RlID09IERlYnVn
Z2VyT2ZmICYmIHByb2ZpbGVyTW9kZSA9PSBQcm9maWxlck9mZiAmJiAhdm0udHlwZVByb2ZpbGVy
KCkgJiYgIXZtLmNvbnRyb2xGbG93UHJvZmlsZXIoKSAmJiAhdmFyaWFibGVzVW5kZXJURFotPnNp
emUoKTsKKyAgICBib29sIGNhbkNhY2hlID0gZGVidWdnZXJNb2RlID09IERlYnVnZ2VyT2ZmICYm
ICF2bS50eXBlUHJvZmlsZXIoKSAmJiAhdm0uY29udHJvbEZsb3dQcm9maWxlcigpICYmICF2YXJp
YWJsZXNVbmRlclREWi0+c2l6ZSgpOwogICAgIGlmIChjYWNoZSAmJiBjYW5DYWNoZSkgewogICAg
ICAgICBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIHVubGlua2VkQ29kZUJsb2NrID0ganNDYXN0PFVu
bGlua2VkQ29kZUJsb2NrVHlwZSo+KGNhY2hlLT5jZWxsLmdldCgpKTsKICAgICAgICAgdW5zaWdu
ZWQgZmlyc3RMaW5lID0gc291cmNlLmZpcnN0TGluZSgpICsgdW5saW5rZWRDb2RlQmxvY2stPmZp
cnN0TGluZSgpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIFVubGlua2VkQ29kZUJsb2NrVHlwZSogQ29k
ZUNhY2hlOjpnZXRHbG9iYWxDb2RlQmxvY2soVk0mIHZtLCBFeGVjdXRhYmxlVHlwZSogZXhlCiAg
ICAgdW5saW5rZWRDb2RlQmxvY2stPnNldFNvdXJjZVVSTERpcmVjdGl2ZShzb3VyY2UucHJvdmlk
ZXIoKS0+c291cmNlVVJMKCkpOwogICAgIHVubGlua2VkQ29kZUJsb2NrLT5zZXRTb3VyY2VNYXBw
aW5nVVJMRGlyZWN0aXZlKHNvdXJjZS5wcm92aWRlcigpLT5zb3VyY2VNYXBwaW5nVVJMKCkpOwog
Ci0gICAgZXJyb3IgPSBCeXRlY29kZUdlbmVyYXRvcjo6Z2VuZXJhdGUodm0sIHJvb3ROb2RlLmdl
dCgpLCB1bmxpbmtlZENvZGVCbG9jaywgZGVidWdnZXJNb2RlLCBwcm9maWxlck1vZGUsIHZhcmlh
Ymxlc1VuZGVyVERaKTsKKyAgICBlcnJvciA9IEJ5dGVjb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZSh2
bSwgcm9vdE5vZGUuZ2V0KCksIHVubGlua2VkQ29kZUJsb2NrLCBkZWJ1Z2dlck1vZGUsIHZhcmlh
Ymxlc1VuZGVyVERaKTsKIAogICAgIGlmIChlcnJvci5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwpAQCAtMTMyLDIxICsxMzIsMjEgQEAgVW5saW5rZWRDb2RlQmxvY2tUeXBlKiBD
b2RlQ2FjaGU6OmdldEdsb2JhbENvZGVCbG9jayhWTSYgdm0sIEV4ZWN1dGFibGVUeXBlKiBleGUK
ICAgICByZXR1cm4gdW5saW5rZWRDb2RlQmxvY2s7CiB9CiAKLVVubGlua2VkUHJvZ3JhbUNvZGVC
bG9jayogQ29kZUNhY2hlOjpnZXRQcm9ncmFtQ29kZUJsb2NrKFZNJiB2bSwgUHJvZ3JhbUV4ZWN1
dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJCdWls
dGluTW9kZSBidWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIERlYnVn
Z2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUsIFBhcnNlckVy
cm9yJiBlcnJvcikKK1VubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogQ29kZUNhY2hlOjpnZXRQcm9n
cmFtQ29kZUJsb2NrKFZNJiB2bSwgUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0
IFNvdXJjZUNvZGUmIHNvdXJjZSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgSlNQ
YXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFBh
cnNlckVycm9yJiBlcnJvcikKIHsKICAgICBWYXJpYWJsZUVudmlyb25tZW50IGVtcHR5UGFyZW50
VERaVmFyaWFibGVzOwotICAgIHJldHVybiBnZXRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRQcm9n
cmFtQ29kZUJsb2NrPih2bSwgZXhlY3V0YWJsZSwgc291cmNlLCBidWlsdGluTW9kZSwgc3RyaWN0
TW9kZSwgVGhpc1REWk1vZGU6OkNoZWNrSWZOZWVkZWQsIGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJN
b2RlLCBlcnJvciwgRXZhbENvbnRleHRUeXBlOjpOb25lLCAmZW1wdHlQYXJlbnRURFpWYXJpYWJs
ZXMpOworICAgIHJldHVybiBnZXRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRQcm9ncmFtQ29kZUJs
b2NrPih2bSwgZXhlY3V0YWJsZSwgc291cmNlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9kZSwgVGhp
c1REWk1vZGU6OkNoZWNrSWZOZWVkZWQsIGRlYnVnZ2VyTW9kZSwgZXJyb3IsIEV2YWxDb250ZXh0
VHlwZTo6Tm9uZSwgJmVtcHR5UGFyZW50VERaVmFyaWFibGVzKTsKIH0KIAotVW5saW5rZWRFdmFs
Q29kZUJsb2NrKiBDb2RlQ2FjaGU6OmdldEV2YWxDb2RlQmxvY2soVk0mIHZtLCBFdmFsRXhlY3V0
YWJsZSogZXhlY3V0YWJsZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1BhcnNlckJ1aWx0
aW5Nb2RlIGJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0TW9kZSwgVGhpc1RE
Wk1vZGUgdGhpc1REWk1vZGUsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9k
ZSBwcm9maWxlck1vZGUsIFBhcnNlckVycm9yJiBlcnJvciwgRXZhbENvbnRleHRUeXBlIGV2YWxD
b250ZXh0VHlwZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCogdmFyaWFibGVzVW5kZXJURFop
CitVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIENvZGVDYWNoZTo6Z2V0RXZhbENvZGVCbG9jayhWTSYg
dm0sIEV2YWxFeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2Us
IEpTUGFyc2VyQnVpbHRpbk1vZGUgYnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJp
Y3RNb2RlLCBUaGlzVERaTW9kZSB0aGlzVERaTW9kZSwgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9k
ZSwgUGFyc2VyRXJyb3ImIGVycm9yLCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlLCBj
b25zdCBWYXJpYWJsZUVudmlyb25tZW50KiB2YXJpYWJsZXNVbmRlclREWikKIHsKLSAgICByZXR1
cm4gZ2V0R2xvYmFsQ29kZUJsb2NrPFVubGlua2VkRXZhbENvZGVCbG9jaz4odm0sIGV4ZWN1dGFi
bGUsIHNvdXJjZSwgYnVpbHRpbk1vZGUsIHN0cmljdE1vZGUsIHRoaXNURFpNb2RlLCBkZWJ1Z2dl
ck1vZGUsIHByb2ZpbGVyTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSwgdmFyaWFibGVzVW5k
ZXJURFopOworICAgIHJldHVybiBnZXRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRFdmFsQ29kZUJs
b2NrPih2bSwgZXhlY3V0YWJsZSwgc291cmNlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9kZSwgdGhp
c1REWk1vZGUsIGRlYnVnZ2VyTW9kZSwgZXJyb3IsIGV2YWxDb250ZXh0VHlwZSwgdmFyaWFibGVz
VW5kZXJURFopOwogfQogCi1VbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIENvZGVDYWNo
ZTo6Z2V0TW9kdWxlUHJvZ3JhbUNvZGVCbG9jayhWTSYgdm0sIE1vZHVsZVByb2dyYW1FeGVjdXRh
YmxlKiBleGVjdXRhYmxlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyQnVpbHRp
bk1vZGUgYnVpbHRpbk1vZGUsIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIFByb2ZpbGVyTW9k
ZSBwcm9maWxlck1vZGUsIFBhcnNlckVycm9yJiBlcnJvcikKK1VubGlua2VkTW9kdWxlUHJvZ3Jh
bUNvZGVCbG9jayogQ29kZUNhY2hlOjpnZXRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKFZNJiB2bSwg
TW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIGNvbnN0IFNvdXJjZUNvZGUmIHNv
dXJjZSwgSlNQYXJzZXJCdWlsdGluTW9kZSBidWlsdGluTW9kZSwgRGVidWdnZXJNb2RlIGRlYnVn
Z2VyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9yKQogewogICAgIFZhcmlhYmxlRW52aXJvbm1lbnQg
ZW1wdHlQYXJlbnRURFpWYXJpYWJsZXM7Ci0gICAgcmV0dXJuIGdldEdsb2JhbENvZGVCbG9jazxV
bmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2s+KHZtLCBleGVjdXRhYmxlLCBzb3VyY2UsIGJ1
aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdCwgVGhpc1REWk1vZGU6OkNoZWNr
SWZOZWVkZWQsIGRlYnVnZ2VyTW9kZSwgcHJvZmlsZXJNb2RlLCBlcnJvciwgRXZhbENvbnRleHRU
eXBlOjpOb25lLCAmZW1wdHlQYXJlbnRURFpWYXJpYWJsZXMpOworICAgIHJldHVybiBnZXRHbG9i
YWxDb2RlQmxvY2s8VW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrPih2bSwgZXhlY3V0YWJs
ZSwgc291cmNlLCBidWlsdGluTW9kZSwgSlNQYXJzZXJTdHJpY3RNb2RlOjpTdHJpY3QsIFRoaXNU
RFpNb2RlOjpDaGVja0lmTmVlZGVkLCBkZWJ1Z2dlck1vZGUsIGVycm9yLCBFdmFsQ29udGV4dFR5
cGU6Ok5vbmUsICZlbXB0eVBhcmVudFREWlZhcmlhYmxlcyk7CiB9CiAKIC8vIEZJWE1FOiBUaGVy
ZSdzIG5vIG5lZWQgdG8gYWRkIHRoZSBmdW5jdGlvbidzIG5hbWUgdG8gdGhlIGtleSBoZXJlLiBJ
dCdzIGFscmVhZHkgaW4gdGhlIHNvdXJjZSBjb2RlLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db2RlQ2FjaGUuaAppbmRleCBlNWUyMTFiLi4wMDcwZDkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaApAQCAtMTg3LDkgKzE4Nyw5IEBAIHB1YmxpYzoK
ICAgICBDb2RlQ2FjaGUoKTsKICAgICB+Q29kZUNhY2hlKCk7CiAKLSAgICBVbmxpbmtlZFByb2dy
YW1Db2RlQmxvY2sqIGdldFByb2dyYW1Db2RlQmxvY2soVk0mLCBQcm9ncmFtRXhlY3V0YWJsZSos
IGNvbnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBKU1BhcnNlclN0cmljdE1v
ZGUsIERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYpOwotICAgIFVubGlu
a2VkRXZhbENvZGVCbG9jayogZ2V0RXZhbENvZGVCbG9jayhWTSYsIEV2YWxFeGVjdXRhYmxlKiwg
Y29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9k
ZSwgVGhpc1REWk1vZGUsIERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYs
IEV2YWxDb250ZXh0VHlwZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOwotICAgIFVubGlu
a2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayogZ2V0TW9kdWxlUHJvZ3JhbUNvZGVCbG9jayhWTSYs
IE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVp
bHRpbk1vZGUsIERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBQYXJzZXJFcnJvciYpOworICAg
IFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogZ2V0UHJvZ3JhbUNvZGVCbG9jayhWTSYsIFByb2dy
YW1FeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpT
UGFyc2VyU3RyaWN0TW9kZSwgRGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYpOworICAgIFVubGlu
a2VkRXZhbENvZGVCbG9jayogZ2V0RXZhbENvZGVCbG9jayhWTSYsIEV2YWxFeGVjdXRhYmxlKiwg
Y29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpTUGFyc2VyU3RyaWN0TW9k
ZSwgVGhpc1REWk1vZGUsIERlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImLCBFdmFsQ29udGV4dFR5
cGUsIGNvbnN0IFZhcmlhYmxlRW52aXJvbm1lbnQqKTsKKyAgICBVbmxpbmtlZE1vZHVsZVByb2dy
YW1Db2RlQmxvY2sqIGdldE1vZHVsZVByb2dyYW1Db2RlQmxvY2soVk0mLCBNb2R1bGVQcm9ncmFt
RXhlY3V0YWJsZSosIGNvbnN0IFNvdXJjZUNvZGUmLCBKU1BhcnNlckJ1aWx0aW5Nb2RlLCBEZWJ1
Z2dlck1vZGUsIFBhcnNlckVycm9yJik7CiAgICAgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUq
IGdldEZ1bmN0aW9uRXhlY3V0YWJsZUZyb21HbG9iYWxDb2RlKFZNJiwgY29uc3QgSWRlbnRpZmll
ciYsIGNvbnN0IFNvdXJjZUNvZGUmLCBQYXJzZXJFcnJvciYpOwogCiAgICAgdm9pZCBjbGVhcigp
CkBAIC0xOTksNyArMTk5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHRlbXBsYXRlIDxj
bGFzcyBVbmxpbmtlZENvZGVCbG9ja1R5cGUsIGNsYXNzIEV4ZWN1dGFibGVUeXBlPiAKLSAgICBV
bmxpbmtlZENvZGVCbG9ja1R5cGUqIGdldEdsb2JhbENvZGVCbG9jayhWTSYsIEV4ZWN1dGFibGVU
eXBlKiwgY29uc3QgU291cmNlQ29kZSYsIEpTUGFyc2VyQnVpbHRpbk1vZGUsIEpTUGFyc2VyU3Ry
aWN0TW9kZSwgVGhpc1REWk1vZGUsIERlYnVnZ2VyTW9kZSwgUHJvZmlsZXJNb2RlLCBQYXJzZXJF
cnJvciYsIEV2YWxDb250ZXh0VHlwZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOworICAg
IFVubGlua2VkQ29kZUJsb2NrVHlwZSogZ2V0R2xvYmFsQ29kZUJsb2NrKFZNJiwgRXhlY3V0YWJs
ZVR5cGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJCdWlsdGluTW9kZSwgSlNQYXJzZXJT
dHJpY3RNb2RlLCBUaGlzVERaTW9kZSwgRGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYsIEV2YWxD
b250ZXh0VHlwZSwgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCopOwogCiAgICAgQ29kZUNhY2hl
TWFwIG1fc291cmNlQ29kZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
ZWN1dGFibGUuY3BwCmluZGV4IDkxOTVkNTUuLjlmY2RkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0zMTIsMTAgKzMxMiw5IEBAIENvZGVC
bG9jayogU2NyaXB0RXhlY3V0YWJsZTo6bmV3Q29kZUJsb2NrRm9yKAogICAgIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QgPSBzY29wZS0+Z2xvYmFsT2JqZWN0KCk7CiAgICAgUGFyc2VyRXJy
b3IgZXJyb3I7CiAgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSA9IGdsb2JhbE9iamVjdC0+
aGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigpID8gRGVidWdnZXJPbiA6IERlYnVnZ2VyT2ZmOwotICAg
IFByb2ZpbGVyTW9kZSBwcm9maWxlck1vZGUgPSBnbG9iYWxPYmplY3QtPmhhc0xlZ2FjeVByb2Zp
bGVyKCkgPyBQcm9maWxlck9uIDogUHJvZmlsZXJPZmY7CiAgICAgVW5saW5rZWRGdW5jdGlvbkNv
ZGVCbG9jayogdW5saW5rZWRDb2RlQmxvY2sgPSAKICAgICAgICAgZXhlY3V0YWJsZS0+bV91bmxp
bmtlZEV4ZWN1dGFibGUtPnVubGlua2VkQ29kZUJsb2NrRm9yKAotICAgICAgICAgICAgKnZtLCBl
eGVjdXRhYmxlLT5tX3NvdXJjZSwga2luZCwgZGVidWdnZXJNb2RlLCBwcm9maWxlck1vZGUsIGVy
cm9yLCAKKyAgICAgICAgICAgICp2bSwgZXhlY3V0YWJsZS0+bV9zb3VyY2UsIGtpbmQsIGRlYnVn
Z2VyTW9kZSwgZXJyb3IsIAogICAgICAgICAgICAgZXhlY3V0YWJsZS0+cGFyc2VNb2RlKCkpOwog
ICAgIHJlY29yZFBhcnNlKAogICAgICAgICBleGVjdXRhYmxlLT5tX3VubGlua2VkRXhlY3V0YWJs
ZS0+ZmVhdHVyZXMoKSwgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKaW5kZXggZDc3MDU0OS4uNmMxNDczMiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcApAQCAtMTEyLDcgKzExMiw2
IEBACiAjaW5jbHVkZSAiSlNXaXRoU2NvcGUuaCIKICNpbmNsdWRlICJMYXp5Q2xhc3NTdHJ1Y3R1
cmVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTGF6eVByb3BlcnR5SW5saW5lcy5oIgotI2luY2x1ZGUg
IkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiTG9va3VwLmgiCiAjaW5jbHVkZSAiTWFwQ29u
c3RydWN0b3IuaCIKICNpbmNsdWRlICJNYXBJdGVyYXRvclByb3RvdHlwZS5oIgpAQCAtMjA4LDcg
KzIwNyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBjb25zdCBDbGFzc0luZm8gSlNHbG9iYWxPYmpl
Y3Q6OnNfaW5mbyA9IHsgIkdsb2JhbE9iamVjdCIsICZCYXNlOjpzX2luZm8sICZnbG9iYWxPYmpl
Y3RUYWJsZSwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0dsb2JhbE9iamVjdCkgfTsKIAotY29uc3Qg
R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNHbG9iYWxPYmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0
aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nlc3NGcm9tLCAmc3VwcG9ydHNMZWdhY3lQcm9maWxpbmcs
ICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNj
cmlwdFJ1bnRpbWVGbGFncywgbnVsbHB0ciwgJnNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRp
bWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIgfTsKK2NvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTR2xvYmFsT2JqZWN0OjpzX2ds
b2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNjZXNzRnJvbSwgJnN1cHBvcnRzUmlj
aFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0UnVudGltZUZs
YWdzLCBudWxscHRyLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVsbHB0
ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OwogCiAvKiBT
b3VyY2UgZm9yIEpTR2xvYmFsT2JqZWN0Lmx1dC5oCiBAYmVnaW4gZ2xvYmFsT2JqZWN0VGFibGUK
QEAgLTI5Nyw5ICsyOTYsNiBAQCBKU0dsb2JhbE9iamVjdDo6fkpTR2xvYmFsT2JqZWN0KCkKIAog
ICAgIGlmIChtX2RlYnVnZ2VyKQogICAgICAgICBtX2RlYnVnZ2VyLT5kZXRhY2godGhpcywgRGVi
dWdnZXI6Okdsb2JhbE9iamVjdElzRGVzdHJ1Y3RpbmcpOwotCi0gICAgaWYgKExlZ2FjeVByb2Zp
bGVyKiBwcm9maWxlciA9IHZtKCkuZW5hYmxlZFByb2ZpbGVyKCkpCi0gICAgICAgIHByb2ZpbGVy
LT5zdG9wUHJvZmlsaW5nKHRoaXMpOwogfQogCiB2b2lkIEpTR2xvYmFsT2JqZWN0OjpkZXN0cm95
KEpTQ2VsbCogY2VsbCkKQEAgLTgzNywxMSArODMzLDYgQEAgcHV0RGlyZWN0V2l0aG91dFRyYW5z
aXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxvd2VyTmFtZSAjIyBDb25zdHJ1
Y3QKICAgICByZXNldFByb3RvdHlwZSh2bSwgZ2V0UHJvdG90eXBlRGlyZWN0KCkpOwogfQogCi1i
b29sIEpTR2xvYmFsT2JqZWN0OjpoYXNMZWdhY3lQcm9maWxlcigpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIGdsb2JhbE9iamVjdE1ldGhvZFRhYmxlKCktPnN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nKHRo
aXMpOwotfQotCiBib29sIEpTR2xvYmFsT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU0dsb2JhbE9iamVjdCogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU0dsb2JhbE9iamVjdCo+KGNlbGwpOwpAQCAtMTIzMSwxMCArMTIyMiw5IEBAIFVubGlu
a2VkUHJvZ3JhbUNvZGVCbG9jayogSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVByb2dyYW1Db2RlQmxv
Y2soQ2FsbEZyYW1lKiBjYWxsCiAgICAgUGFyc2VyRXJyb3IgZXJyb3I7CiAgICAgSlNQYXJzZXJT
dHJpY3RNb2RlIHN0cmljdE1vZGUgPSBleGVjdXRhYmxlLT5pc1N0cmljdE1vZGUoKSA/IEpTUGFy
c2VyU3RyaWN0TW9kZTo6U3RyaWN0IDogSlNQYXJzZXJTdHJpY3RNb2RlOjpOb3RTdHJpY3Q7CiAg
ICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSA9IGhhc0ludGVyYWN0aXZlRGVidWdnZXIoKSA/
IERlYnVnZ2VyT24gOiBEZWJ1Z2dlck9mZjsKLSAgICBQcm9maWxlck1vZGUgcHJvZmlsZXJNb2Rl
ID0gaGFzTGVnYWN5UHJvZmlsZXIoKSA/IFByb2ZpbGVyT24gOiBQcm9maWxlck9mZjsKICAgICBV
bmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqIHVubGlua2VkQ29kZUJsb2NrID0gdm0oKS5jb2RlQ2Fj
aGUoKS0+Z2V0UHJvZ3JhbUNvZGVCbG9jaygKICAgICAgICAgdm0oKSwgZXhlY3V0YWJsZSwgZXhl
Y3V0YWJsZS0+c291cmNlKCksIEpTUGFyc2VyQnVpbHRpbk1vZGU6Ok5vdEJ1aWx0aW4sIHN0cmlj
dE1vZGUsIAotICAgICAgICBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9kZSwgZXJyb3IpOworICAg
ICAgICBkZWJ1Z2dlck1vZGUsIGVycm9yKTsKIAogICAgIGlmIChoYXNEZWJ1Z2dlcigpKQogICAg
ICAgICBkZWJ1Z2dlcigpLT5zb3VyY2VQYXJzZWQoY2FsbEZyYW1lLCBleGVjdXRhYmxlLT5zb3Vy
Y2UoKS5wcm92aWRlcigpLCBlcnJvci5saW5lKCksIGVycm9yLm1lc3NhZ2UoKSk7CkBAIC0xMjU0
LDkgKzEyNDQsOCBAQCBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIEpTR2xvYmFsT2JqZWN0OjpjcmVh
dGVFdmFsQ29kZUJsb2NrKENhbGxGcmFtZSogY2FsbEZyYW1lLAogICAgIERlYnVnZ2VyTW9kZSBk
ZWJ1Z2dlck1vZGUgPSBoYXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkgPyBEZWJ1Z2dlck9uIDogRGVi
dWdnZXJPZmY7CiAgICAgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSA9IGV4ZWN1dGFi
bGUtPmV4ZWN1dGFibGVJbmZvKCkuZXZhbENvbnRleHRUeXBlKCk7CiAgICAgCi0gICAgUHJvZmls
ZXJNb2RlIHByb2ZpbGVyTW9kZSA9IGhhc0xlZ2FjeVByb2ZpbGVyKCkgPyBQcm9maWxlck9uIDog
UHJvZmlsZXJPZmY7CiAgICAgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9j
ayA9IHZtKCkuY29kZUNhY2hlKCktPmdldEV2YWxDb2RlQmxvY2soCi0gICAgICAgIHZtKCksIGV4
ZWN1dGFibGUsIGV4ZWN1dGFibGUtPnNvdXJjZSgpLCBKU1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RC
dWlsdGluLCBzdHJpY3RNb2RlLCB0aGlzVERaTW9kZSwgZGVidWdnZXJNb2RlLCBwcm9maWxlck1v
ZGUsIGVycm9yLCBldmFsQ29udGV4dFR5cGUsIHZhcmlhYmxlc1VuZGVyVERaKTsKKyAgICAgICAg
dm0oKSwgZXhlY3V0YWJsZSwgZXhlY3V0YWJsZS0+c291cmNlKCksIEpTUGFyc2VyQnVpbHRpbk1v
ZGU6Ok5vdEJ1aWx0aW4sIHN0cmljdE1vZGUsIHRoaXNURFpNb2RlLCBkZWJ1Z2dlck1vZGUsIGVy
cm9yLCBldmFsQ29udGV4dFR5cGUsIHZhcmlhYmxlc1VuZGVyVERaKTsKIAogICAgIGlmIChoYXNE
ZWJ1Z2dlcigpKQogICAgICAgICBkZWJ1Z2dlcigpLT5zb3VyY2VQYXJzZWQoY2FsbEZyYW1lLCBl
eGVjdXRhYmxlLT5zb3VyY2UoKS5wcm92aWRlcigpLCBlcnJvci5saW5lKCksIGVycm9yLm1lc3Nh
Z2UoKSk7CkBAIC0xMjczLDkgKzEyNjIsOCBAQCBVbmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxv
Y2sqIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKENhbAogewog
ICAgIFBhcnNlckVycm9yIGVycm9yOwogICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUgPSBo
YXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkgPyBEZWJ1Z2dlck9uIDogRGVidWdnZXJPZmY7Ci0gICAg
UHJvZmlsZXJNb2RlIHByb2ZpbGVyTW9kZSA9IGhhc0xlZ2FjeVByb2ZpbGVyKCkgPyBQcm9maWxl
ck9uIDogUHJvZmlsZXJPZmY7CiAgICAgVW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrKiB1
bmxpbmtlZENvZGVCbG9jayA9IHZtKCkuY29kZUNhY2hlKCktPmdldE1vZHVsZVByb2dyYW1Db2Rl
QmxvY2soCi0gICAgICAgIHZtKCksIGV4ZWN1dGFibGUsIGV4ZWN1dGFibGUtPnNvdXJjZSgpLCBK
U1BhcnNlckJ1aWx0aW5Nb2RlOjpOb3RCdWlsdGluLCBkZWJ1Z2dlck1vZGUsIHByb2ZpbGVyTW9k
ZSwgZXJyb3IpOworICAgICAgICB2bSgpLCBleGVjdXRhYmxlLCBleGVjdXRhYmxlLT5zb3VyY2Uo
KSwgSlNQYXJzZXJCdWlsdGluTW9kZTo6Tm90QnVpbHRpbiwgZGVidWdnZXJNb2RlLCBlcnJvcik7
CiAKICAgICBpZiAoaGFzRGVidWdnZXIoKSkKICAgICAgICAgZGVidWdnZXIoKS0+c291cmNlUGFy
c2VkKGNhbGxGcmFtZSwgZXhlY3V0YWJsZS0+c291cmNlKCkucHJvdmlkZXIoKSwgZXJyb3IubGlu
ZSgpLCBlcnJvci5tZXNzYWdlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2xvYmFsT2JqZWN0LmgKaW5kZXggZjU4MDQ3Ni4uOTZhZWNlYyAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0xNTEsOSArMTUxLDYg
QEAgc3RydWN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxlIHsKICAgICB0eXBlZGVmIGJvb2wgKCpB
bGxvd3NBY2Nlc3NGcm9tRnVuY3Rpb25QdHIpKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0
YXRlKik7CiAgICAgQWxsb3dzQWNjZXNzRnJvbUZ1bmN0aW9uUHRyIGFsbG93c0FjY2Vzc0Zyb207
CiAKLSAgICB0eXBlZGVmIGJvb2wgKCpTdXBwb3J0c0xlZ2FjeVByb2ZpbGluZ0Z1bmN0aW9uUHRy
KShjb25zdCBKU0dsb2JhbE9iamVjdCopOwotICAgIFN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nRnVu
Y3Rpb25QdHIgc3VwcG9ydHNMZWdhY3lQcm9maWxpbmc7Ci0KICAgICB0eXBlZGVmIGJvb2wgKCpT
dXBwb3J0c1JpY2hTb3VyY2VJbmZvRnVuY3Rpb25QdHIpKGNvbnN0IEpTR2xvYmFsT2JqZWN0Kik7
CiAgICAgU3VwcG9ydHNSaWNoU291cmNlSW5mb0Z1bmN0aW9uUHRyIHN1cHBvcnRzUmljaFNvdXJj
ZUluZm87CiAKQEAgLTQwNyw3ICs0MDQsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhc0RlYnVn
Z2VyKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkgY29uc3Q7Ci0g
ICAgYm9vbCBoYXNMZWdhY3lQcm9maWxlcigpIGNvbnN0OwogICAgIGNvbnN0IFJ1bnRpbWVGbGFn
cyYgcnVudGltZUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9ydW50aW1lRmxhZ3M7IH0KIAogcHJv
dGVjdGVkOgpAQCAtNzE3LDcgKzcxMyw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBHbG9iYWxPYmpl
Y3RNZXRob2RUYWJsZSogZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKSBjb25zdCB7IHJldHVybiBt
X2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOyB9CiAKICAgICBzdGF0aWMgYm9vbCBhbGxvd3NBY2Nl
c3NGcm9tKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKikgeyByZXR1cm4gdHJ1ZTsg
fQotICAgIHN0YXRpYyBib29sIHN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nKGNvbnN0IEpTR2xvYmFs
T2JqZWN0KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1JpY2hT
b3VyY2VJbmZvKGNvbnN0IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgRXhlY1N0YXRlKiBnbG9iYWxFeGVjKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zLmgKaW5kZXggMWQwZTU2NC4uMjVkZTIwYiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtMTMxLDcgKzEzMSw2IEBAIHR5cGVk
ZWYgY29uc3QgY2hhciogb3B0aW9uU3RyaW5nOwogICAgIHYoYm9vbCwgZHVtcEJ5dGVjb2RlTGl2
ZW5lc3NSZXN1bHRzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCB2YWxp
ZGF0ZUJ5dGVjb2RlLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihib29sLCBmb3Jj
ZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0aW9uLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCi0g
ICAgdihib29sLCBmb3JjZVByb2ZpbGVyQnl0ZWNvZGVHZW5lcmF0aW9uLCBmYWxzZSwgTm9ybWFs
LCBudWxscHRyKSBcCiAgICAgXAogICAgIHYoYm9vbCwgdXNlRnVuY3Rpb25Eb3RBcmd1bWVudHMs
IHRydWUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgdXNlVGFpbENhbGxzLCB0cnVl
LCBOb3JtYWwsIG51bGxwdHIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRl
eCBkYzMxYzQzLi5kNDdmNDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCkBA
IC0xOTQsNyArMTk0LDYgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBl
KQogI2VuZGlmCiAgICAgLCBtX2luRGVmaW5lT3duUHJvcGVydHkoZmFsc2UpCiAgICAgLCBtX2Nv
ZGVDYWNoZShzdGQ6Om1ha2VfdW5pcXVlPENvZGVDYWNoZT4oKSkKLSAgICAsIG1fZW5hYmxlZFBy
b2ZpbGVyKG51bGxwdHIpCiAgICAgLCBtX2J1aWx0aW5FeGVjdXRhYmxlcyhzdGQ6Om1ha2VfdW5p
cXVlPEJ1aWx0aW5FeGVjdXRhYmxlcz4oKnRoaXMpKQogICAgICwgbV90eXBlUHJvZmlsZXJFbmFi
bGVkQ291bnQoMCkKICAgICAsIG1fY29udHJvbEZsb3dQcm9maWxlckVuYWJsZWRDb3VudCgwKQpA
QCAtNzc3LDI1ICs3NzYsNiBAQCB2b2lkIFZNOjphZGRJbXB1cmVQcm9wZXJ0eShjb25zdCBTdHJp
bmcmIHByb3BlcnR5TmFtZSkKICAgICAgICAgd2F0Y2hwb2ludFNldC0+ZmlyZUFsbCgiSW1wdXJl
IHByb3BlcnR5IGFkZGVkIik7CiB9CiAKLWNsYXNzIFNldEVuYWJsZWRQcm9maWxlckZ1bmN0b3Ig
ewotcHVibGljOgotICAgIGJvb2wgb3BlcmF0b3IoKShDb2RlQmxvY2sqIGNvZGVCbG9jaykgY29u
c3QKLSAgICB7Ci0gICAgICAgIGlmIChKSVRDb2RlOjppc09wdGltaXppbmdKSVQoY29kZUJsb2Nr
LT5qaXRUeXBlKCkpKQotICAgICAgICAgICAgY29kZUJsb2NrLT5qZXR0aXNvbihQcm9maWxlcjo6
SmV0dGlzb25EdWVUb0xlZ2FjeVByb2ZpbGVyKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLX07Ci0KLXZvaWQgVk06OnNldEVuYWJsZWRQcm9maWxlcihMZWdhY3lQcm9maWxlciogcHJv
ZmlsZXIpCi17Ci0gICAgbV9lbmFibGVkUHJvZmlsZXIgPSBwcm9maWxlcjsKLSAgICBpZiAobV9l
bmFibGVkUHJvZmlsZXIpIHsKLSAgICAgICAgU2V0RW5hYmxlZFByb2ZpbGVyRnVuY3RvciBmdW5j
dG9yOwotICAgICAgICBoZWFwLmZvckVhY2hDb2RlQmxvY2soZnVuY3Rvcik7Ci0gICAgfQotfQot
CiBzdGF0aWMgYm9vbCBlbmFibGVQcm9maWxlcldpdGhSZXNwZWN0VG9Db3VudCh1bnNpZ25lZCYg
Y291bnRlciwgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGRvRW5hYmxlV29yaykKIHsKICAgICBib29s
IG5lZWRzVG9SZWNvbXBpbGUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmlu
ZGV4IDBmZmU3NjYuLjJiYTI1NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAt
OTIsNyArOTIsNiBAQCBjbGFzcyBKU0JvdW5kU2xvdEJhc2VGdW5jdGlvbjsKIGNsYXNzIEpTR2xv
YmFsT2JqZWN0OwogY2xhc3MgSlNPYmplY3Q7CiBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7
Ci1jbGFzcyBMZWdhY3lQcm9maWxlcjsKIGNsYXNzIE5hdGl2ZUV4ZWN1dGFibGU7CiBjbGFzcyBS
ZWdFeHBDYWNoZTsKIGNsYXNzIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OwpAQCAtMzU1LDExICszNTQs
NiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX2luRGVmaW5lT3duUHJvcGVydHk7CiAgICAg
fQogCi0gICAgTGVnYWN5UHJvZmlsZXIqIGVuYWJsZWRQcm9maWxlcigpIHsgcmV0dXJuIG1fZW5h
YmxlZFByb2ZpbGVyOyB9Ci0gICAgdm9pZCBzZXRFbmFibGVkUHJvZmlsZXIoTGVnYWN5UHJvZmls
ZXIqKTsKLQotICAgIHZvaWQqIGVuYWJsZWRQcm9maWxlckFkZHJlc3MoKSB7IHJldHVybiAmbV9l
bmFibGVkUHJvZmlsZXI7IH0KLQogI2lmIEVOQUJMRShKSVQpCiAgICAgYm9vbCBjYW5Vc2VKSVQo
KSB7IHJldHVybiBtX2NhblVzZUpJVDsgfQogI2Vsc2UKQEAgLTY1Nyw3ICs2NTEsNiBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9nbG9iYWxDb25zdFJlZGVjbGFyYXRpb25TaG91bGRUaHJvdyB7IHRy
dWUgfTsKICAgICBib29sIG1fc2hvdWxkQnVpbGRQQ1RvQ29kZU9yaWdpbk1hcHBpbmcgeyBmYWxz
ZSB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2RlQ2FjaGU+IG1fY29kZUNhY2hlOwotICAgIExl
Z2FjeVByb2ZpbGVyKiBtX2VuYWJsZWRQcm9maWxlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QnVp
bHRpbkV4ZWN1dGFibGVzPiBtX2J1aWx0aW5FeGVjdXRhYmxlczsKICAgICBIYXNoTWFwPFN0cmlu
ZywgUmVmUHRyPFdhdGNocG9pbnRTZXQ+PiBtX2ltcHVyZVByb3BlcnR5V2F0Y2hwb2ludFNldHM7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFR5cGVQcm9maWxlcj4gbV90eXBlUHJvZmlsZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IGZjOTc3OTUuLjU3ODQ5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC01OTEsOCArNTkxLDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKIAogICAg
IGluc3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuaWRsCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5pZGwKLSAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwKLSAgICBp
bnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCiAKICAgICBsb2FkZXIvYXBwY2FjaGUvRE9N
QXBwbGljYXRpb25DYWNoZS5pZGwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY2MjdkMDguLjU4NjFlMWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw3NSBAQAorMjAxNi0wNS0xMyAgSm9zZXBoIFBlY29yYXJvICA8
cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBMZWdhY3lQcm9maWxlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNTY1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9MZWdhY3lQcm9maWxl
ci5oOiBSZW1vdmVkLgorICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL1Byb2Zp
bGUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9Qcm9m
aWxlTm9kZS5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5j
cHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6c3VwcG9ydHNMZWdhY3lQcm9maWxpbmcpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpzdXBwb3J0c1JpY2hTb3Vy
Y2VJbmZvKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNMZWdhY3lQ
cm9maWxpbmcpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFs
U2NvcGVCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRh
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNsZWFyV2luZG93U2hlbGwpOiBEZWxldGVk
LgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlTm9kZS5oOiBSZW1vdmVkLgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoQWRkQ2xhc3NG
b3J3YXJkSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
T2JqLmlkbDoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVu
dGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0
b3BQcm9maWxpbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRy
b2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6bGVnYWN5UHJv
ZmlsZXJFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6OnNldExlZ2FjeVByb2ZpbGVyRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6c3RvcFByb2ZpbGluZ0ltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpzdGFydEZyb21Db25zb2xlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5l
QWdlbnQ6OnN0b3BGcm9tQ29uc29sZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclRp
bWVsaW5lQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3Bw
OgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGw6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9y
L1NjcmlwdFByb2ZpbGVOb2RlLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkQWdncmVnYXRl
Q2FsbEluZm9JbnNwZWN0b3JPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6YnVp
bGRJbnNwZWN0b3JPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRQcm9m
aWxlSW5zcGVjdG9yT2JqZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRpbWVsaW5l
UmVjb3JkRmFjdG9yeTo6YXBwZW5kUHJvZmlsZSk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9E
T01XaW5kb3cuY3BwOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgICogcGFnZS9Q
YWdlQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVu
dDo6cHJvZmlsZUVuZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6Y2xl
YXJQcm9maWxlcyk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5o
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OmNvbnNvbGVQcm9maWxlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKTogRGVs
ZXRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5j
cHA6CisgICAgICAgICogeG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0LmNwcDoKKyAgICAgICAgKiB4
bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwOgorCiAyMDE2LTA1LTEzICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0IHRvIGZpeCB0
aGUgaU9TIGJ1aWxkIGFmdGVyIHRoZSBwcm90ZWN0b3IgdmFyaWFibGVzIHJlbmFtaW5nLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDYwYjg1NTYuLjU4MGJiYmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5jcHAKQEAgLTQyMiw4ICs0MjIsNiBAQAogI2luY2x1ZGUgIkpTUlRDVHJh
Y2tFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNTY3JlZW4uY3BwIgogI2luY2x1ZGUgIkpTU2NyaXB0
UHJvY2Vzc29yTm9kZS5jcHAiCi0jaW5jbHVkZSAiSlNTY3JpcHRQcm9maWxlLmNwcCIKLSNpbmNs
dWRlICJKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcCIKICNpZiBFTkFCTEUoQ1NQX05FWFQpCiAjaW5j
bHVkZSAiSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNwcCIKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzNhMTJlNC4uYmQ3NmE3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC01MDUsOCArNTA1LDYgQEAgTk9OX1NWR19CSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS9odG1sL3RyYWNrL1ZUVEN1ZS5pZGwgXAogICAgICQoV2Vi
Q29yZSkvaW5zcGVjdG9yL0NvbW1hbmRMaW5lQVBJSG9zdC5pZGwgXAogICAgICQoV2ViQ29yZSkv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwgXAotICAgICQoV2ViQ29yZSkvaW5z
cGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9TY3Jp
cHRQcm9maWxlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvbG9hZGVyL2FwcGNhY2hlL0RPTUFw
cGxpY2F0aW9uQ2FjaGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL3BhZ2UvQWJzdHJhY3RWaWV3Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS9wYWdlL0JhclByb3AuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9MZWdhY3lQcm9maWxlci5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYzBlOWJmLi4wMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLSNpZm5kZWYgV2ViQ29yZV9GV0RfTGVnYWN5
UHJvZmlsZXJfaAotI2RlZmluZSBXZWJDb3JlX0ZXRF9MZWdhY3lQcm9maWxlcl9oCi0jaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvTGVnYWN5UHJvZmlsZXIuaD4KLSNlbmRpZgotCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9Qcm9maWxlLmggYi9T
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9Qcm9maWxlLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyNmJhZmQuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcHJvZmlsZXIvUHJvZmlsZS5oCisrKyAvZGV2L251bGwK
QEAgLTEsNSArMCwwIEBACi0jaWZuZGVmIFdlYkNvcmVfRldEX1Byb2ZpbGVfaAotI2RlZmluZSBX
ZWJDb3JlX0ZXRF9Qcm9maWxlX2gKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlLmg+
Ci0jZW5kaWYKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMv
cHJvZmlsZXIvUHJvZmlsZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJz
L3Byb2ZpbGVyL1Byb2ZpbGVOb2RlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEx
OWEwN2UuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcHJv
ZmlsZXIvUHJvZmlsZU5vZGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotI2lmbmRl
ZiBXZWJDb3JlX0ZXRF9Qcm9maWxlTm9kZV9oCi0jZGVmaW5lIFdlYkNvcmVfRldEX1Byb2ZpbGVO
b2RlX2gKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlTm9kZS5oPgotI2VuZGlmCi0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAyNmE3MjViLi44NjQ1OTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MDU1LDEyICs0MDU1LDYgQEAKIAkJOURBQzdD
NTQxQUYyQ0FBMTAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5REFDN0M1MjFBRjJD
QUExMDA0MzdDNDQgLyogQ1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVlLmNwcCAqLzsgfTsKIAkJ
OURBQzdDNTUxQUYyQ0FBMjAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOURBQzdDNTMx
QUYyQ0FBMTAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5oICovOyB9Owog
CQk5REFDN0M1NzFBRjJDQjY0MDA0MzdDNDQgLyogU3R5bGVDb250ZW50QWxpZ25tZW50RGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOURBQzdDNTYx
QUYyQ0I2NDAwNDM3QzQ0IC8qIFN0eWxlQ29udGVudEFsaWdubWVudERhdGEuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5RjcyMzA0RjExMTg0QjQx
MDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUY3MjMwNEMxMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2Zp
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5
RkEzN0VFNDExNzJGQzgwMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGQTM3RUUzMTE3MkZDODAwMEM0
Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTlGQTM3RUZBMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1Njcmlw
dFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUZBMzdFRjYxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5jcHAgKi87IH07
Ci0JCTlGQTM3RUZCMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGQTM3RUY3MTE3MkZEOTMw
MEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCAqLzsgfTsKLQkJOUZBMzdFRkMxMTcyRkRBNjAw
QzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZBMzdFRjgxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2Ny
aXB0UHJvZmlsZU5vZGUuY3BwICovOyB9OwotCQk5RkEzN0VGRDExNzJGREE2MDBDNENENTUgLyog
SlNTY3JpcHRQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5v
ZGUuaCAqLzsgfTsKIAkJQTA3RDMzNTUxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQ
cmVjaXNpb25Gb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTA3RDMzNTMxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNp
b25Gb3JtYXQuY3BwICovOyB9OwogCQlBMDdEMzM1NjE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJH
TFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTA3RDMzNTQxNTJCNjMwRTAwMUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQ
cmVjaXNpb25Gb3JtYXQuaCAqLzsgfTsKIAkJQTA3RDMzNTgxNTJCNjMyRDAwMUI2MzkzIC8qIFdl
YkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMDdEMzM1NzE1MkI2MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQ
cmVjaXNpb25Gb3JtYXQuaCAqLzsgfTsKQEAgLTExNzc3LDE0ICsxMTc3MSw2IEBACiAJCTlEQUM3
QzUyMUFGMkNBQTEwMDQzN0M0NCAvKiBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTQ29udGVudERpc3RyaWJ1dGlv
blZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOURBQzdDNTMxQUYyQ0FB
MTAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOURBQzdDNTYxQUYyQ0I2NDAwNDM3QzQ0IC8qIFN0eWxl
Q29udGVudEFsaWdubWVudERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3R5bGVDb250ZW50QWxpZ25tZW50RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5RjcyMzA0QzExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTlGQTM3RUUzMTE3MkZDODAwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9k
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRQcm9maWxlTm9kZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VFRjExNzJGRDQxMDBDNENENTUg
LyogU2NyaXB0UHJvZmlsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2NyaXB0UHJvZmls
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlGQTM3RUYwMTE3MkZENDEwMEM0
Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2Ny
aXB0UHJvZmlsZU5vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5RkEzN0VG
NjExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2NyaXB0UHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTlGQTM3RUY3MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2Zp
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY3JpcHRQcm9maWxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlGQTM3RUY4MTE3MkZEOTMwMEM0Q0Q1NSAv
KiBKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk5RkEzN0VGOTExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NjcmlwdFByb2ZpbGVOb2RlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEwN0QzMzUzMTUyQjYzMEUwMDFCNjM5MyAvKiBK
U1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMDdEMzM1NDE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNo
YWRlclByZWNpc2lvbkZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUEwN0QzMzU3MTUyQjYzMkQwMDFCNjM5MyAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1h
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTFNoYWRlclByZWNpc2lv
bkZvcm1hdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyOTgsMTAgKzE2Mjg0
LDYgQEAKIAkJCQlBNTg0RkUzQTE4NjRFMkQ4MDA4NDNCMTAgLyogSlNDb21tYW5kTGluZUFQSUhv
c3QuaCAqLywKIAkJCQk3QTBFNzcxQzEwQzAwREIxMDBBMDI3NkUgLyogSlNJbnNwZWN0b3JGcm9u
dGVuZEhvc3QuY3BwICovLAogCQkJCTdBMEU3NzFEMTBDMDBEQjEwMEEwMjc2RSAvKiBKU0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5oICovLAotCQkJCTlGQTM3RUY2MTE3MkZEOTMwMEM0Q0Q1NSAvKiBK
U1NjcmlwdFByb2ZpbGUuY3BwICovLAotCQkJCTlGQTM3RUY3MTE3MkZEOTMwMEM0Q0Q1NSAvKiBK
U1NjcmlwdFByb2ZpbGUuaCAqLywKLQkJCQk5RkEzN0VGODExNzJGRDkzMDBDNENENTUgLyogSlNT
Y3JpcHRQcm9maWxlTm9kZS5jcHAgKi8sCi0JCQkJOUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8q
IEpTU2NyaXB0UHJvZmlsZU5vZGUuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gSW5zcGVjdG9yOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2Mzg2LDggKzE2MzY4LDYgQEAKIAkJCQlG
MzgyMDg4RDE0N0QzNUY5MDAxMEJDMDYgLyogUGFnZVJ1bnRpbWVBZ2VudC5oICovLAogCQkJCUE1
RjM2RDM4MThGNzU4NzIwMDU0QzAyNCAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwICovLAog
CQkJCUE1RjM2RDM5MThGNzU4NzIwMDU0QzAyNCAvKiBQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCAq
LywKLQkJCQk5RkEzN0VFRjExNzJGRDQxMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZS5pZGwgKi8s
Ci0JCQkJOUZBMzdFRjAxMTcyRkQ0MTAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmlkbCAq
LywKIAkJCQk3NTUzQ0ZFNzEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5
LmNwcCAqLywKIAkJCQk3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRG
YWN0b3J5LmggKi8sCiAJCQkJQTU2QzVCOTgxODlGMzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVB
Z2VudC5jcHAgKi8sCkBAIC0yMjM3NCw4ICsyMjM1NCw2IEBACiAJCQkJQTgzRTFDNzIwRTQ5MDQy
QjAwMTQwQjlDIC8qIFNjcmlwdENvbnRyb2xsZXJNYWMubW0gKi8sCiAJCQkJNDFGMDY2RTMwRjY0
QkNGNjAwQTA3RUFDIC8qIFNjcmlwdEdsb2JhbE9iamVjdC5jcHAgKi8sCiAJCQkJNDFGMDY2RTIw
RjY0QkNGNjAwQTA3RUFDIC8qIFNjcmlwdEdsb2JhbE9iamVjdC5oICovLAotCQkJCTlGNzIzMDRD
MTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlLmggKi8sCi0JCQkJOUZBMzdFRTMxMTcy
RkM4MDAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmggKi8sCiAJCQkJOTM0Q0MxMDkwRURC
MjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCAqLywKIAkJCQk0MTI3RDUzNjBGOEFB
QjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwICovLAogCQkJCTQxQzc2MEIwMEVERTAzRDMw
MEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5oICovLApAQCAtMjY4NTQsOCArMjY4MzIsNiBAQAogCQkJ
CTVFMkM0MzZDMUJDRjA3MUUwMDAxRTJCQyAvKiBKU1JUQ1RyYWNrRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDRUMwMUMzMEMyNzREREQwMDlGNEVDOSAvKiBKU1NjcmVlbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkRBMTVFQ0UxMkIwM0Y2MTAwM0E1ODNBIC8qIEpTU2NyaXB0UHJvY2Vzc29y
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUZBMzdFRkIxMTcyRkRBNjAwQzRDRDU1IC8qIEpT
U2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUZBMzdFRkQxMTcyRkRBNjAwQzRD
RDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFRDA2QUQx
MUM3Nzc1NDgwMEZERkFGMSAvKiBKU1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTlCREE2NEQ4MUI5NzVDRjIwMDlDNDM4NyAvKiBKU1NoYWRvd1Jvb3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNEOURFMTdCMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJj
ZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzg0Nyw4ICsyNzgyMyw2IEBACiAJCQkJRTEx
QzlEOUIwRUIzNjgxMjAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxRjA2NkU0MEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRHbG9iYWxPYmpl
Y3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDM2MTJCMDI2NzYwMEMxQTM1OSAvKiBTY3Jp
cHRQcm9jZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5RjcyMzA0RjExMTg0QjQxMDBB
RDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOUZBMzdFRTQxMTcy
RkM4MDAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDFDNzYwQjEwRURFMDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTMwNjIwLDggKzMwNTk0LDYgQEAKIAkJCQk1RTJDNDM2QjFCQ0Yw
NzFFMDAwMUUyQkMgLyogSlNSVENUcmFja0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
RUMwMUMyMEMyNzREREQwMDlGNEVDOSAvKiBKU1NjcmVlbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGREExNUVDRDEyQjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQcm9jZXNzb3JOb2RlLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTlGQTM3RUZBMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFBy
b2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOUZBMzdFRkMxMTcyRkRBNjAwQzRDRDU1IC8q
IEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0VEMDZBRDAxQzc3
NzU0ODAwRkRGQUYxIC8qIEpTU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5QkRBNjRENzFCOTc1Q0U1MDA5QzQzODcgLyogSlNTaGFkb3dSb290LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUNEOURFMTdBMTdBQUM3NUIwMEVBMzg2RCAvKiBKU1NvdXJj
ZUJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAppbmRleCBjM2FjZjVkLi5iZjMx
YTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRo
TlNSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21Y
UGF0aE5TUmVzb2x2ZXIuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiUGFnZS5oIgog
I2luY2x1ZGUgIlBhZ2VDb25zb2xlQ2xpZW50LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKLSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xv
Y2suaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IGVmOWU2NzMuLjZiYTQ2ODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcApAQCAtNjQsNyAr
NjQsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd0FjY2Vzc0Zyb20oY29uc3QgSlNHbG9iYWxP
YmplY3QqIHRoaXNPYmplY3QsIEV4ZWNTdGF0ZSogZQogCiBjb25zdCBDbGFzc0luZm8gSlNET01X
aW5kb3dCYXNlOjpzX2luZm8gPSB7ICJXaW5kb3ciLCAmSlNET01HbG9iYWxPYmplY3Q6OnNfaW5m
bywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU0RPTVdpbmRvd0Jhc2UpIH07CiAKLWNvbnN0IEds
b2JhbE9iamVjdE1ldGhvZFRhYmxlIEpTRE9NV2luZG93QmFzZTo6c19nbG9iYWxPYmplY3RNZXRo
b2RUYWJsZSA9IHsgJnNob3VsZEFsbG93QWNjZXNzRnJvbSwgJnN1cHBvcnRzTGVnYWN5UHJvZmls
aW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmph
dmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVy
cnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9h
ZGVyRmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwgJmRlZmF1
bHRMYW5ndWFnZSB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dC
YXNlOjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxkQWxsb3dBY2Nlc3NGcm9t
LCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFT
Y3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZEludGVycnVw
dFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9hZGVy
RmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsICZtb2R1bGVMb2FkZXJFdmFsdWF0ZSwgJmRlZmF1bHRM
YW5ndWFnZSB9OwogCiBKU0RPTVdpbmRvd0Jhc2U6OkpTRE9NV2luZG93QmFzZShWTSYgdm0sIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93LCBKU0RPTVdp
bmRvd1NoZWxsKiBzaGVsbCkKICAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KHZtLCBzdHJ1Y3R1cmUs
ICZzaGVsbC0+d29ybGQoKSwgJnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUpCkBAIC0xMjUsMjAg
KzEyNSw2IEBAIHZvaWQgSlNET01XaW5kb3dCYXNlOjpwcmludEVycm9yTWVzc2FnZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpIGNvbnN0CiAgICAgcHJpbnRFcnJvck1lc3NhZ2VGb3JGcmFtZSh3cmFw
cGVkKCkuZnJhbWUoKSwgbWVzc2FnZSk7CiB9CiAKLWJvb2wgSlNET01XaW5kb3dCYXNlOjpzdXBw
b3J0c0xlZ2FjeVByb2ZpbGluZyhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQotewotICAg
IGNvbnN0IEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PGNvbnN0IEpT
RE9NV2luZG93QmFzZSo+KG9iamVjdCk7Ci0gICAgRnJhbWUqIGZyYW1lID0gdGhpc09iamVjdC0+
d3JhcHBlZCgpLmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxl
cigpLmxlZ2FjeVByb2ZpbGVyRW5hYmxlZCgpOwotfQotCiBib29sIEpTRE9NV2luZG93QmFzZTo6
c3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQogewog
ICAgIGNvbnN0IEpTRE9NV2luZG93QmFzZSogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PGNvbnN0
IEpTRE9NV2luZG93QmFzZSo+KG9iamVjdCk7CkBAIC0xNTIsNyArMTM4LDYgQEAgYm9vbCBKU0RP
TVdpbmRvd0Jhc2U6OnN1cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3QgSlNHbG9iYWxPYmplY3Qq
IG9iamVjdCkKIAogICAgIGJvb2wgZW5hYmxlZCA9IHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIo
KS5lbmFibGVkKCk7CiAgICAgQVNTRVJUKGVuYWJsZWQgfHwgIXRoaXNPYmplY3QtPmRlYnVnZ2Vy
KCkpOwotICAgIEFTU0VSVChlbmFibGVkIHx8ICFzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZyh0aGlz
T2JqZWN0KSk7CiAgICAgcmV0dXJuIGVuYWJsZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggNTY2OWRlNS4uMTZmYzM5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAgLTYwLDcgKzYw
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6Okds
b2JhbE9iamVjdE1ldGhvZFRhYmxlIHNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGU7CiAKLSAgICAg
ICAgc3RhdGljIGJvb2wgc3VwcG9ydHNMZWdhY3lQcm9maWxpbmcoY29uc3QgSlNDOjpKU0dsb2Jh
bE9iamVjdCopOwogICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNv
bnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGJvb2wgc2hvdWxkSW50
ZXJydXB0U2NyaXB0KGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGlj
IGJvb2wgc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dChjb25zdCBKU0M6OkpTR2xv
YmFsT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5jcHAKaW5kZXggM2Q0NzZkZS4uM2IwYjMwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNl
LmNwcApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IENsYXNz
SW5mbyBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19pbmZvID0geyAiV29ya2VyR2xvYmFsU2Nv
cGUiLCAmSlNET01HbG9iYWxPYmplY3Q6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShK
U1dvcmtlckdsb2JhbFNjb3BlQmFzZSkgfTsKIAotY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFi
bGUgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7
ICZhbGxvd3NBY2Nlc3NGcm9tLCAmc3VwcG9ydHNMZWdhY3lQcm9maWxpbmcsICZzdXBwb3J0c1Jp
Y2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVG
bGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3Jl
VGltZW91dCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgJmRl
ZmF1bHRMYW5ndWFnZSB9OworY29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNXb3JrZXJH
bG9iYWxTY29wZUJhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nl
c3NGcm9tLCAmc3VwcG9ydHNSaWNoU291cmNlSW5mbywgJnNob3VsZEludGVycnVwdFNjcmlwdCwg
JmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsICZxdWV1ZVRhc2tUb0V2ZW50TG9vcCwgJnNob3VsZElu
dGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsICZkZWZhdWx0TGFuZ3VhZ2UgfTsKIAogSlNXb3JrZXJHbG9iYWxTY29w
ZUJhc2U6OkpTV29ya2VyR2xvYmFsU2NvcGVCYXNlKEpTQzo6Vk0mIHZtLCBKU0M6OlN0cnVjdHVy
ZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPFdvcmtlckdsb2JhbFNjb3BlPiBpbXBsKQogICAgIDog
SlNET01HbG9iYWxPYmplY3Qodm0sIHN0cnVjdHVyZSwgJm5vcm1hbFdvcmxkKHZtKSwgJnNfZ2xv
YmFsT2JqZWN0TWV0aG9kVGFibGUpCkBAIC03MywxMSArNzMsNiBAQCBib29sIEpTV29ya2VyR2xv
YmFsU2NvcGVCYXNlOjphbGxvd3NBY2Nlc3NGcm9tKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmpl
Y3QsIEV4ZQogICAgIHJldHVybiBKU0dsb2JhbE9iamVjdDo6YWxsb3dzQWNjZXNzRnJvbShvYmpl
Y3QsIGV4ZWMpOwogfQogCi1ib29sIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzdXBwb3J0c0xl
Z2FjeVByb2ZpbGluZyhjb25zdCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQotewotICAgIHJldHVy
biBKU0dsb2JhbE9iamVjdDo6c3VwcG9ydHNMZWdhY3lQcm9maWxpbmcob2JqZWN0KTsKLX0KLQog
Ym9vbCBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25z
dCBKU0dsb2JhbE9iamVjdCogb2JqZWN0KQogewogICAgIHJldHVybiBKU0dsb2JhbE9iamVjdDo6
c3VwcG9ydHNSaWNoU291cmNlSW5mbyhvYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmgKaW5kZXggMWJkMmIxMC4uMDA2
ZmYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9i
YWxTY29wZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckds
b2JhbFNjb3BlQmFzZS5oCkBAIC01Myw3ICs1Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgc3RhdGljIGNvbnN0IEpTQzo6R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgc19nbG9iYWxP
YmplY3RNZXRob2RUYWJsZTsKIAogICAgICAgICBzdGF0aWMgYm9vbCBhbGxvd3NBY2Nlc3NGcm9t
KGNvbnN0IEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSopOwotICAgICAgICBz
dGF0aWMgYm9vbCBzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZyhjb25zdCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7CiAgICAgICAgIHN0YXRpYyBib29sIHN1cHBvcnRzUmljaFNvdXJjZUluZm8oY29uc3Qg
SlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgICAgICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1
cHRTY3JpcHQoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgICAgICBzdGF0aWMgYm9v
bCBzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0KGNvbnN0IEpTQzo6SlNHbG9iYWxP
YmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENh
Y2hlZEZyYW1lRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNo
ZWRGcmFtZURhdGEuY3BwCmluZGV4IDFjY2NmOGEuLjU2MTZiM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcApAQCAtNDAs
NyArNDAsNiBAQAogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRy
b2xsZXIuaCIKICNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KLSNpbmNsdWRlIDxwcm9m
aWxlci9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDxy
dW50aW1lL1dlYWtHQ01hcElubGluZXMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAyZmMwNDEyLi5kMmYyZjAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNTIs
NyArNTIsNiBAQAogI2luY2x1ZGUgPGRlYnVnZ2VyL0RlYnVnZ2VyLmg+CiAjaW5jbHVkZSA8aGVh
cC9TdHJvbmdJbmxpbmVzLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5o
PgotI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRp
YWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTIxNSwxMyArMjE0LDYgQEAgdm9pZCBTY3JpcHRDb250cm9s
bGVyOjpjbGVhcldpbmRvd1NoZWxsKERPTVdpbmRvdyogbmV3RE9NV2luZG93LCBib29sIGdvaW5n
SW50b1AKICAgICAgICAgYXR0YWNoRGVidWdnZXIod2luZG93U2hlbGwsIG51bGxwdHIpOwogICAg
ICAgICB3aW5kb3dTaGVsbC0+d2luZG93KCktPnNldENvbnNvbGVDbGllbnQobnVsbHB0cik7CiAK
LSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjbGVhciBjb25zb2xlIHByb2ZpbGVzIGZvciBl
YWNoIGZyYW1lIGFzIHNvb24gYXMgdGhlIGZyYW1lIGlzIGRlc3Ryb3llZC4KLSAgICAgICAgLy8g
SW5zdGVhZCBvZiBjbGVhcmluZyBhbGwgb2YgdGhlbSB3aGVuIHRoZSBtYWluIGZyYW1lIGlzIGRl
c3Ryb3llZC4KLSAgICAgICAgaWYgKG1fZnJhbWUuaXNNYWluRnJhbWUoKSkgewotICAgICAgICAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBwYWdl
LT5jb25zb2xlKCkuY2xlYXJQcm9maWxlcygpOwotICAgICAgICB9Ci0KICAgICAgICAgd2luZG93
U2hlbGwtPndpbmRvdygpLT53aWxsUmVtb3ZlRnJvbVdpbmRvd1NoZWxsKCk7CiAgICAgICAgIHdp
bmRvd1NoZWxsLT5zZXRXaW5kb3cobmV3RE9NV2luZG93KTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0UHJvZmlsZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
YjQzZjgyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFBy
b2ZpbGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgU2NyaXB0UHJvZmlsZV9o
Ci0jZGVmaW5lIFNjcmlwdFByb2ZpbGVfaAotCi0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXR5cGVkZWYgSlNDOjpQcm9maWxlIFNjcmlwdFBy
b2ZpbGU7Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFNjcmlwdFByb2Zp
bGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmls
ZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGVOb2RlLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZkMTI4M2QuLjAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmlsZU5vZGUuaAorKysgL2Rldi9udWxs
CkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgU2NyaXB0UHJvZmlsZU5vZGVfaAotI2RlZmluZSBTY3JpcHRQcm9maWxl
Tm9kZV9oCi0KLSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlTm9kZS5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLXR5cGVkZWYgSlNDOjpQcm9maWxlTm9kZSBTY3JpcHRQcm9maWxlTm9kZTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gU2NyaXB0UHJvZmlsZU5vZGVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQppbmRleCAxMjc3YzlmLi45YWFiN2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMjY0LDEyICsyNjQsNiBAQCBz
dWIgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQKIHsKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNo
aWZ0OwogCi0gICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJTY3JpcHRQcm9maWxlTm9kZSIpIHsK
LSAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8cHJvZmlsZXIvUHJvZmlsZU5vZGUuaD4ifSA9IDE7
Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ0eXBlZGVmIEpTQzo6UHJvZmlsZU5vZGUg
U2NyaXB0UHJvZmlsZU5vZGU7XG5cbiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAg
IyBTVkdBbmltYXRlZExlbmd0aC9OdW1iZXIvZXRjLiBhcmUgdHlwZWRlZnMgYW5kIHNob3VsZCBu
b3QgYmUgZm9yd2FyZC1kZWNsYXJlZCBhcyBjbGFzc2VzLgogICAgIHJldHVybiBpZiAkY29kZUdl
bmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJGludGVyZmFjZU5hbWUpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmlu
ZGV4IGVjYmY3ODAuLjZkZTFmN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC00Miw3ICs0Miw2IEBACiAjaW5j
bHVkZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiSlNTVkdEb2N1bWVudC5oIgogI2luY2x1ZGUgIkpT
U1ZHUG9pbnQuaCIKLSNpbmNsdWRlICJKU1NjcmlwdFByb2ZpbGUuaCIKICNpbmNsdWRlICJKU1Rl
c3RDYWxsYmFjay5oIgogI2luY2x1ZGUgIkpTVGVzdENhbGxiYWNrRnVuY3Rpb24uaCIKICNpbmNs
dWRlICJKU1Rlc3ROb2RlLmgiCkBAIC01NCw3ICs1Myw2IEBACiAjaW5jbHVkZSAiU1ZHRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJTVkdQb2ludC5oIgogI2luY2x1ZGUgIlNWR1N0YXRpY1Byb3BlcnR5
VGVhck9mZi5oIgotI2luY2x1ZGUgIlNjcmlwdFByb2ZpbGUuaCIKICNpbmNsdWRlICJTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRlc3RP
YmouaCIKQEAgLTU2MSw4ICs1NTksNiBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoWFBhdGhOU1JlcwogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVs
bGFibGVTdHJpbmdNZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uTnVsbGFibGVTdHJpbmdT
dGF0aWNNZXRob2QoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3BlY2lhbE1l
dGhvZChKU0M6OkV4ZWNTdGF0ZSopOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFNlcXVlbmNlQXJnKEpTQzo6RXhl
Y1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5jZShKU0M6OkV4ZWNTdGF0ZSopOwog
SlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kV2l0aEVudW1BcmcoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRp
b25hbEVudW1BcmcoSlNDOjpFeGVjU3RhdGUqKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1B
cmdBbmREZWZhdWx0VmFsdWUoSlNDOjpFeGVjU3RhdGUqKTsKQEAgLTExMzMsOCArMTEyOSw2IEBA
IHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZhbHVl
c1tdID0KICAgICB7ICJtZXRob2RXaXRoWFBhdGhOU1Jlc29sdmVyUGFyYW1ldGVyIiwgSlNDOjpG
dW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0
aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQ
YXJhbWV0ZXIpLCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAibnVsbGFibGVTdHJpbmdNZXRo
b2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdN
ZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAibnVsbGFibGVTdHJpbmdTcGVjaWFs
TWV0aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3Ry
aW5nU3BlY2lhbE1ldGhvZCksIChpbnRwdHJfdCkgKDEpIH0gfSwKLSAgICB7ICJtZXRob2RXaXRo
U2VxdWVuY2VBcmciLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3Rh
dGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aFNlcXVlbmNlQXJnKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgIm1ldGhvZFJldHVy
bmluZ1NlcXVlbmNlIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhv
ZFJldHVybmluZ1NlcXVlbmNlKSwgKGludHB0cl90KSAoMSkgfSB9LAogICAgIHsgIm1ldGhvZFdp
dGhFbnVtQXJnIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhFbnVtQXJnKSwgKGludHB0cl90KSAoMSkgfSB9LAogICAgIHsgIm1ldGhvZFdpdGhPcHRpb25h
bEVudW1BcmciLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0
aE9wdGlvbmFsRW51bUFyZyksIChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJtZXRob2RXaXRo
T3B0aW9uYWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5z
aWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90
b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUpLCAo
aW50cHRyX3QpICgwKSB9IH0sCkBAIC00MTY0LDQwICs0MTU4LDYgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk51bGxhYmxlU3RyaW5nU3Bl
Y2lhbE1ldGgKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RX
aXRoU2VxdWVuY2VBcmcoRXhlY1N0YXRlKiBzdGF0ZSkKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1
ZSA9IHN0YXRlLT50aGlzVmFsdWUoKTsKLSAgICBhdXRvIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7Ci0gICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkKLSAgICAgICAgcmV0dXJuIHRocm93VGhpc1R5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwg
Im1ldGhvZFdpdGhTZXF1ZW5jZUFyZyIpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
Y2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwotICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRU
aGlzLT53cmFwcGVkKCk7Ci0gICAgaWYgKFVOTElLRUxZKHN0YXRlLT5hcmd1bWVudENvdW50KCkg
PCAxKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihzdGF0ZSwgY3JlYXRlTm90RW5vdWdo
QXJndW1lbnRzRXJyb3Ioc3RhdGUpKTsKLSAgICBhdXRvIHNlcXVlbmNlQXJnID0gKHRvUmVmUHRy
TmF0aXZlQXJyYXk8U2NyaXB0UHJvZmlsZSwgSlNTY3JpcHRQcm9maWxlPihzdGF0ZSwgc3RhdGUt
PmFyZ3VtZW50KDApLCAmSlNTY3JpcHRQcm9maWxlOjp0b1dyYXBwZWQpKTsKLSAgICBpZiAoVU5M
SUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBpbXBsLm1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhXVEZN
b3ZlKHNlcXVlbmNlQXJnKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5l
ZCgpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5
cGVGdW5jdGlvbk1ldGhvZFJldHVybmluZ1NlcXVlbmNlKEV4ZWNTdGF0ZSogc3RhdGUpCi17Ci0g
ICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBzdGF0ZS0+dGhpc1ZhbHVlKCk7Ci0gICAgYXV0byBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPih0aGlzVmFsdWUpOwotICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpCi0gICAgICAgIHJldHVybiB0aHJvd1RoaXNUeXBlRXJyb3Io
KnN0YXRlLCAiVGVzdE9iaiIsICJtZXRob2RSZXR1cm5pbmdTZXF1ZW5jZSIpOwotICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwotICAg
IGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAgaWYgKFVOTElLRUxZKHN0
YXRlLT5hcmd1bWVudENvdW50KCkgPCAxKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihz
dGF0ZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Ioc3RhdGUpKTsKLSAgICBhdXRvIGxv
bmdBcmcgPSBjb252ZXJ0PGludDMyX3Q+KCpzdGF0ZSwgc3RhdGUtPmFyZ3VtZW50KDApLCBOb3Jt
YWxDb252ZXJzaW9uKTsKLSAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkK
LSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLSAgICBKU1Zh
bHVlIHJlc3VsdCA9IGpzQXJyYXkoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCBp
bXBsLm1ldGhvZFJldHVybmluZ1NlcXVlbmNlKFdURk1vdmUobG9uZ0FyZykpKTsKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Ci19Ci0KIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZyhFeGVjU3Rh
dGUqIHN0YXRlKQogewogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gc3RhdGUtPnRoaXNWYWx1ZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRs
CmluZGV4IGU5Y2JiNmUuLmMzZTE2NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTExNyw5ICsxMTcsNiBAQCBlbnVtIFRlc3RD
b25maWRlbmNlIHsgImhpZ2giLCAia2luZGEtbG93IiB9OwogICAgIHN0YXRpYyBET01TdHJpbmc/
IG51bGxhYmxlU3RyaW5nU3RhdGljTWV0aG9kKCk7CiAgICAgZ2V0dGVyIERPTVN0cmluZz8gbnVs
bGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogCi0gICAgdm9p
ZCBtZXRob2RXaXRoU2VxdWVuY2VBcmcoc2VxdWVuY2U8U2NyaXB0UHJvZmlsZT4gc2VxdWVuY2VB
cmcpOwotICAgIHNlcXVlbmNlPFNjcmlwdFByb2ZpbGU+IG1ldGhvZFJldHVybmluZ1NlcXVlbmNl
KGxvbmcgbG9uZ0FyZyk7Ci0KICAgICB2b2lkIG1ldGhvZFdpdGhFbnVtQXJnKFRlc3RFbnVtVHlw
ZSBlbnVtQXJnKTsKICAgICB2b2lkIG1ldGhvZFdpdGhPcHRpb25hbEVudW1Bcmcob3B0aW9uYWwg
VGVzdEVudW1UeXBlIGVudW1BcmcpOwogICAgIHZvaWQgbWV0aG9kV2l0aE9wdGlvbmFsRW51bUFy
Z0FuZERlZmF1bHRWYWx1ZShvcHRpb25hbCBUZXN0RW51bVR5cGUgZW51bUFyZyA9ICJFbnVtVmFs
dWUxIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDk0OGZiMTIuLjI2NGZiNDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC05Nyw3ICs5Nyw2IEBACiAjaW5jbHVkZSAiV2Vi
S2l0Q1NTRmlsdGVyVmFsdWUuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NSZWdpb25SdWxlLmgiCiAj
aW5jbHVkZSAiV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8Yml0c2V0PgogI2luY2x1ZGUgPGxpbWl0cy5oPgog
I2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDJl
ZDI1MGYxLi41YjVkMDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE4Miw3ICsxODIs
NiBAQAogI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5oIgogI2luY2x1ZGUgIlhQYXRoUmVzdWx0
LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Q
cm9maWxlLmg+CiAjaW5jbHVkZSA8Y3RpbWU+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENh
bGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9u
LmgKaW5kZXggNDg0OTIzNS4uYTAxNzBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oCkBAIC0zMyw3
ICszMyw2IEBACiAjZGVmaW5lIEluc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb25faAogCiAj
aW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCi0jaW5jbHVkZSAiU2NyaXB0UHJv
ZmlsZS5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaD4KICNpbmNsdWRl
IDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAKQEAgLTg1LDkgKzg0LDkgQEAgaW5saW5l
IHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdGFydFByb2ZpbGluZyhQYWdlJiBwYWdl
LCBKU0M6OkV4ZWNTdGF0ZSoKICAgICBzdGFydFByb2ZpbGluZ0ltcGwoaW5zdHJ1bWVudGluZ0Fn
ZW50c0ZvclBhZ2UocGFnZSksIGV4ZWMsIHRpdGxlKTsKIH0KIAotaW5saW5lIFJlZlB0cjxKU0M6
OlByb2ZpbGU+IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFByb2ZpbGluZyhQYWdlJiBw
YWdlLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nICZ0aXRsZSkKK2lubGluZSB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFByb2ZpbGluZyhQYWdlJiBwYWdlLCBK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nICZ0aXRsZSkKIHsKLSAgICByZXR1cm4g
c3RvcFByb2ZpbGluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSksIGV4ZWMs
IHRpdGxlKTsKKyAgICBzdG9wUHJvZmlsaW5nSW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFn
ZShwYWdlKSwgZXhlYywgdGl0bGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXgg
ZGIxY2ZhZC4uMDQzODVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNzIsNyArNzIsNiBAQAogI2luY2x1ZGUgPGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckhlYXBBZ2VudC5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
U2NyaXB0UHJvZmlsZXJBZ2VudC5oPgotI2luY2x1ZGUgPHByb2ZpbGVyL0xlZ2FjeVByb2ZpbGVy
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDx3dGYvU3RvcHdhdGNo
Lmg+CiAKQEAgLTE3MSwxNCArMTcwLDExIEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3Rv
ckNvbnRyb2xsZXIoUGFnZSYgcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0b3JDCiAgICAg
bV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRXZWJDb25zb2xlQWdlbnQoY29uc29sZUFnZW50UHRy
LmdldCgpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZShjb25zb2xlQWdlbnRQdHIpKTsK
IAotICAgIGF1dG8gdGltZWxpbmVBZ2VudFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9y
VGltZWxpbmVBZ2VudD4ocGFnZUNvbnRleHQsIHNjcmlwdFByb2ZpbGVyQWdlbnQsIGhlYXBBZ2Vu
dCwgcGFnZUFnZW50KTsKLSAgICBtX3RpbWVsaW5lQWdlbnQgPSB0aW1lbGluZUFnZW50UHRyLmdl
dCgpOwotICAgIG1fYWdlbnRzLmFwcGVuZChXVEZNb3ZlKHRpbWVsaW5lQWdlbnRQdHIpKTsKLQog
ICAgIGF1dG8gZGVidWdnZXJBZ2VudFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZURlYnVnZ2Vy
QWdlbnQ+KHBhZ2VDb250ZXh0LCBwYWdlQWdlbnQsIG1fb3ZlcmxheS5nZXQoKSk7CiAgICAgUGFn
ZURlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBkZWJ1Z2dlckFnZW50UHRyLmdldCgpOwog
ICAgIG1fYWdlbnRzLmFwcGVuZChXVEZNb3ZlKGRlYnVnZ2VyQWdlbnRQdHIpKTsKIAorICAgIG1f
YWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvclRpbWVsaW5lQWdlbnQ+KHBh
Z2VDb250ZXh0LCBzY3JpcHRQcm9maWxlckFnZW50LCBoZWFwQWdlbnQsIHBhZ2VBZ2VudCkpOwog
ICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckRPTURlYnVnZ2Vy
QWdlbnQ+KHBhZ2VDb250ZXh0LCBtX2RvbUFnZW50LCBkZWJ1Z2dlckFnZW50KSk7CiAgICAgbV9h
Z2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFn
ZW50PihwYWdlQ29udGV4dCwgcGFnZUFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6
bWFrZV91bmlxdWU8SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ+KHBhZ2VDb250ZXh0KSk7CkBAIC00
MTQsMjcgKzQxMCw2IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0SW5kaWNhdGluZyhi
b29sIGluZGljYXRpbmcpCiAjZW5kaWYKIH0KIAotYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjps
ZWdhY3lQcm9maWxlckVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2xlZ2FjeVByb2Zp
bGVyRW5hYmxlZDsKLX0KLQotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRMZWdhY3lQcm9m
aWxlckVuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAgbV9sZWdhY3lQcm9maWxlckVuYWJsZWQg
PSBlbmFibGU7Ci0KLSAgICBFcnJvclN0cmluZyB1bnVzZWQ7Ci0gICAgaWYgKGVuYWJsZSkgewot
ICAgICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFBlcnNpc3RlbnRJbnNwZWN0b3JUaW1l
bGluZUFnZW50KG1fdGltZWxpbmVBZ2VudCk7Ci0gICAgICAgIG1fc2NyaXB0RGVidWdTZXJ2ZXIu
cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsKLSAgICAgICAgbV90aW1lbGluZUFnZW50LT5zdGFy
dCh1bnVzZWQpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+
c2V0UGVyc2lzdGVudEluc3BlY3RvclRpbWVsaW5lQWdlbnQobnVsbHB0cik7Ci0gICAgICAgIG1f
c2NyaXB0RGVidWdTZXJ2ZXIucmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsKLSAgICAgICAgbV90
aW1lbGluZUFnZW50LT5zdG9wKHVudXNlZCk7Ci0gICAgfQotfQotCiBib29sIEluc3BlY3RvckNv
bnRyb2xsZXI6OmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdAogewogICAgIHJldHVybiBt
X3BhZ2Uuc2V0dGluZ3MoKS5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCBjYmY1YzE5Li5hNTg5
NmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmgKQEAgLTYzLDcgKzYzLDYgQEAgY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQ7CiBjbGFzcyBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudDsKIGNsYXNzIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjsKIGNs
YXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKLWNsYXNzIEluc3BlY3RvclRpbWVsaW5lQWdlbnQ7CiBj
bGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgTm9kZTsKIGNsYXNzIFBhZ2U7CkBAIC0x
MTEsOSArMTEwLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNVbmRlclRlc3QoYm9vbCBpc1Vu
ZGVyVGVzdCkgeyBtX2lzVW5kZXJUZXN0ID0gaXNVbmRlclRlc3Q7IH0KICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBzY3JpcHQp
OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBsZWdhY3lQcm9maWxlckVuYWJsZWQoKSBjb25z
dDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldExlZ2FjeVByb2ZpbGVyRW5hYmxlZChib29s
KTsKLQogICAgIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50KCkgY29uc3QgeyByZXR1
cm4gbV9pbnNwZWN0b3JDbGllbnQ7IH0KICAgICBJbnNwZWN0b3JGcm9udGVuZENsaWVudCogaW5z
cGVjdG9yRnJvbnRlbmRDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvckZyb250ZW5k
Q2xpZW50OyB9CiAgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQoKSBjb25zdCB7IHJl
dHVybiBtX3BhZ2VBZ2VudDsgfQpAQCAtMTQ4LDExICsxNDQsOSBAQCBwcml2YXRlOgogICAgIElu
c3BlY3Rvcjo6SW5zcGVjdG9yQWdlbnQqIG1faW5zcGVjdG9yQWdlbnQgeyBudWxscHRyIH07CiAg
ICAgSW5zcGVjdG9yRE9NQWdlbnQqIG1fZG9tQWdlbnQgeyBudWxscHRyIH07CiAgICAgSW5zcGVj
dG9yUGFnZUFnZW50KiBtX3BhZ2VBZ2VudCB7IG51bGxwdHIgfTsKLSAgICBJbnNwZWN0b3JUaW1l
bGluZUFnZW50KiBtX3RpbWVsaW5lQWdlbnQgeyBudWxscHRyIH07CiAKICAgICBib29sIG1faXNV
bmRlclRlc3QgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0F1dG9tYXRpY0luc3BlY3Rpb24geyBm
YWxzZSB9OwotICAgIGJvb2wgbV9sZWdhY3lQcm9maWxlckVuYWJsZWQgeyBmYWxzZSB9OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA5OTAwN2UwLi5hOTMzODY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcApAQCAtNjcsNyArNjcsNiBAQAogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3Jp
cHRBcmd1bWVudHMuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAj
aW5jbHVkZSA8aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg+Ci0jaW5j
bHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvQ29uc29sZVR5cGVz
Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KQEAgLTg5NCwxMSArODkzLDEwIEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpzdGFydFByb2ZpbGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVuCiAg
ICAgICAgIHRpbWVsaW5lQWdlbnQtPnN0YXJ0RnJvbUNvbnNvbGUoZXhlYywgdGl0bGUpOwogfQog
Ci1SZWZQdHI8SlNDOjpQcm9maWxlPiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BQcm9m
aWxpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEpTQzo6
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlKQordm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OnN0b3BQcm9maWxpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxl
KQogewogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFnZW50ID0gaW5z
dHJ1bWVudGluZ0FnZW50cy5wZXJzaXN0ZW50SW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQotICAg
ICAgICByZXR1cm4gdGltZWxpbmVBZ2VudC0+c3RvcEZyb21Db25zb2xlKGV4ZWMsIHRpdGxlKTsK
LSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+c3RvcEZyb21Db25z
b2xlKGV4ZWMsIHRpdGxlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZE9wZW5EYXRhYmFzZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50
cywgUmVmUHRyPERhdGFiYXNlPiYmIGRhdGFiYXNlLCBjb25zdCBTdHJpbmcmIGRvbWFpbiwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggZDlkMTQ0
OC4uN2Q2NzdlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaApAQCAtNjEsMTAgKzYxLDYgQEAgY2xhc3MgU2NyaXB0QXJndW1l
bnRzOwogY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogfQogCi1uYW1lc3BhY2UgSlNDIHsKLWNsYXNz
IFByb2ZpbGU7Ci19Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NTUnVsZTsKQEAg
LTIxOCw3ICsyMTQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkRmlyZUFuaW1hdGlv
bkZyYW1lKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogCiAgICAgc3Rh
dGljIHZvaWQgc3RhcnRQcm9maWxpbmcoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxKU0M6OlByb2ZpbGU+IHN0b3BQcm9maWxp
bmcoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CisgICAgc3Rh
dGljIHZvaWQgc3RvcFByb2ZpbGluZyhQYWdlJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJp
bmcmIHRpdGxlKTsKIAogICAgIHN0YXRpYyB2b2lkIGRpZE9wZW5EYXRhYmFzZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUmVmUHRyPERhdGFiYXNlPiYmLCBjb25zdCBTdHJpbmcmIGRvbWFpbiwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pOwogCkBAIC0zODcsNyAr
MzgzLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRGaXJlQW5pbWF0aW9uRnJhbWVJ
bXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogCiAgICAgc3RhdGlj
IHZvaWQgc3RhcnRQcm9maWxpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHN0YXRpYyBSZWZQdHI8SlNDOjpQcm9m
aWxlPiBzdG9wUHJvZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyAgICBzdGF0aWMgdm9pZCBzdG9wUHJvZmlsaW5n
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IHRpdGxlKTsKIAogICAgIHN0YXRpYyB2b2lkIGRpZE9wZW5EYXRhYmFzZUltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyYsIFJlZlB0cjxEYXRhYmFzZT4mJiwgY29uc3QgU3RyaW5nJiBkb21haW4sIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwCmluZGV4IDcw
MWJhN2IuLjJjOGUxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNsdWRlIDxpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaD4KICNpbmNsdWRlIDxpbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oPgotI2luY2x1ZGUgPHByb2ZpbGVyL0xl
Z2FjeVByb2ZpbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1N0b3B3YXRjaC5oPgogCiAjaWYgUExBVEZP
Uk0oSU9TKQpAQCAtMjQyLDU4ICsyNDEsMTQgQEAgZG91YmxlIEluc3BlY3RvclRpbWVsaW5lQWdl
bnQ6OnRpbWVzdGFtcCgpCiAgICAgcmV0dXJuIG1fZW52aXJvbm1lbnQuZXhlY3V0aW9uU3RvcHdh
dGNoKCktPmVsYXBzZWRUaW1lKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
c3RhcnRGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nICZ0aXRs
ZSkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnRGcm9tQ29uc29sZShKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtp
dC5vcmcvYi8xNTM0OTk+IFdlYiBJbnNwZWN0b3I6IGNvbnNvbGUucHJvZmlsZSBzaG91bGQgdXNl
IHRoZSBuZXcgU2FtcGxpbmcgUHJvZmlsZXIKLQotICAgIC8vIE9ubHkgYWxsb3cgcmVjb3JkaW5n
IG9mIGEgcHJvZmlsZSBpZiBpdCBpcyBhbm9ueW1vdXMgKGVtcHR5IHRpdGxlKSBvciBkb2VzIG5v
dCBtYXRjaAotICAgIC8vIHRoZSB0aXRsZSBvZiBhbiBhbHJlYWR5IHJlY29yZGluZyBwcm9maWxl
LgotICAgIGlmICghdGl0bGUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGZvciAoY29uc3QgVGltZWxp
bmVSZWNvcmRFbnRyeSYgcmVjb3JkIDogbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzKSB7
Ci0gICAgICAgICAgICBTdHJpbmcgcmVjb3JkVGl0bGU7Ci0gICAgICAgICAgICByZWNvcmQuZGF0
YS0+Z2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgidGl0bGUiKSwgcmVjb3JkVGl0bGUpOwotICAgICAg
ICAgICAgaWYgKHJlY29yZFRpdGxlID09IHRpdGxlKQotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICghbV9lbmFibGVkICYmIG1fcGVuZGluZ0NvbnNv
bGVQcm9maWxlUmVjb3Jkcy5pc0VtcHR5KCkpCi0gICAgICAgIGludGVybmFsU3RhcnQoKTsKLQot
ICAgIEpTQzo6TGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCktPnN0YXJ0UHJvZmlsaW5nKGV4ZWMs
IHRpdGxlLCBtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpKTsKLQotICAgIG1fcGVu
ZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jkcy5hcHBlbmQoY3JlYXRlUmVjb3JkRW50cnkoVGltZWxp
bmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVDb25zb2xlUHJvZmlsZURhdGEodGl0bGUpLCBUaW1lbGlu
ZVJlY29yZFR5cGU6OkNvbnNvbGVQcm9maWxlLCB0cnVlLCBmcmFtZUZyb21FeGVjU3RhdGUoZXhl
YykpKTsKIH0KIAotUmVmUHRyPEpTQzo6UHJvZmlsZT4gSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
c3RvcEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxl
KQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdG9wRnJvbUNvbnNvbGUoSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBTdHJpbmcmKQogewogICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTUzNDk5PiBXZWIgSW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUgc2hvdWxkIHVzZSB0
aGUgbmV3IFNhbXBsaW5nIFByb2ZpbGVyCi0KLSAgICAvLyBTdG9wIHByb2ZpbGVzIGluIHJldmVy
c2Ugb3JkZXIuIElmIHRoZSB0aXRsZSBpcyBlbXB0eSwgdGhlbiBzdG9wIHRoZSBsYXN0IHByb2Zp
bGUuCi0gICAgLy8gT3RoZXJ3aXNlLCBtYXRjaCB0aGUgdGl0bGUgb2YgdGhlIHByb2ZpbGUgdG8g
c3RvcC4KLSAgICBmb3IgKHB0cmRpZmZfdCBpID0gbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNv
cmRzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgIGNvbnN0IFRpbWVsaW5lUmVj
b3JkRW50cnkmIHJlY29yZCA9IG1fcGVuZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jkc1tpXTsKLQot
ICAgICAgICBTdHJpbmcgcmVjb3JkVGl0bGU7Ci0gICAgICAgIHJlY29yZC5kYXRhLT5nZXRTdHJp
bmcoQVNDSUlMaXRlcmFsKCJ0aXRsZSIpLCByZWNvcmRUaXRsZSk7Ci0KLSAgICAgICAgaWYgKHRp
dGxlLmlzRW1wdHkoKSB8fCByZWNvcmRUaXRsZSA9PSB0aXRsZSkgewotICAgICAgICAgICAgUmVm
UHRyPEpTQzo6UHJvZmlsZT4gcHJvZmlsZSA9IEpTQzo6TGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVy
KCktPnN0b3BQcm9maWxpbmcoZXhlYywgdGl0bGUpOwotICAgICAgICAgICAgaWYgKHByb2ZpbGUp
Ci0gICAgICAgICAgICAgICAgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjphcHBlbmRQcm9maWxlKHJl
Y29yZC5kYXRhLmdldCgpLCBwcm9maWxlLmNvcHlSZWYoKSk7Ci0KLSAgICAgICAgICAgIGRpZENv
bXBsZXRlUmVjb3JkRW50cnkocmVjb3JkKTsKLQotICAgICAgICAgICAgbV9wZW5kaW5nQ29uc29s
ZVByb2ZpbGVSZWNvcmRzLnJlbW92ZShpKTsKLQotICAgICAgICAgICAgaWYgKCFtX2VuYWJsZWRG
cm9tRnJvbnRlbmQgJiYgbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzLmlzRW1wdHkoKSkK
LSAgICAgICAgICAgICAgICBpbnRlcm5hbFN0b3AoKTsKLQotICAgICAgICAgICAgcmV0dXJuIHBy
b2ZpbGU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYg
c2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIEZyYW1lKiBmcmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4IDg4Mzg4ZmMu
LmRlOGQ3MmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JU
aW1lbGluZUFnZW50LmgKQEAgLTQxLDEwICs0MSw2IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL1Nj
cmlwdERlYnVnTGlzdGVuZXIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLW5hbWVzcGFj
ZSBKU0MgewotY2xhc3MgUHJvZmlsZTsKLX0KLQogbmFtZXNwYWNlIEluc3BlY3RvciB7CiBjbGFz
cyBJbnNwZWN0b3JIZWFwQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50
OwpAQCAtMTE0LDcgKzExMCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZy
b20gV2ViQ29yZS4KICAgICB2b2lkIHN0YXJ0RnJvbUNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBTdHJpbmcgJnRpdGxlKTsKLSAgICBSZWZQdHI8SlNDOjpQcm9maWxlPiBzdG9wRnJvbUNv
bnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyAgICB2b2lkIHN0
b3BGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogCiAg
ICAgLy8gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIGNhbGxiYWNrcy4KICAgICB2b2lkIGRpZElu
c3RhbGxUaW1lcihpbnQgdGltZXJJZCwgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyB0aW1lb3V0
LCBib29sIHNpbmdsZVNob3QsIEZyYW1lKik7CkBAIC0yMDcsOCArMjAzLDYgQEAgcHJpdmF0ZToK
ICAgICBpbnQgbV9pZCB7IDEgfTsKICAgICBpbnQgbV9tYXhDYWxsU3RhY2tEZXB0aCB7IDUgfTsK
IAotICAgIFZlY3RvcjxUaW1lbGluZVJlY29yZEVudHJ5PiBtX3BlbmRpbmdDb25zb2xlUHJvZmls
ZVJlY29yZHM7Ci0KICAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Vu
YWJsZWRGcm9tRnJvbnRlbmQgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAxOTdkMmUxLi5hODZlZDEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKQEAgLTQ1LDcg
KzQ1LDYgQEAKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmg+CiAj
aW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPGluc3BlY3Rv
ci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5o
PgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiB1c2luZyBuYW1lc3BhY2UgSW5z
cGVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1l
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3Bw
CmluZGV4IGE1ZmFlNGMuLjRmNGZhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9QYWdlUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
UGFnZVJ1bnRpbWVBZ2VudC5jcHAKQEAgLTQ1LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oPgogI2luY2x1
ZGUgPGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdE1hbmFnZXIuaD4KLSNpbmNsdWRlIDxwcm9maWxl
ci9Qcm9maWxlLmg+CiAKIHVzaW5nIEluc3BlY3Rvcjo6UHJvdG9jb2w6OlJ1bnRpbWU6OkV4ZWN1
dGlvbkNvbnRleHREZXNjcmlwdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1NjcmlwdFByb2ZpbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1Njcmlw
dFByb2ZpbGUuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTg0YTVhLi4wMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbAorKysg
L2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLVsKLSAgICBOb0ludGVyZmFjZU9iamVjdCwKLSAgICBTa2lwVlRhYmxl
VmFsaWRhdGlvbiwKLSAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKLV0gaW50ZXJmYWNl
IFNjcmlwdFByb2ZpbGUgewotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGl0bGU7
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgdWlkOwotICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBTY3JpcHRQcm9maWxlTm9kZSByb290Tm9kZTsKLX07Ci0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMGU1M2RiLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9TY3JpcHRQcm9maWxlTm9kZS5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgTm9J
bnRlcmZhY2VPYmplY3QsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKLSAgICBFeHBv
cnRNYWNybz1XRUJDT1JFX0VYUE9SVCwKLV0gaW50ZXJmYWNlIFNjcmlwdFByb2ZpbGVOb2RlIHsK
LSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBpZDsKLQotICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgZnVuY3Rpb25OYW1lOwotCi0gICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyB1cmw7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bGluZU51bWJlcjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBjb2x1bW5O
dW1iZXI7Ci0KLSAgICBzZXF1ZW5jZTxTY3JpcHRQcm9maWxlTm9kZT4gY2hpbGRyZW4oKTsKLX07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0
b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3Rvcnku
Y3BwCmluZGV4IGY0YzY3YzMuLjY4Zjc1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuY3BwCkBAIC0zOSw3ICszOSw2IEBACiAjaW5j
bHVkZSA8aW5zcGVjdG9yL1NjcmlwdEJyZWFrcG9pbnQuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3Iv
U2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0Zh
Y3RvcnkuaD4KLSNpbmNsdWRlIDxwcm9maWxlci9Qcm9maWxlLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBJbnNwZWN0b3I7CiAKQEAgLTE1Miw2MyArMTUxLDQgQEAgdm9pZCBUaW1lbGluZVJlY29yZEZh
Y3Rvcnk6OmFwcGVuZExheW91dFJvb3QoSW5zcGVjdG9yT2JqZWN0KiBkYXRhLCBjb25zdCBGbG9h
dFEKICAgICBkYXRhLT5zZXRBcnJheShBU0NJSUxpdGVyYWwoInJvb3QiKSwgY3JlYXRlUXVhZChx
dWFkKSk7CiB9CiAKLXN0YXRpYyBSZWY8UHJvdG9jb2w6OlRpbWVsaW5lOjpDUFVQcm9maWxlTm9k
ZUFnZ3JlZ2F0ZUNhbGxJbmZvPiBidWlsZEFnZ3JlZ2F0ZUNhbGxJbmZvSW5zcGVjdG9yT2JqZWN0
KGNvbnN0IEpTQzo6UHJvZmlsZU5vZGUqIG5vZGUpCi17Ci0gICAgZG91YmxlIHN0YXJ0VGltZSA9
IG5vZGUtPmNhbGxzKClbMF0uc3RhcnRUaW1lKCk7Ci0gICAgZG91YmxlIGVuZFRpbWUgPSBub2Rl
LT5jYWxscygpLmxhc3QoKS5zdGFydFRpbWUoKSArIG5vZGUtPmNhbGxzKCkubGFzdCgpLmVsYXBz
ZWRUaW1lKCk7Ci0KLSAgICBkb3VibGUgdG90YWxUaW1lID0gMDsKLSAgICBmb3IgKGNvbnN0IEpT
Qzo6UHJvZmlsZU5vZGU6OkNhbGwmIGNhbGwgOiBub2RlLT5jYWxscygpKQotICAgICAgICB0b3Rh
bFRpbWUgKz0gY2FsbC5lbGFwc2VkVGltZSgpOwotCi0gICAgcmV0dXJuIFByb3RvY29sOjpUaW1l
bGluZTo6Q1BVUHJvZmlsZU5vZGVBZ2dyZWdhdGVDYWxsSW5mbzo6Y3JlYXRlKCkKLSAgICAgICAg
LnNldENhbGxDb3VudChub2RlLT5jYWxscygpLnNpemUoKSkKLSAgICAgICAgLnNldFN0YXJ0VGlt
ZShzdGFydFRpbWUpCi0gICAgICAgIC5zZXRFbmRUaW1lKGVuZFRpbWUpCi0gICAgICAgIC5zZXRU
b3RhbFRpbWUodG90YWxUaW1lKQotICAgICAgICAucmVsZWFzZSgpOwotfQotCi1zdGF0aWMgUmVm
PFByb3RvY29sOjpUaW1lbGluZTo6Q1BVUHJvZmlsZU5vZGU+IGJ1aWxkSW5zcGVjdG9yT2JqZWN0
KGNvbnN0IEpTQzo6UHJvZmlsZU5vZGUqIG5vZGUpCi17Ci0gICAgYXV0byByZXN1bHQgPSBQcm90
b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlOjpjcmVhdGUoKQotICAgICAgICAuc2V0SWQo
bm9kZS0+aWQoKSkKLSAgICAgICAgLnNldENhbGxJbmZvKGJ1aWxkQWdncmVnYXRlQ2FsbEluZm9J
bnNwZWN0b3JPYmplY3Qobm9kZSkpCi0gICAgICAgIC5yZWxlYXNlKCk7Ci0KLSAgICBpZiAoIW5v
ZGUtPmZ1bmN0aW9uTmFtZSgpLmlzRW1wdHkoKSkKLSAgICAgICAgcmVzdWx0LT5zZXRGdW5jdGlv
bk5hbWUobm9kZS0+ZnVuY3Rpb25OYW1lKCkpOwotCi0gICAgaWYgKCFub2RlLT51cmwoKS5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgcmVzdWx0LT5zZXRVcmwobm9kZS0+dXJsKCkpOwotICAgICAgICBy
ZXN1bHQtPnNldExpbmVOdW1iZXIobm9kZS0+bGluZU51bWJlcigpKTsKLSAgICAgICAgcmVzdWx0
LT5zZXRDb2x1bW5OdW1iZXIobm9kZS0+Y29sdW1uTnVtYmVyKCkpOwotICAgIH0KLQotICAgIGlm
ICghbm9kZS0+Y2hpbGRyZW4oKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgYXV0byBjaGlsZHJlbiA9
IFByb3RvY29sOjpBcnJheTxQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlPjo6Y3Jl
YXRlKCk7Ci0gICAgICAgIGZvciAoUmVmUHRyPEpTQzo6UHJvZmlsZU5vZGU+IHByb2ZpbGVOb2Rl
IDogbm9kZS0+Y2hpbGRyZW4oKSkKLSAgICAgICAgICAgIGNoaWxkcmVuLT5hZGRJdGVtKGJ1aWxk
SW5zcGVjdG9yT2JqZWN0KHByb2ZpbGVOb2RlLmdldCgpKSk7Ci0gICAgICAgIHJlc3VsdC0+c2V0
Q2hpbGRyZW4oV1RGTW92ZShjaGlsZHJlbikpOwotICAgIH0KLQotICAgIHJldHVybiByZXN1bHQ7
Ci19Ci0KLXN0YXRpYyBSZWY8UHJvdG9jb2w6OlRpbWVsaW5lOjpDUFVQcm9maWxlPiBidWlsZFBy
b2ZpbGVJbnNwZWN0b3JPYmplY3QoY29uc3QgSlNDOjpQcm9maWxlKiBwcm9maWxlKQotewotICAg
IGF1dG8gcm9vdE5vZGVzID0gUHJvdG9jb2w6OkFycmF5PFByb3RvY29sOjpUaW1lbGluZTo6Q1BV
UHJvZmlsZU5vZGU+OjpjcmVhdGUoKTsKLSAgICBmb3IgKFJlZlB0cjxKU0M6OlByb2ZpbGVOb2Rl
PiBwcm9maWxlTm9kZSA6IHByb2ZpbGUtPnJvb3ROb2RlKCktPmNoaWxkcmVuKCkpCi0gICAgICAg
IHJvb3ROb2Rlcy0+YWRkSXRlbShidWlsZEluc3BlY3Rvck9iamVjdChwcm9maWxlTm9kZS5nZXQo
KSkpOwotCi0gICAgcmV0dXJuIFByb3RvY29sOjpUaW1lbGluZTo6Q1BVUHJvZmlsZTo6Y3JlYXRl
KCkKLSAgICAgICAgLnNldFJvb3ROb2RlcyhXVEZNb3ZlKHJvb3ROb2RlcykpCi0gICAgICAgIC5y
ZWxlYXNlKCk7Ci19Ci0KLXZvaWQgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjphcHBlbmRQcm9maWxl
KEluc3BlY3Rvck9iamVjdCogZGF0YSwgUmVmUHRyPEpTQzo6UHJvZmlsZT4mJiBwcm9maWxlKQot
ewotICAgIGRhdGEtPnNldFZhbHVlKEFTQ0lJTGl0ZXJhbCgicHJvZmlsZSIpLCBidWlsZFByb2Zp
bGVJbnNwZWN0b3JPYmplY3QocHJvZmlsZS5nZXQoKSkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNv
cmRGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0
b3J5LmgKaW5kZXggMDQyMTRjMy4uNGMwMjI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaApAQCAtMzYsMTAgKzM2LDYgQEAKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi1u
YW1lc3BhY2UgSlNDIHsKLWNsYXNzIFByb2ZpbGU7Ci19Ci0KIG5hbWVzcGFjZSBJbnNwZWN0b3Ig
ewogc3RydWN0IFNjcmlwdEJyZWFrcG9pbnRBY3Rpb247CiB9CkBAIC02NSw3ICs2MSw2IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiBjcmVhdGVQ
YWludERhdGEoY29uc3QgRmxvYXRRdWFkJik7CiAKICAgICBzdGF0aWMgdm9pZCBhcHBlbmRMYXlv
dXRSb290KEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0KiBkYXRhLCBjb25zdCBGbG9hdFF1YWQm
KTsKLSAgICBzdGF0aWMgdm9pZCBhcHBlbmRQcm9maWxlKEluc3BlY3Rvcjo6SW5zcGVjdG9yT2Jq
ZWN0KiwgUmVmUHRyPEpTQzo6UHJvZmlsZT4mJik7CiAKIHByaXZhdGU6CiAgICAgVGltZWxpbmVS
ZWNvcmRGYWN0b3J5KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggZTc4MWI3
Yy4uNzhkNmZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTAxLDcgKzEwMSw2
IEBACiAjaW5jbHVkZSAiV2ViS2l0UG9pbnQuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5o
IgogI2luY2x1ZGUgIldpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5oIgotI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8
aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRD
YWxsU3RhY2tGYWN0b3J5Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAzMjBmODI4Li40NjNmYmFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTk2LDcgKzk2LDYgQEAKICNpbmNsdWRlICJWaXNpdGVk
TGlua1N0b3JlLmgiCiAjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2lkZ2V0
LmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvZmlsZS5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNs
aWVudC5jcHAKaW5kZXggNWNmYTk3Yi4uOWQwZTBhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uc29sZUNsaWVudC5jcHAKQEAgLTE5MSw4ICsxOTEsNyBAQCB2b2lkIFBhZ2VDb25zb2xl
Q2xpZW50Ojpwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxl
KQogdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6cHJvZmlsZUVuZChKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzE1MzQ5OT4gV2ViIEluc3BlY3RvcjogY29uc29sZS5wcm9maWxlIHNob3VsZCB1c2Ug
dGhlIG5ldyBTYW1wbGluZyBQcm9maWxlcgotICAgIGlmIChSZWZQdHI8SlNDOjpQcm9maWxlPiBw
cm9maWxlID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdG9wUHJvZmlsaW5nKG1fcGFnZSwg
ZXhlYywgdGl0bGUpKQotICAgICAgICBtX3Byb2ZpbGVzLmFwcGVuZChXVEZNb3ZlKHByb2ZpbGUp
KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BQcm9maWxpbmcobV9wYWdlLCBl
eGVjLCB0aXRsZSk7CiB9CiAKIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OnRha2VIZWFwU25hcHNo
b3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKQpAQCAtMjE2LDkgKzIxNSw0
IEBAIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OnRpbWVTdGFtcChKU0M6OkV4ZWNTdGF0ZSosIFJl
ZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYgYXJnCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojpjb25zb2xlVGltZVN0YW1wKG1fcGFnZS5tYWluRnJhbWUoKSwgV1RGTW92ZShhcmd1bWVudHMp
KTsKIH0KIAotdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6Y2xlYXJQcm9maWxlcygpCi17Ci0gICAg
bV9wcm9maWxlcy5jbGVhcigpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKaW5kZXggY2U1YzUxOC4uZWFlZjMxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaApAQCAtMzAsNyArMzAsNiBAQAog
I2RlZmluZSBQYWdlQ29uc29sZUNsaWVudF9oCiAKICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0
Q2FsbFN0YWNrLmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgogI2luY2x1ZGUgPHJ1
bnRpbWUvQ29uc29sZUNsaWVudC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKQEAgLTQz
LDggKzQyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBQ
YWdlOwogCi10eXBlZGVmIFZlY3RvcjxSZWZQdHI8SlNDOjpQcm9maWxlPj4gUHJvZmlsZXNBcnJh
eTsKLQogY2xhc3MgV0VCQ09SRV9FWFBPUlQgUGFnZUNvbnNvbGVDbGllbnQgZmluYWwgOiBwdWJs
aWMgSlNDOjpDb25zb2xlQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKQEAgLTYxLDkgKzU4LDYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkTWVzc2FnZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgUmVmUHRyPElu
c3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKICAgICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxv
bmcgcmVxdWVzdElkZW50aWZpZXIgPSAwLCBEb2N1bWVudCogPSBudWxscHRyKTsKIAotICAgIGNv
bnN0IFByb2ZpbGVzQXJyYXkmIHByb2ZpbGVzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9maWxlczsg
fQotICAgIHZvaWQgY2xlYXJQcm9maWxlcygpOwotCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBtZXNz
YWdlV2l0aFR5cGVBbmRMZXZlbChNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBKU0M6OkV4ZWNT
dGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFy
Z3VtZW50cz4mJikgb3ZlcnJpZGU7CkBAIC03Niw3ICs3MCw2IEBAIHByb3RlY3RlZDoKIAogcHJp
dmF0ZToKICAgICBQYWdlJiBtX3BhZ2U7Ci0gICAgUHJvZmlsZXNBcnJheSBtX3Byb2ZpbGVzOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IDBkM2Y5YjAuLmQ0OTQ0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTEyNSw3ICsxMjUsNiBAQAogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEu
aCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5o
IgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxieXRlY29k
ZS9Db2RlQmxvY2suaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnRCYXNlLmg+
CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2hhbm5lbC5oPgpAQCAtMzg5
LDcgKzM4OCw2IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKFBhZ2Um
IHBhZ2UpCiAgICAgV2ViQ29yZTo6b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzKFZlY3Rv
cjxTdHJpbmc+KCkpOwogICAgIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRVc2VzT3ZlcmxheVNjcm9s
bGJhcnMoZmFsc2UpOwogICAgIFdlYkNvcmU6OlNldHRpbmdzOjpzZXRVc2VzTW9ja1Njcm9sbEFu
aW1hdG9yKGZhbHNlKTsKLSAgICBwYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5zZXRMZWdhY3lQ
cm9maWxlckVuYWJsZWQoZmFsc2UpOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBwYWdl
Lmdyb3VwKCkuY2FwdGlvblByZWZlcmVuY2VzKCkuc2V0Q2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJp
ZGUoZW1wdHlTdHJpbmcoKSk7CiAgICAgcGFnZS5ncm91cCgpLmNhcHRpb25QcmVmZXJlbmNlcygp
LnNldFRlc3RpbmdNb2RlKGZhbHNlKTsKQEAgLTE3MzQsMTEgKzE3MzIsNiBAQCB1bnNpZ25lZCBJ
bnRlcm5hbHM6OmNvdW50TWF0Y2hlc0ZvclRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCB1bnNpZ25l
ZCBmaW5kT3B0aW9ucwogICAgIHJldHVybiBkb2N1bWVudC0+ZnJhbWUoKS0+ZWRpdG9yKCkuY291
bnRNYXRjaGVzRm9yVGV4dCh0ZXh0LCBudWxscHRyLCBmaW5kT3B0aW9ucywgMTAwMCwgbWFyaywg
bnVsbHB0cik7CiB9CiAKLWNvbnN0IFByb2ZpbGVzQXJyYXkmIEludGVybmFsczo6Y29uc29sZVBy
b2ZpbGVzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gY29udGV4dERvY3VtZW50KCktPnBhZ2UoKS0+
Y29uc29sZSgpLnByb2ZpbGVzKCk7Ci19Ci0KIHVuc2lnbmVkIEludGVybmFsczo6bnVtYmVyT2ZM
aXZlTm9kZXMoKSBjb25zdAogewogICAgIHVuc2lnbmVkIG5vZGVDb3VudCA9IDA7CkBAIC0xNzY3
LDE3ICsxNzYwLDYgQEAgdm9pZCBJbnRlcm5hbHM6OmNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVu
ZCgpCiAgICAgbV9pbnNwZWN0b3JGcm9udGVuZCA9IG51bGxwdHI7CiB9CiAKLXZvaWQgSW50ZXJu
YWxzOjpzZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFBhZ2UqIHBhZ2UgPSBjb250ZXh0RG9jdW1lbnQoKS0+
ZnJhbWUoKS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkgewotICAgICAgICBlYyA9IElOVkFMSURf
QUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHBhZ2UtPmluc3BlY3Rv
ckNvbnRyb2xsZXIoKS5zZXRMZWdhY3lQcm9maWxlckVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZv
aWQgSW50ZXJuYWxzOjpzZXRJbnNwZWN0b3JJc1VuZGVyVGVzdChib29sIGlzVW5kZXJUZXN0LCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBQYWdlKiBwYWdlID0gY29udGV4dERvY3VtZW50KCkt
PmZyYW1lKCktPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDhmMWVh
M2QuLmM5ZGE3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjY3LDE0ICsy
NjcsMTEgQEAgcHVibGljOgogICAgIHZvaWQgaW5zZXJ0QXV0aG9yQ1NTKGNvbnN0IFN0cmluZyYs
IEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICB2b2lkIGluc2VydFVzZXJDU1MoY29uc3QgU3Ry
aW5nJiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogCi0gICAgY29uc3QgUHJvZmlsZXNBcnJheSYg
Y29uc29sZVByb2ZpbGVzKCkgY29uc3Q7Ci0KICAgICB1bnNpZ25lZCBudW1iZXJPZkxpdmVOb2Rl
cygpIGNvbnN0OwogICAgIHVuc2lnbmVkIG51bWJlck9mTGl2ZURvY3VtZW50cygpIGNvbnN0Owog
CiAgICAgUmVmUHRyPERPTVdpbmRvdz4gb3BlbkR1bW15SW5zcGVjdG9yRnJvbnRlbmQoY29uc3Qg
U3RyaW5nJiB1cmwpOwogICAgIHZvaWQgY2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5kKCk7Ci0g
ICAgdm9pZCBzZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQs
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEluc3BlY3RvcklzVW5kZXJUZXN0KGJvb2wg
aXNVbmRlclRlc3QsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFN0cmluZyBjb3VudGVyVmFsdWUo
RWxlbWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDY2N2M4ZDAu
LjU5MDg5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTI2MCwxNiAr
MjYwLDEwIEBAIGVudW0gQXV0b0ZpbGxCdXR0b25UeXBlIHsKICAgICBbUmFpc2VzRXhjZXB0aW9u
XSB2b2lkIHNldERldmljZVByb3hpbWl0eShET01TdHJpbmcgZXZlbnRUeXBlLCB1bnJlc3RyaWN0
ZWQgZG91YmxlIHZhbHVlLCB1bnJlc3RyaWN0ZWQgZG91YmxlIG1pbiwgdW5yZXN0cmljdGVkIGRv
dWJsZSBtYXgpOwogI2VuZGlmCiAKLSAgICAvLyBBcyBwZXIgc3BlYzogaHR0cDovL3d3dy53My5v
cmcvVFIvV2ViSURMLyNpZGwtc2VxdWVuY2UKLSAgICAvLyAiU2VxdWVuY2VzIG11c3Qgbm90IGJl
IHVzZWQgYXMgdGhlIHR5cGUgb2YgYW4gYXR0cmlidXRlLCBjb25zdGFudCBvciBleGNlcHRpb24g
ZmllbGQuIgotICAgIC8vIEZJWE1FOiB0aGlzIHdpbGwgbGVhZCB0byBCVUcgaW50ZXJuYWxzLmNv
bnNvbGVQcm9maWxlcyAhPT0gaW50ZXJuYWxzLmNvbnNvbGVQcm9maWxlcyBhcyBwcm9maWxlIHdp
bGwgYWx3YXlzIHJldHVybnMgbmV3IGFycmF5LgotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTY3Jp
cHRQcm9maWxlW10gY29uc29sZVByb2ZpbGVzOwotCiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJP
ZkxpdmVOb2RlcygpOwogICAgIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlRG9jdW1lbnRzKCk7
CiAgICAgRE9NV2luZG93IG9wZW5EdW1teUluc3BlY3RvckZyb250ZW5kKERPTVN0cmluZyB1cmwp
OwogICAgIHZvaWQgY2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5kKCk7Ci0gICAgW1JhaXNlc0V4
Y2VwdGlvbl0gdm9pZCBzZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sZWFu
IGVuYWJsZWQpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0SW5zcGVjdG9ySXNVbmRl
clRlc3QoYm9vbGVhbiBpc1VuZGVyVGVzdCk7CiAKICAgICBET01TdHJpbmcgY291bnRlclZhbHVl
KEVsZW1lbnQgZWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pz
L1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNv
cmVUZXN0U3VwcG9ydC5jcHAKaW5kZXggNDgyMTAxNC4uYmUxNTZlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcApAQCAtMzYsNyArMzYs
NiBAQAogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0VHJpZ2dlci5oIgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1ZhbHVlUmVm
Lmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvZmlsZS5oPgogI2luY2x1ZGUgPGludGVy
cHJldGVyL0NhbGxGcmFtZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSWRlbnRpZmllcklubGluZXMu
aD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXRMaWJ4c2x0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0TGlieHNsdC5jcHAKaW5kZXgg
OTY3NzBhNi4uNGIyNDZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxl
U2hlZXRMaWJ4c2x0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldExp
YnhzbHQuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiWE1MRG9jdW1lbnRQYXJzZXJT
Y29wZS5oIgogI2luY2x1ZGUgIlhTTEltcG9ydFJ1bGUuaCIKICNpbmNsdWRlICJYU0xUUHJvY2Vz
c29yLmgiCi0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvZmlsZS5oPgogI2luY2x1ZGUgPGxp
YnhtbC91cmkuaD4KICNpbmNsdWRlIDxsaWJ4c2x0L3hzbHR1dGlscy5oPgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGIvU291cmNlL1dl
YkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcAppbmRleCA4YTE4NGMzLi5lNGEzM2Qw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKQEAgLTQw
LDcgKzQwLDYgQEAKICNpbmNsdWRlICJYU0xURXh0ZW5zaW9ucy5oIgogI2luY2x1ZGUgIlhTTFRV
bmljb2RlU29ydC5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxsaWJ4c2x0L2ltcG9ydHMuaD4KICNpbmNsdWRlIDxs
aWJ4c2x0L3NlY3VyaXR5Lmg+CiAjaW5jbHVkZSA8bGlieHNsdC92YXJpYWJsZXMuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwppbmRleCA5YzQzYjA0Li5kMDBkYmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTYtMDUtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KKworICAgICAgICBSZW1vdmUgTGVnYWN5UHJvZmlsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzU2NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE1hcmsgTGFtLgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViSW5zcGVjdG9yLmlkbDoKKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IuY3BwOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yOjppc0phdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkluc3BlY3Rvcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYkluc3BlY3Rvci5oOgorCiAyMDE2LTA1LTEyICBLb25zdGFu
dGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBVc2UgcmVmZXJlbmNl
IGluc3RlYWQgb2YgcG9pbnRlciBpbiBGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVZpZXdTdGF0ZVRv
SXRlbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYkluc3Bl
Y3Rvci5pZGwgYi9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJJbnNwZWN0b3IuaWRs
CmluZGV4IDc0NDBmZTguLjRkOGYwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0lu
dGVyZmFjZXMvSVdlYkluc3BlY3Rvci5pZGwKKysrIGIvU291cmNlL1dlYktpdC93aW4vSW50ZXJm
YWNlcy9JV2ViSW5zcGVjdG9yLmlkbApAQCAtNTIsOSArNTIsNiBAQCBpbnRlcmZhY2UgSVdlYklu
c3BlY3RvciA6IElVbmtub3duCiAgICAgSFJFU1VMVCBpc1Byb2ZpbGluZ0phdmFTY3JpcHQoQk9P
TCogaXNQcm9maWxpbmcpOwogICAgIEhSRVNVTFQgdG9nZ2xlUHJvZmlsaW5nSmF2YVNjcmlwdCgp
OwogCi0gICAgSFJFU1VMVCBpc0phdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKEJPT0wqIGlzUHJv
ZmlsaW5nRW5hYmxlZCk7Ci0gICAgSFJFU1VMVCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZChCT09MIGVuYWJsZWQpOwotCiAgICAgSFJFU1VMVCBpc1RpbWVsaW5lUHJvZmlsaW5nRW5hYmxl
ZChCT09MKiBpc0VuYWJsZWQpOwogICAgIEhSRVNVTFQgc2V0VGltZWxpbmVQcm9maWxpbmdFbmFi
bGVkKEJPT0wgZW5hYmxlZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3RhdGlzdGljcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5j
cHAKaW5kZXggNzQzNDQ2OS4uOTRhZTNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN0YXRpc3RpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdGF0
aXN0aWNzLmNwcApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkNPTVByb3BlcnR5QmFnLmgi
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvTWVtb3J5U3RhdGlzdGljcy5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2Zp
bGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTVdpbmRvdy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Rm9udENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HQ0NvbnRyb2xsZXIuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IDkxYTc4YjMuLmY2MjE5YTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViSW5zcGVjdG9yLmNwcApAQCAtMjAyLDM4ICsyMDIsNiBAQCBIUkVTVUxUIFdlYkluc3BlY3Rv
cjo6dG9nZ2xlUHJvZmlsaW5nSmF2YVNjcmlwdCgpCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhS
RVNVTFQgV2ViSW5zcGVjdG9yOjppc0phdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKF9PdXRfIEJP
T0wqIGlzUHJvZmlsaW5nRW5hYmxlZCkKLXsKLSAgICBpZiAoIWlzUHJvZmlsaW5nRW5hYmxlZCkK
LSAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKLQotICAgICppc1Byb2ZpbGluZ0VuYWJsZWQgPSBG
QUxTRTsKLQotICAgIGlmICghbV9pbnNwZWN0ZWRXZWJWaWV3KQotICAgICAgICByZXR1cm4gU19P
SzsKLQotICAgIFBhZ2UqIGluc3BlY3RlZFBhZ2UgPSBtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2Uo
KTsKLSAgICBpZiAoIWluc3BlY3RlZFBhZ2UpCi0gICAgICAgIHJldHVybiBTX09LOwotCi0gICAg
KmlzUHJvZmlsaW5nRW5hYmxlZCA9IGluc3BlY3RlZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIo
KS5sZWdhY3lQcm9maWxlckVuYWJsZWQoKTsKLSAgICByZXR1cm4gU19PSzsKLX0KLQotSFJFU1VM
VCBXZWJJbnNwZWN0b3I6OnNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKEJPT0wgZW5hYmxl
ZCkKLXsKLSAgICBpZiAoIW1faW5zcGVjdGVkV2ViVmlldykKLSAgICAgICAgcmV0dXJuIFNfT0s7
Ci0KLSAgICBQYWdlKiBpbnNwZWN0ZWRQYWdlID0gbV9pbnNwZWN0ZWRXZWJWaWV3LT5wYWdlKCk7
Ci0gICAgaWYgKCFpbnNwZWN0ZWRQYWdlKQotICAgICAgICByZXR1cm4gU19PSzsKLQotICAgIGlu
c3BlY3RlZFBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS5zZXRMZWdhY3lQcm9maWxlckVuYWJs
ZWQoZW5hYmxlZCk7Ci0KLSAgICByZXR1cm4gU19PSzsKLX0KLQogSFJFU1VMVCBXZWJJbnNwZWN0
b3I6OmV2YWx1YXRlSW5Gcm9udGVuZChfSW5fIEJTVFIgYlNjcmlwdCkKIHsKICAgICBpZiAoIW1f
aW5zcGVjdGVkV2ViVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkluc3Bl
Y3Rvci5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmgKaW5kZXggZGY3MDdjZi4u
Mjc5NGY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmgKQEAgLTYwLDkgKzYwLDYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBpc1Byb2ZpbGluZ0ph
dmFTY3JpcHQoX091dF8gQk9PTCopOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSB0b2dnbGVQcm9maWxpbmdKYXZhU2NyaXB0KCk7CiAKLSAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgaXNKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChfT3V0XyBCT09M
Kik7Ci0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEphdmFTY3JpcHRQ
cm9maWxpbmdFbmFibGVkKEJPT0wpOwotCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIGV2YWx1YXRlSW5Gcm9udGVuZChfSW5fIEJTVFIgc2NyaXB0KTsKIAogICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBpc1RpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZChf
T3V0XyBCT09MKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDY3MWRkZTMuLjYzMDY1YTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCkBAIC03OCw3ICs3OCw2IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
Q0pTVmFsdWUuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KLSNpbmNsdWRl
IDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BWE9iamVjdENh
Y2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQlN0cmluZy5oPgpAQCAtMTIxLDcgKzEyMCw2IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9KU0VsZW1lbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0pTU2NyaXB0
UHJvZmlsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5o
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279532</attachid>
            <date>2016-05-20 18:18:48 -0700</date>
            <delta_ts>2016-05-20 18:59:42 -0700</delta_ts>
            <desc>[PATCH] Part 1 - ManualTests, LayoutTests, WebCore, WebKit</desc>
            <filename>rm-1.patch</filename>
            <type>text/plain</type>
            <size>200734</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA0Zjg5N2U1Li43MWJhMzlm
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTYtMDUtMjAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW1vdmUgTGVnYWN5UHJvZmlsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MzU2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTWFudWFsVGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyLXRlc3Qt
Y2FsbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIE1hbnVhbFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci10ZXN0LW1hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbDogUmVtb3ZlZC4KKwog
MjAxNi0wNS0xOCAgR3dhbmcgWW9vbiBId2FuZyAgPHlvb25AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1N0cmVhbWVyXSBVc2UgRmFrZVNpbmsgdG8gZ2V0IGEgZGVjb2RlZCB0ZXh0dXJlIGZyb20g
YSBwaXBlbGluZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDJhMDE1NDUuLjczMDM3MGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDMg
QEAKKzIwMTYtMDUtMjAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW1vdmUgTGVnYWN5UHJvZmlsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzU2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFu
ZGxlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9u
eW1vdXMtZXZlbnQtaGFuZGxlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmls
ZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9tLWRpZmZlcmVudC1jb250ZXh0cy1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVu
Y3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWw6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVu
Y3Rpb25zLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fu
b255bW91cy1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2Fub255bW91cy1m
dW5jdGlvbi1jYWxscy1ldmFsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxl
ci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgt
ZGlzcGxheS1uYW1lcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYXBw
bHktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvYXBwbHku
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9u
LWNhbGxzLWFub255bW91cy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMuaHRtbDogUmVtb3ZlZC4K
KyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVm
aW5lZC1mdW5jdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9m
aWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRlZmluZWQtZnVuY3Rpb24uaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGwtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rlci1sZWFrLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXItbGVh
ay5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1z
dGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1z
dGFydGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBmYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY29tcGFyZS1tdWx0aXBsZS1w
cm9maWxlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY29uc3RydWN0
b3ItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvY29uc3Ry
dWN0b3IuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9kZWFkLXRpbWUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13cml0
ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9kb2N1bWVu
dC1kb3Qtd3JpdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2V2ZW50
LWhhbmRsZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIv
ZXZlbnQtaGFuZGxlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvZXhl
Y3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9u
LXNhbWUtbGluZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvaW5saW5l
LWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0
L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29w
ZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRp
ZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2Nv
cGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbXVsdGlwbGUt
YW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZy
b20tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZh
c3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUt
c2FtZS1mdW5jdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbXVs
dGlwbGUtZnJhbWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2Zp
bGVyL211bHRpcGxlLWZyYW1lcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmls
ZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5
LW5hbWVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5v
bnltb3VzLWZ1bmN0b24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5jdG9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
ZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9w
LXByb2ZpbGVyLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9uby1leGVj
dXRpb24tY29udGV4dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9m
aWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3Qv
cHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBmYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24tY29udGV4dC5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxl
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGUt
Y2FsbHMtaW4taW5jbHVkZWQtZmlsZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24t
YnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmctZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9j
YXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0
aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Byb2Zp
bGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFz
dC9wcm9maWxlci9yZXNvdXJjZXMvb3RoZXItZnJhbWUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBmYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci13aW5kb3cuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBmYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxs
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3NpbXBsZS1l
dmVudC1jYWxsLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zaW1wbGUt
bm8tbGV2ZWwtY2hhbmdlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3By
b2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9w
LXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9w
cm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24tZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0
b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9w
LXByb2ZpbGluZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvc3RvcC1w
cm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci9zdG9wLXRoZW4t
ZnVuY3Rpb24tY2FsbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvdGhy
b3ctZXhjZXB0aW9uLWZyb20tZXZhbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
ZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQ6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3R3by1leGVjdXRp
b24tY29udGV4dHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L3Byb2ZpbGVyL3VzZXIt
ZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0aW9uLWNh
bGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvcHJv
ZmlsZXIvd2luZG93LWRvdC1ldmFsLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxNi0wNS0yMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIGB3aWR0aDogMSVgIG9uIG5lc3RlZCB0YWJsZSBjZWxsIGNhdXNlcyBpdHMgdGFi
bGUgdG8gaG9nIGhvcml6b250YWwgc3BhY2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvYW5vbnltb3VzLWV2ZW50LWhhbmRsZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFuZGxlci1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0OGJmMzguLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZXZlbnQtaGFuZGxlci1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGlzIHBhZ2UgaGFzIGFuIGFub255bW91
cyBldmVudCBoYW5kbGVyLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBp
biB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUg
cHJvZmlsZS4gSXQgc2hvdWxkIHNob3cgdGhlIGFub255bW91cyBmdW5jdGlvbiBhdCB0aGUgc2Ft
ZSBsZXZlbCBhcyB0aGUgb25sb2FkIGhhbmRsZXIuIAotCi1Qcm9maWxlIHRpdGxlOiBBbm9ueW1v
dXMgZXZlbnQgaGFuZGxlcgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0
VGVzdCBhbm9ueW1vdXMtZXZlbnQtaGFuZGxlci5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZ2V0
RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGNsaWNrIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICBvbmNsaWNrIGFub255bW91cy1ldmVudC1oYW5kbGVyLmh0bWwg
KGxpbmUgMTU6NTEpCi0gICAgICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3
KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2
ZW50LWhhbmRsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWV2
ZW50LWhhbmRsZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmJjZmZhNS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1ldmVudC1o
YW5kbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFy
dFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGV2ZW50IGhhbmRsZXIi
KTsKLQotICAgIHZhciBidXR0b25XaXRoQW5vbnltb3VzSGFuZGxlciA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJidXR0b25XaXRoQW5Bbm9ueW1vdXNFdmVudEhhbmRsZXIiKQotICAgIGJ1dHRv
bldpdGhBbm9ueW1vdXNIYW5kbGVyLm9uY2xpY2sgPSBmdW5jdGlvbiAoKSB7Ci0gICAgICAgIGlu
c2VydE5ld1RleHQoKTsKLSAgICB9Ci0KLSAgICBidXR0b25XaXRoQW5vbnltb3VzSGFuZGxlci5j
bGljaygpOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5
IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIGhhcyBhbiBhbm9ueW1vdXMgZXZlbnQg
aGFuZGxlci4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQg
aW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRo
ZSBwcm9maWxlLiAgSXQgc2hvdWxkIHNob3cgdGhlIGFub255bW91cyBmdW5jdGlvbiBhdCB0aGUg
c2FtZSBsZXZlbCBhcyB0aGUgb25sb2FkCi1oYW5kbGVyLgotPGlucHV0IHR5cGU9ImJ1dHRvbiIg
aWQ9ImJ1dHRvbldpdGhBbkFub255bW91c0V2ZW50SGFuZGxlciIgdmFsdWU9IkJ1dHRvbiB3aXRo
IGFuIGFub255bW91cyBldmVudCBoYW5kbGVyIj4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08
L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fu
b255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVk
LWZyb20tZGlmZmVyZW50LWNvbnRleHRzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2NiYmYwNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscyBhbiBhbm9ueW1vdXMgZnVuY3Rpb24gZnJvbSBkaWZmZXJlbnQgY29udGV4
dHMuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2Vy
IHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBCZW5l
YXRoIG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNob3VsZCBzaG93IHRocmVlIGNoaWxkcmVuLCBh
biBhbm9ueW1vdXMgZnVuY3Rpb24sIHNjcmlwdCBjb250ZXh0LCBhbmQgdGhlIGVuZFRlc3QgY2Fs
bC4KLQotUHJvZmlsZSB0aXRsZTogU2FtZSBhbm9ueW1vdXMgZnVuY3Rpb24gY2FsbGVkIGZyb20g
ZGlmZmVyZW50IGNvbnRleHRzCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3Rh
cnRUZXN0IGFub255bW91cy1mdW5jdGlvbi1jYWxsZWQtZnJvbS1kaWZmZXJlbnQtY29udGV4dHMu
aHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0
ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2Rl
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgIGV2YWwgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIChwcm9ncmFtKSAo
bm8gZmlsZSkgKGxpbmUgMToxKQotICAgICAgICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICAgICAgICBpbnNl
cnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAg
ICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBw
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxlZC1mcm9t
LWRpZmZlcmVudC1jb250ZXh0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9u
eW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50LWNvbnRleHRzLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhYjgzMTcuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbGVkLWZyb20tZGlmZmVyZW50
LWNvbnRleHRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxz
LnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiU2FtZSBhbm9ueW1vdXMgZnVuY3Rp
b24gY2FsbGVkIGZyb20gZGlmZmVyZW50IGNvbnRleHRzIik7Ci0KLSAgICBhbm9ueW1vdXNGdW5j
dGlvbigpOwotICAgIGV2YWwoImFub255bW91c0Z1bmN0aW9uKCkiKTsKLQotICAgIGVuZFRlc3Qo
KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4K
LVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIGZ1bmN0aW9uIGZyb20g
ZGlmZmVyZW50IGNvbnRleHRzLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdAotdGhlIHByb2ZpbGUuICBCZW5lYXRoIG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNo
b3VsZCBzaG93IHRocmVlIGNoaWxkcmVuLCBhbgotYW5vbnltb3VzIGZ1bmN0aW9uLCBzY3JpcHQg
Y29udGV4dCwgYW5kIHRoZSBlbmRUZXN0IGNhbGwuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9h
bm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0
LWluLWZ1bmN0aW9ucy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDkxMjA2MDAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1v
dXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRoaXMgcGFnZSBoYXMgYW4gYW5vbnltb3VzIEphdmFT
Y3JpcHQgZnVuY3Rpb24gdGhhdCBjYWxscyBidWlsdC1pbiBmdW5jdGlvbnMuIAotCi1UbyBydW4g
dGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUg
V2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBCZW5lYXRoIG9ubG9hZCBhbmQg
c3RhcnRUZXN0IGl0IHNob3VsZCBzaG93IHRocmVlIGNoaWxkcmVuLCBhbiBhbm9ueW1vdXMgZnVu
Y3Rpb24sIHNjcmlwdCBjb250ZXh0LCBhbmQgdGhlIGVuZFRlc3QgY2FsbC4KLQotUHJvZmlsZSB0
aXRsZTogQW5vbnltb3VzIGZ1bmN0aW9uIGNhbGxzIGJ1aWx0LWluIGZ1bmN0aW9ucwotVGhyZWFk
XzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBhbm9ueW1vdXMtZnVuY3Rpb24t
Y2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9ueW1v
dXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAg
ICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
MTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1l
bnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3Qt
SlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25z
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1jYWxs
cy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NWJjNzNiNS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91
cy1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDI4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3By
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93
LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9m
aWxlKCJBbm9ueW1vdXMgZnVuY3Rpb24gY2FsbHMgYnVpbHQtaW4gZnVuY3Rpb25zIik7Ci0gICAg
YW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVh
ZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIGFuIGFub255
bW91cyBKYXZhU2NyaXB0IGZ1bmN0aW9uIHRoYXQgY2FsbHMgYnVpbHQtaW4gZnVuY3Rpb25zLgot
PGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJv
d3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUu
ICBCZW5lYXRoIG9ubG9hZCBhbmQgc3RhcnRUZXN0IGl0IHNob3VsZCBzaG93IHRocmVlIGNoaWxk
cmVuLCBhbgotYW5vbnltb3VzIGZ1bmN0aW9uLCBzY3JpcHQgY29udGV4dCwgYW5kIHRoZSBlbmRU
ZXN0IGNhbGwuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb24tY2Fs
bHMtZXZhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91
cy1mdW5jdGlvbi1jYWxscy1ldmFsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOWEwZmQ0Yi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2Fub255bW91cy1mdW5jdGlvbi1jYWxscy1ldmFsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDE4ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnlt
b3VzIGZ1bmN0aW9uIHdoaWNoIGNhbGxzIGV2YWwoKS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEJlbmVhdGggb25sb2FkIGFuZCBzdGFydFRlc3QgaXQg
c2hvdWxkIHNob3cgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2hpY2ggaGFzIGEgKHByb2dyYW0p
IGNoaWxkLgotCi1Qcm9maWxlIHRpdGxlOiBBbm9ueW1vdXMgZnVuY3Rpb24gY2FsbGVzIGV2YWwK
LVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgYW5vbnltb3VzLWZ1
bmN0aW9uLWNhbGxzLWV2YWwuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIHZhcmlhYmxlVGhhdFBv
aW50c1RvQW5Bbm9ueW1vdXNGdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb24tY2FsbHMtZXZhbC5o
dG1sIChsaW5lIDE0OjU5KQotICAgICAgICAgZXZhbCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgKHByb2dyYW0pIChubyBmaWxlKSAobGluZSAxOjEpCi0gICAgICAgICAgICAgICBp
bnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQot
ICAgICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVz
dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV2
YWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9uLWNh
bGxzLWV2YWwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTlmNzY2Ni4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbi1j
YWxscy1ldmFsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxz
LnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGZ1bmN0aW9uIGNh
bGxlcyBldmFsIik7Ci0KLSAgICB2YXIgdmFyaWFibGVUaGF0UG9pbnRzVG9BbkFub255bW91c0Z1
bmN0aW9uID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGV2YWwoImluc2VydE5ld1RleHQoKSIpOwot
ICAgIH0KLQotICAgIHZhcmlhYmxlVGhhdFBvaW50c1RvQW5Bbm9ueW1vdXNGdW5jdGlvbigpOwot
ICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0
YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIGZ1
bmN0aW9uIHdoaWNoIGNhbGxzIGV2YWwoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3Qg
bWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0
b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgQmVuZWF0aCBvbmxvYWQgYW5kIHN0YXJ0VGVz
dCBpdCBzaG91bGQgc2hvdyBhbiAoYW5vbnltb3VzIGZ1bmN0aW9uKQotd2hpY2ggaGFzIGEgKHBy
b2dyYW0pIGNoaWxkLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9u
cy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiOGQ4MDcuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1u
YW1lcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UaGlzIHBh
Z2UncyBKYXZhU2NyaXB0IGNhbGxzIGFub255bW91cyBmdW5jdGlvbnMgd2l0aCBkaXNwbGF5IG5h
bWVzLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3Nl
ciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gWW91
IHNob3VsZCBzZWUgZnVuY3Rpb25zIG5hbWVkICJbeF0gaXRlcmF0aW9ucyBmdW5jdGlvbiIsIGFu
ZCBubyBhbm9ueW1vdXMgZnVuY3Rpb25zLgotCi1Qcm9maWxlIHRpdGxlOiBBbm9ueW1vdXMgZnVu
Y3Rpb25zIHdpdGggZGlzcGxheSBuYW1lcwotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgIHN0YXJ0VGVzdCBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1s
IChsaW5lIDIyOjE5KQotICAgICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IgYW5vbnltb3Vz
LWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMDozNikKLSAgICAgIDAg
aXRlcmF0aW9ucyBmdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1l
cy5odG1sIChsaW5lIDEyOjU5KQotICAgICAgMSBpdGVyYXRpb25zIGZ1bmN0aW9uIGFub255bW91
cy1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUgMTI6NTkpCi0gICAgICAy
IGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFt
ZXMuaHRtbCAobGluZSAxMjo1OSkKLSAgICAgIDIwIGl0ZXJhdGlvbnMgZnVuY3Rpb24gYW5vbnlt
b3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxMjo1OSkKLSAgICAg
IDEwMDAgaXRlcmF0aW9ucyBmdW5jdGlvbiBhbm9ueW1vdXMtZnVuY3Rpb25zLXdpdGgtZGlzcGxh
eS1uYW1lcy5odG1sIChsaW5lIDEyOjU5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYW5vbnltb3VzLWZ1bmN0aW9ucy13aXRoLWRpc3Bs
YXktbmFtZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2I5ZmMzNC4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2Fub255bW91cy1mdW5jdGlvbnMt
d2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAg
aW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1m
dW5jdGlvbiBhbm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcihpdGVyYXRpb25zKQotewotICAgIHZh
ciB2YXJpYWJsZVRoYXRQb2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24gPSBmdW5jdGlvbigpCi0g
ICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZXJhdGlvbnM7ICsraSkgOwotICAg
IH0KLSAgICAKLSAgICB2YXJpYWJsZVRoYXRQb2ludHNUb0FuQW5vbnltb3VzRnVuY3Rpb24uZGlz
cGxheU5hbWUgPSBpdGVyYXRpb25zICsgIiBpdGVyYXRpb25zIGZ1bmN0aW9uIjsKLSAgICAKLSAg
ICByZXR1cm4gdmFyaWFibGVUaGF0UG9pbnRzVG9BbkFub255bW91c0Z1bmN0aW9uOwotfQotCi1m
dW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQW5vbnltb3VzIGZ1
bmN0aW9ucyB3aXRoIGRpc3BsYXkgbmFtZXMiKTsKLQotICAgIGFub255bW91c0Z1bmN0aW9uR2Vu
ZXJhdG9yKDApKCk7Ci0gICAgYW5vbnltb3VzRnVuY3Rpb25HZW5lcmF0b3IoMSkoKTsKLSAgICBh
bm9ueW1vdXNGdW5jdGlvbkdlbmVyYXRvcigyKSgpOwotICAgIGFub255bW91c0Z1bmN0aW9uR2Vu
ZXJhdG9yKDIwKSgpOwotICAgIGFub255bW91c0Z1bmN0aW9uR2VuZXJhdG9yKDEwMDApKCk7Ci0K
LSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJz
dGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGFub255bW91cyBmdW5j
dGlvbnMgd2l0aCBkaXNwbGF5IG5hbWVzLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBt
YW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3Rv
ciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBZb3Ugc2hvdWxkIHNlZSBmdW5jdGlvbnMgbmFt
ZWQgIlt4XSBpdGVyYXRpb25zIGZ1bmN0aW9uIiwgYW5kIG5vIGFub255bW91cyBmdW5jdGlvbnMu
Ci08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9hcHBseS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL2FwcGx5LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzA4YmQwNi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2FwcGx5LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRoaXMg
cGFnZSdzIEphdmFTY3JpcHQgaGFzIGEgY2FsbCB0byBhcHBseSgpIGluIGl0LiAKLQotVG8gcnVu
IHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhl
IFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhl
cmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFuZCBhIGNhbGwg
dG8gYXBwbHkoKS4KLQotUHJvZmlsZSB0aXRsZTogVXNpbmcgdGhlIGFwcGx5KCkgbWV0aG9kCi1U
aHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGFwcGx5Lmh0bWwgKGxp
bmUgMTA6MTkpCi0gICAgICBmYWtlT2JqZWN0IGFwcGx5Lmh0bWwgKGxpbmUgMTc6MjEpCi0gICAg
ICAgICBmYWtlSW50ZXJpb3JGdW5jdGlvbiBhcHBseS5odG1sIChsaW5lIDIzOjMwKQotICAgICAg
ZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvYXBwbHkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOThkNDFhYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2FwcGx5
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2Fj
eUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3Qo
KQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVXNpbmcgdGhlIGFwcGx5KCkgbWV0aG9kIik7Ci0g
ICAgdmFyIG15T2JqZWN0ID0gbmV3IGZha2VPYmplY3QoMSwgMik7Ci0gICAgZW5kVGVzdCgpOwot
fQotCi1mdW5jdGlvbiBmYWtlT2JqZWN0ICh4LCB5KQotewotICAgIHRoaXMueCA9IHg7Ci0gICAg
ZmFrZUludGVyaW9yRnVuY3Rpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKLX0KLQotZnVuY3Rp
b24gZmFrZUludGVyaW9yRnVuY3Rpb24oeCwgeSkKLXsKLSAgICB0aGlzLnkgPSB5OwotfQotCi08
L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBh
Z2UncyBKYXZhU2NyaXB0IGhhcyBhIGNhbGwgdG8gYXBwbHkoKSBpbiBpdC4KLTxicj4KLTxicj4K
LVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBs
b2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHBy
b2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlSW50ZXJpb3JGdW5jdGlvbigpIGFu
ZAotYSBjYWxsIHRvIGFwcGx5KCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1m
dW5jdGlvbi1jYWxscy1hbm9ueW1vdXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy1hbm9ueW1vdXMtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYTZiYWYzLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRoaXMgcGFnZSB1c2Vz
IGEgYnVpbHQtaW4gZnVuY3Rpb24gdG8gY2FsbCBhbiBhbm9ueW1vdXMgZnVuY3Rpb24uIAotCi1U
byBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9h
ZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmls
ZSBtYXAoKSBzaG91bGQgYmUgdGhlIHNpYmxpbmcgb2YgYW4gKGFub255bW91cyBmdW5jdGlvbikg
d2hpY2ggaGFzIGFycmF5T3BlcmF0b3JGdW5jdGlvbigpIGFzIGEgY2hpbGQuCi0KLVByb2ZpbGUg
dGl0bGU6IEJ1aWx0LWluIGZ1bmN0aW9uIGNhbGxzIGFuIGFub255bW91cyBmdW5jdGlvbgotVGhy
ZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBidWlsdC1pbi1mdW5jdGlv
bi1jYWxscy1hbm9ueW1vdXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIEFycmF5IChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICBtYXAgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIE9i
amVjdCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgdG9MZW5ndGggKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgIHRvSW50ZWdlciAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgICAgTnVtYmVyIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAo
YW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgaXNBcnJh
eSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIHNwZWNpZXNHZXR0ZXIgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgIEFycmF5IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBteUZ1
bmN0aW9uIGJ1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1sIChsaW5lIDE0OjMw
KQotICAgICAgICAgICAgYXJyYXlPcGVyYXRvckZ1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIChsaW5lIDI1OjMxKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJl
c291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3VzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLWFub255bW91cy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNWFlZDQ4Li4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtYW5vbnltb3Vz
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2Fj
eUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3Qo
KQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQnVpbHQtaW4gZnVuY3Rpb24gY2FsbHMgYW4gYW5v
bnltb3VzIGZ1bmN0aW9uIik7Ci0KLSAgICB2YXIgbXlGdW5jdGlvbiA9IGZ1bmN0aW9uKGFycmF5
RWxlbWVudCkgewotICAgICAgICByZXR1cm4gYXJyYXlPcGVyYXRvckZ1bmN0aW9uKGFycmF5RWxl
bWVudCk7Ci0gICAgfQotCi0gICAgdmFyIG15QXJyYXkgPSBuZXcgQXJyYXkgKDAsIDEsIDIpOwot
ICAgIG15QXJyYXkubWFwKG15RnVuY3Rpb24pOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIHVz
ZXMgYSBidWlsdC1pbiBmdW5jdGlvbiB0byBjYWxsIGFuIGFub255bW91cyBmdW5jdGlvbi4KLTxi
cj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dz
ZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAg
SW4gdGhlIHByb2ZpbGUgbWFwKCkgc2hvdWxkIGJlIHRoZSBzaWJsaW5nIG9mIGFuIChhbm9ueW1v
dXMgZnVuY3Rpb24pCi13aGljaCBoYXMgYXJyYXlPcGVyYXRvckZ1bmN0aW9uKCkgYXMgYSBjaGls
ZC4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXIt
ZGVmaW5lZC1mdW5jdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2J1aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3MTU1ZTcuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9idWlsdC1pbi1mdW5jdGlvbi1jYWxscy11c2VyLWRl
ZmluZWQtZnVuY3Rpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBA
QAotVGhpcyBwYWdlIHVzZXMgYSBidWlsdC1pbiBmdW5jdGlvbiB0byBjYWxsIGEgdXNlciBkZWZp
bmVkIGZ1bmN0aW9uLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0
aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJv
ZmlsZS4gSW4gdGhlIHByb2ZpbGUgbWFwKCkgc2hvdWxkIGhhdmUgYXJyYXlPcGVyYXRvckZ1bmN0
aW9uKCkgYXMgYSBjaGlsZC4KLQotUHJvZmlsZSB0aXRsZTogQnVpbHQtaW4gZnVuY3Rpb24gY2Fs
bHMgYSB1c2VyIGRlZmluZWQgZnVuY3Rpb24KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICBzdGFydFRlc3QgYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0
aW9uLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBBcnJheSAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgbWFwIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBPYmplY3QgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgIHRvTGVuZ3RoIChubyBmaWxlKSAobGluZSAwOjApCi0gICAg
ICAgICAgICB0b0ludGVnZXIgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIE51
bWJlciAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5j
dGlvbikgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGlzQXJyYXkgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICBzcGVjaWVzR2V0dGVyIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICBBcnJheSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgYXJyYXlPcGVyYXRvckZ1bmN0
aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI1OjMxKQotICAgICAgZW5k
VGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMt
dXNlci1kZWZpbmVkLWZ1bmN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2J1
aWx0LWluLWZ1bmN0aW9uLWNhbGxzLXVzZXItZGVmaW5lZC1mdW5jdGlvbi5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNjYzYjY5Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvYnVpbHQtaW4tZnVuY3Rpb24tY2FsbHMtdXNlci1kZWZpbmVkLWZ1bmN0
aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExl
Z2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRl
c3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiQnVpbHQtaW4gZnVuY3Rpb24gY2FsbHMgYSB1
c2VyIGRlZmluZWQgZnVuY3Rpb24iKTsKLQotICAgIHZhciBteUFycmF5ID0gbmV3IEFycmF5ICgw
LCAxLCAyKTsKLSAgICBteUFycmF5Lm1hcChhcnJheU9wZXJhdG9yRnVuY3Rpb24pOwotCi0gICAg
ZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRU
ZXN0KCkiPgotVGhpcyBwYWdlIHVzZXMgYSBidWlsdC1pbiBmdW5jdGlvbiB0byBjYWxsIGEgdXNl
ciBkZWZpbmVkIGZ1bmN0aW9uLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSBtYXAoKSBzaG91bGQgaGF2ZSBh
cnJheU9wZXJhdG9yRnVuY3Rpb24oKSBhcyBhIGNoaWxkLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvY2FsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzg2ZmQ5Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBhIGNh
bGwgdG8gY2FsbCgpIGluIGl0LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBp
dCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0
aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtl
T2JqZWN0KCkgd2l0aCBjYWxsKCkgYXMgaXRzIGNoaWxkIGFuZCBhIGZha2VJbnRlcmlvckZ1bmN0
aW9uKCkgYXMgY2FsbCgpJ3MgY2hpbGQuCi0KLVByb2ZpbGUgdGl0bGU6IFVzaW5nIHRoZSBjYWxs
KCkgbWV0aG9kCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGNh
bGwuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGZha2VPYmplY3QgY2FsbC5odG1sIChsaW5lIDE5
OjIxKQotICAgICAgICAgZmFrZUludGVyaW9yRnVuY3Rpb24gY2FsbC5odG1sIChsaW5lIDI1OjMw
KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3
KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdpc3Rl
ci1sZWFrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbC1yZWdp
c3Rlci1sZWFrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDM2
NDdiZi4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0
ZXItbGVhay1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGlz
IHBhZ2UgdGVzdHMgdGhhdCB0aGUgZ2VuZXJhdGlvbiBvZiBieXRlY29kZSBhbGxvY2F0ZXMgcmVn
aXN0ZXJzIGNvcnJlY3RseSB3aGVuIHByb2ZpbGluZyBpcyBlbmFibGVkLiBUbyBydW4gdGhlIHRl
c3QgbWFudWFsbHksIGVuYWJsZSBwcm9maWxpbmcgaW4gdGhlIHdlYiBpbnNwZWN0b3IgYW5kIHJl
bG9hZCB0aGlzIHBhZ2UuCi0KLVBBU1M6IGxvY2FsQ2FsbFRlc3QoMSwgMikgc2hvdWxkIGJlIDIg
YW5kIGlzLgotCi1QQVNTOiBnbG9iYWxDYWxsVGVzdCgxLCAyKSBzaG91bGQgYmUgMiBhbmQgaXMu
Ci0KLVBBU1M6IHNjb3BlZENhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQotUEFT
UzogcmVzb2x2ZUNhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQotUEFTUzogYnJh
Y2tldENhbGxUZXN0KDEsIDIpIHNob3VsZCBiZSAyIGFuZCBpcy4KLQotUEFTUzogZG90Q2FsbFRl
c3QoMSwgMikgc2hvdWxkIGJlIDIgYW5kIGlzLgotCi1QQVNTOiBuZXdUZXN0KDEsIDIpIHNob3Vs
ZCBiZSAyIGFuZCBpcy4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVy
L2NhbGwtcmVnaXN0ZXItbGVhay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxs
LXJlZ2lzdGVyLWxlYWsuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzY2YjQ0
MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwtcmVnaXN0ZXIt
bGVhay5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAKLTxib2R5PgotPGhlYWQ+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBsb2cocykKLXsKLSAg
ICBpZiAodGhpcy5kb2N1bWVudCkKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnNvbGUiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzICsgIlxuIikpOwot
ICAgIGVsc2UKLSAgICAgICAgcHJpbnQocyArICJcbiIpOwotfQotCi1mdW5jdGlvbiBzaG91bGRC
ZShhLCBhRGVzY3JpcHRpb24sIGIpCi17Ci0gICAgaWYgKGEgPT09IGIpCi0gICAgICAgIGxvZygi
UEFTUzogIiArIGFEZXNjcmlwdGlvbiArICIgc2hvdWxkIGJlICIgKyBiICsgIiBhbmQgaXMuXG4i
KTsKLSAgICBlbHNlCi0gICAgICAgIGxvZygiRkFJTDogIiArIGFEZXNjcmlwdGlvbiArICIgc2hv
dWxkIGJlICIgKyBiICsgIiBidXQgaW5zdGVhZCBpcyAiICsgYSArICIuXG4iKTsKLX0KLQotZnVu
Y3Rpb24gbG9jYWxDYWxsVGVzdChhLCBiKQotewotICAgIGZ1bmN0aW9uIGxvY2FsQ2FsbChvKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIG8udG9TdHJpbmcoKTsKLSAgICB9Ci0gICAgcmV0dXJuIFts
b2NhbENhbGwoYSksIGJdWzFdOwotfQotCi1mdW5jdGlvbiBnbG9iYWxDYWxsKG8pCi17Ci0gICAg
cmV0dXJuIG8udG9TdHJpbmcoKTsKLX0KLQotZnVuY3Rpb24gZ2xvYmFsQ2FsbFRlc3QoYSwgYikK
LXsKLSAgICByZXR1cm4gW2dsb2JhbENhbGwoYSksIGJdWzFdOwotfQotCi1mdW5jdGlvbiBzY29w
ZWRDYWxsVGVzdChhLCBiKQotewotICAgIGZ1bmN0aW9uIHNjb3BlZENhbGwobykKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBvLnRvU3RyaW5nKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZigpCi0g
ICAgewotICAgICAgICByZXR1cm4gW3Njb3BlZENhbGwoYSksIGJdWzFdOwotICAgIH0KLQotICAg
IHJldHVybiBmKCk7Ci19Ci0KLWZ1bmN0aW9uIHJlc29sdmVDYWxsVGVzdChhLCBiKQotewotICAg
IG8gPSB7IHJlc29sdmVkQ2FsbDogZnVuY3Rpb24obykgeyByZXR1cm4gby50b1N0cmluZygpOyB9
fTsKLSAgICB3aXRoIChvKSB7Ci0gICAgICAgIHJldHVybiBbcmVzb2x2ZWRDYWxsKG8pLCBiXVsx
XTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGJyYWNrZXRDYWxsVGVzdChhLCBiKQotewotICAgIHJl
dHVybiBbYVsidG9TdHJpbmciXSgpLCBiXVsxXTsKLX0KLQotZnVuY3Rpb24gZG90Q2FsbFRlc3Qo
YSwgYikKLXsKLSAgICByZXR1cm4gW2EudG9TdHJpbmcoKSwgYl1bMV07Ci19Ci0KLWZ1bmN0aW9u
IHRlc3RDb25zdHJ1Y3RvcihvKQotewotICAgIHJldHVybiBvLnRvU3RyaW5nKCk7Ci19Ci0KLWZ1
bmN0aW9uIG5ld1Rlc3QoYSwgYikKLXsKLSAgICByZXR1cm4gW25ldyB0ZXN0Q29uc3RydWN0b3Io
YSksIGJdWzFdOwotfQotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIHNob3VsZEJlKGxv
Y2FsQ2FsbFRlc3QoMSwgMiksICJsb2NhbENhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxk
QmUoZ2xvYmFsQ2FsbFRlc3QoMSwgMiksICJnbG9iYWxDYWxsVGVzdCgxLCAyKSIsIDIpOwotICAg
IHNob3VsZEJlKHNjb3BlZENhbGxUZXN0KDEsIDIpLCAic2NvcGVkQ2FsbFRlc3QoMSwgMikiLCAy
KTsKLSAgICBzaG91bGRCZShyZXNvbHZlQ2FsbFRlc3QoMSwgMiksICJyZXNvbHZlQ2FsbFRlc3Qo
MSwgMikiLCAyKTsKLSAgICBzaG91bGRCZShicmFja2V0Q2FsbFRlc3QoMSwgMiksICJicmFja2V0
Q2FsbFRlc3QoMSwgMikiLCAyKTsKLSAgICBzaG91bGRCZShkb3RDYWxsVGVzdCgxLCAyKSwgImRv
dENhbGxUZXN0KDEsIDIpIiwgMik7Ci0gICAgc2hvdWxkQmUobmV3VGVzdCgxLCAyKSwgIm5ld1Rl
c3QoMSwgMikiLCAyKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzdGFy
dFRlc3QoKSI+Ci08cD4KLVRoaXMgcGFnZSB0ZXN0cyB0aGF0IHRoZSBnZW5lcmF0aW9uIG9mIGJ5
dGVjb2RlIGFsbG9jYXRlcyByZWdpc3RlcnMgY29ycmVjdGx5IHdoZW4gcHJvZmlsaW5nIGlzIGVu
YWJsZWQuIFRvIHJ1biB0aGUgdGVzdCBtYW51YWxseSwgZW5hYmxlIHByb2ZpbGluZyBpbiB0aGUg
d2ViIGluc3BlY3RvciBhbmQgcmVsb2FkIHRoaXMgcGFnZS4KLTwvcD4KLTxwcmUgaWQ9ImNvbnNv
bGUiPjwvcHJlPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9jYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjEwNWM3YS4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQx
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVy
bmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQo
dHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJV
c2luZyB0aGUgY2FsbCgpIG1ldGhvZCIpOwotCi0gICAgdmFyIG15T2JqZWN0ID0gbmV3IGZha2VP
YmplY3QoMSwgMik7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGZha2VPYmplY3Qg
KHgsIHkpCi17Ci0gICAgdGhpcy54ID0geDsKLSAgICBmYWtlSW50ZXJpb3JGdW5jdGlvbi5jYWxs
KHRoaXMsIHkpOwotfQotCi1mdW5jdGlvbiBmYWtlSW50ZXJpb3JGdW5jdGlvbih5KQotewotICAg
IHRoaXMueSA9IHk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFy
dFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGhhcyBhIGNhbGwgdG8gY2FsbCgpIGlu
IGl0LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0
aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHBy
b2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZha2VPYmpl
Y3QoKSB3aXRoIGNhbGwoKSBhcwotaXRzIGNoaWxkIGFuZCBhIGZha2VJbnRlcmlvckZ1bmN0aW9u
KCkgYXMgY2FsbCgpJ3MgY2hpbGQuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsaW5nLXRo
ZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0
aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmMyYmIxOC4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3Rh
cnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgc3RhcnRzIHBy
b2ZpbGluZyBmcm9tIHdpdGhpbiBhIGZ1bmN0aW9uIHdoaWNoIGlzIHRoZW4gY2FsbGVkIGxhdGVy
IGZyb20gYW5vdGhlciBjb250ZXh0LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9h
ZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBh
dCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGVyIHlvdSBzaG91bGQgc2VlIGEgY2FsbCB0byBp
bmRpcmVjdGlvbigpIGFuZCBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCkK
LQotUHJvZmlsZSB0aXRsZTogQ2FsbGluZyB0aGUgc2FtZSBmdW5jdGlvbiB3aGVyZSB0aGUgcHJv
ZmlsZSBzdGFydGVkIGZyb20gYW5vdGhlciBmdW5jdGlvbgotVGhyZWFkXzEgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgIGluZGlyZWN0aW9uIGNhbGxpbmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRl
ZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwgKGxpbmUgMTc6MjEpCi0gICAg
ICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyIGNhbGxpbmctdGhlLWZ1bmN0
aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNjb3BlLmh0bWwgKGxp
bmUgMjM6NDcpCi0gICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyIGNhbGxp
bmctdGhlLWZ1bmN0aW9uLXRoYXQtc3RhcnRlZC10aGUtcHJvZmlsZXItZnJvbS1hbm90aGVyLXNj
b3BlLmh0bWwgKGxpbmUgMjM6NDcpCi0gICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9jYWxsaW5nLXRoZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20t
YW5vdGhlci1zY29wZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jYWxsaW5nLXRo
ZS1mdW5jdGlvbi10aGF0LXN0YXJ0ZWQtdGhlLXByb2ZpbGVyLWZyb20tYW5vdGhlci1zY29wZS5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzU2N2YyLi4wMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY2FsbGluZy10aGUtZnVuY3Rpb24tdGhhdC1zdGFy
dGVkLXRoZS1wcm9maWxlci1mcm9tLWFub3RoZXItc2NvcGUuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDQ3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3By
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2lu
ZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93
LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgaW5kaXJlY3Rpb24o
KTsKLSAgICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCk7Ci0gICAgZW5k
VGVzdCgpOwotfQotCi1mdW5jdGlvbiBpbmRpcmVjdGlvbigpCi17Ci0gICAgZnVuY3Rpb25XaWNo
U3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpOwotfQotCi12YXIgZmlyc3RUaW1lID0gdHJ1ZTsK
LWZ1bmN0aW9uIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKQotewotICAg
IGlmIChmaXJzdFRpbWUpIHsKLSAgICAgICAgY29uc29sZS5wcm9maWxlKCJDYWxsaW5nIHRoZSBz
YW1lIGZ1bmN0aW9uIHdoZXJlIHRoZSBwcm9maWxlIHN0YXJ0ZWQgZnJvbSBhbm90aGVyIGZ1bmN0
aW9uIik7Ci0gICAgICAgIGZpcnN0VGltZSA9IGZhbHNlOwotICAgIH0KLQotICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDAwMDA7IGkrKykKLSAgICAgICAgdmFyIGIgPSBpICsgMjsKLX0KLQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBw
YWdlJ3MgSmF2YVNjcmlwdCBzdGFydHMgcHJvZmlsaW5nIGZyb20gd2l0aGluIGEgZnVuY3Rpb24g
d2hpY2ggaXMgdGhlbiBjYWxsZWQKLWxhdGVyIGZyb20gYW5vdGhlciBjb250ZXh0LgotPGJyPgot
PGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0
aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0
aGUgcHJvZmlsZXIgeW91IHNob3VsZCBzZWUgYSBjYWxsIHRvIGluZGlyZWN0aW9uKCkgYW5kCi1m
dW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCkKLTxkaXYgaWQ9Im91dHB1dCI+
PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzNiYmUyMC4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUtcHJvZmlsZXMtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBtdWx0aXBs
ZSBwcm9maWxlcyB3aXRoIHRoZSBzYW1lIG5hbWUuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVh
bGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFu
ZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJdCBzaG91bGQgbm90IGNyYXNoIG9yIGhhbmcgYW5kIHRo
ZXJlIHNob3VsZCBiZSBtdWx0aXBsZSBydW5zIG9mIHRoZSBzYW1lIG5hbWVkIHByb2ZpbGUuCi0K
LVByb2ZpbGUgdGl0bGU6IFRlc3QKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBz
dGFydFRlc3QgY29tcGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sIChsaW5lIDIyOjE5KQotICAg
ICAgdGVzdCBjb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwgKGxpbmUgMTE6MTQpCi0gICAg
ICAgICB0ZXN0MiBjb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwgKGxpbmUgMTc6MTUpCi0K
LVByb2ZpbGUgdGl0bGU6IFRlc3QKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBz
dGFydFRlc3QgY29tcGFyZS1tdWx0aXBsZS1wcm9maWxlcy5odG1sIChsaW5lIDIyOjE5KQotICAg
ICAgdGVzdCBjb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwgKGxpbmUgMTE6MTQpCi0gICAg
ICAgICB0ZXN0MiBjb21wYXJlLW11bHRpcGxlLXByb2ZpbGVzLmh0bWwgKGxpbmUgMTc6MTUpCi0K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb21wYXJlLW11bHRpcGxl
LXByb2ZpbGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlw
bGUtcHJvZmlsZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTYwMmI0NC4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2NvbXBhcmUtbXVsdGlwbGUt
cHJvZmlsZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMu
c2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLXZhciBqID0gMDsK
LWZ1bmN0aW9uIHRlc3QobGVuKSB7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkK
LSAgICAgICAgKytqOwotICAgIHRlc3QyKDIwMDAgLSBsZW4pOwotfQotCi1mdW5jdGlvbiB0ZXN0
MihsZW4pIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKQotICAgICAgICAtLWo7
Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJUZXN0
Iik7Ci0gICAgdGVzdCgxMDApOwotICAgIGNvbnNvbGUucHJvZmlsZUVuZCgiVGVzdCIpOwotCi0g
ICAgY29uc29sZS5wcm9maWxlKCJUZXN0Iik7Ci0gICAgdGVzdCgxMDAwKTsKLSAgICBjb25zb2xl
LnByb2ZpbGVFbmQoIlRlc3QiKTsKLQotICAgIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUo
KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4K
LVRoaXMgcGFnZSBoYXMgbXVsdGlwbGUgcHJvZmlsZXMgd2l0aCB0aGUgc2FtZSBuYW1lLgotPGJy
PgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3Nl
ciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJ
dCBzaG91bGQgbm90IGNyYXNoIG9yIGhhbmcgYW5kIHRoZXJlIHNob3VsZCBiZSBtdWx0aXBsZSBy
dW5zIG9mIHRoZQotc2FtZSBuYW1lZCBwcm9maWxlLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
Y29uc3RydWN0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25z
dHJ1Y3Rvci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkzZDg5
NjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25zdHJ1Y3Rvci1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1UaGlzIHBhZ2UncyBK
YXZhU2NyaXB0IGhhcyBhIGNhbGwgdG8gbmV3KCkgaW4gaXQuIAotCi1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQg
YmUgYSBjYWxsIHRvIGZha2VPYmplY3QoKSBhbmQgQXJyYXkoKSBpbiBpdC4KLQotUHJvZmlsZSB0
aXRsZTogVXNpbmcgYSBjb25zdHJ1Y3Rvci4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICBzdGFydFRlc3QgY29uc3RydWN0b3IuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGZha2VP
YmplY3QgY29uc3RydWN0b3IuaHRtbCAobGluZSAxOToyMSkKLSAgICAgICAgIEFycmF5IChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9jb25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9jb25zdHJ1Y3Rv
ci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYzYzOTA4Li4wMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvY29uc3RydWN0b3IuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDM2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1p
ZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAo
d2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2Zp
bGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29s
ZS5wcm9maWxlKCJVc2luZyBhIGNvbnN0cnVjdG9yLiIpOwotCi0gICAgdmFyIG15T2JqZWN0ID0g
bmV3IGZha2VPYmplY3QoMSwgMik7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci0KLWZ1bmN0aW9uIGZh
a2VPYmplY3QgKHgsIHkpCi17Ci0gICAgdmFyIG15QXJyYXkgPSBuZXcgQXJyYXkoKQotICAgIG15
QXJyYXlbMF0gPSA1OwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3Rh
cnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgYSBjYWxsIHRvIG5ldygpIGlu
IGl0LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0
aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHBy
b2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZha2VPYmpl
Y3QoKSBhbmQgQXJyYXkoKQotaW4gaXQuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRp
bWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZGU2NGY2Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgSGFz
IHNvbWUgZGVhZCB0aW1lIGluIHRoZSBwcm9maWxlLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEg
bGFyZ2UgYW1vdW50IG9mIHRoZSAlIHNwZW50IGluIChub24tSmF2YVNjcmlwdCkuCi0KLVByb2Zp
bGUgdGl0bGU6IERlYWQgdGltZSBpbiBwcm9maWxlLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgIG9ubG9hZCBkZWFkLXRpbWUuaHRtbCAobGluZSAyMTo0NCkKLSAgICAgIHN0YXJ0
VGVzdCBkZWFkLXRpbWUuaHRtbCAobGluZSAxMjoxOSkKLSAgICAgICAgIHNldFRpbWVvdXQgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgIChwcm9ncmFtKSBkZWFkLXRpbWUuaHRtbCAobGluZSAxOjEp
Ci0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcp
Ci0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9kZWFkLXRpbWUuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGE2NjRjZTAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9kZWFkLXRpbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKLX0KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdh
Y3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0
KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkRlYWQgdGltZSBpbiBwcm9maWxlLiIpOwotICAg
IHNldFRpbWVvdXQoImVuZFRlc3QoKSIsIDEyMzQpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4K
LQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IEhh
cyBzb21lIGRlYWQgdGltZSBpbiB0aGUgcHJvZmlsZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUg
c2hvdWxkIGJlIGEgbGFyZ2UgYW1vdW50IG9mIHRoZSAlIHNwZW50IGluIAotKG5vbi1KYXZhU2Ny
aXB0KS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+Ci0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZG9jdW1lbnQtZG90LXdyaXRlLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODQ5ZjFiZC4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLQotUHJvZmlsZSB0aXRsZTog
Q2FsbCBEb2N1bWVudC53cml0ZSgpCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
c3RhcnRUZXN0IGRvY3VtZW50LWRvdC13cml0ZS5odG1sIChsaW5lIDEwOjE5KQotICAgICAgd3Jp
dGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1y
ZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL2RvY3VtZW50LWRvdC13cml0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9kb2N1bWVudC1kb3Qtd3JpdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWY1NGY0MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2RvY3Vt
ZW50LWRvdC13cml0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVy
bmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rp
b24gc3RhcnRUZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkNhbGwgRG9jdW1lbnQud3Jp
dGUoKSIpOwotCi0gICAgZG9jdW1lbnQud3JpdGUoIjxkaXYgaWQ9XCJvdXRwdXRcIj48L2Rpdj4i
KTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBjYWxscyBkb2N1bWVudC53cml0ZSgpLgotPGJy
PgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3Nl
ciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJ
ZiB0aGVyZSBpcyBhIHByb2ZpbGUgaXQgc2hvdWxkIHNob3cgd3JpdGUoKS4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V2ZW50LWhhbmRsZXIt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNWM0OGNkLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGlzIHBhZ2UgaGFzIGFuIGV2
ZW50IGhhbmRsZXIuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRo
ZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9m
aWxlLiBJbiB0aGUgcHJvZmlsZSBpbnNlcnRuZXdUZXh0KCkgc2hvdWxkIGJlIGEgc2libGluZyB0
byBvbmxvYWQoKS4gCi0KLVByb2ZpbGUgdGl0bGU6IEV2ZW50IGhhbmRsZXIKLVRocmVhZF8xIChu
byBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgZXZlbnQtaGFuZGxlci5odG1sIChsaW5l
IDEwOjE5KQotICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
IGFkZEV2ZW50TGlzdGVuZXIgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGNsaWNrIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMt
cmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0g
ICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5k
VGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvZXZlbnQtaGFuZGxlci5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9ldmVudC1oYW5kbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGY2YTQ2MWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9ldmVudC1oYW5kbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwot
Ci1mdW5jdGlvbiBzdGFydFRlc3QoKQoteyAgICAKLSAgICBjb25zb2xlLnByb2ZpbGUoIkV2ZW50
IGhhbmRsZXIiKTsKLQotICAgIHZhciBteUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJidXR0b25XaXRoQW5FdmVudExpc3RlbmVyIik7Ci0gICAgbXlCdXR0b24uYWRkRXZlbnRMaXN0
ZW5lcigiY2xpY2siLCBpbnNlcnROZXdUZXh0LCBmYWxzZSk7Ci0gICAgbXlCdXR0b24uY2xpY2so
KTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxv
YWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgYW4gZXZlbnQgaGFuZGxlci4KLTxicj4K
LTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4g
dGhlIHByb2ZpbGUgaW5zZXJ0bmV3VGV4dCgpIHNob3VsZCBiZSBhIHNpYmxpbmcgdG8gb25sb2Fk
KCkuCi08aW5wdXQgdHlwZT0iYnV0dG9uIiBpZD0iYnV0dG9uV2l0aEFuRXZlbnRMaXN0ZW5lciIg
dmFsdWU9IkJ1dHRvbiB3aXRoIGFuIGV2ZW50IGxpc3RlbmVyIj4KLTxkaXYgaWQ9Im91dHB1dCI+
PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFsLW9uLXNhbWUtbGluZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL2V4ZWN1dGlvbi1jb250ZXh0LWFuZC1ldmFs
LW9uLXNhbWUtbGluZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQ5NWMyNjEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9leGVjdXRp
b24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhIGNhbGwgdG8gZXZhbCBhbmQgYSBz
Y3JpcHQgdGFnIG9uIHRoZSBzYW1lIGxpbmUuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5
LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBs
b29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgbXVsdGlw
bGUgKHByb2dyYW0pIGVsZW1lbnRzIGFuZCBvbmUgdGhhdCByZXByZXNlbnRzIHRoZSBldmFsKCku
Ci0KLVByb2ZpbGUgdGl0bGU6IFR3byBFeGVjdXRpb24gQ29udGV4dHMgb24gdGhlIHNhbWUgbGlu
ZQotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBleGVjdXRpb24t
Y29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGV2
YWxGdW5jdGlvbiAobm8gZmlsZSkgKGxpbmUgMToyMikKLSAgICAgICAgIGluc2VydE5ld1RleHQg
cHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBj
cmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0
Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9leGVjdXRp
b24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvZXhlY3V0aW9uLWNvbnRleHQtYW5kLWV2YWwtb24tc2FtZS1saW5lLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3NWIyOWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9leGVjdXRpb24tY29udGV4dC1hbmQtZXZhbC1vbi1zYW1lLWxp
bmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVn
YWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVz
dCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJUd28gRXhlY3V0aW9uIENvbnRleHRzIG9uIHRo
ZSBzYW1lIGxpbmUiKTsKLQotICAgIGV2YWxGdW5jdGlvbigpOwotCi0gICAgZW5kVGVzdCgpOwot
fQotPC9zY3JpcHQ+Ci08c2NyaXB0PgotZXZhbCgiZnVuY3Rpb24gZXZhbEZ1bmN0aW9uKCkgeyBp
bnNlcnROZXdUZXh0KCk7IH0iKTsKLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9
InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgYSBjYWxsIHRvIGV2YWwgYW5kIGEgc2NyaXB0
IHRhZyBvbiB0aGUgc2FtZSBsaW5lLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUg
bXVsdGlwbGUgKHByb2dyYW0pIGVsZW1lbnRzIGFuZAotb25lIHRoYXQgcmVwcmVzZW50cyB0aGUg
ZXZhbCgpLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxl
ci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwMjNlNWYuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxl
ci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGlzIHBhZ2Ug
aGFzIGFuIGlubGluZSBldmVudCBoYW5kbGVyLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgb25jbGljaygpIHNob3VsZCBiZSBh
IHNpYmxpbmcgdG8gb25sb2FkKCkgYW5kIG9uY2xpY2soKSBzaG91bGQgaGF2ZSBldmVudExpc3Rl
bmVyKCkgYXMgYSBjaGlsZC4gCi0KLVByb2ZpbGUgdGl0bGU6IElubGluZSBldmVudCBoYW5kbGVy
Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IGlubGluZS1ldmVu
dC1oYW5kbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgY2xpY2sgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
IG9uY2xpY2sgaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbCAobGluZSAzMToxMjcpCi0gICAgICAg
ICAgICBldmVudExpc3RlbmVyIGlubGluZS1ldmVudC1oYW5kbGVyLmh0bWwgKGxpbmUgMTc6MjMp
Ci0gICAgICAgICAgICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgICAgICAgICAgIGluc2VydE5ld1RleHQgcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
ICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBl
bmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9pbmxpbmUtZXZlbnQtaGFuZGxlci5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDAxNDYzLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvaW5saW5lLWV2ZW50LWhhbmRsZXIuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDM0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1p
ZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17ICAgIAotICAg
IGNvbnNvbGUucHJvZmlsZSgiSW5saW5lIGV2ZW50IGhhbmRsZXIiKTsKLQotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJldmVudExpc3RlbmVyU2V0SW5saW5lIikuY2xpY2soKTsKLX0KLQot
ZnVuY3Rpb24gZXZlbnRMaXN0ZW5lcigpIHsgICAgCi0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsK
LSAgICBlbmRUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJz
dGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIGFuIGlubGluZSBldmVudCBoYW5kbGVyLgotPGJy
PgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3Nl
ciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJ
biB0aGUgcHJvZmlsZSBvbmNsaWNrKCkgc2hvdWxkIGJlIGEgc2libGluZyB0byBvbmxvYWQoKSBh
bmQgb25jbGljaygpCi1zaG91bGQgaGF2ZSBldmVudExpc3RlbmVyKCkgYXMgYSBjaGlsZC4KLTxp
bnB1dCB0eXBlPSJidXR0b24iIG9uY2xpY2s9ImV2ZW50TGlzdGVuZXIoKSIgaWQ9ImV2ZW50TGlz
dGVuZXJTZXRJbmxpbmUiIHZhbHVlPSJFdmVudCBMaXN0ZW5lciBTZXQgSW5saW5lIj4KLTxkaXYg
aWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tYW55LWNhbGxzLWluLXRoZS1zYW1lLXNj
b3BlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNkNDVkMS4u
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL21hbnktY2FsbHMtaW4tdGhl
LXNhbWUtc2NvcGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAot
VGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBoYXMgbWFueSBmdW5jdGlvbiBjYWxscyBpbiB0aGUgc2Ft
ZSBzY29wZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJy
b3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUu
IEluIHRoZSBwcm9maWxlIG1hbnkgZnVuY3Rpb25zIHNob3VsZCBiZSB0aGUgY2hpbGRyZW4gb2Yg
c3RhcnRUZXN0LiBVc2UgdGhlIHNvcnRpbmcgY2FwYWJpbGl0ZXMgdG8gbWFrZSBzdXJlIHRoZSBz
aW1pbGFybHkgbmFtZWQgZnVuY3Rpb25zIGFyZSBzb3J0ZWQgY29ycmVjdGx5LgotCi1Qcm9maWxl
IHRpdGxlOiBNYW55IENhbGxzIEluIFRoZSBTYW1lIFNjb3BlCi1UaHJlYWRfMSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG1hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRt
bCAobGluZSAxMDoxOSkKLSAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGdldEVs
ZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBpbnNlcnRHaXZlblRleHQgcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgOToyNSkKLSAgICAgICAgIGNyZWF0ZUVs
ZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGFy
cmF5T3BlcmF0b3JGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAy
NTozMSkKLSAgICAgIGludGVybWVkaWFyeUZ1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIChsaW5lIDMyOjMwKQotICAgICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICAgICBpbnNlcnROZXdU
ZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAg
ICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAg
Y3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGFwcGVu
ZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBnZXRFbGVtZW50QnlJ
ZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAg
Y3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4
dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgZW5kIG1hbnktY2FsbHMtaW4tdGhlLXNhbWUtc2NvcGUuaHRtbCAobGlu
ZSAyNjoxMykKLSAgICAgIGVuZFQgbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sIChs
aW5lIDMxOjE0KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAo
bGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbWFu
eS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9tYW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDA3MTliY2UuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9tYW55LWNhbGxzLWluLXRoZS1zYW1lLXNjb3BlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0
OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVk
KHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgi
TWFueSBDYWxscyBJbiBUaGUgU2FtZSBTY29wZSIpOwotCi0gICAgaW5zZXJ0TmV3VGV4dCgpOwot
ICAgIGluc2VydEdpdmVuVGV4dCgiVGhpcyB3YXMgYSB0cml1bXBoLiIpOwotICAgIGFycmF5T3Bl
cmF0b3JGdW5jdGlvbig3KTsKLSAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbigpOwotICAgIGFub255
bW91c0Z1bmN0aW9uKCk7Ci0gICAgZW5kKCkKLSAgICBlbmRUKCk7Ci0gICAgZW5kVCgpOwotCi0g
ICAgZW5kVGVzdCgpOwotfQotCi1mdW5jdGlvbiBlbmQoKQotewotICAgIHZhciB4ID0gMDsKLX0K
LQotZnVuY3Rpb24gZW5kVCgpCi17Ci0gICAgdmFyIHkgPSAxOwotfQotCi08L3NjcmlwdD4KLTwv
aGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2Ny
aXB0IGhhcyBtYW55IGZ1bmN0aW9uIGNhbGxzIGluIHRoZSBzYW1lIHNjb3BlLgotPGJyPgotPGJy
PgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUg
cHJvZmlsZSBtYW55IGZ1bmN0aW9ucyBzaG91bGQgYmUgdGhlIGNoaWxkcmVuIG9mIHN0YXJ0VGVz
dC4KLVVzZSB0aGUgc29ydGluZyBjYXBhYmlsaXRlcyB0byBtYWtlIHN1cmUgdGhlIHNpbWlsYXJs
eSBuYW1lZCBmdW5jdGlvbnMgYXJlIHNvcnRlZAotY29ycmVjdGx5LgotPGRpdiBpZD0ib3V0cHV0
Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9u
LWNhbGxzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUt
YW5kLWRpZmZlcmVudC1zY29wZWQtYW5vbnltb3VzLWZ1bmN0aW9uLWNhbGxzLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDUxZWM4MS4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFu
b255bW91cy1mdW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwy
MyArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIHRoZSBzYW1lIGFub255bW91
cyBmdW5jdGlvbiBmcm9tIG11bHRpcGxlIGFuZCBkaWZmZXJlbnRseSBzY29wZWQgbG9jYXRpb25z
LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0
aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhl
IHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0IHdpdGggZmFrZUlu
dGVyaW9yRnVuY3Rpb24gYXMgaXRzIGNoaWxkLCBidXQgY2FsbCgpIHNob3VsZCBub3QgYmUgc2hv
d24uCi0KLVByb2ZpbGUgdGl0bGU6IE11bHRpcGxlIGFuZCBkaWZmZXJlbnQgc2NvcGVkIGNhbGxz
IHRvIHRoZSBzYW1lIGFub255bW91cyBmdW5jdGlvbgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgIHN0YXJ0VGVzdCBtdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1hbm9ueW1v
dXMtZnVuY3Rpb24tY2FsbHMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0
aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAg
aW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykK
LSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBl
bmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGludGVybWVkaWFyeUZ1bmN0aW9uIHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDMyOjMwKQotICAgICAgICAgYW5vbnltb3VzRnVu
Y3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAgICAg
ICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3
OjIzKQotICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5v
bnltb3VzLWZ1bmN0aW9uLWNhbGxzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211
bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWFub255bW91cy1mdW5jdGlvbi1jYWxscy5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMmQwMDVhLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtYW5v
bnltb3VzLWZ1bmN0aW9uLWNhbGxzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0g
ICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwot
Ci1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiTXVsdGlwbGUg
YW5kIGRpZmZlcmVudCBzY29wZWQgY2FsbHMgdG8gdGhlIHNhbWUgYW5vbnltb3VzIGZ1bmN0aW9u
Iik7Ci0KLSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotICAgIGFub255bW91c0Z1bmN0aW9uKCk7
Ci0KLSAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbigpOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdl
J3MgSmF2YVNjcmlwdCBjYWxscyB0aGUgc2FtZSBhbm9ueW1vdXMgZnVuY3Rpb24gZnJvbSBtdWx0
aXBsZSBhbmQgZGlmZmVyZW50bHkgc2NvcGVkIGxvY2F0aW9ucy4KLTxicj4KLTxicj4KLVRvIHJ1
biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRo
ZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUg
dGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0byBmYWtlT2JqZWN0IHdpdGgKLWZha2VJbnRlcmlvckZ1
bmN0aW9uIGFzIGl0cyBjaGlsZCwgYnV0IGNhbGwoKSBzaG91bGQgbm90IGJlIHNob3duLgotPGRp
diBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rp
b24tY2FsbHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBs
ZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI5ZmRjZWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1j
YWxscy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGlzIHBh
Z2UncyBKYXZhU2NyaXB0IGNhbGxzIHRoZSBzYW1lIGZ1bmN0aW9uIGZyb20gbXVsdGlwbGUgYW5k
IGRpZmZlcmVudGx5IHNjb3BlZCBsb2NhdGlvbnMuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVh
bGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFu
ZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgdHdv
IGNhbGxzIHRvIGluc2VydE5ld1RleHQgdW5kZXIgc3RhcnRUZXN0KCkgYW5kIG9uZSB1bmRlciBh
biAoYW5vbnltb3VzIGZ1bmN0aW9uKSB1bmRlciBpbnRlcm1lZGlhcnlGdW5jdGlvbigpLgotCi1Q
cm9maWxlIHRpdGxlOiBNdWx0aXBsZSBhbmQgZGlmZmVyZW50IHNjb3BlZCBjYWxscyB0byB0aGUg
c2FtZSBmdW5jdGlvbgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVz
dCBtdWx0aXBsZS1hbmQtZGlmZmVyZW50LXNjb3BlZC1mdW5jdGlvbi1jYWxscy5odG1sIChsaW5l
IDEwOjE5KQotICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAxNzoyMykKLSAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgZ2V0RWxlbWVudEJ5
SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGludGVybWVkaWFyeUZ1bmN0aW9uIHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDMyOjMwKQotICAgICAgICAgYW5vbnltb3Vz
RnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMjk6MzQpCi0gICAg
ICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDE3OjIzKQotICAgICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBw
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUtYW5kLWRpZmZlcmVudC1zY29wZWQt
ZnVuY3Rpb24tY2FsbHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbXVsdGlwbGUt
YW5kLWRpZmZlcmVudC1zY29wZWQtZnVuY3Rpb24tY2FsbHMuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZmMyZTIyMS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL211bHRpcGxlLWFuZC1kaWZmZXJlbnQtc2NvcGVkLWZ1bmN0aW9uLWNhbGxzLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewot
ICAgIGNvbnNvbGUucHJvZmlsZSgiTXVsdGlwbGUgYW5kIGRpZmZlcmVudCBzY29wZWQgY2FsbHMg
dG8gdGhlIHNhbWUgZnVuY3Rpb24iKTsKLQotICAgIGluc2VydE5ld1RleHQoKTsKLSAgICBpbnNl
cnROZXdUZXh0KCk7Ci0KLSAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbigpOwotCi0gICAgZW5kVGVz
dCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCki
PgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyB0aGUgc2FtZSBmdW5jdGlvbiBmcm9tIG11
bHRpcGxlIGFuZCBkaWZmZXJlbnRseSBzY29wZWQgbG9jYXRpb25zLgotPGJyPgotPGJyPgotVG8g
cnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQg
dGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmls
ZSB0aGVyZSBzaG91bGQgYmUgdHdvIGNhbGxzIHRvIGluc2VydE5ld1RleHQgdW5kZXIKLXN0YXJ0
VGVzdCgpIGFuZCBvbmUgdW5kZXIgYW4gKGFub255bW91cyBmdW5jdGlvbikgdW5kZXIgaW50ZXJt
ZWRpYXJ5RnVuY3Rpb24oKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWFub255
bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25z
LWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTQwMTQwNC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL211bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20tdGhlLXNh
bWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAot
VGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyB0aGUgZGlmZmVyZW50IGFub255bW91cyBmdW5j
dGlvbnMgdGhlIHNhbWUgc2NvcGUuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2Fk
IGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0
IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxsIHR3byBl
bnRyaWVzIG5hbWVkIHRvIChhbm9ueW1vdXMgZnVuY3Rpb24pLCBhcyBvcHBvc2VkIHRvIG9uZSBl
bnRyeSBjYWxsZWQgdHdpY2UuCi0KLVByb2ZpbGUgdGl0bGU6IE11bHRpcGxlIGNhbGxzIHRvIGRp
ZmZlcmVudCBhbm9ueW1vdXMgZnVuY3Rpb25zCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgc3RhcnRUZXN0IG11bHRpcGxlLWFub255bW91cy1mdW5jdGlvbnMtY2FsbGVkLWZyb20t
dGhlLXNhbWUtZnVuY3Rpb24uaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0
aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAg
aW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykK
LSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBl
bmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGFub3RoZXJBbm9ueW1vdXNGdW5jdGlvbiBwcm9m
aWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAzMDo0MSkKLSAgICAgICAgIGluc2VydEdp
dmVuVGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA5OjI1KQotICAgICAg
ICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3Jl
YXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxk
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
bXVsdGlwbGUtYW5vbnltb3VzLWZ1bmN0aW9ucy1jYWxsZWQtZnJvbS10aGUtc2FtZS1mdW5jdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVu
Y3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZiMWNmMmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9tdWx0aXBsZS1hbm9ueW1vdXMtZnVuY3Rpb25zLWNhbGxlZC1mcm9tLXRoZS1zYW1l
LWZ1bmN0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxz
LnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiTXVsdGlwbGUgY2FsbHMgdG8gZGlm
ZmVyZW50IGFub255bW91cyBmdW5jdGlvbnMiKTsKLQotICAgIGFub255bW91c0Z1bmN0aW9uKCk7
Ci0gICAgYW5vdGhlckFub255bW91c0Z1bmN0aW9uKCk7Ci0KLSAgICBlbmRUZXN0KCk7Ci19Ci08
L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBh
Z2UncyBKYXZhU2NyaXB0IGNhbGxzIHRoZSBkaWZmZXJlbnQgYW5vbnltb3VzIGZ1bmN0aW9ucyB0
aGUgc2FtZSBzY29wZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxv
YWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sg
YXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGEgY2FsbCB0
d28gZW50cmllcyBuYW1lZCB0byAoYW5vbnltb3VzIGZ1bmN0aW9uKSwKLWFzIG9wcG9zZWQgdG8g
b25lIGVudHJ5IGNhbGxlZCB0d2ljZS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxl
LWZyYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxl
LWZyYW1lcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlMjNm
NGMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFt
ZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhpcyB0ZXN0
IGhhcyBKUyBleGVjdXRpbmcgaW4gYW5vdGhlciB3aW5kb3cuIAotCi1UbyBydW4gdGhpcyB0ZXN0
IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVj
dG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQg
YmUgYSBjYWxsIHRvIGZ1bmN0aW9uSW5PdGhlckZyYW1lKCkuCi0KLVByb2ZpbGUgdGl0bGU6IE90
aGVyIHdpbmRvdyBleGVjdXRpbmcgSmF2YVNjcmlwdAotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgIHN0YXJ0VGVzdCBtdWx0aXBsZS1mcmFtZXMuaHRtbCAobGluZSAxMDoxOSkKLSAg
ICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBmdW5jdGlvbklu
T3RoZXJGcmFtZSBvdGhlci1mcmFtZS5odG1sIChsaW5lIDQ6MzApCi0gICAgICAgICBmdW5jdGlv
bkluUGFyZW50RnJhbWUgbXVsdGlwbGUtZnJhbWVzLmh0bWwgKGxpbmUgMjE6MzEpCi0gICAgICBp
bnNlcnRHaXZlblRleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgOToyNSkK
LSAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgIGNy
ZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBhcHBlbmRDaGlsZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRp
cGxlLWZyYW1lcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9tdWx0aXBsZS1mcmFt
ZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFiNGZmNi4uMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL211bHRpcGxlLWZyYW1lcy5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRUZXN0KCkKLXsKLSAgICBj
b25zb2xlLnByb2ZpbGUoIk90aGVyIHdpbmRvdyBleGVjdXRpbmcgSmF2YVNjcmlwdCIpOwotCi0g
ICAgdmFyIG15RnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlTdWJGcmFtZSIpOwot
ICAgIHZhciBzZWNyZXQgPSBteUZyYW1lLmNvbnRlbnRXaW5kb3cuZnVuY3Rpb25Jbk90aGVyRnJh
bWUoKTsKLSAgICBpbnNlcnRHaXZlblRleHQoc2VjcmV0KTsKLQotICAgIGVuZFRlc3QoKTsKLX0K
LQotZnVuY3Rpb24gZnVuY3Rpb25JblBhcmVudEZyYW1lKCkgewotICAgIHJldHVybiAiUGkiOwot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhp
cyB0ZXN0IGhhcyBKUyBleGVjdXRpbmcgaW4gYW5vdGhlciB3aW5kb3cuCi08YnI+Ci08YnI+Ci1U
byBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9h
ZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9m
aWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25Jbk90aGVyRnJhbWUoKS4KLTxk
aXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08aWZyYW1lIHNyYz0icmVzb3VyY2VzL290aGVyLWZyYW1l
Lmh0bWwiIGlkPSJteVN1YkZyYW1lIj48L2lmcmFtZT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlz
cGxheS1uYW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25hbWVk
LWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxOTBhNjRjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwxNiArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNh
bGxzIG5hbWVkIGZ1bmN0aW9ucyBhbmQgY2hhbmdlcyB0aGVpciBkaXNwbGF5IG5hbWVzLiAKLQot
VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxv
YWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gWW91IHNob3VsZCBz
ZWUgZnVuY3Rpb25zIG5hbWVkICJbeF0gaXRlcmF0aW9uW3NdIGZ1bmN0aW9uIiwgYW5kIG5vdCAi
ZnVuY3Rpb25beF0iCi0KLVByb2ZpbGUgdGl0bGU6IE5hbWVkIGZ1bmN0aW9ucyB3aXRoIGRpc3Bs
YXkgbmFtZXMKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmFt
ZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDUzOjE5KQotICAgICAg
MCBpdGVyYXRpb25zIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13aXRoLWRpc3BsYXktbmFtZXMu
aHRtbCAobGluZSAxMDoxOSkKLSAgICAgIDEgaXRlcmF0aW9uIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0
aW9ucy13aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAxNzoxOSkKLSAgICAgIDIgaXRlcmF0
aW9ucyBmdW5jdGlvbiBuYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxp
bmUgMjQ6MTkpCi0gICAgICAyMCBpdGVyYXRpb25zIGZ1bmN0aW9uIG5hbWVkLWZ1bmN0aW9ucy13
aXRoLWRpc3BsYXktbmFtZXMuaHRtbCAobGluZSAzMToyMCkKLSAgICAgIDEwMDAgaXRlcmF0aW9u
cyBmdW5jdGlvbiBuYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNwbGF5LW5hbWVzLmh0bWwgKGxpbmUg
Mzg6MjIpCi0gICAgICBib2d1c0Rpc3BsYXlOYW1lRnVuY3Rpb24gbmFtZWQtZnVuY3Rpb25zLXdp
dGgtZGlzcGxheS1uYW1lcy5odG1sIChsaW5lIDQ2OjM0KQotICAgICAgZW5kVGVzdCBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmFtZWQtZnVuY3Rpb25zLXdpdGgtZGlzcGxheS1uYW1lcy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0aC1kaXNw
bGF5LW5hbWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdhZjJlYzAuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uYW1lZC1mdW5jdGlvbnMtd2l0
aC1kaXNwbGF5LW5hbWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50
ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5j
dGlvbiBmdW5jdGlvbjAoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMDsgKytpKSA7Ci19
Ci0KLWZ1bmN0aW9uMC5kaXNwbGF5TmFtZSA9ICIwIGl0ZXJhdGlvbnMgZnVuY3Rpb24iOwotCi1m
dW5jdGlvbiBmdW5jdGlvbjEoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTsgKytpKSA7
Ci19Ci0KLWZ1bmN0aW9uMS5kaXNwbGF5TmFtZSA9ICIxIGl0ZXJhdGlvbiBmdW5jdGlvbiI7Ci0K
LWZ1bmN0aW9uIGZ1bmN0aW9uMigpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyOyArK2kp
IDsKLX0KLQotZnVuY3Rpb24yLmRpc3BsYXlOYW1lID0gIjIgaXRlcmF0aW9ucyBmdW5jdGlvbiI7
Ci0KLWZ1bmN0aW9uIGZ1bmN0aW9uMjAoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjA7
ICsraSkgOwotfQotCi1mdW5jdGlvbjIwLmRpc3BsYXlOYW1lID0gIjIwIGl0ZXJhdGlvbnMgZnVu
Y3Rpb24iOwotCi1mdW5jdGlvbiBmdW5jdGlvbjEwMDAoKQotewotICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDsgKytpKSA7Ci19Ci0KLWZ1bmN0aW9uMTAwMC5kaXNwbGF5TmFtZSA9ICIxMDAw
IGl0ZXJhdGlvbnMgZnVuY3Rpb24iOwotCi0KLWZ1bmN0aW9uIGJvZ3VzRGlzcGxheU5hbWVGdW5j
dGlvbigpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAwOyArK2kpIDsKLX0KLQotYm9ndXNE
aXNwbGF5TmFtZUZ1bmN0aW9uLmRpc3BsYXlOYW1lID0gYm9ndXNEaXNwbGF5TmFtZUZ1bmN0aW9u
OwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiTmFtZWQg
ZnVuY3Rpb25zIHdpdGggZGlzcGxheSBuYW1lcyIpOwotCi0gICAgZnVuY3Rpb24wKCk7Ci0gICAg
ZnVuY3Rpb24xKCk7Ci0gICAgZnVuY3Rpb24yKCk7Ci0gICAgZnVuY3Rpb24yMCgpOwotICAgIGZ1
bmN0aW9uMTAwMCgpOwotICAgIGJvZ3VzRGlzcGxheU5hbWVGdW5jdGlvbigpOwotCi0gICAgZW5k
VGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0
KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBuYW1lZCBmdW5jdGlvbnMgYW5kIGNo
YW5nZXMgdGhlaXIgZGlzcGxheSBuYW1lcy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3Qg
bWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0
b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgWW91IHNob3VsZCBzZWUgZnVuY3Rpb25zIG5h
bWVkICJbeF0gaXRlcmF0aW9uW3NdIGZ1bmN0aW9uIiwgYW5kIG5vdCAiZnVuY3Rpb25beF0iCi08
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24t
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMjI5YTQyLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbmVzdGVkLWFub255bW91cy1mdW5j
dG9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoaXMgcGFn
ZSdzIEphdmFTY3JpcHQgY2FsbHMgYW4gYW5vbnltb3VzIHdoaWNoIGNhbGxzIGEgbmVzdGVkIGFu
b255bW91cyBmdW5jdGlvbi4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQg
aW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhl
IHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhbiAoYW5vbnltb3VzIGZ1
bmN0aW9uKSB3aXRoIGEgY2hpbGQgKGFub255bW91cyBmdW5jdGlvbikuCi0KLVByb2ZpbGUgdGl0
bGU6IE5lc3RlZCBhbm9ueW1vdXMgZnVuY3Rpb25zIGNhbGxlZAotVGhyZWFkXzEgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBuZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbCAo
bGluZSAxMDoxOSkKLSAgICAgIEFub255bW91c0Z1bmN0aW9uV2ljaENhbGxzQW5Bbm9ueW1vdXNG
dW5jdGlvbiBuZXN0ZWQtYW5vbnltb3VzLWZ1bmN0b24uaHRtbCAobGluZSAxNDo2NSkKLSAgICAg
ICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDI5OjM0KQotICAgICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDow
KQotICAgICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMt
ZnVuY3Rvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtYW5vbnltb3Vz
LWZ1bmN0b24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjZiOTI1YS4uMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3RlZC1hbm9ueW1vdXMtZnVu
Y3Rvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRM
ZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZCh0cnVlKTsKLQotZnVuY3Rpb24gc3RhcnRU
ZXN0KCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIk5lc3RlZCBhbm9ueW1vdXMgZnVuY3Rpb25z
IGNhbGxlZCIpOwotCi0gICAgdmFyIEFub255bW91c0Z1bmN0aW9uV2ljaENhbGxzQW5Bbm9ueW1v
dXNGdW5jdGlvbiA9IGZ1bmN0aW9uKCkgewotICAgICAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwot
ICAgIH0KLQotICAgIEFub255bW91c0Z1bmN0aW9uV2ljaENhbGxzQW5Bbm9ueW1vdXNGdW5jdGlv
bigpOwotCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9u
bG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBhbiBhbm9u
eW1vdXMgd2hpY2ggY2FsbHMgYSBuZXN0ZWQgYW5vbnltb3VzIGZ1bmN0aW9uLgotPGJyPgotPGJy
PgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVu
IGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUg
cHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYW4gKGFub255bW91cyBmdW5jdGlvbikgd2l0aCBhIGNo
aWxkCi0oYW5vbnltb3VzIGZ1bmN0aW9uKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25lc3Rl
ZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL25lc3RlZC1zdGFydC1hbmQtc3RvcC1wcm9maWxlci1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1YTMwOWQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTg2ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFT
Y3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxlKCkgdGhyZWUgdGltZXMgdGhlbiBjb25zb2xlLnBy
b2ZpbGVFbmQoKSB0aHJlZSB0aW1lcy4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxv
YWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sg
YXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJv
ZmlsZXMuCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgdGhpcmQgdGlt
ZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgbmVzdGVkLXN0
YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRUZXN0IHBy
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQotUHJvZmlsZSB0aXRs
ZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSB0aGlyZCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBuZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIu
aHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJj
ZXMuanMgKGxpbmUgMToxNykKLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRo
ZSBzZWNvbmQgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRl
c3QgbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAg
ICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0gICAg
ICAgICBwcm9maWxlRW5kIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBwcmludFByb2Zp
bGVzRGF0YVdpdGhvdXRUaW1lIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDYy
OjM4KQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
IGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBwcmludFByb2Zp
bGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNzc6
MzcpCi0gICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJpbmdSZXBsYWNlIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9u
KSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICBwcmludFByb2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMgKGxpbmUgNzc6MzcpCi0gICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVj
dHNGb3JTdHJpbmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAg
ICAgICAgICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAg
ICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
IGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBwcmludFBy
b2ZpbGVOb2RlV2l0aG91dFRpbWUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
Nzc6MzcpCi0gICAgICAgICAgICAgICAgICAgICByZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBoYXNPYnNlcnZhYmxlU2lkZUVmZmVjdHNGb3JTdHJp
bmdSZXBsYWNlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYW5vbnltb3VzIGZ1bmN0aW9uKSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgICAgYW5vbnltb3VzIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
ICAgICAgIGNoaWxkcmVuIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVt
ZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgbm90aWZ5RG9uZSAobm8gZmls
ZSkgKGxpbmUgMDowKQotCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUg
dGhpcmQgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qg
bmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBl
bmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLVByb2Zp
bGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25kIHRpbWUuCi1UaHJlYWRfMSAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IG5lc3RlZC1zdGFydC1hbmQtc3RvcC1w
cm9maWxlci5odG1sIChsaW5lIDEwOjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpT
LXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotICAgICAgICAgcHJvZmlsZUVuZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA2MjozOCkKLSAgICAgICAgICAgIGNyZWF0ZUVs
ZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHByb2ZpbGVy
LXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAgcmVwbGFj
ZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgaGFzT2JzZXJ2YWJsZVNp
ZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgICAgICAgIGFub255bW91cyAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
IGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBjaGlsZHJl
biAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdp
dGhvdXRUaW1lIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAg
ICAgICAgICAgICAgICAgcmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgaGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlv
bikgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFub255bW91cyAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgICAgICAgcHJpbnRQcm9maWxlTm9kZVdpdGhvdXRUaW1lIHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDc3OjM3KQotICAgICAgICAgICAgICAgICAg
ICAgcmVwbGFjZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAg
aGFzT2JzZXJ2YWJsZVNpZGVFZmZlY3RzRm9yU3RyaW5nUmVwbGFjZSAobm8gZmlsZSkgKGxpbmUg
MDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFub255bW91cyBmdW5jdGlvbikgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGFub255bW91cyAobm8g
ZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbiAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgIG5vdGlmeURvbmUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLQotUHJvZmlsZSB0
aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBmaXJzdCB0aW1lLgotVGhyZWFkXzEgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBuZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmls
ZXIuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNv
dXJjZXMuanMgKGxpbmUgMToxNykKLSAgICAgICAgIHByb2ZpbGVFbmQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUgcHJvZmlsZXItdGVz
dC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNjI6MzgpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgIHJlcGxhY2UgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZm
ZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
ICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
IGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICBhcHBl
bmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0
VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAg
ICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChu
byBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgIHJl
cGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGhhc09i
c2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxl
KSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBw
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMg
ZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAg
ICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAg
ICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2Vy
dmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMg
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRl
eHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBh
cHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2Ug
KG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhh
c09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rp
b24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBw
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0
cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHRO
b2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10
ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0c0ZvclN0cmlu
Z1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZp
bGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0
VGltZSBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFi
bGVTaWRlRWZmZWN0c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rp
b24pIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAw
OjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZSBwcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyAobGluZSA3NzozNykKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ic2VydmFibGVTaWRlRWZmZWN0
c0ZvclN0cmluZ1JlcGxhY2UgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbm9ueW1vdXMgZnVuY3Rpb24pIChubyBm
aWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhbm9ueW1vdXMgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRDaGlsZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2hpbGRyZW4gKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1l
bnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICBub3RpZnlEb25lIChubyBmaWxl
KSAobGluZSAwOjApCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9u
ZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvbmVzdGVkLXN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDJlNzg3MjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9uZXN0ZWQtc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXIuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDMxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2lu
ZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5w
cm9maWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgdGhlIGZpcnN0IHRpbWUuIik7Ci0gICAgY29uc29s
ZS5wcm9maWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgdGhlIHNlY29uZCB0aW1lLiIpOwotICAgIGNv
bnNvbGUucHJvZmlsZSgiU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSB0aGlyZCB0aW1lLiIpOwotICAg
IGVuZFRlc3QoKTsKLSAgICBlbmRUZXN0KCk7Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2
YVNjcmlwdCBjYWxscyBjb25zb2xlLnByb2ZpbGUoKSB0aHJlZSB0aW1lcyB0aGVuIGNvbnNvbGUu
cHJvZmlsZUVuZCgpCi10aHJlZSB0aW1lcy4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3Qg
bWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0
b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGVyIHRoZXJlIHNob3Vs
ZCBiZSB0aHJlZSBwcm9maWxlcy4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlv
bi1jb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhl
Y3V0aW9uLWNvbnRleHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3NTVkY2NiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvbm8tZXhl
Y3V0aW9uLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBA
Ci1UaGlzIHBhZ2UgaGFzIGEgbm8gcHJvZmlsaW5nIGluZm9ybWF0aW9uLiAKLQotVG8gcnVuIHRo
aXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdl
Ykluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gWW91IHNob3VsZCBub3Qgc2VlIGFu
eSBwcm9maWxlIGRhdGUgaW4gdGhlIFdlYkluc3BlY3Rvci4KLQotCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL25vLWV4ZWN1dGlvbi1jb250ZXh0Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE5Yzg1MzkuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9uby1leGVjdXRpb24tY29udGV4dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MjAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmls
ZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLWlmICh3aW5kb3cuaW50
ZXJuYWxzKQotICAgIGludGVybmFscy5zZXRMZWdhY3lKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxl
ZCh0cnVlKTsKLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InByaW50UHJvZmls
ZXNEYXRhV2l0aG91dFRpbWUoKSI+Ci1UaGlzIHBhZ2UgaGFzIGEgbm8gcHJvZmlsaW5nIGluZm9y
bWF0aW9uLgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBp
biB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhl
IHByb2ZpbGUuICBZb3Ugc2hvdWxkIG5vdCBzZWUgYW55IHByb2ZpbGUgZGF0ZSBpbiB0aGUgV2Vi
SW5zcGVjdG9yLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250ZXh0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1j
b250ZXh0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjhkZDY3
MC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRpb24t
Y29udGV4dC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlz
IHBhZ2UgaGFzIGEgc2luZ2xlIHNjcmlwdCB0YWcgd2l0aCBzb21lIHNpbXBsZSBKYXZhU2NyaXB0
LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0
aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4KLQotUHJv
ZmlsZSB0aXRsZTogT25lIEV4ZWN1dGlvbiBDb250ZXh0Ci1UaHJlYWRfMSAobm8gZmlsZSkgKGxp
bmUgMDowKQotICAgc3RhcnRUZXN0IG9uZS1leGVjdXRpb24tY29udGV4dC5odG1sIChsaW5lIDEw
OjE5KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAx
OjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1
dGlvbi1jb250ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL29uZS1leGVjdXRp
b24tY29udGV4dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTVmODczLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvb25lLWV4ZWN1dGlvbi1jb250
ZXh0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExl
Z2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRl
c3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiT25lIEV4ZWN1dGlvbiBDb250ZXh0Iik7Ci0g
ICAgZW5kVGVzdCgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJz
dGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UgaGFzIGEgc2luZ2xlIHNjcmlwdCB0YWcgd2l0aCBzb21l
IHNpbXBsZSBKYXZhU2NyaXB0LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxs
eSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQg
bG9vayBhdAotdGhlIHByb2ZpbGUuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5Pgot
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNh
bGxzLWluLWluY2x1ZGVkLWZpbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZpbGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNDJkMTcxLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNsdWRlZC1maWxlLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSBjYWxscyB0aGUgcHJv
ZmlsZXIgZnJvbSB0aGUgaW5jbHVkZWQgZmlsZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQgdGhlIHByb2ZpbGUuIElmIHRoZXJlIGlzIGEgcHJvZmlsZSB0aGF0IGlzIHN1ZmZp
Y2llbnQgZm9yIHRoaXMgdGVzdC4KLQotUHJvZmlsZSB0aXRsZTogUHJvZmlsZSBjYWxsIGluIGlu
Y2x1ZGVkIGZpbGUKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFByb2Zp
bGUgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgNDI6MjIpCi0gICBlbmRUZXN0
IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWluY2x1ZGVkLWZp
bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS1jYWxscy1pbi1pbmNs
dWRlZC1maWxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmMGY4ZjIuLjAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLWNhbGxzLWluLWlu
Y2x1ZGVkLWZpbGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2Vz
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5h
bHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9u
IHN0YXJ0VGVzdCgpCi17Ci0gICAgc3RhcnRQcm9maWxlKCJQcm9maWxlIGNhbGwgaW4gaW5jbHVk
ZWQgZmlsZSIpOwotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9k
eSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBjYWxscyB0aGUgcHJvZmlsZXIgZnJv
bSB0aGUgaW5jbHVkZWQgZmlsZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFs
bHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5k
IGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSWYgdGhlcmUgaXMgYSBwcm9maWxlIHRoYXQgaXMgc3Vm
ZmljaWVudCBmb3IgdGhpcyB0ZXN0LgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxzY3JpcHQ+
Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRpdGxlLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMThkYWNkYi4uMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGUtd2l0aC1uby10aXRsZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHBhZ2UgY3JlYXRlcyBhIHByb2ZpbGUg
d2l0aG91dCBhIHRpdGxlLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBp
biB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUg
cHJvZmlsZS4gSWYgdGhlcmUgaXMgYSBwcm9maWxlIHRoYXQgaXMgc3VmZmljaWVudCBmb3IgdGhp
cyB0ZXN0LgotCi1Qcm9maWxlIHRpdGxlOiAKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICBzdGFydFRlc3QgcHJvZmlsZS13aXRoLW5vLXRpdGxlLmh0bWwgKGxpbmUgMTA6MTkpCi0g
ICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0K
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8t
dGl0bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsZS13aXRoLW5vLXRp
dGxlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhNTI1YmMuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9wcm9maWxlLXdpdGgtbm8tdGl0bGUuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17
Ci0gICAgY29uc29sZS5wcm9maWxlKCk7Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlIGNyZWF0ZXMg
YSBwcm9maWxlIHdpdGhvdXQgYSB0aXRsZS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3Qg
bWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0
b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSWYgdGhlcmUgaXMgYSBwcm9maWxlIHRoYXQg
aXMgc3VmZmljaWVudCBmb3IgdGhpcyB0ZXN0LgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTxz
Y3JpcHQ+Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0
b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3Rv
cC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE1NmEyYjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9wcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi1idXQtc3RvcC1wcm9m
aWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSwxMCArMCwwIEBACi1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJv
bSB3aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24gYnV0IHN0b3BzIHRoZSBwcm9maWxlciBmcm9tIGEg
ZGlmZmVyZW50IGxldmVsIG9mIG5lc3RpbmcuIAotCi1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5
LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBs
b29rIGF0IHRoZSBwcm9maWxlLiBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUgYSBjYWxs
IHRvIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKS4KLQotUHJvZmlsZSB0
aXRsZTogUHJvZmlsaW5nIEZyb20gQSBOZXN0ZWQgTG9jYXRpb24gQnV0IFN0b3AgUHJvZmlsaW5n
IE91dHNpZGUgVGhlIE5lc3RpbmcKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBm
dW5jdGlvbldpY2hTdGFydHNUaGVQcm9maWxlciBwcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2Nh
dGlvbi1idXQtc3RvcC1wcm9maWxpbmctb3V0c2lkZS10aGUtbmVzdGluZy5odG1sIChsaW5lIDE2
OjM5KQotICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3
KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZy
b20tYS1uZXN0ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3Rp
bmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0
ZWQtbG9jYXRpb24tYnV0LXN0b3AtcHJvZmlsaW5nLW91dHNpZGUtdGhlLW5lc3RpbmcuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDhiNWY3Ny4uMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1
dC1zdG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGZ1bmN0aW9uV2lj
aFN0YXJ0c1RoZVByb2ZpbGVyKCk7Ci0gICAgZW5kVGVzdCgpOwotfQotCi1mdW5jdGlvbiBmdW5j
dGlvbldpY2hTdGFydHNUaGVQcm9maWxlcigpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJQcm9m
aWxpbmcgRnJvbSBBIE5lc3RlZCBMb2NhdGlvbiBCdXQgU3RvcCBQcm9maWxpbmcgT3V0c2lkZSBU
aGUgTmVzdGluZyIpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwMDsgaSsrKQot
ICAgICAgICB2YXIgYiA9IGkgKyAyOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkg
b25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9m
aWxpbmcgZnJvbSB3aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24gYnV0IHN0b3BzIHRoZSBwcm9maWxl
cgotZnJvbSBhIGRpZmZlcmVudCBsZXZlbCBvZiBuZXN0aW5nLgotPGJyPgotPGJyPgotVG8gcnVu
IHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhl
IFdlYkluc3BlY3RvciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0
aGVyZSBzaG91bGQgYmUgYSBjYWxsIHRvIGZ1bmN0aW9uV2ljaFN0YXJ0c0FuZFN0b3BzVGhlUHJv
ZmlsZXIoKS4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVk
LWxvY2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmls
aW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0ODQyODNiLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJv
ZmlsZXIvcHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24tZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBzdGFydHMg
cHJvZmlsaW5nIGZyb20gd2l0aGluIGEgbmVzdGVkIGxvY2F0aW9uLiAKLQotVG8gcnVuIHRoaXMg
dGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYklu
c3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hv
dWxkIGJlIGEgY2FsbCB0byBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyKCku
Ci0KLVByb2ZpbGUgdGl0bGU6IFByb2ZpbGluZyBGcm9tIEEgTmVzdGVkIExvY2F0aW9uCi1UaHJl
YWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNU
aGVQcm9maWxlciBwcm9maWxpbmctZnJvbS1hLW5lc3RlZC1sb2NhdGlvbi5odG1sIChsaW5lIDE1
OjQ3KQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAx
OjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcHJvZmlsaW5n
LWZyb20tYS1uZXN0ZWQtbG9jYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
cHJvZmlsaW5nLWZyb20tYS1uZXN0ZWQtbG9jYXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMjgxZmQwMy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwzNiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9w
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGZ1bmN0aW9uV2lj
aFN0YXJ0c0FuZFN0b3BzVGhlUHJvZmlsZXIoKTsKLX0KLQotZnVuY3Rpb24gZnVuY3Rpb25XaWNo
U3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJQcm9m
aWxpbmcgRnJvbSBBIE5lc3RlZCBMb2NhdGlvbiIpOwotCi0gICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDAwMDsgaSsrKQotICAgICAgICB2YXIgYiA9IGkgKyAyOwotCi0gICAgZW5kVGVzdCgp
OwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+
Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0cyBwcm9maWxpbmcgZnJvbSB3aXRoaW4gYSBu
ZXN0ZWQgbG9jYXRpb24uCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBs
b2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29r
IGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwg
dG8gZnVuY3Rpb25XaWNoU3RhcnRzQW5kU3RvcHNUaGVQcm9maWxlcigpLgotPGRpdiBpZD0ib3V0
cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvcmVzb3VyY2VzL290aGVyLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci1mcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlODM2ZmJmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvcmVzb3VyY2VzL290aGVyLWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCww
IEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWZ1bmN0aW9uIGZ1bmN0aW9uSW5PdGhlckZy
YW1lKCkgewotICAgICAgICByZXR1cm4gcGFyZW50LmZ1bmN0aW9uSW5QYXJlbnRGcmFtZSgpOwot
fQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5PgotVGhpcyBmaWxlIGNvbnRhaW5zIHNvbWUg
SmF2YVNjcmlwdC4KLTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9vdGhlci13
aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL290aGVyLXdp
bmRvdy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDg0MWE4Li4wMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL290aGVyLXdpbmRvdy5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSJwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotdmFyIGludGVyZXN0aW5nS25vd2xlZGdlOwotZnVuY3Rpb24gb3RoZXJUZXN0U3RhcnQoKQot
ewotICAgIGludGVyZXN0aW5nS25vd2xlZGdlID0gaXNFcXVhbFRvRml2ZSgzKTsKLSAgICBvcGVu
ZXIud2luZG93RmluaXNoZWRMb2FkaW5nKCk7Ci19Ci0KLWZ1bmN0aW9uIGZ1bmN0aW9uSW5PdGhl
cldpbmRvdygpIHsKLSAgICAgICAgcmV0dXJuIGludGVyZXN0aW5nS25vd2xlZGdlOwotfQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ib3RoZXJUZXN0U3RhcnQoKSI+Ci1UaGlz
IGZpbGUgZXhlY3V0ZXMgc29tZSBKYXZhU2NyaXB0LgotPC9ib2R5PgotPC9odG1sPgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Jlc291cmNlcy9wcm9maWxlci10ZXN0
LUpTLXJlc291cmNlcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3VyY2VzL3By
b2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3NjM1NDJmLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvcmVzb3Vy
Y2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsOTUg
KzAsMCBAQAotZnVuY3Rpb24gZW5kVGVzdCgpIHsKLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsK
LSAgICBwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCk7Ci0KLSAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotfQotCi1mdW5jdGlv
biBpbnNlcnRHaXZlblRleHQodGV4dCkgewotICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJwIik7Ci0gICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHRleHQpKTsKLSAgICBwYXJhZ3JhcGguc3R5bGUuZGlzcGxheSA9ICJub25l
IjsgLy8gSGlkZGVuIHNpbmNlIHRoaXMgaXNuJ3QgaW1wb3J0YW50IGluIHRoZSB0ZXN0IHJlc3Vs
dHMuCi0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBwZW5kQ2hpbGQo
cGFyYWdyYXBoKTsKLX0KLQotZnVuY3Rpb24gaW5zZXJ0TmV3VGV4dCgpIHsKLSAgICB2YXIgcGFy
YWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpOwotICAgIHBhcmFncmFwaC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiVGhpcyBpcyBpbnNlcnRlZCBUZXh0Iikp
OwotICAgIHBhcmFncmFwaC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOyAvLyBIaWRkZW4gc2luY2Ug
dGhpcyBpc24ndCBpbXBvcnRhbnQgaW4gdGhlIHRlc3QgcmVzdWx0cy4KLQotICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOwotfQotCi1m
dW5jdGlvbiBhcnJheU9wZXJhdG9yRnVuY3Rpb24oYXJyYXlFbGVtZW50KSB7Ci0gICAgcmV0dXJu
IGFycmF5RWxlbWVudCArIDU7Ci19Ci0KLXZhciBhbm9ueW1vdXNGdW5jdGlvbiA9IGZ1bmN0aW9u
ICgpIHsgaW5zZXJ0TmV3VGV4dCgpOyB9OwotdmFyIGFub3RoZXJBbm9ueW1vdXNGdW5jdGlvbiA9
IGZ1bmN0aW9uICgpIHsgaW5zZXJ0R2l2ZW5UZXh0KCJBbm90aGVyIGFub255bW91cyBmdW5jdGlv
biB3YXMgY2FsbGVkLiIpIH07Ci0KLWZ1bmN0aW9uIGludGVybWVkaWFyeUZ1bmN0aW9uKCkKLXsK
LSAgICBhbm9ueW1vdXNGdW5jdGlvbigpOwotfQotCi1mdW5jdGlvbiBpc0VxdWFsVG9GaXZlKGlu
cHV0KQotewotICAgIHJldHVybiBpbnB1dCA9PT0gNTsKLX0KLQotZnVuY3Rpb24gc3RhcnRQcm9m
aWxlKHRpdGxlKQotewotICAgIGNvbnNvbGUucHJvZmlsZSh0aXRsZSk7Ci19Ci0KLWZ1bmN0aW9u
IHByaW50SGVhdnlQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpCi17Ci0gICAgdmFyIHByZUVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwcmUiKTsKLSAgICBwcmVFbGVtZW50LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKLQotICAgIHZhciBwcm9maWxl
cyA9IGludGVybmFscy5jb25zb2xlUHJvZmlsZXM7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBw
cm9maWxlcy5sZW5ndGg7ICsraSkgewotICAgICAgICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCJQcm9maWxlIHRpdGxlOiAiICsgcHJvZmlsZXNbaV0udGl0
bGUgKyAiXG4iKSk7Ci0gICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGltZShwcmVFbGVt
ZW50LCBwcm9maWxlc1tpXS5oZWF2eVByb2ZpbGUucm9vdE5vZGUsIDApOwotICAgICAgICBwcmVF
bGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsKLSAgICB9
Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBwZW5kQ2hpbGQocHJl
RWxlbWVudCk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUoKQot
ewotICAgIHZhciBwcmVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicHJlIik7Ci0g
ICAgcHJlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiXG4iKSk7
Ci0KLSAgICB2YXIgcHJvZmlsZXMgPSBpbnRlcm5hbHMuY29uc29sZVByb2ZpbGVzOwotICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcHJvZmlsZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgcHJlRWxl
bWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiUHJvZmlsZSB0aXRsZTog
IiArIHByb2ZpbGVzW2ldLnRpdGxlICsgIlxuIikpOwotICAgICAgICBwcmludFByb2ZpbGVOb2Rl
V2l0aG91dFRpbWUocHJlRWxlbWVudCwgcHJvZmlsZXNbaV0ucm9vdE5vZGUsIDApOwotICAgICAg
ICBwcmVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJcbiIpKTsK
LSAgICB9Ci0KLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IikuYXBwZW5kQ2hp
bGQocHJlRWxlbWVudCk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGlt
ZShwcmVFbGVtZW50LCBub2RlLCBpbmRlbnRMZXZlbCkKLXsKLSAgICB2YXIgc3BhY2UgPSAiIjsK
LSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluZGVudExldmVsOyArK2kpCi0gICAgICAgIHNwYWNl
ICs9ICIgICAiCi0KLSAgICArK2luZGVudExldmVsOwotCi0gICAgdmFyIHN0cmlwcGVkVVJMID0g
bm9kZS51cmwucmVwbGFjZSgvLipcLy8sICIiKTsKLSAgICBpZiAoIXN0cmlwcGVkVVJMKQotICAg
ICAgICBzdHJpcHBlZFVSTCA9ICIobm8gZmlsZSkiOwotCi0gICAgdmFyIGxpbmUgPSBzcGFjZSAr
IG5vZGUuZnVuY3Rpb25OYW1lICsgIiAiICsgc3RyaXBwZWRVUkwgKyAiIChsaW5lICIgKyBub2Rl
LmxpbmVOdW1iZXIgKyAiOiIgKyBub2RlLmNvbHVtbk51bWJlciArICIpXG4iOwotICAgIHByZUVs
ZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobGluZSkpOwotCi0gICAg
dmFyIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbigpOwotICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
Y2hpbGRyZW4ubGVuZ3RoOyArK2kpCi0gICAgICAgIHByaW50UHJvZmlsZU5vZGVXaXRob3V0VGlt
ZShwcmVFbGVtZW50LCBjaGlsZHJlbltpXSwgaW5kZW50TGV2ZWwpOwotfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzRjZWUzZC4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3NpbXBsZS1ldmVudC1jYWxsLWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgaGFz
IGFuIG9ubG9hZCBldmVudC4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQg
aW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhl
IHByb2ZpbGUuIFRoZXJlIHNob3VsZCBiZSBvbmx5IG9uZSBvbmxvYWQgbm9kZS4KLQotUHJvZmls
ZSB0aXRsZTogQSBzaW1wbGUgcHJvZmlsZSB0ZXN0IHdoZXJlIGFuIGV2ZW50IGhhcHBlbnMuCi1U
aHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHNpbXBsZS1ldmVudC1j
YWxsLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVz
b3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9w
cm9maWxlci9zaW1wbGUtZXZlbnQtY2FsbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxl
ci9zaW1wbGUtZXZlbnQtY2FsbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
NGJkYjUwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLWV2
ZW50LWNhbGwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMu
c2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0
YXJ0VGVzdCgpCi17Ci0gICAgY29uc29sZS5wcm9maWxlKCJBIHNpbXBsZSBwcm9maWxlIHRlc3Qg
d2hlcmUgYW4gZXZlbnQgaGFwcGVucy4iKTsKLSAgICAvLyBGSVhNRTogdGhpcyBpcyBub3QgdGVz
dGluZyB3aGF0IGl0IHNheXMgaXQgaXMuCi0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNj
cmlwdCBoYXMgYW4gb25sb2FkIGV2ZW50LgotPGJyPgotPGJyPgotVG8gcnVuIHRoaXMgdGVzdCBt
YW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3Rv
ciBhbmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBUaGVyZSBzaG91bGQgYmUgb25seSBvbmUgb25s
b2FkIG5vZGUuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc2ltcGxlLW5vLWxldmVs
LWNoYW5nZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiYzM4
YTUuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zaW1wbGUtbm8tbGV2
ZWwtY2hhbmdlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRo
aXMgcGFnZSdzIEphdmFTY3JpcHQgc3RhcnRzIGFuZCBzdG9wcyBwcm9maWxpbmcgZnJvbSB0aGUg
c2FtZSBzY29wZS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhl
IGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2Zp
bGUuIFRoZXJlIHNob3VsZCBiZSBubyBmdW5jdGlvbiBjYWxscyBiZXR3ZWVuIGNvbnNvbGUucHJv
ZmlsZSgpIGFuZCBjb25zb2xlLnByb2ZpbGVFbmQoKS4KLQotUHJvZmlsZSB0aXRsZTogQSBzaW1w
bGUgcHJvZmlsZSB0ZXN0IHdoZXJlIG5vIHNjb3BlIGNoYWduZXMKLVRocmVhZF8xIChubyBmaWxl
KSAobGluZSAwOjApCi0gICBmdW5jdGlvbldpY2hTdGFydHNBbmRTdG9wc1RoZVByb2ZpbGVyIHNp
bXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbCAobGluZSAxNTo0NykKLSAgICAgIGdldEVsZW1lbnRC
eUlkIChubyBmaWxlKSAobGluZSAwOjApCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9zaW1wbGUtbm8tbGV2ZWwtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3Byb2ZpbGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYTM2MmM4My4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3NpbXBsZS1uby1sZXZlbC1jaGFuZ2UuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RS
dW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFs
cykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1
ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgZnVuY3Rpb25XaWNoU3RhcnRzQW5k
U3RvcHNUaGVQcm9maWxlcigpOwotfQotCi1mdW5jdGlvbiBmdW5jdGlvbldpY2hTdGFydHNBbmRT
dG9wc1RoZVByb2ZpbGVyKCkKLXsKLSAgICBjb25zb2xlLnByb2ZpbGUoIkEgc2ltcGxlIHByb2Zp
bGUgdGVzdCB3aGVyZSBubyBzY29wZSBjaGFnbmVzIik7Ci0KLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDAwOyBpKyspCi0gICAgICAgIHZhciBiID0gaSArIDI7Ci0KLSAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7Ci0KLSAgICBjb25zb2xlLnByb2ZpbGVFbmQoKTsK
LSAgICBwcmludFByb2ZpbGVzRGF0YVdpdGhvdXRUaW1lKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVh
ZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0
IHN0YXJ0cyBhbmQgc3RvcHMgcHJvZmlsaW5nIGZyb20gdGhlIHNhbWUgc2NvcGUuCi08YnI+Ci08
YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRo
ZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIFRoZXJl
IHNob3VsZCBiZSBubyBmdW5jdGlvbiBjYWxscyBiZXR3ZWVuIGNvbnNvbGUucHJvZmlsZSgpIGFu
ZAotY29uc29sZS5wcm9maWxlRW5kKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1h
bmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjgxZTRiZi4uMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVy
LW11bHRpcGxlLXRpbWVzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAg
QEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxlKCkgYW5kIGNv
bnNvbGUucHJvZmlsZUVuZCgpIHRocmVlIHRpbWVzLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGVyIHRoZXJlIHNob3VsZCBiZSB0
aHJlZSBwcm9maWxlcy4KLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBm
aXJzdCB0aW1lLgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBz
dGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5odG1sIChsaW5lIDEwOjE5KQot
ICAgICAgYW5vbnltb3VzRnVuY3Rpb24gcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxp
bmUgMjk6MzQpCi0gICAgICAgICBpbnNlcnROZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAgICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgICAgICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6
MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAg
ICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBw
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0KLVByb2ZpbGUgdGl0
bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgZmlyc3QgdGltZS4KLVRocmVhZF8xIChubyBmaWxl
KSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlw
bGUtdGltZXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3
VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAg
ICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0
ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAo
bm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUp
IChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMg
KGxpbmUgMToxNykKLQotUHJvZmlsZSB0aXRsZTogU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSBzZWNv
bmQgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3Qgc3Rh
cnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGltZXMuaHRtbCAobGluZSAxMDoxOSkKLSAg
ICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5l
IDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNyZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChs
aW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHROb2RlIChubyBmaWxlKSAobGluZSAwOjAp
Ci0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAg
ICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGVuZFRlc3QgcHJv
ZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCi1Qcm9maWxlIHRpdGxl
OiBTdGFydCB0aGUgcHJvZmlsZXIgdGhlIGZpcnN0IHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkg
KGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxl
LXRpbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAgICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxl
ci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAyOTozNCkKLSAgICAgICAgIGluc2VydE5ld1Rl
eHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAg
ICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVU
ZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5v
IGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChs
aW5lIDE6MTcpCi0KLVByb2ZpbGUgdGl0bGU6IFN0YXJ0IHRoZSBwcm9maWxlciB0aGUgc2Vjb25k
IHRpbWUuCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3RhcnRUZXN0IHN0YXJ0
LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgKGxpbmUgMTA6MTkpCi0gICAg
ICBhbm9ueW1vdXNGdW5jdGlvbiBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAy
OTozNCkKLSAgICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMu
anMgKGxpbmUgMTc6MjMpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAgICAgICAgICBjcmVhdGVUZXh0Tm9kZSAobm8gZmlsZSkgKGxpbmUgMDowKQot
ICAgICAgICAgICAgYXBwZW5kQ2hpbGQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAg
IGdldEVsZW1lbnRCeUlkIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICBlbmRUZXN0IHByb2Zp
bGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE6MTcpCi0KLVByb2ZpbGUgdGl0bGU6IFN0
YXJ0IHRoZSBwcm9maWxlciB0aGUgdGhpcmQgdGltZS4KLVRocmVhZF8xIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICBzdGFydFRlc3Qgc3RhcnQtYW5kLXN0b3AtcHJvZmlsZXItbXVsdGlwbGUtdGlt
ZXMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGFub255bW91c0Z1bmN0aW9uIHByb2ZpbGVyLXRl
c3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDI5OjM0KQotICAgICAgICAgaW5zZXJ0TmV3VGV4dCBw
cm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxNzoyMykKLSAgICAgICAgICAgIGNy
ZWF0ZUVsZW1lbnQgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGNyZWF0ZVRleHRO
b2RlIChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBhcHBlbmRDaGlsZCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgZ2V0RWxlbWVudEJ5SWQgKG5vIGZpbGUpIChsaW5l
IDA6MCkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
MToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWFu
ZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3N0YXJ0LWFuZC1zdG9wLXByb2ZpbGVyLW11bHRpcGxlLXRpbWVzLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2OWE3NjMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxlci1tdWx0aXBsZS10aW1lcy5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotIDxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgp
Ci17Ci0gICAgY29uc29sZS5wcm9maWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgdGhlIGZpcnN0IHRp
bWUuIik7Ci0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBlbmRUZXN0KCk7Ci0gICAgY29u
c29sZS5wcm9maWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgdGhlIHNlY29uZCB0aW1lLiIpOwotICAg
IGFub255bW91c0Z1bmN0aW9uKCk7Ci0gICAgZW5kVGVzdCgpOwotICAgIGNvbnNvbGUucHJvZmls
ZSgiU3RhcnQgdGhlIHByb2ZpbGVyIHRoZSB0aGlyZCB0aW1lLiIpOwotICAgIGFub255bW91c0Z1
bmN0aW9uKCk7Ci0gICAgZW5kVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5
IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdlJ3MgSmF2YVNjcmlwdCBjYWxscyBjb25z
b2xlLnByb2ZpbGUoKSBhbmQgY29uc29sZS5wcm9maWxlRW5kKCkgdGhyZWUgdGltZXMuCi08YnI+
Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2Vy
IHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIElu
IHRoZSBwcm9maWxlciB0aGVyZSBzaG91bGQgYmUgdGhyZWUgcHJvZmlsZXMuCi08ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3Rv
cC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3YThmNWE2Li4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcHJvZmlsZXIvc3RhcnQtYW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9u
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSdz
IEphdmFTY3JpcHQgc3RhcnRzIHByb2ZpbGluZyBmcm9tIHdpdGhpbiBhIG5lc3RlZCBsb2NhdGlv
bi4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIg
dGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRo
ZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25XaWNoU3RvcHNUaGVQ
cm9maWxlcigpLgotCi1Qcm9maWxlIHRpdGxlOiBQcm9maWxpbmcgRnJvbSBBIE5lc3RlZCBMb2Nh
dGlvbgotVGhyZWFkXzEgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgIHN0YXJ0VGVzdCBzdGFydC1h
bmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24uaHRtbCAobGluZSAxMDoxOSkK
LSAgICAgIGZ1bmN0aW9uV2ljaFN0b3BzVGhlUHJvZmlsZXIgc3RhcnQtYW5kLXN0b3AtcHJvZmls
aW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwgKGxpbmUgMTc6MzgpCi0KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4t
dGhlLXNhbWUtZnVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQt
YW5kLXN0b3AtcHJvZmlsaW5nLWluLXRoZS1zYW1lLWZ1bmN0aW9uLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNlYzA3MzEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9wcm9maWxlci9zdGFydC1hbmQtc3RvcC1wcm9maWxpbmctaW4tdGhlLXNhbWUtZnVuY3Rpb24u
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgp
Ci17Ci0gICAgY29uc29sZS5wcm9maWxlKCJQcm9maWxpbmcgRnJvbSBBIE5lc3RlZCBMb2NhdGlv
biIpOwotCi0gICAgZnVuY3Rpb25XaWNoU3RvcHNUaGVQcm9maWxlcigpOwotfQotCi1mdW5jdGlv
biBmdW5jdGlvbldpY2hTdG9wc1RoZVByb2ZpbGVyKCkKLXsKLSAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDEwMDAwMDAwOyBpKyspCi0gICAgICAgIHZhciBiID0gaSArIDI7Ci0KLSAgICBjb25zb2xl
LnByb2ZpbGVFbmQoIlByb2ZpbGluZyBGcm9tIEEgTmVzdGVkIExvY2F0aW9uIik7Ci0gICAgcHJp
bnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQot
PGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0YXJ0
cyBwcm9maWxpbmcgZnJvbSB3aXRoaW4gYSBuZXN0ZWQgbG9jYXRpb24uCi08YnI+Ci08YnI+Ci1U
byBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9h
ZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIEluIHRoZSBwcm9m
aWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZnVuY3Rpb25XaWNoU3RvcHNUaGVQcm9maWxl
cigpLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RhcnQtYnV0LWRvbnQtc3RvcC1wcm9maWxp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9u
dC1zdG9wLXByb2ZpbGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRkYmMxMmQuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFy
dC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAt
MSw1ICswLDAgQEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgY2FsbHMgY29uc29sZS5wcm9maWxl
KCkgYnV0IG5vdCBjb25zb2xlLnByb2ZpbGVFbmQoKS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFu
dWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3Ig
YW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIFlvdSBzaG91bGQgc2VlIHRoZSBwcm9maWxlIHJ1bm5p
bmcgKHdoZW4gdGhhdCBmZWF0dXJlIGlzIGltcGxlbWVudGVkIDYwNjA1NTYpLiBUaGVuIG5hdmln
YXRlIHRvIGFub3RoZXIgcGFnZSBhbmQgY2hlY2sgdGhlIFdlYkluc3BlY3RvciBhZ2Fpbi4gU2Fm
YXJpIHNob3VsZCBub3QgaGF2ZSBjcmFzaGVkIGFuZCB0aGUgSW5zcGVjdG9yIHNob3VsZCBub3Qg
c2hvdyBhIHByb2ZpbGUgKHVubGVzcyB3ZSBhbGxvdyBjcm9zcy1sb2FkIHByb2ZpbGluZyBpbiB0
aGUgZnV0dXJlIDU5NTE0NzggJiA1OTU0OTEyKS4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3N0YXJ0LWJ1dC1kb250LXN0b3AtcHJvZmlsaW5nLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxMzZkNzMuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdGFydC1idXQtZG9udC1zdG9wLXByb2ZpbGluZy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotIDxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17
Ci0gICAgY29uc29sZS5wcm9maWxlKCJTdGFydCB0aGUgcHJvZmlsZXIgYnV0IGRvbid0IHN0b3Ag
aXQuIik7Ci0gICAgYW5vbnltb3VzRnVuY3Rpb24oKTsKLSAgICBwcmludFByb2ZpbGVzRGF0YVdp
dGhvdXRUaW1lKCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFy
dFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IGNhbGxzIGNvbnNvbGUucHJvZmlsZSgp
IGJ1dCBub3QgY29uc29sZS5wcm9maWxlRW5kKCkuCi08YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0
ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5z
cGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4gIFlvdSBzaG91bGQgc2VlIHRoZSBwcm9m
aWxlIHJ1bm5pbmcgKHdoZW4gdGhhdCBmZWF0dXJlIGlzIGltcGxlbWVudGVkIDYwNjA1NTYpLgot
VGhlbiBuYXZpZ2F0ZSB0byBhbm90aGVyIHBhZ2UgYW5kIGNoZWNrIHRoZSBXZWJJbnNwZWN0b3Ig
YWdhaW4uIFNhZmFyaSBzaG91bGQgbm90Ci1oYXZlIGNyYXNoZWQgYW5kIHRoZSBJbnNwZWN0b3Ig
c2hvdWxkIG5vdCBzaG93IGEgcHJvZmlsZSAodW5sZXNzIHdlIGFsbG93IGNyb3NzLWxvYWQKLXBy
b2ZpbGluZyBpbiB0aGUgZnV0dXJlIDU5NTE0NzggJmFtcDsgNTk1NDkxMikuCi08ZGl2IGlkPSJv
dXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGlt
ZW91dC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIzMjVkYTQu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXByb2ZpbGluZy1h
ZnRlci1zZXRUaW1lb3V0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAg
QEAKLVRoaXMgcGFnZSdzIEphdmFTY3JpcHQgc3RvcHMgcHJvZmlsaW5nIGZyb20gYSB0aW1lb3V0
LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0
aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhl
IHByb2ZpbGUgZW5kUHJvZmlsZSgpIHNob3VsZCBub3QgYmUgYSBjaGlsZCBvZiAocHJvZ3JhbSku
Ci0KLVByb2ZpbGUgdGl0bGU6IFN0b3AgcHJvZmlsaW5nIGZyb20gYSB0aW1lb3V0Ci1UaHJlYWRf
MSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgb25sb2FkIHN0b3AtcHJvZmlsaW5nLWFmdGVyLXNl
dFRpbWVvdXQuaHRtbCAobGluZSAyMTo0NCkKLSAgICAgIHN0YXJ0VGVzdCBzdG9wLXByb2ZpbGlu
Zy1hZnRlci1zZXRUaW1lb3V0Lmh0bWwgKGxpbmUgMTI6MTkpCi0gICAgICAgICBzZXRUaW1lb3V0
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAocHJvZ3JhbSkgc3RvcC1wcm9maWxpbmctYWZ0ZXIt
c2V0VGltZW91dC5odG1sIChsaW5lIDE6MSkKLSAgICAgIGVuZFRlc3QgcHJvZmlsZXItdGVzdC1K
Uy1yZXNvdXJjZXMuanMgKGxpbmUgMToxNykKLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWZkNThlLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC1wcm9maWxpbmctYWZ0ZXItc2V0VGltZW91dC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotfQotaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJv
ZmlsZSgiU3RvcCBwcm9maWxpbmcgZnJvbSBhIHRpbWVvdXQiKTsgICAgCi0gICAgc2V0VGltZW91
dCgiZW5kVGVzdCgpIiwgMjApOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLQotPGJvZHkgb25s
b2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2NyaXB0IHN0b3BzIHByb2ZpbGlu
ZyBmcm9tIGEgdGltZW91dC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHks
IGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxv
b2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgZW5kUHJvZmlsZSgpIHNob3VsZCBu
b3QgYmUgYSBjaGlsZCBvZiAocHJvZ3JhbSkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9w
LXRoZW4tZnVuY3Rpb24tY2FsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2Zp
bGVyL3N0b3AtdGhlbi1mdW5jdGlvbi1jYWxsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMWMwNTA0NS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3By
b2ZpbGVyL3N0b3AtdGhlbi1mdW5jdGlvbi1jYWxsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDEwICswLDAgQEAKLVRoaXMgcGFnZSBoYXMgYW4gYW5vbnltb3VzIEphdmFTY3JpcHQg
ZnVuY3Rpb24gdGhhdCBjYWxscyBidWlsdC1pbiBmdW5jdGlvbnMuIAotCi1UbyBydW4gdGhpcyB0
ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5z
cGVjdG9yIGFuZCBsb29rIGF0IHRoZSBwcm9maWxlLiBUaGVyZSBzaG91bGQgYmUgdHdvIG5vZGVz
IGluIHRoZSBwcm9maWxlLCBhICIocHJvZ3JhbSkiIG5vZGUgd2l0aCBvbmUgY2hpbGQgdGhhdCBp
cyAidGVzdCIuCi0KLVByb2ZpbGUgdGl0bGU6IFRlc3QKLVRocmVhZF8xIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICAocHJvZ3JhbSkgKG5vIGZpbGUpIChsaW5lIDE6MTYpCi0gICAgICB0ZXN0IHN0
b3AtdGhlbi1mdW5jdGlvbi1jYWxsLmh0bWwgKGxpbmUgMTE6MTQpCi0KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci9zdG9wLXRoZW4tZnVuY3Rpb24tY2FsbC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MTZhMTlhLi4wMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcHJvZmlsZXIvc3RvcC10aGVuLWZ1bmN0aW9uLWNhbGwuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDQzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci1p
ZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0TGVnYWN5SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQodHJ1ZSk7Ci0KLXZhciBqID0gMDsKLWZ1bmN0aW9uIHRlc3QobGVuKSB7
Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkKLSAgICAgICAgKytqOwotfQotCi1m
dW5jdGlvbiB0ZXN0MihsZW4pIHsKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgKytpKQot
ICAgICAgICAtLWo7Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgdmFyIHNjcmlw
dCA9ICJjb25zb2xlLnByb2ZpbGUoJ1Rlc3QnKTtcbiI7Ci0gICAgc2NyaXB0ICs9ICJ0ZXN0KDEw
MDApO1xuIjsKLSAgICBzY3JpcHQgKz0gImNvbnNvbGUucHJvZmlsZUVuZCgnVGVzdCcpO1xuIjsK
LSAgICBzY3JpcHQgKz0gInRlc3QyKDEwMDApO1xuIjsKLQotICAgIGV2YWwoc2NyaXB0KTsKLQot
ICAgIHByaW50UHJvZmlsZXNEYXRhV2l0aG91dFRpbWUoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFk
PgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgYW4gYW5vbnlt
b3VzIEphdmFTY3JpcHQgZnVuY3Rpb24gdGhhdCBjYWxscyBidWlsdC1pbiBmdW5jdGlvbnMuCi08
YnI+Ci08YnI+Ci1UbyBydW4gdGhpcyB0ZXN0IG1hbnVhbGx5LCBsb2FkIGl0IGluIHRoZSBicm93
c2VyIHRoZW4gbG9hZCB0aGUgV2ViSW5zcGVjdG9yIGFuZCBsb29rIGF0Ci10aGUgcHJvZmlsZS4g
VGhlcmUgc2hvdWxkIGJlIHR3byBub2RlcyBpbiB0aGUgcHJvZmlsZSwgYSAiKHByb2dyYW0pIiBu
b2RlIHdpdGggb25lIGNoaWxkIHRoYXQgaXMgInRlc3QiLgotPGRpdiBpZD0ib3V0cHV0Ij48L2Rp
dj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L3Byb2ZpbGVyL3Rocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDdjOWVhLi4wMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcHJvZmlsZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFRlc3QgZXhj
ZXB0aW9uLgotVGhpcyBwYWdlIHRocm93cyBhbiBleGNlcHRpb24gZnJvbSB3aXRoaW4gZXZhbCgp
LiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0
aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBhbmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gVGhlIHBy
b2ZpbGVyIHNob3VsZCBub3QgY3Jhc2ggYW5kIHN0aWxsIHNob3cgdGhlIHN0YWNrIHVuZGVyIGlu
c2VydG5ld1RleHQoKS4KLQotUHJvZmlsZSB0aXRsZTogVGhyb3cgd2l0aGluIGFuIGV2YWwuCi1U
aHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMCkKLSAgIChwcm9ncmFtKSB0aHJvdy1leGNlcHRpb24t
ZnJvbS1ldmFsLmh0bWwgKGxpbmUgMTkpCi0gICAgICAocHJvZ3JhbSkgdGhyb3ctZXhjZXB0aW9u
LWZyb20tZXZhbC5odG1sIChsaW5lIDEwKQotICAgICAgICAgKHByb2dyYW0pIHRocm93LWV4Y2Vw
dGlvbi1mcm9tLWV2YWwuaHRtbCAobGluZSA0KQotICAgICAgICAgKHByb2dyYW0pIHRocm93LWV4
Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbCAobGluZSAxOSkKLSAgICAgICAgICAgIGV2YWwgKG5vIGZp
bGUpIChsaW5lIDApCi0gICAgICAgICAgICAgICAocHJvZ3JhbSkgKG5vIGZpbGUpIChsaW5lIDEp
Ci0gICBvbmxvYWQgdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sIChsaW5lIDI0KQotICAg
ICAgc3RhcnRUZXN0IHRocm93LWV4Y2VwdGlvbi1mcm9tLWV2YWwuaHRtbCAobGluZSAxMykKLSAg
ICAgICAgIGluc2VydE5ld1RleHQgcHJvZmlsZXItdGVzdC1KUy1yZXNvdXJjZXMuanMgKGxpbmUg
MTcpCi0gICAgICAgICAgICBjcmVhdGVFbGVtZW50IChubyBmaWxlKSAobGluZSAwKQotICAgICAg
ICAgICAgY3JlYXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDApCi0gICAgICAgICAgICBhcHBl
bmRDaGlsZCAobm8gZmlsZSkgKGxpbmUgMCkKLSAgICAgICAgICAgIGdldEVsZW1lbnRCeUlkIChu
byBmaWxlKSAobGluZSAwKQotICAgICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291
cmNlcy5qcyAobGluZSAxKQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmls
ZXIvdGhyb3ctZXhjZXB0aW9uLWZyb20tZXZhbC5odG1sLWRpc2FibGVkIGIvTGF5b3V0VGVzdHMv
ZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJsZWQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ZWFjOWEuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9wcm9maWxlci90aHJvdy1leGNlcHRpb24tZnJvbS1ldmFsLmh0bWwtZGlzYWJs
ZWQKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1jb25zb2xlLnByb2Zp
bGUoIlRocm93IHdpdGhpbiBhbiBldmFsLiIpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewot
ICAgIGluc2VydE5ld1RleHQoKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPHNj
cmlwdD4KLWV2YWwoInRocm93KCdUZXN0IGV4Y2VwdGlvbi4nKTsiKTsKLTwvc2NyaXB0PgotPC9o
ZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSB0aHJvd3MgYW4g
ZXhjZXB0aW9uIGZyb20gd2l0aGluIGV2YWwoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRl
c3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNw
ZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgVGhlIHByb2ZpbGVyIHNob3VsZCBub3Qg
Y3Jhc2ggYW5kIHN0aWxsIHNob3cgdGhlIHN0YWNrIHVuZGVyCi1pbnNlcnRuZXdUZXh0KCkuCi08
ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAxZTlkZDEuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNvbnRleHRzLWV4
cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLVRoaXMgcGFnZSBoYXMg
dHdvIHNjcmlwdCB0YWdzIHdpdGggc29tZSBzaW1wbGUgSmF2YVNjcmlwdC4gCi0KLVRvIHJ1biB0
aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBX
ZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2ZpbGUuIEluIHRoZSBwcm9maWxlIHRoZXJl
IHNob3VsZCBiZSB0d28gKHByb2dyYW0pIGVsZW1lbnRzLgotCi1Qcm9maWxlIHRpdGxlOiBUd28g
RXhlY3V0aW9uIENvbnRleHRzCi1UaHJlYWRfMSAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgc3Rh
cnRUZXN0IHR3by1leGVjdXRpb24tY29udGV4dHMuaHRtbCAobGluZSAxMDoxOSkKLSAgICAgIGlu
dGVybWVkaWFyeUZ1bmN0aW9uIHR3by1leGVjdXRpb24tY29udGV4dHMuaHRtbCAobGluZSAxNzoz
MCkKLSAgICAgICAgIHRlc3RFbmQgdHdvLWV4ZWN1dGlvbi1jb250ZXh0cy5odG1sIChsaW5lIDMz
OjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdHdvLWV4ZWN1
dGlvbi1jb250ZXh0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0
aW9uLWNvbnRleHRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4NTE2NTUu
LjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci90d28tZXhlY3V0aW9uLWNv
bnRleHRzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFy
dFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVHdvIEV4ZWN1dGlvbiBDb250ZXh0cyIp
OwotCi0gICAgaW50ZXJtZWRpYXJ5RnVuY3Rpb24oKTsKLX0KLQotZnVuY3Rpb24gaW50ZXJtZWRp
YXJ5RnVuY3Rpb24oKQotewotICAgIHRlc3RFbmQoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
Ci08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLVRoaXMgcGFnZSBoYXMgdHdvIHNjcmlwdCB0
YWdzIHdpdGggc29tZSBzaW1wbGUgSmF2YVNjcmlwdC4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUg
c2hvdWxkIGJlIHR3byAocHJvZ3JhbSkgZWxlbWVudHMuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2
PgotPC9ib2R5PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3RFbmQoKSB7Ci0gICAgY29uc29sZS5w
cm9maWxlRW5kKCk7Ci0gICAgcHJpbnRQcm9maWxlc0RhdGFXaXRob3V0VGltZSgpOwotfQotPC9z
Y3JpcHQ+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Vz
ZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMt
YnVpbHQtaW4tZnVuY3Rpb25zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZDZjZTU1MS4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3Vz
ZXItZGVmaW5lZC1mdW5jdGlvbi1jYWxscy1idWlsdC1pbi1mdW5jdGlvbnMtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBKYXZhU2NyaXB0
IHRoYXQgY2FsbHMgYnVpbHQtaW4gZnVuY3Rpb25zLiAKLQotVG8gcnVuIHRoaXMgdGVzdCBtYW51
YWxseSwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdCB0aGUgcHJvZmlsZS4gSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGNh
bGxzIHRvIGNyZWF0ZUVsZW1lbnQoKSBjcmVhdGVUZXh0Tm9kZSgpIGFwcGVuZENoaWxkKCkgYW5k
IHRlc3RFbmQoKSwgYW1vbmcgb3RoZXJzLgotVGhpcyBpcyBpbnNlcnRlZCBUZXh0Ci0KLQotUHJv
ZmlsZSB0aXRsZTogVXNlciBkZWZpbmVkIGZ1bmN0aW9uIGNhbGxlcyBidWlsdC1pbiBmdW5jdGlv
bnMKLVRocmVhZF8xIChubyBmaWxlKSAobGluZSAwOjApCi0gICBzdGFydFRlc3QgdXNlci1kZWZp
bmVkLWZ1bmN0aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIChsaW5lIDEwOjE5KQot
ICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgY3JlYXRlVGV4
dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgIGFwcGVuZENoaWxkIChubyBmaWxlKSAo
bGluZSAwOjApCi0gICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAg
ICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyAobGluZSAxOjE3KQotCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvdXNlci1kZWZpbmVkLWZ1bmN0
aW9uLWNhbGxzLWJ1aWx0LWluLWZ1bmN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9wcm9m
aWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVpbHQtaW4tZnVuY3Rpb25zLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3NTI3YjcuLjAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9wcm9maWxlci91c2VyLWRlZmluZWQtZnVuY3Rpb24tY2FsbHMtYnVpbHQt
aW4tZnVuY3Rpb25zLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNl
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJu
YWxzLnNldExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlv
biBzdGFydFRlc3QoKQotewotICAgIGNvbnNvbGUucHJvZmlsZSgiVXNlciBkZWZpbmVkIGZ1bmN0
aW9uIGNhbGxlcyBidWlsdC1pbiBmdW5jdGlvbnMiKTsKLQotICAgIHZhciBuZXdQID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgicCIpOwotICAgIHZhciB0ZXh0Tm9kZSA9ZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIlRoaXMgaXMgaW5zZXJ0ZWQgVGV4dCIpOwotICAgIG5ld1AuYXBwZW5kQ2hpbGQo
dGV4dE5vZGUpOwotICAgIHZhciBvdXRwdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0
cHV0Iik7Ci0gICAgb3V0cHV0LmFwcGVuZENoaWxkKG5ld1ApOwotICAgIAotICAgIGVuZFRlc3Qo
KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotCi08Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4K
LVRoaXMgcGFnZSBoYXMgSmF2YVNjcmlwdCB0aGF0IGNhbGxzIGJ1aWx0LWluIGZ1bmN0aW9ucy4K
LTxicj4KLTxicj4KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJy
b3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxl
LiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUgc2hvdWxkIGJlIGNhbGxzIHRvIGNyZWF0ZUVsZW1lbnQo
KSBjcmVhdGVUZXh0Tm9kZSgpCi1hcHBlbmRDaGlsZCgpIGFuZCB0ZXN0RW5kKCksIGFtb25nIG90
aGVycy4KLTxkaXYgaWQ9Im91dHB1dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1kb3QtZXZhbC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjZTg4ZGMuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9wcm9maWxlci93aW5kb3ctZG90LWV2YWwtZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotVGhpcyBwYWdlIGhhcyBhIGNhbGwgdG8gd2lu
ZG93LmV2YWwoKS4gCi0KLVRvIHJ1biB0aGlzIHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhl
IGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQgdGhlIHByb2Zp
bGUuIEluIHRoZSBwcm9maWxlIHRoZXJlIHNob3VsZCBiZSBhIGNhbGwgdG8gZXZhbCgpLgotCi1Q
cm9maWxlIHRpdGxlOiBDYWxsIHdpbmRvdy5ldmFsKCkKLVRocmVhZF8xIChubyBmaWxlKSAobGlu
ZSAwOjApCi0gICBzdGFydFRlc3Qgd2luZG93LWRvdC1ldmFsLmh0bWwgKGxpbmUgMTA6MTkpCi0g
ICAgICBldmFsRnVuY3Rpb24gKG5vIGZpbGUpIChsaW5lIDE6MjIpCi0gICAgICAgICBpbnNlcnRO
ZXdUZXh0IHByb2ZpbGVyLXRlc3QtSlMtcmVzb3VyY2VzLmpzIChsaW5lIDE3OjIzKQotICAgICAg
ICAgICAgY3JlYXRlRWxlbWVudCAobm8gZmlsZSkgKGxpbmUgMDowKQotICAgICAgICAgICAgY3Jl
YXRlVGV4dE5vZGUgKG5vIGZpbGUpIChsaW5lIDA6MCkKLSAgICAgICAgICAgIGFwcGVuZENoaWxk
IChubyBmaWxlKSAobGluZSAwOjApCi0gICAgICAgICAgICBnZXRFbGVtZW50QnlJZCAobm8gZmls
ZSkgKGxpbmUgMDowKQotICAgICAgZW5kVGVzdCBwcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5q
cyAobGluZSAxOjE3KQotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIv
d2luZG93LWRvdC1ldmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Byb2ZpbGVyL3dpbmRvdy1k
b3QtZXZhbC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2EyYjNjLi4wMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcHJvZmlsZXIvd2luZG93LWRvdC1ldmFsLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9wcm9maWxlci10ZXN0LUpTLXJlc291cmNlcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldExlZ2FjeUphdmFT
Y3JpcHRQcm9maWxpbmdFbmFibGVkKHRydWUpOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewot
ICAgIGNvbnNvbGUucHJvZmlsZSgiQ2FsbCB3aW5kb3cuZXZhbCgpIik7Ci0KLSAgICBldmFsRnVu
Y3Rpb24oKTsKLQotICAgIGVuZFRlc3QoKTsKLX0KLTwvc2NyaXB0PgotPHNjcmlwdD4KLXdpbmRv
dy5ldmFsKCJmdW5jdGlvbiBldmFsRnVuY3Rpb24oKSB7IGluc2VydE5ld1RleHQoKTsgfSIpOwot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBw
YWdlIGhhcyBhIGNhbGwgdG8gd2luZG93LmV2YWwoKS4KLTxicj4KLTxicj4KLVRvIHJ1biB0aGlz
IHRlc3QgbWFudWFsbHksIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhlbiBsb2FkIHRoZSBXZWJJ
bnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhlIHByb2ZpbGUgdGhlcmUg
c2hvdWxkIGJlIGEgY2FsbCB0byBldmFsKCkuCi08ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAxMGE2NzQ5Li5iYWM4MTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTAyMSw5ICsxMDIxLDYgQEAgd2Via2l0Lm9yZy9iLzE0MjE1NiBjc3Mz
L3NoYXBlcy9zcGVjLWV4YW1wbGVzL3NoYXBlLW91dHNpZGUtMDExLmh0bWwgWyBGYWlsdXJlIFAK
IHdlYmtpdC5vcmcvYi8xNDIxNTYgY3NzMy9zaGFwZXMvc3BlYy1leGFtcGxlcy9zaGFwZS1vdXRz
aWRlLTAxMi5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xNDIxNTYgY3NzMy9z
aGFwZXMvc3BlYy1leGFtcGxlcy9zaGFwZS1vdXRzaWRlLTAxOS5odG1sIFsgRmFpbHVyZSBQYXNz
IF0KIAotd2Via2l0Lm9yZy9iLzE0MjE1NyBmYXN0L3Byb2ZpbGVyL2RlYWQtdGltZS5odG1sIFsg
RmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xNDIxNTcgZmFzdC9wcm9maWxlci9zdG9wLXBy
b2ZpbGluZy1hZnRlci1zZXRUaW1lb3V0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotCiB3ZWJraXQu
b3JnL2IvOTU1NTEgZmFzdC9mb3Jtcy9kYXRhbGlzdC91cGRhdGUtcmFuZ2Utd2l0aC1kYXRhbGlz
dC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KIAogd2Via2l0Lm9yZy9iLzEyOTgyMCBz
dmcvY2xpcC1wYXRoL21hc2stbmVzdGVkLWNsaXAtcGF0aC0wMDYuc3ZnIFsgUGFzcyBJbWFnZU9u
bHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggYjc2MThjNi4uYTVjOTU1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTEyMDMsOSArMTIwMyw2IEBAIHdlYmtpdC5vcmcvYi8xMzYwNjYgYW5pbWF0
aW9ucy9taXNzaW5nLWtleWZyYW1lLXByb3BlcnRpZXMuaHRtbCBbIENyYXNoIFBhc3MgXQogd2Vi
a2l0Lm9yZy9iLzEzNjA2NiBhbmltYXRpb25zL21pc3NpbmctdmFsdWVzLWZpcnN0LWtleWZyYW1l
Lmh0bWwgWyBDcmFzaCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMzYwNjYgYW5pbWF0aW9ucy9zdGF0
ZS1hdC1lbmQtZXZlbnQuaHRtbCBbIENyYXNoIFBhc3MgXQogCi13ZWJraXQub3JnL2IvMTM2MDY3
IGZhc3QvcHJvZmlsZXIvZGVhZC10aW1lLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotd2Via2l0Lm9y
Zy9iLzEzNjA2NyBmYXN0L3Byb2ZpbGVyL3N0b3AtcHJvZmlsaW5nLWFmdGVyLXNldFRpbWVvdXQu
aHRtbCBbIEZhaWx1cmUgUGFzcyBdCi0KIHdlYmtpdC5vcmcvYi8xMzYwNzAgZmFzdC9mb3Jtcy9s
YWJlbC9sYWJlbC1iZWNvbWVzLXZpc2libGUtd2hpbGUtY2xpY2tpbmctb24tbGFiZWwuaHRtbCBb
IEZhaWx1cmUgUGFzcyBdCiAKIHdlYmtpdC5vcmcvYi8xMzY1ODAgbWVkaWEvY29udGV4dC1tZW51
LWFjdGlvbnMuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNzdkOWJmNi4uMzMzNDE3
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTg5Niw3ICsxODk2LDYgQEAgZmFzdC9wYXJzZXIvbmVzdGVkLWZyYWdt
ZW50LXBhcnNlci1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L3ByZWxvYWRlci9kb2N1bWVu
dC13cml0ZS0yLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvcHJlbG9hZGVyL2RvY3VtZW50LXdyaXRl
Lmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvcHJlbG9hZGVyL2ltYWdlLXNyY3NldC5odG1sIFsgRmFp
bHVyZSBdCi1mYXN0L3Byb2ZpbGVyL3Byb2ZpbGluZy1mcm9tLWEtbmVzdGVkLWxvY2F0aW9uLWJ1
dC1zdG9wLXByb2ZpbGluZy1vdXRzaWRlLXRoZS1uZXN0aW5nLmh0bWwgWyBGYWlsdXJlIF0KIGZh
c3QvcmVnaW9ucy9hYnNvbHV0ZS1pbi1yZWxhdGl2ZS1vdmVyZmxvdy5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiBmYXN0L3JlZ2lvbnMvYWJzb2x1dGUtcG9zLWVsZW0taW4tcmVnaW9uLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIGZhc3QvcmVnaW9ucy9hbmltYXRpb24tZWxlbWVudC1pbi1y
ZWdpb24tZmxvd2VkLXRvLW90aGVyLXRocmVhZC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRp
ZmYgLS1naXQgYS9NYW51YWxUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXItdGVzdC1jYWxsLmh0bWwg
Yi9NYW51YWxUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXItdGVzdC1jYWxsLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3MmEyZTkuLjAwMDAwMDAKLS0tIGEvTWFudWFsVGVzdHMv
aW5zcGVjdG9yL3Byb2ZpbGVyLXRlc3QtY2FsbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUg
KzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvZmlsZXIt
dGVzdC1KUy1yZXNvdXJjZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWNvbnNvbGUucHJvZmls
ZSgiVXNpbmcgdGhlIGNhbGwoKSBtZXRob2QiKTsKLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0g
ICAgdmFyIG15T2JqZWN0ID0gbmV3IGZha2VPYmplY3QoMSwgMik7Ci0gICAgZW5kVGVzdCgpOwot
fQotCi1mdW5jdGlvbiBmYWtlT2JqZWN0ICh4LCB5KQotewotICAgIHRoaXMueCA9IHg7Ci0gICAg
ZmFrZUludGVyaW9yRnVuY3Rpb24uY2FsbCh0aGlzLCB5KTsKLX0KLQotZnVuY3Rpb24gZmFrZUlu
dGVyaW9yRnVuY3Rpb24oeSkKLXsKLSAgICB0aGlzLnkgPSB5OwotfQotCi08L3NjcmlwdD4KLTwv
aGVhZD4KLQotPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Ci1UaGlzIHBhZ2UncyBKYXZhU2Ny
aXB0IGhhcyBhIGNhbGwgdG8gY2FsbCgpIGluIGl0LgotPGJyPgotPGJyPgotVG8gdXNlIHRoaXMg
dGVzdCwgbG9hZCBpdCBpbiB0aGUgYnJvd3NlciB0aGVuIGxvYWQgdGhlIFdlYkluc3BlY3RvciBh
bmQgbG9vayBhdAotdGhlIHByb2ZpbGUuICBJbiB0aGUgcHJvZmlsZSB0aGVyZSBzaG91bGQgYmUg
YSBjYWxsIHRvIGZha2VPYmplY3QoKSB3aXRoIGNhbGwoKSBhcwotaXRzIGNoaWxkIGFuZCBhIGZh
a2VJbnRlcmlvckZ1bmN0aW9uKCkgYXMgY2FsbCgpJ3MgY2hpbGQuCi08ZGl2IGlkPSJvdXRwdXQi
PjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTWFudWFsVGVzdHMvaW5zcGVj
dG9yL3Byb2ZpbGVyLXRlc3QtbWFueS1jYWxscy1pbi10aGUtc2FtZS1zY29wZS5odG1sIGIvTWFu
dWFsVGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyLXRlc3QtbWFueS1jYWxscy1pbi10aGUtc2FtZS1z
Y29wZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYTViZTQyLi4wMDAwMDAw
Ci0tLSBhL01hbnVhbFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci10ZXN0LW1hbnktY2FsbHMtaW4t
dGhlLXNhbWUtc2NvcGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Byb2ZpbGVyLXRlc3QtSlMtcmVzb3Vy
Y2VzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1jb25zb2xlLnByb2ZpbGUoIk1hbnkgQ2FsbHMg
SW4gVGhlIFNhbWUgU2NvcGUiKTsKLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgaW5zZXJ0
TmV3VGV4dCgpOwotICAgIGluc2VydEdpdmVuVGV4dCgiVGhpcyB3YXMgYSB0cml1bXBoLiIpOwot
ICAgIGFycmF5T3BlcmF0b3JGdW5jdGlvbig3KTsKLSAgICBpbnRlcm1lZGlhcnlGdW5jdGlvbigp
OwotICAgIGFub255bW91c0Z1bmN0aW9uKCk7Ci0gICAgZW5kKCkKLSAgICBlbmRUKCk7Ci0gICAg
ZW5kVCgpOwotICAgIGVuZFRlc3QoKTsKLX0KLQotZnVuY3Rpb24gZW5kKCkKLXsKLSAgICB2YXIg
eCA9IDA7Ci19Ci0KLWZ1bmN0aW9uIGVuZFQoKQotewotICAgIHZhciB5ID0gMTsKLX0KLQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgotVGhpcyBwYWdl
J3MgSmF2YVNjcmlwdCBoYXMgbWFueSBmdW5jdGlvbiBjYWxscyBpbiB0aGUgc2FtZSBzY29wZS4K
LTxicj4KLTxicj4KLVRvIHVzZSB0aGlzIHRlc3QsIGxvYWQgaXQgaW4gdGhlIGJyb3dzZXIgdGhl
biBsb2FkIHRoZSBXZWJJbnNwZWN0b3IgYW5kIGxvb2sgYXQKLXRoZSBwcm9maWxlLiAgSW4gdGhl
IHByb2ZpbGUgbWFueSBmdW5jdGlvbnMgc2hvdWxkIGJlIHRoZSBjaGlsZHJlbiBvZiBzdGFydFRl
c3QuCi1Vc2UgdGhlIHNvcnRpbmcgY2FwYWJpbGl0ZXMgdG8gbWFrZSBzdXJlIHRoZSBzaW1pbGFy
bHkgbmFtZWQgZnVuY3Rpb25zIGFyZSBzb3J0ZWQKLWNvcnJlY3RseS4KLTxkaXYgaWQ9Im91dHB1
dCI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNDZjZjkyYi4uZGQ5MTIyMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTYtMDUtMjAgIEpvc2VwaCBQZWNvcmFy
byAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBSZW1vdmUgTGVnYWN5UHJvZmlsZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzU2NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVj
dG9yL3Byb3RvY29sL1RpbWVsaW5lLmpzb246CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAg
KiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmpl
Y3Q6Omhhc0xlZ2FjeVByb2ZpbGVyKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0
Lmg6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0OjpzdXBwb3J0c0xlZ2FjeVByb2ZpbGlu
Zyk6IERlbGV0ZWQuCisKKzIwMTYtMDUtMjAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiByZXRhaW5lZCBzaXplIGZvciB0eXBl
ZCBhcnJheXMgZG9lcyBub3QgY291bnQgbmF0aXZlIGJhY2tpbmcgc3RvcmUKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzk0NQogICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjYzOTIyMzg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3Byb3RvY29sL1RpbWVsaW5lLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3Byb3RvY29sL1RpbWVsaW5lLmpzb24KaW5kZXggODIyZmY4Ni4uNjkxNjllMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9UaW1l
bGluZS5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wv
VGltZWxpbmUuanNvbgpAQCAtNTEsNDAgKzUxLDYgQEAKICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImRhdGEiLCAidHlwZSI6ICJvYmplY3QiLCAiZGVzY3JpcHRpb24iOiAiRXZlbnQgZGF0YS4i
IH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjaGlsZHJlbiIsICJ0eXBlIjogImFycmF5
IiwgIm9wdGlvbmFsIjogdHJ1ZSwgIml0ZW1zIjogeyAiJHJlZiI6ICJUaW1lbGluZUV2ZW50IiB9
LCAiZGVzY3JpcHRpb24iOiAiTmVzdGVkIHJlY29yZHMuIiB9CiAgICAgICAgICAgICBdCi0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJDUFVQcm9maWxlTm9kZUFnZ3Jl
Z2F0ZUNhbGxJbmZvIiwKLSAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiQWdncmVnYXRlIENQVSBQcm9maWxlIGNhbGwgaW5mby4gSG9sZHMg
dGltZSBpbmZvcm1hdGlvbiBmb3IgYWxsIHRoZSBjYWxscyB0aGF0IGhhcHBlbmVkIG9uIGEgbm9k
ZS4iLAotICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJjYWxsQ291bnQiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiVG90YWwg
bnVtYmVyIG9mIGNhbGxzLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0YXJ0VGlt
ZSIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlvbiI6ICJTdGFydCB0aW1lIGZvciB0aGUg
Zmlyc3QgY2FsbC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbmRUaW1lIiwgInR5
cGUiOiAibnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkVuZCB0aW1lIGZvciB0aGUgbGFzdCBjYWxs
LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRvdGFsVGltZSIsICJ0eXBlIjogIm51
bWJlciIsICJkZXNjcmlwdGlvbiI6ICJUb3RhbCBleGVjdXRpb24gdGltZSBmb3IgYWxsIGNhbGxz
IGNvbWJpbmVkLiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAg
ICAgICAgICAiaWQiOiAiQ1BVUHJvZmlsZU5vZGUiLAotICAgICAgICAgICAgInR5cGUiOiAib2Jq
ZWN0IiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDUFUgUHJvZmlsZSBub2RlLiBIb2xk
cyBjYWxsc2l0ZSBpbmZvcm1hdGlvbiwgZXhlY3V0aW9uIHN0YXRpc3RpY3MgYW5kIGNoaWxkIG5v
ZGVzLiIsCi0gICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImlkIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgaWRl
bnRpZmllciBmb3IgdGhpcyBjYWxsIHNpdGUuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiY2FsbEluZm8iLCAiJHJlZiI6ICJDUFVQcm9maWxlTm9kZUFnZ3JlZ2F0ZUNhbGxJbmZvIiwg
ImRlc2NyaXB0aW9uIjogIkFnZ3JlZ2F0ZSBpbmZvIGFib3V0IGFsbCB0aGUgY2FsbHMgdGhhdCBt
YWtpbmcgdXAgdGhpcyBub2RlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZ1bmN0
aW9uTmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlv
biI6ICJGdW5jdGlvbiBuYW1lLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJVUkwu
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibGluZU51bWJlciIsICJ0eXBlIjogImlu
dGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiTGluZSBudW1iZXIuIiB9
LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29sdW1uTnVtYmVyIiwgInR5cGUiOiAiaW50
ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJDb2x1bW4gbnVtYmVyLiIg
fSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNoaWxkcmVuIiwgInR5cGUiOiAiYXJyYXki
LCAiaXRlbXMiOiB7ICIkcmVmIjogIkNQVVByb2ZpbGVOb2RlIiB9LCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiQ2hpbGQgbm9kZXMuIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAg
IH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJDUFVQcm9maWxlIiwKLSAgICAgICAg
ICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUHJvZmls
ZS4iLAotICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJyb290Tm9kZXMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiQ1BV
UHJvZmlsZU5vZGUiIH0sICJkZXNjcmlwdGlvbiI6ICJUb3AgbGV2ZWwgbm9kZXMgaW4gdGhlIHN0
YWNrLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlkbGVUaW1lIiwgInR5cGUiOiAi
bnVtYmVyIiwgIm9wdGlvbmFsIjogdHJ1ZSB9Ci0gICAgICAgICAgICBdCiAgICAgICAgIH0KICAg
ICBdLAogICAgICJjb21tYW5kcyI6IFsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggNDM4MjJiZS4u
NDMzZDFhNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTg2OCw3ICs4NjgsNyBAQCBwcm90ZWN0
ZWQ6CiB9OwogCiBjb25zdCBDbGFzc0luZm8gR2xvYmFsT2JqZWN0OjpzX2luZm8gPSB7ICJnbG9i
YWwiLCAmSlNHbG9iYWxPYmplY3Q6OnNfaW5mbywgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJM
RShHbG9iYWxPYmplY3QpIH07Ci1jb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBHbG9iYWxP
YmplY3Q6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZhbGxvd3NBY2Nlc3NGcm9tLCAm
c3VwcG9ydHNMZWdhY3lQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxk
SW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgMCwgJnNob3VsZEludGVy
cnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxlTG9h
ZGVyRmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKK2NvbnN0IEds
b2JhbE9iamVjdE1ldGhvZFRhYmxlIEdsb2JhbE9iamVjdDo6c19nbG9iYWxPYmplY3RNZXRob2RU
YWJsZSA9IHsgJmFsbG93c0FjY2Vzc0Zyb20sICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hv
dWxkSW50ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgMCwgJnNob3VsZElu
dGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsICZtb2R1bGVMb2FkZXJSZXNvbHZlLCAmbW9kdWxl
TG9hZGVyRmV0Y2gsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKIAogCiBH
bG9iYWxPYmplY3Q6Okdsb2JhbE9iamVjdChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmlu
ZGV4IDFjOTJhMjAuLmRkMzVjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTR2xvYmFsT2JqZWN0OjpzX2luZm8gPSB7ICJHbG9iYWxP
YmplY3QiLCAmQmFzZTo6c19pbmZvLCAmZ2xvYmFsT2JqZWN0VGFibGUsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNHbG9iYWxPYmplY3QpIH07CiAKLWNvbnN0IEdsb2JhbE9iamVjdE1ldGhvZFRhYmxl
IEpTR2xvYmFsT2JqZWN0OjpzX2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlID0geyAmYWxsb3dzQWNj
ZXNzRnJvbSwgJnN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nLCAmc3VwcG9ydHNSaWNoU291cmNlSW5m
bywgJnNob3VsZEludGVycnVwdFNjcmlwdCwgJmphdmFTY3JpcHRSdW50aW1lRmxhZ3MsIG51bGxw
dHIsICZzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0LCBudWxscHRyLCBudWxscHRy
LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07Citjb25zdCBHbG9iYWxPYmpl
Y3RNZXRob2RUYWJsZSBKU0dsb2JhbE9iamVjdDo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9
IHsgJmFsbG93c0FjY2Vzc0Zyb20sICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50
ZXJydXB0U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgbnVsbHB0ciwgJnNob3VsZElu
dGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsIG51
bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKIAogLyogU291cmNlIGZvciBKU0dsb2JhbE9iamVj
dC5sdXQuaAogQGJlZ2luIGdsb2JhbE9iamVjdFRhYmxlCkBAIC04MzMsNyArODMzLDggQEAgcHV0
RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcnR5TmFtZXMtPiBqc05hbWUsIGxv
d2VyTmFtZSAjIyBDb25zdHJ1Y3QKIAogYm9vbCBKU0dsb2JhbE9iamVjdDo6aGFzTGVnYWN5UHJv
ZmlsZXIoKSBjb25zdAogewotICAgIHJldHVybiBnbG9iYWxPYmplY3RNZXRob2RUYWJsZSgpLT5z
dXBwb3J0c0xlZ2FjeVByb2ZpbGluZyh0aGlzKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIExlZ2Fj
eSBQcm9maWxlciBmcm9tIEphdmFTY3JpcHRDb3JlLgorICAgIHJldHVybiBmYWxzZTsKIH0KIAog
Ym9vbCBKU0dsb2JhbE9iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHNsb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aAppbmRleCBmNTgwNDc2Li44YzBlNzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKQEAgLTE1MSw5ICsxNTEsNiBAQCBzdHJ1Y3QgR2xvYmFs
T2JqZWN0TWV0aG9kVGFibGUgewogICAgIHR5cGVkZWYgYm9vbCAoKkFsbG93c0FjY2Vzc0Zyb21G
dW5jdGlvblB0cikoY29uc3QgSlNHbG9iYWxPYmplY3QqLCBFeGVjU3RhdGUqKTsKICAgICBBbGxv
d3NBY2Nlc3NGcm9tRnVuY3Rpb25QdHIgYWxsb3dzQWNjZXNzRnJvbTsKIAotICAgIHR5cGVkZWYg
Ym9vbCAoKlN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nRnVuY3Rpb25QdHIpKGNvbnN0IEpTR2xvYmFs
T2JqZWN0Kik7Ci0gICAgU3VwcG9ydHNMZWdhY3lQcm9maWxpbmdGdW5jdGlvblB0ciBzdXBwb3J0
c0xlZ2FjeVByb2ZpbGluZzsKLQogICAgIHR5cGVkZWYgYm9vbCAoKlN1cHBvcnRzUmljaFNvdXJj
ZUluZm9GdW5jdGlvblB0cikoY29uc3QgSlNHbG9iYWxPYmplY3QqKTsKICAgICBTdXBwb3J0c1Jp
Y2hTb3VyY2VJbmZvRnVuY3Rpb25QdHIgc3VwcG9ydHNSaWNoU291cmNlSW5mbzsKIApAQCAtNzE3
LDcgKzcxNCw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSog
Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKSBjb25zdCB7IHJldHVybiBtX2dsb2JhbE9iamVjdE1l
dGhvZFRhYmxlOyB9CiAKICAgICBzdGF0aWMgYm9vbCBhbGxvd3NBY2Nlc3NGcm9tKGNvbnN0IEpT
R2xvYmFsT2JqZWN0KiwgRXhlY1N0YXRlKikgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHN0YXRpYyBi
b29sIHN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nKGNvbnN0IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1
cm4gZmFsc2U7IH0KICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0
IEpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgSlNfRVhQT1JUX1BSSVZB
VEUgRXhlY1N0YXRlKiBnbG9iYWxFeGVjKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDM1OWZj
MjAuLmI1NzE3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01OTAsOCArNTkwLDYgQEAgc2V0
KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKIAogICAgIGluc3BlY3Rvci9Db21tYW5kTGluZUFQ
SUhvc3QuaWRsCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKLSAgICBp
bnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5pZGwKLSAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5v
ZGUuaWRsCiAKICAgICBsb2FkZXIvYXBwY2FjaGUvRE9NQXBwbGljYXRpb25DYWNoZS5pZGwKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGY1ZjBkMjYuLjEyNmZiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MCBA
QAorMjAxNi0wNS0yMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbW92ZSBMZWdhY3lQcm9maWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSmF2YVNjcmlwdENvcmUgbm93IHByb3ZpZGVzIGEgc2FtcGxp
bmcgcHJvZmlsZXIgYW5kIGl0IGlzIGVuYWJsZWQKKyAgICAgICAgYnkgYWxsIHBvcnRzLiBXZWIg
SW5zcGVjdG9yIHN3aXRjaGVkIG1vbnRocyBhZ28gdG8gdXNpbmcgdGhlCisgICAgICAgIHNhbXBs
aW5nIHByb2ZpbGVyIGFuZCBkaXNwbGF5aW5nIGl0cyBkYXRhLiBSZW1vdmUgdGhlIGxlZ2FjeQor
ICAgICAgICBwcm9maWxlciwgYXMgaXQgaXMgbm8gbG9uZ2VyIGJlaW5nIHVzZWQgYnkgYW55dGhp
bmcgb3RoZXIgdGhlbgorICAgICAgICBjb25zb2xlLnByb2ZpbGUgYW5kIHRlc3RzLiBXZSB3aWxs
IHVwZGF0ZSBjb25zb2xlLnByb2ZpbGUncworICAgICAgICBiZWhhdmlvciBzb29uIHRvIGhhdmUg
bmV3IGJlaGF2aW9yIGFuZCB1c2UgdGhlIHNhbXBsaW5nIGRhdGEuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9M
ZWdhY3lQcm9maWxlci5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNv
bHZlci5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6c3VwcG9ydHNMZWdhY3lQcm9maWxpbmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpzdXBwb3J0c1Jp
Y2hTb3VyY2VJbmZvKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c3VwcG9ydHNM
ZWdhY3lQcm9maWxpbmcpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV29ya2Vy
R2xvYmFsU2NvcGVCYXNlLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJh
bWVEYXRhLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmNsZWFyV2luZG93U2hlbGwpOiBE
ZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdFByb2ZpbGUuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlTm9kZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoQWRk
Q2xhc3NGb3J3YXJkSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmcpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6anNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RSZXR1cm5pbmdTZXF1ZW5j
ZSk6IERlbGV0ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRs
OgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFByb2Zp
bGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpsZWdhY3lQcm9maWxlckVu
YWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6
c2V0TGVnYWN5UHJvZmlsZXJFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpzdG9wUHJvZmlsaW5nSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclRpbWVsaW5lQWdlbnQ6OnN0YXJ0
RnJvbUNvbnNvbGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6
c3RvcEZyb21Db25zb2xlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVB
Z2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHA6CisgICAg
ICAgICogaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAqIGluc3BlY3Rv
ci9TY3JpcHRQcm9maWxlLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0
UHJvZmlsZU5vZGUuaWRsOiBSZW1vdmVkLgorICAgICAgICAqIGluc3BlY3Rvci9UaW1lbGluZVJl
Y29yZEZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRBZ2dyZWdhdGVDYWxsSW5m
b0luc3BlY3Rvck9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpidWlsZEluc3Bl
Y3Rvck9iamVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpidWlsZFByb2ZpbGVJbnNw
ZWN0b3JPYmplY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VGltZWxpbmVSZWNvcmRG
YWN0b3J5OjphcHBlbmRQcm9maWxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvVGlt
ZWxpbmVSZWNvcmRGYWN0b3J5Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAg
ICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6cHJvZmlsZUVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6Y2xlYXJQcm9maWxlcyk6IERlbGV0
ZWQuCisgICAgICAgICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRUb0Nv
bnNpc3RlbnRTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNv
bnNvbGVQcm9maWxlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNl
dExlZ2FjeUphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwog
MjAxNi0wNS0yMCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIGB3
aWR0aDogMSVgIG9uIG5lc3RlZCB0YWJsZSBjZWxsIGNhdXNlcyBpdHMgdGFibGUgdG8gaG9nIGhv
cml6b250YWwgc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCBlODE1OTA0Li5j
YjYzYzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC00MjEsOCArNDIxLDYgQEAK
ICNpbmNsdWRlICJKU1JUQ1RyYWNrRXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTU2NyZWVuLmNwcCIK
ICNpbmNsdWRlICJKU1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwIgotI2luY2x1ZGUgIkpTU2NyaXB0
UHJvZmlsZS5jcHAiCi0jaW5jbHVkZSAiSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAiCiAjaWYgRU5B
QkxFKENTUF9ORVhUKQogI2luY2x1ZGUgIkpTU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5j
cHAiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDRlOTk1N2IuLjdl
NjFjMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTA0LDggKzUwNCw2IEBA
IE5PTl9TVkdfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC90cmFjay9WVFRD
dWUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9Db21tYW5kTGluZUFQSUhvc3QuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCBcCi0gICAgJChXZWJD
b3JlKS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2xv
YWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNhY2hlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9w
YWdlL0Fic3RyYWN0Vmlldy5pZGwgXAogICAgICQoV2ViQ29yZSkvcGFnZS9CYXJQcm9wLmlkbCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxlci9M
ZWdhY3lQcm9maWxlci5oIGIvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvcHJvZmls
ZXIvTGVnYWN5UHJvZmlsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGMwZTli
Zi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9wcm9maWxl
ci9MZWdhY3lQcm9maWxlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0jaWZuZGVm
IFdlYkNvcmVfRldEX0xlZ2FjeVByb2ZpbGVyX2gKLSNkZWZpbmUgV2ViQ29yZV9GV0RfTGVnYWN5
UHJvZmlsZXJfaAotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0xlZ2FjeVByb2ZpbGVyLmg+Ci0j
ZW5kaWYKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDA2NDRlZmIuLmExNWI4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQwNTEsMTIgKzQwNTEsNiBAQAog
CQk5REFDN0M1NDFBRjJDQUExMDA0MzdDNDQgLyogQ1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlEQUM3
QzUyMUFGMkNBQTEwMDQzN0M0NCAvKiBDU1NDb250ZW50RGlzdHJpYnV0aW9uVmFsdWUuY3BwICov
OyB9OwogCQk5REFDN0M1NTFBRjJDQUEyMDA0MzdDNDQgLyogQ1NTQ29udGVudERpc3RyaWJ1dGlv
blZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
REFDN0M1MzFBRjJDQUExMDA0MzdDNDQgLyogQ1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVlLmgg
Ki87IH07CiAJCTlEQUM3QzU3MUFGMkNCNjQwMDQzN0M0NCAvKiBTdHlsZUNvbnRlbnRBbGlnbm1l
bnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
REFDN0M1NjFBRjJDQjY0MDA0MzdDNDQgLyogU3R5bGVDb250ZW50QWxpZ25tZW50RGF0YS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTlGNzIzMDRG
MTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjcyMzA0QzExMTg0QjQxMDBBRDAxMjYgLyogU2Ny
aXB0UHJvZmlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTlGQTM3RUU0MTE3MkZDODAwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZBMzdFRTMxMTcy
RkM4MDAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOUZBMzdFRkExMTcyRkRBNjAwQzRDRDU1IC8q
IEpTU2NyaXB0UHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5RkEzN0VGNjExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlLmNw
cCAqLzsgfTsKLQkJOUZBMzdFRkIxMTcyRkRBNjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZBMzdFRjcx
MTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5oICovOyB9OwotCQk5RkEzN0VGQzEx
NzJGREE2MDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkEzN0VGODExNzJGRDkzMDBDNENENTUg
LyogSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAgKi87IH07Ci0JCTlGQTM3RUZEMTE3MkZEQTYwMEM0
Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5RkEzN0VGOTExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQ
cm9maWxlTm9kZS5oICovOyB9OwogCQlBMDdEMzM1NTE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJH
TFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMDdEMzM1MzE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJHTFNoYWRl
clByZWNpc2lvbkZvcm1hdC5jcHAgKi87IH07CiAJCUEwN0QzMzU2MTUyQjYzMEUwMDFCNjM5MyAv
KiBKU1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMDdEMzM1NDE1MkI2MzBFMDAxQjYzOTMgLyogSlNXZWJH
TFNoYWRlclByZWNpc2lvbkZvcm1hdC5oICovOyB9OwogCQlBMDdEMzM1ODE1MkI2MzJEMDAxQjYz
OTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwN0QzMzU3MTUyQjYzMkQwMDFCNjM5MyAvKiBXZWJH
TFNoYWRlclByZWNpc2lvbkZvcm1hdC5oICovOyB9OwpAQCAtMTE3NjcsMTQgKzExNzYxLDYgQEAK
IAkJOURBQzdDNTIxQUYyQ0FBMTAwNDM3QzQ0IC8qIENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NDb250ZW50RGlz
dHJpYnV0aW9uVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5REFDN0M1
MzFBRjJDQUExMDA0MzdDNDQgLyogQ1NTQ29udGVudERpc3RyaWJ1dGlvblZhbHVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0NvbnRlbnREaXN0cmlidXRpb25WYWx1ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5REFDN0M1NjFBRjJDQjY0MDA0MzdDNDQg
LyogU3R5bGVDb250ZW50QWxpZ25tZW50RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdHlsZUNvbnRlbnRBbGlnbm1lbnREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTlGNzIzMDRDMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFByb2ZpbGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUZBMzdFRTMxMTcyRkM4MDAwQzRDRDU1IC8qIFNjcmlwdFBy
b2ZpbGVOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFByb2Zp
bGVOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlGQTM3RUVGMTE3MkZENDEw
MEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTY3Jp
cHRQcm9maWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUZBMzdFRjAxMTcy
RkQ0MTAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBTY3JpcHRQcm9maWxlTm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTlGQTM3RUY2MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY3JpcHRQcm9maWxlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUZBMzdFRjcxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2Ny
aXB0UHJvZmlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NjcmlwdFBy
b2ZpbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUZBMzdFRjgxMTcyRkQ5MzAw
QzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTY3JpcHRQcm9maWxlTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTlGQTM3RUY5MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVO
b2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2NyaXB0UHJvZmlsZU5v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTA3RDMzNTMxNTJCNjMwRTAwMUI2
MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEwN0QzMzU0MTUyQjYzMEUwMDFCNjM5MyAvKiBK
U1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTA3RDMzNTcxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lz
aW9uRm9ybWF0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMU2hhZGVy
UHJlY2lzaW9uRm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjI4Miwx
MCArMTYyNjgsNiBAQAogCQkJCUE1ODRGRTNBMTg2NEUyRDgwMDg0M0IxMCAvKiBKU0NvbW1hbmRM
aW5lQVBJSG9zdC5oICovLAogCQkJCTdBMEU3NzFDMTBDMDBEQjEwMEEwMjc2RSAvKiBKU0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5jcHAgKi8sCiAJCQkJN0EwRTc3MUQxMEMwMERCMTAwQTAyNzZFIC8q
IEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggKi8sCi0JCQkJOUZBMzdFRjYxMTcyRkQ5MzAwQzRD
RDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5jcHAgKi8sCi0JCQkJOUZBMzdFRjcxMTcyRkQ5MzAwQzRD
RDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5oICovLAotCQkJCTlGQTM3RUY4MTE3MkZEOTMwMEM0Q0Q1
NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcCAqLywKLQkJCQk5RkEzN0VGOTExNzJGRDkzMDBD
NENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBJbnNw
ZWN0b3I7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTYzNzAsOCArMTYzNTIsNiBA
QAogCQkJCUYzODIwODhEMTQ3RDM1RjkwMDEwQkMwNiAvKiBQYWdlUnVudGltZUFnZW50LmggKi8s
CiAJCQkJQTVGMzZEMzgxOEY3NTg3MjAwNTRDMDI0IC8qIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlci5j
cHAgKi8sCiAJCQkJQTVGMzZEMzkxOEY3NTg3MjAwNTRDMDI0IC8qIFBhZ2VTY3JpcHREZWJ1Z1Nl
cnZlci5oICovLAotCQkJCTlGQTM3RUVGMTE3MkZENDEwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxl
LmlkbCAqLywKLQkJCQk5RkEzN0VGMDExNzJGRDQxMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5v
ZGUuaWRsICovLAogCQkJCTc1NTNDRkU3MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29y
ZEZhY3RvcnkuY3BwICovLAogCQkJCTc1NTNDRkU2MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGlu
ZVJlY29yZEZhY3RvcnkuaCAqLywKIAkJCQlBNTZDNUI5ODE4OUYzNDU3MDA4MkQxM0MgLyogV2Vi
Q29uc29sZUFnZW50LmNwcCAqLywKQEAgLTIyMzU2LDggKzIyMzM2LDYgQEAKIAkJCQlBODNFMUM3
MjBFNDkwNDJCMDAxNDBCOUMgLyogU2NyaXB0Q29udHJvbGxlck1hYy5tbSAqLywKIAkJCQk0MUYw
NjZFMzBGNjRCQ0Y2MDBBMDdFQUMgLyogU2NyaXB0R2xvYmFsT2JqZWN0LmNwcCAqLywKIAkJCQk0
MUYwNjZFMjBGNjRCQ0Y2MDBBMDdFQUMgLyogU2NyaXB0R2xvYmFsT2JqZWN0LmggKi8sCi0JCQkJ
OUY3MjMwNEMxMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGUuaCAqLywKLQkJCQk5RkEz
N0VFMzExNzJGQzgwMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaCAqLywKIAkJCQk5MzRD
QzEwOTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5oICovLAogCQkJCTQxMjdE
NTM2MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgKi8sCiAJCQkJNDFDNzYwQjAw
RURFMDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggKi8sCkBAIC0yNjgzNCw4ICsyNjgxMiw2
IEBACiAJCQkJNUUyQzQzNkMxQkNGMDcxRTAwMDFFMkJDIC8qIEpTUlRDVHJhY2tFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkNFQzAxQzMwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGREExNUVDRTEyQjAzRjYxMDAzQTU4M0EgLyogSlNTY3JpcHRQ
cm9jZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5RkEzN0VGQjExNzJGREE2MDBDNENE
NTUgLyogSlNTY3JpcHRQcm9maWxlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5RkEzN0VGRDExNzJG
REE2MDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0VEMDZBRDExQzc3NzU0ODAwRkRGQUYxIC8qIEpTU2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUJEQTY0RDgxQjk3NUNGMjAwOUM0Mzg3IC8qIEpTU2hh
ZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q5REUxN0IxN0FBQzc1QjAwRUEzODZEIC8q
IEpTU291cmNlQnVmZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI3ODI2LDggKzI3ODAyLDYgQEAK
IAkJCQlFMTFDOUQ5QjBFQjM2ODEyMDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGMDY2RTQwRjY0QkNGNjAwQTA3RUFDIC8qIFNjcmlwdEds
b2JhbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMzYxMkIwMjY3NjAwQzFBMzU5
IC8qIFNjcmlwdFByb2Nlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTlGNzIzMDRGMTEx
ODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlLmggaW4gSGVhZGVycyAqLywKLQkJCQk5RkEz
N0VFNDExNzJGQzgwMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzNENDMTBBMEVEQjIyMzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUM3NjBCMTBFREUwM0QzMDBDMTY1NUYgLyogU2NyaXB0
U3RhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMzA2MDAsOCArMzA1NzQsNiBAQAogCQkJCTVFMkM0
MzZCMUJDRjA3MUUwMDAxRTJCQyAvKiBKU1JUQ1RyYWNrRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkNFQzAxQzIwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZEQTE1RUNEMTJCMDNGNjEwMDNBNTgzQSAvKiBKU1NjcmlwdFByb2Nlc3Nvck5v
ZGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOUZBMzdFRkExMTcyRkRBNjAwQzRDRDU1IC8qIEpT
U2NyaXB0UHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5RkEzN0VGQzExNzJGREE2MDBD
NENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRUQw
NkFEMDFDNzc3NTQ4MDBGREZBRjEgLyogSlNTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTlCREE2NEQ3MUI5NzVDRTUwMDlDNDM4NyAvKiBKU1NoYWRv
d1Jvb3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q5REUxN0ExN0FBQzc1QjAwRUEzODZEIC8q
IEpTU291cmNlQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCmluZGV4IGMzYWNm
NWQuLmJmMzFhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbnNvbGVDbGllbnQuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgotI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxydW50
aW1lL0pTTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggZWY5ZTY3My4uNmJhNDY4MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCkBA
IC02NCw3ICs2NCw3IEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93QWNjZXNzRnJvbShjb25zdCBK
U0dsb2JhbE9iamVjdCogdGhpc09iamVjdCwgRXhlY1N0YXRlKiBlCiAKIGNvbnN0IENsYXNzSW5m
byBKU0RPTVdpbmRvd0Jhc2U6OnNfaW5mbyA9IHsgIldpbmRvdyIsICZKU0RPTUdsb2JhbE9iamVj
dDo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTRE9NV2luZG93QmFzZSkgfTsKIAot
Y29uc3QgR2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgSlNET01XaW5kb3dCYXNlOjpzX2dsb2JhbE9i
amVjdE1ldGhvZFRhYmxlID0geyAmc2hvdWxkQWxsb3dBY2Nlc3NGcm9tLCAmc3VwcG9ydHNMZWdh
Y3lQcm9maWxpbmcsICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2Ny
aXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hv
dWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZt
b2R1bGVMb2FkZXJGZXRjaCwgbnVsbHB0ciwgbnVsbHB0ciwgJm1vZHVsZUxvYWRlckV2YWx1YXRl
LCAmZGVmYXVsdExhbmd1YWdlIH07Citjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBKU0RP
TVdpbmRvd0Jhc2U6OnNfZ2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgPSB7ICZzaG91bGRBbGxvd0Fj
Y2Vzc0Zyb20sICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0U2NyaXB0
LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAmc2hvdWxk
SW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgJm1vZHVsZUxvYWRlclJlc29sdmUsICZtb2R1
bGVMb2FkZXJGZXRjaCwgbnVsbHB0ciwgbnVsbHB0ciwgJm1vZHVsZUxvYWRlckV2YWx1YXRlLCAm
ZGVmYXVsdExhbmd1YWdlIH07CiAKIEpTRE9NV2luZG93QmFzZTo6SlNET01XaW5kb3dCYXNlKFZN
JiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8RE9NV2luZG93PiB3aW5kb3cs
IEpTRE9NV2luZG93U2hlbGwqIHNoZWxsKQogICAgIDogSlNET01HbG9iYWxPYmplY3Qodm0sIHN0
cnVjdHVyZSwgJnNoZWxsLT53b3JsZCgpLCAmc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKQEAg
LTEyNSwyMCArMTI1LDYgQEAgdm9pZCBKU0RPTVdpbmRvd0Jhc2U6OnByaW50RXJyb3JNZXNzYWdl
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgY29uc3QKICAgICBwcmludEVycm9yTWVzc2FnZUZvckZy
YW1lKHdyYXBwZWQoKS5mcmFtZSgpLCBtZXNzYWdlKTsKIH0KIAotYm9vbCBKU0RPTVdpbmRvd0Jh
c2U6OnN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3Qp
Ci17Ci0gICAgY29uc3QgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8
Y29uc3QgSlNET01XaW5kb3dCYXNlKj4ob2JqZWN0KTsKLSAgICBGcmFtZSogZnJhbWUgPSB0aGlz
T2JqZWN0LT53cmFwcGVkKCkuZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAgICBpZiAoIXBh
Z2UpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBwYWdlLT5pbnNwZWN0b3JD
b250cm9sbGVyKCkubGVnYWN5UHJvZmlsZXJFbmFibGVkKCk7Ci19Ci0KIGJvb2wgSlNET01XaW5k
b3dCYXNlOjpzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmpl
Y3QpCiB7CiAgICAgY29uc3QgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nh
c3Q8Y29uc3QgSlNET01XaW5kb3dCYXNlKj4ob2JqZWN0KTsKQEAgLTE1Miw3ICsxMzgsNiBAQCBi
b29sIEpTRE9NV2luZG93QmFzZTo6c3VwcG9ydHNSaWNoU291cmNlSW5mbyhjb25zdCBKU0dsb2Jh
bE9iamVjdCogb2JqZWN0KQogCiAgICAgYm9vbCBlbmFibGVkID0gcGFnZS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLmVuYWJsZWQoKTsKICAgICBBU1NFUlQoZW5hYmxlZCB8fCAhdGhpc09iamVjdC0+
ZGVidWdnZXIoKSk7Ci0gICAgQVNTRVJUKGVuYWJsZWQgfHwgIXN1cHBvcnRzTGVnYWN5UHJvZmls
aW5nKHRoaXNPYmplY3QpKTsKICAgICByZXR1cm4gZW5hYmxlZDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAppbmRleCA1NjY5ZGU1Li4xNmZjMzlk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAt
NjAsNyArNjAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIGNvbnN0
IEpTQzo6R2xvYmFsT2JqZWN0TWV0aG9kVGFibGUgc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZTsK
IAotICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZyhjb25zdCBKU0M6
OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBib29sIHN1cHBvcnRzUmljaFNvdXJj
ZUluZm8oY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgICAgICBzdGF0aWMgYm9vbCBz
aG91bGRJbnRlcnJ1cHRTY3JpcHQoY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgICAg
ICBzdGF0aWMgYm9vbCBzaG91bGRJbnRlcnJ1cHRTY3JpcHRCZWZvcmVUaW1lb3V0KGNvbnN0IEpT
Qzo6SlNHbG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNwcAppbmRleCAzZDQ3NmRlLi4zYjBiMzA1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3Bl
QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUJhc2UuY3BwCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29u
c3QgQ2xhc3NJbmZvIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzX2luZm8gPSB7ICJXb3JrZXJH
bG9iYWxTY29wZSIsICZKU0RPTUdsb2JhbE9iamVjdDo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlKSB9OwogCi1jb25zdCBHbG9iYWxPYmplY3RN
ZXRob2RUYWJsZSBKU1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RU
YWJsZSA9IHsgJmFsbG93c0FjY2Vzc0Zyb20sICZzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZywgJnN1
cHBvcnRzUmljaFNvdXJjZUluZm8sICZzaG91bGRJbnRlcnJ1cHRTY3JpcHQsICZqYXZhU2NyaXB0
UnVudGltZUZsYWdzLCAmcXVldWVUYXNrVG9FdmVudExvb3AsICZzaG91bGRJbnRlcnJ1cHRTY3Jp
cHRCZWZvcmVUaW1lb3V0LCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCAmZGVmYXVsdExhbmd1YWdlIH07Citjb25zdCBHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBK
U1dvcmtlckdsb2JhbFNjb3BlQmFzZTo6c19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSA9IHsgJmFs
bG93c0FjY2Vzc0Zyb20sICZzdXBwb3J0c1JpY2hTb3VyY2VJbmZvLCAmc2hvdWxkSW50ZXJydXB0
U2NyaXB0LCAmamF2YVNjcmlwdFJ1bnRpbWVGbGFncywgJnF1ZXVlVGFza1RvRXZlbnRMb29wLCAm
c2hvdWxkSW50ZXJydXB0U2NyaXB0QmVmb3JlVGltZW91dCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgJmRlZmF1bHRMYW5ndWFnZSB9OwogCiBKU1dvcmtlckds
b2JhbFNjb3BlQmFzZTo6SlNXb3JrZXJHbG9iYWxTY29wZUJhc2UoSlNDOjpWTSYgdm0sIEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8V29ya2VyR2xvYmFsU2NvcGU+IGltcGwp
CiAgICAgOiBKU0RPTUdsb2JhbE9iamVjdCh2bSwgc3RydWN0dXJlLCAmbm9ybWFsV29ybGQodm0p
LCAmc19nbG9iYWxPYmplY3RNZXRob2RUYWJsZSkKQEAgLTczLDExICs3Myw2IEBAIGJvb2wgSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2U6OmFsbG93c0FjY2Vzc0Zyb20oY29uc3QgSlNHbG9iYWxPYmpl
Y3QqIG9iamVjdCwgRXhlCiAgICAgcmV0dXJuIEpTR2xvYmFsT2JqZWN0OjphbGxvd3NBY2Nlc3NG
cm9tKG9iamVjdCwgZXhlYyk7CiB9CiAKLWJvb2wgSlNXb3JrZXJHbG9iYWxTY29wZUJhc2U6OnN1
cHBvcnRzTGVnYWN5UHJvZmlsaW5nKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCi17Ci0g
ICAgcmV0dXJuIEpTR2xvYmFsT2JqZWN0OjpzdXBwb3J0c0xlZ2FjeVByb2ZpbGluZyhvYmplY3Qp
OwotfQotCiBib29sIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlOjpzdXBwb3J0c1JpY2hTb3VyY2VJ
bmZvKGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBvYmplY3QpCiB7CiAgICAgcmV0dXJuIEpTR2xvYmFs
T2JqZWN0OjpzdXBwb3J0c1JpY2hTb3VyY2VJbmZvKG9iamVjdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxTY29wZUJhc2UuaAppbmRleCAxYmQy
YjEwLi4wMDZmZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckdsb2JhbFNjb3BlQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyR2xvYmFsU2NvcGVCYXNlLmgKQEAgLTUzLDcgKzUzLDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBzdGF0aWMgY29uc3QgSlNDOjpHbG9iYWxPYmplY3RNZXRob2RUYWJsZSBz
X2dsb2JhbE9iamVjdE1ldGhvZFRhYmxlOwogCiAgICAgICAgIHN0YXRpYyBib29sIGFsbG93c0Fj
Y2Vzc0Zyb20oY29uc3QgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6RXhlY1N0YXRlKik7Ci0g
ICAgICAgIHN0YXRpYyBib29sIHN1cHBvcnRzTGVnYWN5UHJvZmlsaW5nKGNvbnN0IEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKICAgICAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNSaWNoU291cmNlSW5m
byhjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0YXRpYyBib29sIHNob3Vs
ZEludGVycnVwdFNjcmlwdChjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHN0
YXRpYyBib29sIHNob3VsZEludGVycnVwdFNjcmlwdEJlZm9yZVRpbWVvdXQoY29uc3QgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENhY2hlZEZyYW1lRGF0YS5jcHAKaW5kZXggMWNjY2Y4YS4uNTYxNmIzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q2FjaGVkRnJhbWVEYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDYWNoZWRGcmFtZURhdGEuY3Bw
CkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgotI2luY2x1
ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgogI2lu
Y2x1ZGUgPHJ1bnRpbWUvV2Vha0dDTWFwSW5saW5lcy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDJmYzA0MTIuLmQyZjJmMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
CkBAIC01Miw3ICs1Miw2IEBACiAjaW5jbHVkZSA8ZGVidWdnZXIvRGVidWdnZXIuaD4KICNpbmNs
dWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2Fs
bFN0YWNrLmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtMjE1LDEzICsyMTQsNiBAQCB2b2lkIFNjcmlw
dENvbnRyb2xsZXI6OmNsZWFyV2luZG93U2hlbGwoRE9NV2luZG93KiBuZXdET01XaW5kb3csIGJv
b2wgZ29pbmdJbnRvUAogICAgICAgICBhdHRhY2hEZWJ1Z2dlcih3aW5kb3dTaGVsbCwgbnVsbHB0
cik7CiAgICAgICAgIHdpbmRvd1NoZWxsLT53aW5kb3coKS0+c2V0Q29uc29sZUNsaWVudChudWxs
cHRyKTsKIAotICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGNsZWFyIGNvbnNvbGUgcHJvZmls
ZXMgZm9yIGVhY2ggZnJhbWUgYXMgc29vbiBhcyB0aGUgZnJhbWUgaXMgZGVzdHJveWVkLgotICAg
ICAgICAvLyBJbnN0ZWFkIG9mIGNsZWFyaW5nIGFsbCBvZiB0aGVtIHdoZW4gdGhlIG1haW4gZnJh
bWUgaXMgZGVzdHJveWVkLgotICAgICAgICBpZiAobV9mcmFtZS5pc01haW5GcmFtZSgpKSB7Ci0g
ICAgICAgICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQotICAgICAgICAgICAg
ICAgIHBhZ2UtPmNvbnNvbGUoKS5jbGVhclByb2ZpbGVzKCk7Ci0gICAgICAgIH0KLQogICAgICAg
ICB3aW5kb3dTaGVsbC0+d2luZG93KCktPndpbGxSZW1vdmVGcm9tV2luZG93U2hlbGwoKTsKICAg
ICAgICAgd2luZG93U2hlbGwtPnNldFdpbmRvdyhuZXdET01XaW5kb3cpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDdiNDNmODIuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0UHJvZmlsZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTY3JpcHRQ
cm9maWxlX2gKLSNkZWZpbmUgU2NyaXB0UHJvZmlsZV9oCi0KLSNpbmNsdWRlIDxwcm9maWxlci9Q
cm9maWxlLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdHlwZWRlZiBKU0M6OlByb2ZpbGUg
U2NyaXB0UHJvZmlsZTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gU2Ny
aXB0UHJvZmlsZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRQcm9maWxlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0UHJvZmls
ZU5vZGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmQxMjgzZC4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRQcm9maWxlTm9kZS5oCisrKyAv
ZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTY3JpcHRQcm9maWxlTm9kZV9oCi0jZGVmaW5lIFNjcmlw
dFByb2ZpbGVOb2RlX2gKLQotI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGVOb2RlLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotdHlwZWRlZiBKU0M6OlByb2ZpbGVOb2RlIFNjcmlwdFByb2Zp
bGVOb2RlOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBTY3JpcHRQcm9m
aWxlTm9kZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCmluZGV4IDkyMTJiNzEuLjQxMjU1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0yNjQsMTIgKzI2
NCw2IEBAIHN1YiBBZGRDbGFzc0ZvcndhcmRJZk5lZWRlZAogewogICAgIG15ICRpbnRlcmZhY2VO
YW1lID0gc2hpZnQ7CiAKLSAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIlNjcmlwdFByb2ZpbGVO
b2RlIikgewotICAgICAgICAkaGVhZGVySW5jbHVkZXN7Ijxwcm9maWxlci9Qcm9maWxlTm9kZS5o
PiJ9ID0gMTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInR5cGVkZWYgSlNDOjpQcm9m
aWxlTm9kZSBTY3JpcHRQcm9maWxlTm9kZTtcblxuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KICAgICAjIFNWR0FuaW1hdGVkTGVuZ3RoL051bWJlci9ldGMuIGFyZSB0eXBlZGVmcyBhbmQg
c2hvdWxkIG5vdCBiZSBmb3J3YXJkLWRlY2xhcmVkIGFzIGNsYXNzZXMuCiAgICAgcmV0dXJuIGlm
ICRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkaW50ZXJmYWNlTmFtZSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAKaW5kZXggMjk3ZjlkZi4uZWY5NTg2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTQyLDcgKzQyLDYg
QEAKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJKU1NWR0RvY3VtZW50LmgiCiAjaW5j
bHVkZSAiSlNTVkdQb2ludC5oIgotI2luY2x1ZGUgIkpTU2NyaXB0UHJvZmlsZS5oIgogI2luY2x1
ZGUgIkpTVGVzdENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5o
IgogI2luY2x1ZGUgIkpTVGVzdE5vZGUuaCIKQEAgLTU0LDcgKzUzLDYgQEAKICNpbmNsdWRlICJT
VkdEb2N1bWVudC5oIgogI2luY2x1ZGUgIlNWR1BvaW50LmgiCiAjaW5jbHVkZSAiU1ZHU3RhdGlj
UHJvcGVydHlUZWFyT2ZmLmgiCi0jaW5jbHVkZSAiU2NyaXB0UHJvZmlsZS5oIgogI2luY2x1ZGUg
IlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiVGVzdE9iai5oIgpAQCAtNTk3LDggKzU5NSw2IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhYUGF0aE5TUmVz
CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVu
Y3Rpb25OdWxsYWJsZVN0cmluZ01ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25OdWxsYWJs
ZVN0cmluZ1N0YXRpY01ldGhvZChKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVTdHJpbmdT
cGVjaWFsTWV0aG9kKEpTQzo6RXhlY1N0YXRlKik7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoU2VxdWVuY2VBcmco
SlNDOjpFeGVjU3RhdGUqKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFJldHVybmluZ1NlcXVlbmNlKEpTQzo6RXhlY1N0
YXRlKik7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoRW51bUFyZyhKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9k
V2l0aE9wdGlvbmFsRW51bUFyZyhKU0M6OkV4ZWNTdGF0ZSopOwogSlNDOjpFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlv
bmFsRW51bUFyZ0FuZERlZmF1bHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSopOwpAQCAtMTE2OSw4ICsx
MTY1LDYgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRh
YmxlVmFsdWVzW10gPQogICAgIHsgIm1ldGhvZFdpdGhYUGF0aE5TUmVzb2x2ZXJQYXJhbWV0ZXIi
LCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aFhQYXRoTlNS
ZXNvbHZlclBhcmFtZXRlciksIChpbnRwdHJfdCkgKDEpIH0gfSwKICAgICB7ICJudWxsYWJsZVN0
cmluZ01ldGhvZCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0
aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25OdWxsYWJs
ZVN0cmluZ01ldGhvZCksIChpbnRwdHJfdCkgKDApIH0gfSwKICAgICB7ICJudWxsYWJsZVN0cmlu
Z1NwZWNpYWxNZXRob2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qp
c3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVs
bGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kKSwgKGludHB0cl90KSAoMSkgfSB9LAotICAgIHsgIm1l
dGhvZFdpdGhTZXF1ZW5jZUFyZyIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRw
dHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25NZXRob2RXaXRoU2VxdWVuY2VBcmcpLCAoaW50cHRyX3QpICgxKSB9IH0sCi0gICAgeyAibWV0
aG9kUmV0dXJuaW5nU2VxdWVuY2UiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0
aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UpLCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAi
bWV0aG9kV2l0aEVudW1BcmciLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aEVudW1BcmcpLCAoaW50cHRyX3QpICgxKSB9IH0sCiAgICAgeyAibWV0aG9kV2l0
aE9wdGlvbmFsRW51bUFyZyIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJf
dClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25N
ZXRob2RXaXRoT3B0aW9uYWxFbnVtQXJnKSwgKGludHB0cl90KSAoMCkgfSB9LAogICAgIHsgIm1l
dGhvZFdpdGhPcHRpb25hbEVudW1BcmdBbmREZWZhdWx0VmFsdWUiLCBKU0M6OkZ1bmN0aW9uLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVz
dE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZ0FuZERlZmF1bHRW
YWx1ZSksIChpbnRwdHJfdCkgKDApIH0gfSwKQEAgLTQyMDAsNDAgKzQxOTQsNiBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTnVsbGFibGVT
dHJpbmdTcGVjaWFsTWV0aAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bk1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhFeGVjU3RhdGUqIHN0YXRlKQotewotICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gc3RhdGUtPnRoaXNWYWx1ZSgpOwotICAgIGF1dG8gY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4odGhpc1ZhbHVlKTsKLSAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKQotICAgICAgICByZXR1cm4gdGhyb3dUaGlzVHlwZUVycm9yKCpzdGF0ZSwgIlRl
c3RPYmoiLCAibWV0aG9kV2l0aFNlcXVlbmNlQXJnIik7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8oKSk7Ci0gICAgYXV0byYgaW1wbCA9
IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKLSAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmFyZ3VtZW50
Q291bnQoKSA8IDEpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKHN0YXRlLCBjcmVhdGVO
b3RFbm91Z2hBcmd1bWVudHNFcnJvcihzdGF0ZSkpOwotICAgIGF1dG8gc2VxdWVuY2VBcmcgPSAo
dG9SZWZQdHJOYXRpdmVBcnJheTxTY3JpcHRQcm9maWxlLCBKU1NjcmlwdFByb2ZpbGU+KHN0YXRl
LCBzdGF0ZS0+YXJndW1lbnQoMCksICZKU1NjcmlwdFByb2ZpbGU6OnRvV3JhcHBlZCkpOwotICAg
IGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKQotICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGltcGwubWV0aG9kV2l0aFNlcXVlbmNl
QXJnKFdURk1vdmUoc2VxdWVuY2VBcmcpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UoRXhlY1N0YXRlKiBzdGF0
ZSkKLXsKLSAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IHN0YXRlLT50aGlzVmFsdWUoKTsKLSAgICBh
dXRvIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KHRoaXNWYWx1ZSk7Ci0g
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkKLSAgICAgICAgcmV0dXJuIHRocm93VGhpc1R5
cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgIm1ldGhvZFJldHVybmluZ1NlcXVlbmNlIik7Ci0g
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhjYXN0ZWRUaGlzLCBKU1Rlc3RPYmo6OmluZm8o
KSk7Ci0gICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKLSAgICBpZiAoVU5M
SUtFTFkoc3RhdGUtPmFyZ3VtZW50Q291bnQoKSA8IDEpKQotICAgICAgICByZXR1cm4gdGhyb3dW
TUVycm9yKHN0YXRlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihzdGF0ZSkpOwotICAg
IGF1dG8gbG9uZ0FyZyA9IGNvbnZlcnQ8aW50MzJfdD4oKnN0YXRlLCBzdGF0ZS0+YXJndW1lbnQo
MCksIE5vcm1hbENvbnZlcnNpb24pOwotICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0
aW9uKCkpKQotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwot
ICAgIEpTVmFsdWUgcmVzdWx0ID0ganNBcnJheShzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2Jq
ZWN0KCksIGltcGwubWV0aG9kUmV0dXJuaW5nU2VxdWVuY2UoV1RGTW92ZShsb25nQXJnKSkpOwot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKLX0KLQogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhFbnVtQXJn
KEV4ZWNTdGF0ZSogc3RhdGUpCiB7CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBzdGF0ZS0+dGhp
c1ZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwKaW5kZXggMzIyMTVkYS4uMzQxMTgxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtMTE3LDkgKzExNyw2IEBAIGVu
dW0gVGVzdENvbmZpZGVuY2UgeyAiaGlnaCIsICJraW5kYS1sb3ciIH07CiAgICAgc3RhdGljIERP
TVN0cmluZz8gbnVsbGFibGVTdHJpbmdTdGF0aWNNZXRob2QoKTsKICAgICBnZXR0ZXIgRE9NU3Ry
aW5nPyBudWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2QodW5zaWduZWQgbG9uZyBpbmRleCk7CiAK
LSAgICB2b2lkIG1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhzZXF1ZW5jZTxTY3JpcHRQcm9maWxlPiBz
ZXF1ZW5jZUFyZyk7Ci0gICAgc2VxdWVuY2U8U2NyaXB0UHJvZmlsZT4gbWV0aG9kUmV0dXJuaW5n
U2VxdWVuY2UobG9uZyBsb25nQXJnKTsKLQogICAgIHZvaWQgbWV0aG9kV2l0aEVudW1BcmcoVGVz
dEVudW1UeXBlIGVudW1BcmcpOwogICAgIHZvaWQgbWV0aG9kV2l0aE9wdGlvbmFsRW51bUFyZyhv
cHRpb25hbCBUZXN0RW51bVR5cGUgZW51bUFyZyk7CiAgICAgdm9pZCBtZXRob2RXaXRoT3B0aW9u
YWxFbnVtQXJnQW5kRGVmYXVsdFZhbHVlKG9wdGlvbmFsIFRlc3RFbnVtVHlwZSBlbnVtQXJnID0g
IkVudW1WYWx1ZTEiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggN2EzMGNjMS4uYTll
NzgwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTEwMCw3ICsxMDAsNiBAQAogI2lu
Y2x1ZGUgIldlYktpdENTU0ZpbHRlclZhbHVlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTUmVnaW9u
UnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgiCi0jaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvUHJvZmlsZS5oPgogI2luY2x1ZGUgPGJpdHNldD4KICNpbmNsdWRlIDxs
aW1pdHMuaD4KICNpbmNsdWRlIDx3dGYvSGV4TnVtYmVyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCBjYzlkMGUzLi4xMzQ1NTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE4
Myw3ICsxODMsNiBAQAogI2luY2x1ZGUgIlhQYXRoTlNSZXNvbHZlci5oIgogI2luY2x1ZGUgIlhQ
YXRoUmVzdWx0LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKLSNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8Y3RpbWU+CiAjaW5jbHVkZSA8aW5zcGVjdG9y
L1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1
bWVudGF0aW9uLmgKaW5kZXggNDg0OTIzNS4uYTAxNzBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5o
CkBAIC0zMyw3ICszMyw2IEBACiAjZGVmaW5lIEluc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRp
b25faAogCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCi0jaW5jbHVkZSAi
U2NyaXB0UHJvZmlsZS5oIgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRBcmd1bWVudHMuaD4K
ICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAKQEAgLTg1LDkgKzg0LDkg
QEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpzdGFydFByb2ZpbGluZyhQ
YWdlJiBwYWdlLCBKU0M6OkV4ZWNTdGF0ZSoKICAgICBzdGFydFByb2ZpbGluZ0ltcGwoaW5zdHJ1
bWVudGluZ0FnZW50c0ZvclBhZ2UocGFnZSksIGV4ZWMsIHRpdGxlKTsKIH0KIAotaW5saW5lIFJl
ZlB0cjxKU0M6OlByb2ZpbGU+IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFByb2ZpbGlu
ZyhQYWdlJiBwYWdlLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nICZ0aXRsZSkK
K2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RvcFByb2ZpbGluZyhQYWdl
JiBwYWdlLCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nICZ0aXRsZSkKIHsKLSAg
ICByZXR1cm4gc3RvcFByb2ZpbGluZ0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50c0ZvclBhZ2UocGFn
ZSksIGV4ZWMsIHRpdGxlKTsKKyAgICBzdG9wUHJvZmlsaW5nSW1wbChpbnN0cnVtZW50aW5nQWdl
bnRzRm9yUGFnZShwYWdlKSwgZXhlYywgdGl0bGUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAKaW5kZXggZGIxY2ZhZC4uMDQzODVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNzIsNyArNzIsNiBAQAogI2luY2x1ZGUg
PGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQWdlbnQuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oPgotI2luY2x1ZGUgPHByb2ZpbGVyL0xlZ2Fj
eVByb2ZpbGVyLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4KICNpbmNsdWRlIDx3dGYv
U3RvcHdhdGNoLmg+CiAKQEAgLTE3MSwxNCArMTcwLDExIEBAIEluc3BlY3RvckNvbnRyb2xsZXI6
Okluc3BlY3RvckNvbnRyb2xsZXIoUGFnZSYgcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBpbnNwZWN0
b3JDCiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRXZWJDb25zb2xlQWdlbnQoY29uc29s
ZUFnZW50UHRyLmdldCgpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZShjb25zb2xlQWdl
bnRQdHIpKTsKIAotICAgIGF1dG8gdGltZWxpbmVBZ2VudFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8
SW5zcGVjdG9yVGltZWxpbmVBZ2VudD4ocGFnZUNvbnRleHQsIHNjcmlwdFByb2ZpbGVyQWdlbnQs
IGhlYXBBZ2VudCwgcGFnZUFnZW50KTsKLSAgICBtX3RpbWVsaW5lQWdlbnQgPSB0aW1lbGluZUFn
ZW50UHRyLmdldCgpOwotICAgIG1fYWdlbnRzLmFwcGVuZChXVEZNb3ZlKHRpbWVsaW5lQWdlbnRQ
dHIpKTsKLQogICAgIGF1dG8gZGVidWdnZXJBZ2VudFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8UGFn
ZURlYnVnZ2VyQWdlbnQ+KHBhZ2VDb250ZXh0LCBwYWdlQWdlbnQsIG1fb3ZlcmxheS5nZXQoKSk7
CiAgICAgUGFnZURlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBkZWJ1Z2dlckFnZW50UHRy
LmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChXVEZNb3ZlKGRlYnVnZ2VyQWdlbnRQdHIpKTsK
IAorICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ+KHBhZ2VDb250ZXh0LCBzY3JpcHRQcm9maWxlckFnZW50LCBoZWFwQWdlbnQsIHBhZ2VB
Z2VudCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckRP
TURlYnVnZ2VyQWdlbnQ+KHBhZ2VDb250ZXh0LCBtX2RvbUFnZW50LCBkZWJ1Z2dlckFnZW50KSk7
CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yQXBwbGljYXRp
b25DYWNoZUFnZW50PihwYWdlQ29udGV4dCwgcGFnZUFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBw
ZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQ+KHBhZ2VDb250ZXh0
KSk7CkBAIC00MTQsMjcgKzQxMCw2IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c2V0SW5k
aWNhdGluZyhib29sIGluZGljYXRpbmcpCiAjZW5kaWYKIH0KIAotYm9vbCBJbnNwZWN0b3JDb250
cm9sbGVyOjpsZWdhY3lQcm9maWxlckVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2xl
Z2FjeVByb2ZpbGVyRW5hYmxlZDsKLX0KLQotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpzZXRM
ZWdhY3lQcm9maWxlckVuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAgbV9sZWdhY3lQcm9maWxl
ckVuYWJsZWQgPSBlbmFibGU7Ci0KLSAgICBFcnJvclN0cmluZyB1bnVzZWQ7Ci0gICAgaWYgKGVu
YWJsZSkgewotICAgICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldFBlcnNpc3RlbnRJbnNw
ZWN0b3JUaW1lbGluZUFnZW50KG1fdGltZWxpbmVBZ2VudCk7Ci0gICAgICAgIG1fc2NyaXB0RGVi
dWdTZXJ2ZXIucmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsKLSAgICAgICAgbV90aW1lbGluZUFn
ZW50LT5zdGFydCh1bnVzZWQpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG1faW5zdHJ1bWVudGlu
Z0FnZW50cy0+c2V0UGVyc2lzdGVudEluc3BlY3RvclRpbWVsaW5lQWdlbnQobnVsbHB0cik7Ci0g
ICAgICAgIG1fc2NyaXB0RGVidWdTZXJ2ZXIucmVjb21waWxlQWxsSlNGdW5jdGlvbnMoKTsKLSAg
ICAgICAgbV90aW1lbGluZUFnZW50LT5zdG9wKHVudXNlZCk7Ci0gICAgfQotfQotCiBib29sIElu
c3BlY3RvckNvbnRyb2xsZXI6OmRldmVsb3BlckV4dHJhc0VuYWJsZWQoKSBjb25zdAogewogICAg
IHJldHVybiBtX3BhZ2Uuc2V0dGluZ3MoKS5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCBjYmY1
YzE5Li5hNTg5NmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmgKQEAgLTYzLDcgKzYzLDYgQEAgY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQ7CiBj
bGFzcyBJbnNwZWN0b3JGcm9udGVuZENsaWVudDsKIGNsYXNzIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjsKIGNsYXNzIEluc3BlY3RvclBhZ2VBZ2VudDsKLWNsYXNzIEluc3BlY3RvclRpbWVsaW5l
QWdlbnQ7CiBjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgTm9kZTsKIGNsYXNzIFBh
Z2U7CkBAIC0xMTEsOSArMTEwLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNVbmRlclRlc3Qo
Ym9vbCBpc1VuZGVyVGVzdCkgeyBtX2lzVW5kZXJUZXN0ID0gaXNVbmRlclRlc3Q7IH0KICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoY29uc3QgU3RyaW5n
JiBzY3JpcHQpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBsZWdhY3lQcm9maWxlckVuYWJs
ZWQoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldExlZ2FjeVByb2ZpbGVyRW5h
YmxlZChib29sKTsKLQogICAgIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQ2xpZW50KCkgY29u
c3QgeyByZXR1cm4gbV9pbnNwZWN0b3JDbGllbnQ7IH0KICAgICBJbnNwZWN0b3JGcm9udGVuZENs
aWVudCogaW5zcGVjdG9yRnJvbnRlbmRDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3Rv
ckZyb250ZW5kQ2xpZW50OyB9CiAgICAgSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQoKSBj
b25zdCB7IHJldHVybiBtX3BhZ2VBZ2VudDsgfQpAQCAtMTQ4LDExICsxNDQsOSBAQCBwcml2YXRl
OgogICAgIEluc3BlY3Rvcjo6SW5zcGVjdG9yQWdlbnQqIG1faW5zcGVjdG9yQWdlbnQgeyBudWxs
cHRyIH07CiAgICAgSW5zcGVjdG9yRE9NQWdlbnQqIG1fZG9tQWdlbnQgeyBudWxscHRyIH07CiAg
ICAgSW5zcGVjdG9yUGFnZUFnZW50KiBtX3BhZ2VBZ2VudCB7IG51bGxwdHIgfTsKLSAgICBJbnNw
ZWN0b3JUaW1lbGluZUFnZW50KiBtX3RpbWVsaW5lQWdlbnQgeyBudWxscHRyIH07CiAKICAgICBi
b29sIG1faXNVbmRlclRlc3QgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0F1dG9tYXRpY0luc3Bl
Y3Rpb24geyBmYWxzZSB9OwotICAgIGJvb2wgbV9sZWdhY3lQcm9maWxlckVuYWJsZWQgeyBmYWxz
ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCA5OTAwN2Uw
Li5hOTMzODY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNjcsNyArNjcsNiBAQAogI2luY2x1ZGUgPGluc3Bl
Y3Rvci9TY3JpcHRBcmd1bWVudHMuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0
YWNrLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
Lmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvQ29u
c29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTg5NCwxMSArODkzLDEwIEBAIHZvaWQgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpzdGFydFByb2ZpbGluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5z
dHJ1bWVuCiAgICAgICAgIHRpbWVsaW5lQWdlbnQtPnN0YXJ0RnJvbUNvbnNvbGUoZXhlYywgdGl0
bGUpOwogfQogCi1SZWZQdHI8SlNDOjpQcm9maWxlPiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OnN0b3BQcm9maWxpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJpbmcmIHRpdGxlKQordm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OnN0b3BQcm9maWxpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJp
bmcmIHRpdGxlKQogewogICAgIGlmIChJbnNwZWN0b3JUaW1lbGluZUFnZW50KiB0aW1lbGluZUFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy5wZXJzaXN0ZW50SW5zcGVjdG9yVGltZWxpbmVBZ2Vu
dCgpKQotICAgICAgICByZXR1cm4gdGltZWxpbmVBZ2VudC0+c3RvcEZyb21Db25zb2xlKGV4ZWMs
IHRpdGxlKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgdGltZWxpbmVBZ2VudC0+c3Rv
cEZyb21Db25zb2xlKGV4ZWMsIHRpdGxlKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZE9wZW5EYXRhYmFzZUltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVu
dGluZ0FnZW50cywgUmVmUHRyPERhdGFiYXNlPiYmIGRhdGFiYXNlLCBjb25zdCBTdHJpbmcmIGRv
bWFpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKaW5k
ZXggZDlkMTQ0OC4uN2Q2NzdlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApAQCAtNjEsMTAgKzYxLDYgQEAgY2xhc3MgU2Ny
aXB0QXJndW1lbnRzOwogY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogfQogCi1uYW1lc3BhY2UgSlND
IHsKLWNsYXNzIFByb2ZpbGU7Ci19Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NT
UnVsZTsKQEAgLTIxOCw3ICsyMTQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkRmly
ZUFuaW1hdGlvbkZyYW1lKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwog
CiAgICAgc3RhdGljIHZvaWQgc3RhcnRQcm9maWxpbmcoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxKU0M6OlByb2ZpbGU+IHN0
b3BQcm9maWxpbmcoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7
CisgICAgc3RhdGljIHZvaWQgc3RvcFByb2ZpbGluZyhQYWdlJiwgSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBTdHJpbmcmIHRpdGxlKTsKIAogICAgIHN0YXRpYyB2b2lkIGRpZE9wZW5EYXRhYmFzZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPERhdGFiYXNlPiYmLCBjb25zdCBTdHJpbmcm
IGRvbWFpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pOwogCkBA
IC0zODcsNyArMzgzLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBkaWRGaXJlQW5pbWF0
aW9uRnJhbWVJbXBsKGNvbnN0IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSYpOwogCiAg
ICAgc3RhdGljIHZvaWQgc3RhcnRQcm9maWxpbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOwotICAgIHN0YXRpYyBSZWZQdHI8
SlNDOjpQcm9maWxlPiBzdG9wUHJvZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyAgICBzdGF0aWMgdm9pZCBzdG9w
UHJvZmlsaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBTdHJpbmcmIHRpdGxlKTsKIAogICAgIHN0YXRpYyB2b2lkIGRpZE9wZW5EYXRhYmFzZUltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyYsIFJlZlB0cjxEYXRhYmFzZT4mJiwgY29uc3QgU3RyaW5nJiBk
b21haW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclRpbWVsaW5lQWdlbnQuY3Bw
CmluZGV4IDcwMWJhN2IuLjJjOGUxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKQEAgLTQ3LDcgKzQ3LDYgQEAKICNpbmNs
dWRlIDxpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaD4KICNpbmNsdWRl
IDxpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckhlYXBBZ2VudC5oPgogI2luY2x1ZGUgPGluc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudC5oPgotI2luY2x1ZGUgPHBy
b2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1N0b3B3YXRjaC5oPgogCiAj
aWYgUExBVEZPUk0oSU9TKQpAQCAtMjQyLDU4ICsyNDEsMTQgQEAgZG91YmxlIEluc3BlY3RvclRp
bWVsaW5lQWdlbnQ6OnRpbWVzdGFtcCgpCiAgICAgcmV0dXJuIG1fZW52aXJvbm1lbnQuZXhlY3V0
aW9uU3RvcHdhdGNoKCktPmVsYXBzZWRUaW1lKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6c3RhcnRGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3Ry
aW5nICZ0aXRsZSkKK3ZvaWQgSW5zcGVjdG9yVGltZWxpbmVBZ2VudDo6c3RhcnRGcm9tQ29uc29s
ZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IDxodHRw
czovL3dlYmtpdC5vcmcvYi8xNTM0OTk+IFdlYiBJbnNwZWN0b3I6IGNvbnNvbGUucHJvZmlsZSBz
aG91bGQgdXNlIHRoZSBuZXcgU2FtcGxpbmcgUHJvZmlsZXIKLQotICAgIC8vIE9ubHkgYWxsb3cg
cmVjb3JkaW5nIG9mIGEgcHJvZmlsZSBpZiBpdCBpcyBhbm9ueW1vdXMgKGVtcHR5IHRpdGxlKSBv
ciBkb2VzIG5vdCBtYXRjaAotICAgIC8vIHRoZSB0aXRsZSBvZiBhbiBhbHJlYWR5IHJlY29yZGlu
ZyBwcm9maWxlLgotICAgIGlmICghdGl0bGUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGZvciAoY29u
c3QgVGltZWxpbmVSZWNvcmRFbnRyeSYgcmVjb3JkIDogbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVS
ZWNvcmRzKSB7Ci0gICAgICAgICAgICBTdHJpbmcgcmVjb3JkVGl0bGU7Ci0gICAgICAgICAgICBy
ZWNvcmQuZGF0YS0+Z2V0U3RyaW5nKEFTQ0lJTGl0ZXJhbCgidGl0bGUiKSwgcmVjb3JkVGl0bGUp
OwotICAgICAgICAgICAgaWYgKHJlY29yZFRpdGxlID09IHRpdGxlKQotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmICghbV9lbmFibGVkICYmIG1fcGVu
ZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jkcy5pc0VtcHR5KCkpCi0gICAgICAgIGludGVybmFsU3Rh
cnQoKTsKLQotICAgIEpTQzo6TGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCktPnN0YXJ0UHJvZmls
aW5nKGV4ZWMsIHRpdGxlLCBtX2Vudmlyb25tZW50LmV4ZWN1dGlvblN0b3B3YXRjaCgpKTsKLQot
ICAgIG1fcGVuZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jkcy5hcHBlbmQoY3JlYXRlUmVjb3JkRW50
cnkoVGltZWxpbmVSZWNvcmRGYWN0b3J5OjpjcmVhdGVDb25zb2xlUHJvZmlsZURhdGEodGl0bGUp
LCBUaW1lbGluZVJlY29yZFR5cGU6OkNvbnNvbGVQcm9maWxlLCB0cnVlLCBmcmFtZUZyb21FeGVj
U3RhdGUoZXhlYykpKTsKIH0KIAotUmVmUHRyPEpTQzo6UHJvZmlsZT4gSW5zcGVjdG9yVGltZWxp
bmVBZ2VudDo6c3RvcEZyb21Db25zb2xlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJp
bmcmIHRpdGxlKQordm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpzdG9wRnJvbUNvbnNvbGUo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKQogewogICAgIC8vIEZJWE1FOiA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMTUzNDk5PiBXZWIgSW5zcGVjdG9yOiBjb25zb2xlLnByb2ZpbGUgc2hv
dWxkIHVzZSB0aGUgbmV3IFNhbXBsaW5nIFByb2ZpbGVyCi0KLSAgICAvLyBTdG9wIHByb2ZpbGVz
IGluIHJldmVyc2Ugb3JkZXIuIElmIHRoZSB0aXRsZSBpcyBlbXB0eSwgdGhlbiBzdG9wIHRoZSBs
YXN0IHByb2ZpbGUuCi0gICAgLy8gT3RoZXJ3aXNlLCBtYXRjaCB0aGUgdGl0bGUgb2YgdGhlIHBy
b2ZpbGUgdG8gc3RvcC4KLSAgICBmb3IgKHB0cmRpZmZfdCBpID0gbV9wZW5kaW5nQ29uc29sZVBy
b2ZpbGVSZWNvcmRzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgIGNvbnN0IFRp
bWVsaW5lUmVjb3JkRW50cnkmIHJlY29yZCA9IG1fcGVuZGluZ0NvbnNvbGVQcm9maWxlUmVjb3Jk
c1tpXTsKLQotICAgICAgICBTdHJpbmcgcmVjb3JkVGl0bGU7Ci0gICAgICAgIHJlY29yZC5kYXRh
LT5nZXRTdHJpbmcoQVNDSUlMaXRlcmFsKCJ0aXRsZSIpLCByZWNvcmRUaXRsZSk7Ci0KLSAgICAg
ICAgaWYgKHRpdGxlLmlzRW1wdHkoKSB8fCByZWNvcmRUaXRsZSA9PSB0aXRsZSkgewotICAgICAg
ICAgICAgUmVmUHRyPEpTQzo6UHJvZmlsZT4gcHJvZmlsZSA9IEpTQzo6TGVnYWN5UHJvZmlsZXI6
OnByb2ZpbGVyKCktPnN0b3BQcm9maWxpbmcoZXhlYywgdGl0bGUpOwotICAgICAgICAgICAgaWYg
KHByb2ZpbGUpCi0gICAgICAgICAgICAgICAgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjphcHBlbmRQ
cm9maWxlKHJlY29yZC5kYXRhLmdldCgpLCBwcm9maWxlLmNvcHlSZWYoKSk7Ci0KLSAgICAgICAg
ICAgIGRpZENvbXBsZXRlUmVjb3JkRW50cnkocmVjb3JkKTsKLQotICAgICAgICAgICAgbV9wZW5k
aW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzLnJlbW92ZShpKTsKLQotICAgICAgICAgICAgaWYgKCFt
X2VuYWJsZWRGcm9tRnJvbnRlbmQgJiYgbV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzLmlz
RW1wdHkoKSkKLSAgICAgICAgICAgICAgICBpbnRlcm5hbFN0b3AoKTsKLQotICAgICAgICAgICAg
cmV0dXJuIHByb2ZpbGU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIAogdm9pZCBJbnNwZWN0b3JUaW1lbGluZUFnZW50Ojp3aWxsQ2FsbEZ1bmN0aW9uKGNvbnN0
IFN0cmluZyYgc2NyaXB0TmFtZSwgaW50IHNjcmlwdExpbmUsIEZyYW1lKiBmcmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oCmluZGV4
IDg4Mzg4ZmMuLmNmNzZkZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JUaW1lbGluZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclRpbWVsaW5lQWdlbnQuaApAQCAtNDEsMTAgKzQxLDYgQEAKICNpbmNsdWRlIDxpbnNw
ZWN0b3IvU2NyaXB0RGVidWdMaXN0ZW5lci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAot
bmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBQcm9maWxlOwotfQotCiBuYW1lc3BhY2UgSW5zcGVjdG9y
IHsKIGNsYXNzIEluc3BlY3RvckhlYXBBZ2VudDsKIGNsYXNzIEluc3BlY3RvclNjcmlwdFByb2Zp
bGVyQWdlbnQ7CkBAIC0xMTMsOCArMTA5LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkQ29tbWl0
TG9hZCgpOwogCiAgICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSBXZWJDb3JlLgotICAgIHZvaWQg
c3RhcnRGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyAmdGl0bGUpOwot
ICAgIFJlZlB0cjxKU0M6OlByb2ZpbGU+IHN0b3BGcm9tQ29uc29sZShKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYgdGl0bGUpOworICAgIHZvaWQgc3RhcnRGcm9tQ29uc29sZShKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpOworICAgIHZvaWQgc3RvcEZyb21Db25zb2xl
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAKICAgICAvLyBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24gY2FsbGJhY2tzLgogICAgIHZvaWQgZGlkSW5zdGFsbFRpbWVyKGlu
dCB0aW1lcklkLCBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQsIGJvb2wgc2luZ2xl
U2hvdCwgRnJhbWUqKTsKQEAgLTIwNCwxMSArMjAwLDEwIEBAIHByaXZhdGU6CiAgICAgSW5zcGVj
dG9yUGFnZUFnZW50KiBtX3BhZ2VBZ2VudDsKIAogICAgIFZlY3RvcjxUaW1lbGluZVJlY29yZEVu
dHJ5PiBtX3JlY29yZFN0YWNrOworCiAgICAgaW50IG1faWQgeyAxIH07CiAgICAgaW50IG1fbWF4
Q2FsbFN0YWNrRGVwdGggeyA1IH07CiAKLSAgICBWZWN0b3I8VGltZWxpbmVSZWNvcmRFbnRyeT4g
bV9wZW5kaW5nQ29uc29sZVByb2ZpbGVSZWNvcmRzOwotCiAgICAgYm9vbCBtX2VuYWJsZWQgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9lbmFibGVkRnJvbUZyb250ZW5kIHsgZmFsc2UgfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggMTk3
ZDJlMS4uYTg2ZWQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VE
ZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZURlYnVn
Z2VyQWdlbnQuY3BwCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0TWFuYWdlci5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2su
aD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgotI2luY2x1
ZGUgPHByb2ZpbGVyL1Byb2ZpbGUuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9QYWdlUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9QYWdlUnVudGltZUFnZW50LmNwcAppbmRleCBhNWZhZTRjLi40ZjRmYTI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZVJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VSdW50aW1lQWdlbnQuY3BwCkBAIC00NSw3ICs0NSw2
IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuaD4KICNpbmNsdWRlIDxpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
Lmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5oPgogCiB1c2luZyBJbnNwZWN0b3I6OlBy
b3RvY29sOjpSdW50aW1lOjpFeGVjdXRpb25Db250ZXh0RGVzY3JpcHRpb247CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9TY3JpcHRQcm9maWxlLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMTE4NGE1YS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
U2NyaXB0UHJvZmlsZS5pZGwKKysrIC9kZXYvbnVsbApAQCAtMSwzNiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgTm9JbnRlcmZhY2VP
YmplY3QsCi0gICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCi0gICAgRXhwb3J0TWFjcm89V0VCQ09S
RV9FWFBPUlQsCi1dIGludGVyZmFjZSBTY3JpcHRQcm9maWxlIHsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHRpdGxlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIHVpZDsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU2NyaXB0UHJvZmlsZU5vZGUgcm9vdE5v
ZGU7Ci19OwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJv
ZmlsZU5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1NjcmlwdFByb2ZpbGVOb2Rl
LmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDBlNTNkYi4uMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCisrKyAvZGV2
L251bGwKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotWwotICAgIE5vSW50ZXJmYWNlT2JqZWN0LAotICAgIEltcGxlbWVudGF0aW9u
TGFja3NWVGFibGUsCi0gICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQsCi1dIGludGVyZmFj
ZSBTY3JpcHRQcm9maWxlTm9kZSB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgaWQ7Ci0KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZ1bmN0aW9uTmFtZTsK
LQotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdXJsOwotICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxpbmVOdW1iZXI7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgY29sdW1uTnVtYmVyOwotCi0gICAgc2VxdWVuY2U8U2NyaXB0UHJvZmls
ZU5vZGU+IGNoaWxkcmVuKCk7Ci19OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
VGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAppbmRleCBmNGM2N2MzLi42OGY3NTkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmNwcApA
QCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRCcmVha3BvaW50Lmg+
CiAjaW5jbHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPGluc3Bl
Y3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5Lmg+Ci0jaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmls
ZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCkBAIC0xNTIsNjMgKzE1MSw0IEBA
IHZvaWQgVGltZWxpbmVSZWNvcmRGYWN0b3J5OjphcHBlbmRMYXlvdXRSb290KEluc3BlY3Rvck9i
amVjdCogZGF0YSwgY29uc3QgRmxvYXRRCiAgICAgZGF0YS0+c2V0QXJyYXkoQVNDSUlMaXRlcmFs
KCJyb290IiksIGNyZWF0ZVF1YWQocXVhZCkpOwogfQogCi1zdGF0aWMgUmVmPFByb3RvY29sOjpU
aW1lbGluZTo6Q1BVUHJvZmlsZU5vZGVBZ2dyZWdhdGVDYWxsSW5mbz4gYnVpbGRBZ2dyZWdhdGVD
YWxsSW5mb0luc3BlY3Rvck9iamVjdChjb25zdCBKU0M6OlByb2ZpbGVOb2RlKiBub2RlKQotewot
ICAgIGRvdWJsZSBzdGFydFRpbWUgPSBub2RlLT5jYWxscygpWzBdLnN0YXJ0VGltZSgpOwotICAg
IGRvdWJsZSBlbmRUaW1lID0gbm9kZS0+Y2FsbHMoKS5sYXN0KCkuc3RhcnRUaW1lKCkgKyBub2Rl
LT5jYWxscygpLmxhc3QoKS5lbGFwc2VkVGltZSgpOwotCi0gICAgZG91YmxlIHRvdGFsVGltZSA9
IDA7Ci0gICAgZm9yIChjb25zdCBKU0M6OlByb2ZpbGVOb2RlOjpDYWxsJiBjYWxsIDogbm9kZS0+
Y2FsbHMoKSkKLSAgICAgICAgdG90YWxUaW1lICs9IGNhbGwuZWxhcHNlZFRpbWUoKTsKLQotICAg
IHJldHVybiBQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlQWdncmVnYXRlQ2FsbElu
Zm86OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRDYWxsQ291bnQobm9kZS0+Y2FsbHMoKS5zaXplKCkp
Ci0gICAgICAgIC5zZXRTdGFydFRpbWUoc3RhcnRUaW1lKQotICAgICAgICAuc2V0RW5kVGltZShl
bmRUaW1lKQotICAgICAgICAuc2V0VG90YWxUaW1lKHRvdGFsVGltZSkKLSAgICAgICAgLnJlbGVh
c2UoKTsKLX0KLQotc3RhdGljIFJlZjxQcm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2Rl
PiBidWlsZEluc3BlY3Rvck9iamVjdChjb25zdCBKU0M6OlByb2ZpbGVOb2RlKiBub2RlKQotewot
ICAgIGF1dG8gcmVzdWx0ID0gUHJvdG9jb2w6OlRpbWVsaW5lOjpDUFVQcm9maWxlTm9kZTo6Y3Jl
YXRlKCkKLSAgICAgICAgLnNldElkKG5vZGUtPmlkKCkpCi0gICAgICAgIC5zZXRDYWxsSW5mbyhi
dWlsZEFnZ3JlZ2F0ZUNhbGxJbmZvSW5zcGVjdG9yT2JqZWN0KG5vZGUpKQotICAgICAgICAucmVs
ZWFzZSgpOwotCi0gICAgaWYgKCFub2RlLT5mdW5jdGlvbk5hbWUoKS5pc0VtcHR5KCkpCi0gICAg
ICAgIHJlc3VsdC0+c2V0RnVuY3Rpb25OYW1lKG5vZGUtPmZ1bmN0aW9uTmFtZSgpKTsKLQotICAg
IGlmICghbm9kZS0+dXJsKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHJlc3VsdC0+c2V0VXJsKG5v
ZGUtPnVybCgpKTsKLSAgICAgICAgcmVzdWx0LT5zZXRMaW5lTnVtYmVyKG5vZGUtPmxpbmVOdW1i
ZXIoKSk7Ci0gICAgICAgIHJlc3VsdC0+c2V0Q29sdW1uTnVtYmVyKG5vZGUtPmNvbHVtbk51bWJl
cigpKTsKLSAgICB9Ci0KLSAgICBpZiAoIW5vZGUtPmNoaWxkcmVuKCkuaXNFbXB0eSgpKSB7Ci0g
ICAgICAgIGF1dG8gY2hpbGRyZW4gPSBQcm90b2NvbDo6QXJyYXk8UHJvdG9jb2w6OlRpbWVsaW5l
OjpDUFVQcm9maWxlTm9kZT46OmNyZWF0ZSgpOwotICAgICAgICBmb3IgKFJlZlB0cjxKU0M6OlBy
b2ZpbGVOb2RlPiBwcm9maWxlTm9kZSA6IG5vZGUtPmNoaWxkcmVuKCkpCi0gICAgICAgICAgICBj
aGlsZHJlbi0+YWRkSXRlbShidWlsZEluc3BlY3Rvck9iamVjdChwcm9maWxlTm9kZS5nZXQoKSkp
OwotICAgICAgICByZXN1bHQtPnNldENoaWxkcmVuKFdURk1vdmUoY2hpbGRyZW4pKTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUmVmPFByb3RvY29sOjpUaW1lbGlu
ZTo6Q1BVUHJvZmlsZT4gYnVpbGRQcm9maWxlSW5zcGVjdG9yT2JqZWN0KGNvbnN0IEpTQzo6UHJv
ZmlsZSogcHJvZmlsZSkKLXsKLSAgICBhdXRvIHJvb3ROb2RlcyA9IFByb3RvY29sOjpBcnJheTxQ
cm90b2NvbDo6VGltZWxpbmU6OkNQVVByb2ZpbGVOb2RlPjo6Y3JlYXRlKCk7Ci0gICAgZm9yIChS
ZWZQdHI8SlNDOjpQcm9maWxlTm9kZT4gcHJvZmlsZU5vZGUgOiBwcm9maWxlLT5yb290Tm9kZSgp
LT5jaGlsZHJlbigpKQotICAgICAgICByb290Tm9kZXMtPmFkZEl0ZW0oYnVpbGRJbnNwZWN0b3JP
YmplY3QocHJvZmlsZU5vZGUuZ2V0KCkpKTsKLQotICAgIHJldHVybiBQcm90b2NvbDo6VGltZWxp
bmU6OkNQVVByb2ZpbGU6OmNyZWF0ZSgpCi0gICAgICAgIC5zZXRSb290Tm9kZXMoV1RGTW92ZShy
b290Tm9kZXMpKQotICAgICAgICAucmVsZWFzZSgpOwotfQotCi12b2lkIFRpbWVsaW5lUmVjb3Jk
RmFjdG9yeTo6YXBwZW5kUHJvZmlsZShJbnNwZWN0b3JPYmplY3QqIGRhdGEsIFJlZlB0cjxKU0M6
OlByb2ZpbGU+JiYgcHJvZmlsZSkKLXsKLSAgICBkYXRhLT5zZXRWYWx1ZShBU0NJSUxpdGVyYWwo
InByb2ZpbGUiKSwgYnVpbGRQcm9maWxlSW5zcGVjdG9yT2JqZWN0KHByb2ZpbGUuZ2V0KCkpKTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1RpbWVsaW5lUmVjb3JkRmFjdG9yeS5oCmluZGV4IDA0MjE0YzMuLjRjMDIyNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9UaW1lbGluZVJlY29yZEZhY3RvcnkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvVGltZWxpbmVSZWNvcmRGYWN0b3J5LmgKQEAg
LTM2LDEwICszNiw2IEBACiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAotbmFtZXNwYWNlIEpTQyB7Ci1jbGFzcyBQcm9maWxlOwotfQot
CiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIHN0cnVjdCBTY3JpcHRCcmVha3BvaW50QWN0aW9uOwog
fQpAQCAtNjUsNyArNjEsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxJbnNwZWN0b3I6Oklu
c3BlY3Rvck9iamVjdD4gY3JlYXRlUGFpbnREYXRhKGNvbnN0IEZsb2F0UXVhZCYpOwogCiAgICAg
c3RhdGljIHZvaWQgYXBwZW5kTGF5b3V0Um9vdChJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCog
ZGF0YSwgY29uc3QgRmxvYXRRdWFkJik7Ci0gICAgc3RhdGljIHZvaWQgYXBwZW5kUHJvZmlsZShJ
bnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCosIFJlZlB0cjxKU0M6OlByb2ZpbGU+JiYpOwogCiBw
cml2YXRlOgogICAgIFRpbWVsaW5lUmVjb3JkRmFjdG9yeSgpIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCmluZGV4IGU3ODFiN2MuLjc4ZDZmYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKQEAgLTEwMSw3ICsxMDEsNiBAQAogI2luY2x1ZGUgIldlYktpdFBvaW50LmgiCiAjaW5j
bHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJXaW5kb3dGb2N1c0FsbG93ZWRJbmRp
Y2F0b3IuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxlLmg+CiAjaW5jbHVkZSA8
YWxnb3JpdGhtPgogI2luY2x1ZGUgPGluc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNs
dWRlIDxpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
aW5kZXggMzIwZjgyOC4uNDYzZmJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC05Niw3ICs5Niw2
IEBACiAjaW5jbHVkZSAiVmlzaXRlZExpbmtTdG9yZS5oIgogI2luY2x1ZGUgIlZvaWRDYWxsYmFj
ay5oIgogI2luY2x1ZGUgIldpZGdldC5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2Zp
bGUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
TGVha0NvdW50ZXIuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCmluZGV4IDVjZmE5N2IuLjlkMGUwYTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCkBAIC0xOTEsOCArMTkx
LDcgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6cHJvZmlsZShKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OnByb2ZpbGVF
bmQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgLy8g
RklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xNTM0OTk+IFdlYiBJbnNwZWN0b3I6IGNvbnNv
bGUucHJvZmlsZSBzaG91bGQgdXNlIHRoZSBuZXcgU2FtcGxpbmcgUHJvZmlsZXIKLSAgICBpZiAo
UmVmUHRyPEpTQzo6UHJvZmlsZT4gcHJvZmlsZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
c3RvcFByb2ZpbGluZyhtX3BhZ2UsIGV4ZWMsIHRpdGxlKSkKLSAgICAgICAgbV9wcm9maWxlcy5h
cHBlbmQoV1RGTW92ZShwcm9maWxlKSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpz
dG9wUHJvZmlsaW5nKG1fcGFnZSwgZXhlYywgdGl0bGUpOwogfQogCiB2b2lkIFBhZ2VDb25zb2xl
Q2xpZW50Ojp0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0
aXRsZSkKQEAgLTIxNiw5ICsyMTUsNCBAQCB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lU3Rh
bXAoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmIGFyZwogICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZVRpbWVTdGFtcChtX3BhZ2UubWFpbkZyYW1l
KCksIFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CiAKLXZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OmNs
ZWFyUHJvZmlsZXMoKQotewotICAgIG1fcHJvZmlsZXMuY2xlYXIoKTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29s
ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCmluZGV4
IGNlNWM1MTguLmVhZWYzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bnNvbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50
LmgKQEAgLTMwLDcgKzMwLDYgQEAKICNkZWZpbmUgUGFnZUNvbnNvbGVDbGllbnRfaAogCiAjaW5j
bHVkZSA8aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgotI2luY2x1ZGUgPHByb2ZpbGVyL1By
b2ZpbGUuaD4KICNpbmNsdWRlIDxydW50aW1lL0NvbnNvbGVDbGllbnQuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogCkBAIC00Myw4ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIERvY3VtZW50OwogY2xhc3MgUGFnZTsKIAotdHlwZWRlZiBWZWN0b3I8UmVmUHRyPEpTQzo6
UHJvZmlsZT4+IFByb2ZpbGVzQXJyYXk7Ci0KIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFBhZ2VDb25z
b2xlQ2xpZW50IGZpbmFsIDogcHVibGljIEpTQzo6Q29uc29sZUNsaWVudCB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC02MSw5ICs1OCw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7CiAgICAg
dm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCwgRG9jdW1lbnQq
ID0gbnVsbHB0cik7CiAKLSAgICBjb25zdCBQcm9maWxlc0FycmF5JiBwcm9maWxlcygpIGNvbnN0
IHsgcmV0dXJuIG1fcHJvZmlsZXM7IH0KLSAgICB2b2lkIGNsZWFyUHJvZmlsZXMoKTsKLQogcHJv
dGVjdGVkOgogICAgIHZvaWQgbWVzc2FnZVdpdGhUeXBlQW5kTGV2ZWwoTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1
bWVudHM+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBSZWZQ
dHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwpAQCAtNzYsNyArNzAs
NiBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgUGFnZSYgbV9wYWdlOwotICAgIFByb2Zp
bGVzQXJyYXkgbV9wcm9maWxlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAwZDNmOWIwLi5kNDk0NGNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMjUsNyArMTI1LDYgQEAKICNpbmNsdWRl
ICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5j
bHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9maWxl
Lmg+CiAjaW5jbHVkZSA8Ynl0ZWNvZGUvQ29kZUJsb2NrLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9y
L0luc3BlY3RvckFnZW50QmFzZS5oPgogI2luY2x1ZGUgPGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENoYW5uZWwuaD4KQEAgLTM4OSw3ICszODgsNiBAQCB2b2lkIEludGVybmFsczo6cmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZShQYWdlJiBwYWdlKQogICAgIFdlYkNvcmU6Om92ZXJyaWRlVXNlclBy
ZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8U3RyaW5nPigpKTsKICAgICBXZWJDb3JlOjpTZXR0aW5n
czo6c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzKGZhbHNlKTsKICAgICBXZWJDb3JlOjpTZXR0aW5n
czo6c2V0VXNlc01vY2tTY3JvbGxBbmltYXRvcihmYWxzZSk7Ci0gICAgcGFnZS5pbnNwZWN0b3JD
b250cm9sbGVyKCkuc2V0TGVnYWN5UHJvZmlsZXJFbmFibGVkKGZhbHNlKTsKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAgICAgcGFnZS5ncm91cCgpLmNhcHRpb25QcmVmZXJlbmNlcygpLnNldENh
cHRpb25zU3R5bGVTaGVldE92ZXJyaWRlKGVtcHR5U3RyaW5nKCkpOwogICAgIHBhZ2UuZ3JvdXAo
KS5jYXB0aW9uUHJlZmVyZW5jZXMoKS5zZXRUZXN0aW5nTW9kZShmYWxzZSk7CkBAIC0xNzM0LDEx
ICsxNzMyLDYgQEAgdW5zaWduZWQgSW50ZXJuYWxzOjpjb3VudE1hdGNoZXNGb3JUZXh0KGNvbnN0
IFN0cmluZyYgdGV4dCwgdW5zaWduZWQgZmluZE9wdGlvbnMKICAgICByZXR1cm4gZG9jdW1lbnQt
PmZyYW1lKCktPmVkaXRvcigpLmNvdW50TWF0Y2hlc0ZvclRleHQodGV4dCwgbnVsbHB0ciwgZmlu
ZE9wdGlvbnMsIDEwMDAsIG1hcmssIG51bGxwdHIpOwogfQogCi1jb25zdCBQcm9maWxlc0FycmF5
JiBJbnRlcm5hbHM6OmNvbnNvbGVQcm9maWxlcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGNvbnRl
eHREb2N1bWVudCgpLT5wYWdlKCktPmNvbnNvbGUoKS5wcm9maWxlcygpOwotfQotCiB1bnNpZ25l
ZCBJbnRlcm5hbHM6Om51bWJlck9mTGl2ZU5vZGVzKCkgY29uc3QKIHsKICAgICB1bnNpZ25lZCBu
b2RlQ291bnQgPSAwOwpAQCAtMTc2NywxNyArMTc2MCw2IEBAIHZvaWQgSW50ZXJuYWxzOjpjbG9z
ZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQoKQogICAgIG1faW5zcGVjdG9yRnJvbnRlbmQgPSBudWxs
cHRyOwogfQogCi12b2lkIEludGVybmFsczo6c2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGluZ0Vu
YWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBQYWdlKiBwYWdl
ID0gY29udGV4dERvY3VtZW50KCktPmZyYW1lKCktPnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpIHsK
LSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkuc2V0TGVnYWN5UHJvZmlsZXJFbmFi
bGVkKGVuYWJsZWQpOwotfQotCiB2b2lkIEludGVybmFsczo6c2V0SW5zcGVjdG9ySXNVbmRlclRl
c3QoYm9vbCBpc1VuZGVyVGVzdCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgUGFnZSogcGFn
ZSA9IGNvbnRleHREb2N1bWVudCgpLT5mcmFtZSgpLT5wYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAppbmRleCA4ZjFlYTNkLi5jOWRhNzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTI2NywxNCArMjY3LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGluc2VydEF1
dGhvckNTUyhjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgdm9pZCBp
bnNlcnRVc2VyQ1NTKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAotICAg
IGNvbnN0IFByb2ZpbGVzQXJyYXkmIGNvbnNvbGVQcm9maWxlcygpIGNvbnN0OwotCiAgICAgdW5z
aWduZWQgbnVtYmVyT2ZMaXZlTm9kZXMoKSBjb25zdDsKICAgICB1bnNpZ25lZCBudW1iZXJPZkxp
dmVEb2N1bWVudHMoKSBjb25zdDsKIAogICAgIFJlZlB0cjxET01XaW5kb3c+IG9wZW5EdW1teUlu
c3BlY3RvckZyb250ZW5kKGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIGNsb3NlRHVtbXlJ
bnNwZWN0b3JGcm9udGVuZCgpOwotICAgIHZvaWQgc2V0TGVnYWN5SmF2YVNjcmlwdFByb2ZpbGlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRJbnNw
ZWN0b3JJc1VuZGVyVGVzdChib29sIGlzVW5kZXJUZXN0LCBFeGNlcHRpb25Db2RlJik7CiAKICAg
ICBTdHJpbmcgY291bnRlclZhbHVlKEVsZW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAppbmRleCA2NjdjOGQwLi41OTA4OWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCkBAIC0yNjAsMTYgKzI2MCwxMCBAQCBlbnVtIEF1dG9GaWxsQnV0dG9uVHlwZSB7
CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXREZXZpY2VQcm94aW1pdHkoRE9NU3RyaW5n
IGV2ZW50VHlwZSwgdW5yZXN0cmljdGVkIGRvdWJsZSB2YWx1ZSwgdW5yZXN0cmljdGVkIGRvdWJs
ZSBtaW4sIHVucmVzdHJpY3RlZCBkb3VibGUgbWF4KTsKICNlbmRpZgogCi0gICAgLy8gQXMgcGVy
IHNwZWM6IGh0dHA6Ly93d3cudzMub3JnL1RSL1dlYklETC8jaWRsLXNlcXVlbmNlCi0gICAgLy8g
IlNlcXVlbmNlcyBtdXN0IG5vdCBiZSB1c2VkIGFzIHRoZSB0eXBlIG9mIGFuIGF0dHJpYnV0ZSwg
Y29uc3RhbnQgb3IgZXhjZXB0aW9uIGZpZWxkLiIKLSAgICAvLyBGSVhNRTogdGhpcyB3aWxsIGxl
YWQgdG8gQlVHIGludGVybmFscy5jb25zb2xlUHJvZmlsZXMgIT09IGludGVybmFscy5jb25zb2xl
UHJvZmlsZXMgYXMgcHJvZmlsZSB3aWxsIGFsd2F5cyByZXR1cm5zIG5ldyBhcnJheS4KLSAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgU2NyaXB0UHJvZmlsZVtdIGNvbnNvbGVQcm9maWxlczsKLQogICAg
IHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlTm9kZXMoKTsKICAgICB1bnNpZ25lZCBsb25nIG51
bWJlck9mTGl2ZURvY3VtZW50cygpOwogICAgIERPTVdpbmRvdyBvcGVuRHVtbXlJbnNwZWN0b3JG
cm9udGVuZChET01TdHJpbmcgdXJsKTsKICAgICB2b2lkIGNsb3NlRHVtbXlJbnNwZWN0b3JGcm9u
dGVuZCgpOwotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0TGVnYWN5SmF2YVNjcmlwdFBy
b2ZpbGluZ0VuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSB2
b2lkIHNldEluc3BlY3RvcklzVW5kZXJUZXN0KGJvb2xlYW4gaXNVbmRlclRlc3QpOwogCiAgICAg
RE9NU3RyaW5nIGNvdW50ZXJWYWx1ZShFbGVtZW50IGVsZW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmlu
ZGV4IDNhNDBkMzUuLmJlOTk1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxNi0wNS0yMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92ZSBMZWdhY3lQcm9maWxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJJbnNwZWN0b3IuaWRsOgorICAgICAg
ICAqIFdlYkNvcmVTdGF0aXN0aWNzLmNwcDoKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IuY3BwOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yOjppc0phdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvcjo6c2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJs
ZWQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkluc3BlY3Rvci5oOgorICAgICAgICAqIFdlYlZp
ZXcuY3BwOgorCiAyMDE2LTA1LTE2ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCByb2xsb3V0IHIyMDA5MjQuIENhdXNlZCBqcy9yZWdy
ZXNzL3N0cmluZy1yZXBsYWNlLWdlbmVyaWMuaHRtbCB0byBmYWlsLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViSW5zcGVjdG9yLmlkbCBiL1NvdXJjZS9XZWJL
aXQvd2luL0ludGVyZmFjZXMvSVdlYkluc3BlY3Rvci5pZGwKaW5kZXggNzQ0MGZlOC4uNGQ4ZjAz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViSW5zcGVjdG9y
LmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJJbnNwZWN0b3IuaWRs
CkBAIC01Miw5ICs1Miw2IEBAIGludGVyZmFjZSBJV2ViSW5zcGVjdG9yIDogSVVua25vd24KICAg
ICBIUkVTVUxUIGlzUHJvZmlsaW5nSmF2YVNjcmlwdChCT09MKiBpc1Byb2ZpbGluZyk7CiAgICAg
SFJFU1VMVCB0b2dnbGVQcm9maWxpbmdKYXZhU2NyaXB0KCk7CiAKLSAgICBIUkVTVUxUIGlzSmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoQk9PTCogaXNQcm9maWxpbmdFbmFibGVkKTsKLSAgICBI
UkVTVUxUIHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKEJPT0wgZW5hYmxlZCk7Ci0KICAg
ICBIUkVTVUxUIGlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVkKEJPT0wqIGlzRW5hYmxlZCk7CiAg
ICAgSFJFU1VMVCBzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoQk9PTCBlbmFibGVkKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdGF0aXN0aWNzLmNwcAppbmRleCA3NDM0NDY5Li45NGFl
M2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3RhdGlzdGljcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN0YXRpc3RpY3MuY3BwCkBAIC0yOSw3ICsy
OSw2IEBACiAjaW5jbHVkZSAiQ09NUHJvcGVydHlCYWcuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU0xvY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9NZW1vcnlTdGF0aXN0aWNz
Lmg+Ci0jaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvUHJvZmlsZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRE9NV2luZG93Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb250Q2FjaGUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0dDQ29udHJvbGxlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
V2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkluc3BlY3Rvci5jcHAKaW5k
ZXggOTFhNzhiMy4uZjYyMTlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViSW5z
cGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuY3BwCkBAIC0y
MDIsMzggKzIwMiw2IEBAIEhSRVNVTFQgV2ViSW5zcGVjdG9yOjp0b2dnbGVQcm9maWxpbmdKYXZh
U2NyaXB0KCkKICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBXZWJJbnNwZWN0b3I6Omlz
SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoX091dF8gQk9PTCogaXNQcm9maWxpbmdFbmFibGVk
KQotewotICAgIGlmICghaXNQcm9maWxpbmdFbmFibGVkKQotICAgICAgICByZXR1cm4gRV9QT0lO
VEVSOwotCi0gICAgKmlzUHJvZmlsaW5nRW5hYmxlZCA9IEZBTFNFOwotCi0gICAgaWYgKCFtX2lu
c3BlY3RlZFdlYlZpZXcpCi0gICAgICAgIHJldHVybiBTX09LOwotCi0gICAgUGFnZSogaW5zcGVj
dGVkUGFnZSA9IG1faW5zcGVjdGVkV2ViVmlldy0+cGFnZSgpOwotICAgIGlmICghaW5zcGVjdGVk
UGFnZSkKLSAgICAgICAgcmV0dXJuIFNfT0s7Ci0KLSAgICAqaXNQcm9maWxpbmdFbmFibGVkID0g
aW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLmxlZ2FjeVByb2ZpbGVyRW5hYmxl
ZCgpOwotICAgIHJldHVybiBTX09LOwotfQotCi1IUkVTVUxUIFdlYkluc3BlY3Rvcjo6c2V0SmF2
YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoQk9PTCBlbmFibGVkKQotewotICAgIGlmICghbV9pbnNw
ZWN0ZWRXZWJWaWV3KQotICAgICAgICByZXR1cm4gU19PSzsKLQotICAgIFBhZ2UqIGluc3BlY3Rl
ZFBhZ2UgPSBtX2luc3BlY3RlZFdlYlZpZXctPnBhZ2UoKTsKLSAgICBpZiAoIWluc3BlY3RlZFBh
Z2UpCi0gICAgICAgIHJldHVybiBTX09LOwotCi0gICAgaW5zcGVjdGVkUGFnZS0+aW5zcGVjdG9y
Q29udHJvbGxlcigpLnNldExlZ2FjeVByb2ZpbGVyRW5hYmxlZChlbmFibGVkKTsKLQotICAgIHJl
dHVybiBTX09LOwotfQotCiBIUkVTVUxUIFdlYkluc3BlY3Rvcjo6ZXZhbHVhdGVJbkZyb250ZW5k
KF9Jbl8gQlNUUiBiU2NyaXB0KQogewogICAgIGlmICghbV9pbnNwZWN0ZWRXZWJWaWV3KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViSW5zcGVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJJbnNwZWN0b3IuaAppbmRleCBkZjcwN2NmLi4yNzk0ZjcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJJbnNwZWN0b3IuaApAQCAtNjAsOSArNjAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIGlzUHJvZmlsaW5nSmF2YVNjcmlwdChfT3V0XyBCT09MKik7
CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHRvZ2dsZVByb2ZpbGluZ0ph
dmFTY3JpcHQoKTsKIAotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBpc0ph
dmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKF9PdXRfIEJPT0wqKTsKLSAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoQk9PTCk7
Ci0KICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZXZhbHVhdGVJbkZyb250
ZW5kKF9Jbl8gQlNUUiBzY3JpcHQpOwogCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIGlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVkKF9PdXRfIEJPT0wqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Vmlldy5jcHAKaW5kZXggNjcxZGRlMy4uNjMwNjVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAg
LTc4LDcgKzc4LDYgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZS5oPgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1Byb2Zp
bGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FYT2JqZWN0Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9CU3RyaW5n
Lmg+CkBAIC0xMjEsNyArMTIwLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRWxl
bWVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSlNTY3JpcHRQcm9maWxlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>