<?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>50115</bug_id>
          
          <creation_ts>2010-11-26 09:00:38 -0800</creation_ts>
          <short_desc>Please implement async=false for dynamic script loading (REGRESSION: LABjs is broken)</short_desc>
          <delta_ts>2011-03-15 23:57:20 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kyle Simpson">getify</reporter>
          <assigned_to name="James Simonsen">simonjam</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>hsivonen</cc>
    
    <cc>ian</cc>
    
    <cc>japhet</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>simonjam</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>314047</commentid>
    <comment_count>0</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2010-11-26 09:00:38 -0800</bug_when>
    <thetext>Summary:

There is an informal W3C proposal being discussed for addressing a now-broken-in-Webkit use-case for dynamic script loading (in parallel) with ordered execution for dependencies. Mozilla has implemented the proposal in their nightlies (to address a recent similar breakage in FF4), and the request is that Webkit consider doing the same.


Back-story:

There is a need for dynamic script loaders (like LABjs http://labjs.com) to be able to dynamically load multiple script resources in parallel, but ensure that they execute in order (for dependency sake). For instance, for performance, one may desire to load jQuery, jQuery-UI, and all your plugins (in one file), each of these 3 files loaded in parallel, but executed in order (must be for depedencies).

Dynamic script loaders like LABjs need to be able to load such scripts on-demand (meaning later in the page lifetime, after the parser has finished), and also they need to be able to load any script that the author doesn&apos;t control (meaning they can&apos;t change the contents), and finally they need to be able to load such scripts from remote-domain locations (like CDN&apos;s). When you combine all these factors, &quot;on-demand-parallel-load-serial-execute&quot; becomes a pretty challenging feature.

Up until recently, LABjs has exploited some quirks of various browsers (non-HTML5 standard) to achieve this ability in all browsers. In IE and Webkit, LABjs has taken advantage of the non-standard behavior that a script-tag with an unrecognized mime-type like &quot;script/cache&quot; will still be loaded into cache, and the load event fired when complete, but the script wouldn&apos;t be executed. By fetching a group of scripts in parallel *only into cache* and being notified of the load events for all of them, LABjs could then wait for all scripts to load into cache, and then make a second pass through the list to load each (pratically synchronously/immediately) from the cache, by making a new script tag with the proper &quot;text/javascript&quot; type value.

This is obviously a big hack to get around the fact that in IE and Webkit, dynamically loaded scripts will fire as-soon-as-possible and there&apos;s no way to get the execution order to be in insertion order. In addition to being non-standard, this hack is brittle in that the resources in question must be served with proper caching headers (LOTS of javascript files on the web are not), or the hack breaks down and results in non-ordered and double-loaded behavior.

Nevertheless, it&apos;s been the only available feature for achieving parallel-load-serial-execute in IE and Webkit. Until the recent change made by Webkit nightly, which stops fetching scripts if the script-tag mime-type is unrecognized. This change essentially means that LABjs&apos; technique is completely broken in Webkit now, and moreover, there&apos;s no way in Webkit for LABjs to achieve the desired loading functionality.

A similar breakage (although for a different reasoning) happened recently in FF4 nightlies/beta7. Working with the W3C (public-html list), and the Mozilla developers, an informal proposal has been discussed for changing the HTML5 spec to accomodate the need for this loading functionality.

You can read more about it here:

http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order

http://hsivonen.iki.fi/script-execution/

---------------------------

So, the request is that Webkit also implement the current main (informal) proposal to the W3C in the same way that Mozilla has, to restore the ability for dynamic script loaders to serve this use-case in Webkit-based browsers.

The proposal basically preserves Webkit (and IE)&apos;s current default behavior, but in a more formalized and flexible way, which is that any script inserted dynamically will essentially default to behaving like a parser-inserted script with `async=true`.

The requested extension is that a dynamically inserted script tag which has `async=false` set on it will go into a separate loading &quot;queue&quot; of sorts, in that all such scripts with `async=false` will load in parallel but will execute in insertion order.

This proposal has a sort of simple symmetry to it, in that it&apos;s basically making dynamically inserted scripts be able to have the same behaviors available to it as a parser-inserted script. By changing async to `true` or `false`, the author controls if they want &quot;as-soon-as-possible execution&quot; or &quot;insertion-order execution&quot;. For parser-inserted scripts, the author already has that control (by setting or not setting `async`), so the request is that the author have the same control over script-inserted scripts as well.

By defaulting inserted scripts to having `async=true`, it is felt a greater amount of compat with previous content will be achieved (especially for existing IE/Webkit content). Moreover, by defaulting the `async` property of a dynamically inserted script to `true`, a feature-test is then obvious and possible for this new ordered execution behavior.

As stated earlier, this behavior has now been implemented in FF 4b8pre (nightlies), and LABjs 1.0.4 now takes advantage of it via the feature-test described. If Webkit were to implement the proposal as requested, such behavior would immediately be found and used, in favor of the previous hacky mime-type caching trick.

---------------------------

For the record, at the moment, LABjs (and any script loader which tries to do parallel loading of resources that have execution order dependencies) is *broken* in Webkit nightlies. The desire is to address this problem before the Webkit nightly/trunk is absorbed into a major release of any Webkit browser (Chrome, Safari, etc), which would break a lot of sites currently using such techniques via LABjs or other loaders.

I respectfully request that Webkit consider implementing the informal W3C proposal as described above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314049</commentid>
    <comment_count>1</comment_count>
    <who name="Henri Sivonen">hsivonen</who>
    <bug_when>2010-11-26 09:09:06 -0800</bug_when>
    <thetext>The spec bug is http://www.w3.org/Bugs/Public/show_bug.cgi?id=11295

By code inspection (I didn&apos;t test), I believe the &quot;order&quot; plug-in for RequireJS is broken in WebKit nightlies just like LABjs and, just like with LABjs, the latest version would work if WebKit implemented the change described in the spec bug and comment 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314107</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-26 18:00:36 -0800</bug_when>
    <thetext>See also: bug 28783, bug 46398, bug 7722.

&gt; The desire is to address this problem before the Webkit nightly/trunk is absorbed into a major release of any Webkit browser

Could you please provide a test case that behaves differently in Safari 5.0.3 and in nightlies? Per the bug I linked, we have long-standing issues with script execution order, and it&apos;s not clear to me what regression you have in mind.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314110</commentid>
    <comment_count>3</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2010-11-26 18:45:55 -0800</bug_when>
    <thetext>For the record, the changeset to Webkit nightly that caused the breakage in LABjs is:

http://trac.webkit.org/changeset/67245

Specifically, stopping the fetching of scripts into the cache that are from a script tag with an unrecognized mime-type (like &quot;script/cache&quot;). This non-standard behavior was a long-term behavior in Webkit, and was relied on as the only way to do parallel loading, as the &quot;hack&quot; described in the above original post describes.

So, to be clear, *this current bug* is requesting that Webkit implement the newly proposed `async=false` behavior, to give a more proper and direct way of handling the described use case. 

I&apos;m *not* requesting that the hackish fake mime-type behavior (removed in the above changeset) be restored. Honestly, that was only a gap hack because there was no other way to do the required behavior in Webkit. If Webkit will implement `async=false`, the hack can be retired as only a legacy hack for older browsers in favor of the more proper approach from the proposal.

I am happy to make a test case to illustrate, but I think it&apos;s probably not necessary given this further description I&apos;ve just made. But if you want a test, I can make one. All it needs to do is create a script element with a fake mime-type value and test whether that resource is loaded or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314114</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-26 22:47:20 -0800</bug_when>
    <thetext>&gt; http://trac.webkit.org/changeset/67245

CC&apos;ing the author of this change.

&gt; So, to be clear, *this current bug* is requesting that Webkit implement the newly
&gt;  proposed `async=false` behavior, to give a more proper and direct way of handling
&gt; the described use case. 

Understood. However, if we can&apos;t do that in time, fixing just the recent regression sounds like an important thing to do.

&gt; I am happy to make a test case to illustrate, but I think it&apos;s probably not necessary
&gt; given this further description I&apos;ve just made.

Having a ready to run test case would help. We can probably make one from your description indeed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314115</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-26 22:47:52 -0800</bug_when>
    <thetext>&gt; CC&apos;ing the author of this change.

Actually, he was already CC&apos;ed :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314211</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-11-28 09:57:29 -0800</bug_when>
    <thetext>I&apos;m on vacation and travelling all next week. If this bug is still open when I return on Dec 6, I will put together a patch for async=false that week.

(Also copying rniwa who has been looking into script execution lately and simonjam who has been looking for bugs to pick up.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316261</commentid>
    <comment_count>7</comment_count>
      <attachid>75397</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-02 11:11:20 -0800</bug_when>
    <thetext>Created attachment 75397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316275</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-02 11:25:49 -0800</bug_when>
    <thetext>Please do investigate how this affects bugs mentioned in comment 2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316296</commentid>
    <comment_count>9</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-02 11:41:53 -0800</bug_when>
    <thetext>Attachment 75397 did not build on qt:
Build output: http://queues.webkit.org/results/6761016</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316311</commentid>
    <comment_count>10</comment_count>
      <attachid>75400</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-02 11:55:08 -0800</bug_when>
    <thetext>Created attachment 75400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316316</commentid>
    <comment_count>11</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-02 11:58:55 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Please do investigate how this affects bugs mentioned in comment 2.

It doesn&apos;t have any effect on those. The only new behavior is when a dynamic script sets async=false. None of those test cases do that. Since I&apos;m already in the area, I&apos;ll take a look at those other bugs separately.

Also, I fixed the QT build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316326</commentid>
    <comment_count>12</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-12-02 12:15:46 -0800</bug_when>
    <thetext>Attachment 75397 did not build on win:
Build output: http://queues.webkit.org/results/6800011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316327</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-02 12:16:00 -0800</bug_when>
    <thetext>Attachment 75397 did not build on chromium:
Build output: http://queues.webkit.org/results/6830012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316337</commentid>
    <comment_count>14</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-02 12:26:44 -0800</bug_when>
    <thetext>Attachment 75400 did not build on qt:
Build output: http://queues.webkit.org/results/6829015</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316354</commentid>
    <comment_count>15</comment_count>
      <attachid>75406</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-02 12:42:04 -0800</bug_when>
    <thetext>Created attachment 75406
Patch

Argh. webkit-patch didn&apos;t upload the renamed files. This is a manually generated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316373</commentid>
    <comment_count>16</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-12-02 13:03:12 -0800</bug_when>
    <thetext>Attachment 75400 did not build on win:
Build output: http://queues.webkit.org/results/6726011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316531</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-02 17:02:52 -0800</bug_when>
    <thetext>Would be nice to get tonyg to do an informal review of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316696</commentid>
    <comment_count>18</comment_count>
      <attachid>75406</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-02 23:34:40 -0800</bug_when>
    <thetext>Comment on attachment 75406
Patch

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

&gt; WebCore/dom/ScriptRunner.cpp:47
&gt; +        m_scriptsToExecuteSoon[i].first-&gt;element()-&gt;deref(); // Balances ref() in executeScriptSoon().
&gt; +        m_document-&gt;decrementLoadEventDelayCount();

I really don&apos;t like the fact we&apos;re calling ref/deref all over the places.  It&apos;s very error prone.  Can&apos;t we just use RefPtr or that&apos;s too expensive because of Vector operations?

&gt; WebCore/dom/ScriptRunner.cpp:113
&gt; +        m_scriptsToExecuteInOrder[0].first-&gt;execute(m_scriptsToExecuteInOrder[0].second.get());
&gt; +        m_scriptsToExecuteInOrder[0].first-&gt;element()-&gt;deref(); // Balances ref() in executeScriptSoon().
&gt; +        m_document-&gt;decrementLoadEventDelayCount();
&gt; +        m_scriptsToExecuteInOrder.remove(0);

Is it really safe to remove the first script after executing the script?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316698</commentid>
    <comment_count>19</comment_count>
      <attachid>75406</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-02 23:43:39 -0800</bug_when>
    <thetext>Comment on attachment 75406
Patch

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

&gt;&gt; WebCore/dom/ScriptRunner.cpp:47
&gt;&gt; +        m_scriptsToExecuteSoon[i].first-&gt;element()-&gt;deref(); // Balances ref() in executeScriptSoon().
&gt;&gt; +        m_document-&gt;decrementLoadEventDelayCount();
&gt; 
&gt; I really don&apos;t like the fact we&apos;re calling ref/deref all over the places.  It&apos;s very error prone.  Can&apos;t we just use RefPtr or that&apos;s too expensive because of Vector operations?

Yeah, it seems like we should be able to use RefPtrs to manage this memory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316921</commentid>
    <comment_count>20</comment_count>
      <attachid>75516</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-03 11:30:16 -0800</bug_when>
    <thetext>Created attachment 75516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316925</commentid>
    <comment_count>21</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-03 11:35:11 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 75406 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=75406&amp;action=review
&gt; 
&gt; &gt; WebCore/dom/ScriptRunner.cpp:47
&gt; &gt; +        m_scriptsToExecuteSoon[i].first-&gt;element()-&gt;deref(); // Balances ref() in executeScriptSoon().
&gt; &gt; +        m_document-&gt;decrementLoadEventDelayCount();
&gt; 
&gt; I really don&apos;t like the fact we&apos;re calling ref/deref all over the places.  It&apos;s very error prone.  Can&apos;t we just use RefPtr or that&apos;s too expensive because of Vector operations?

Done.

I copied it from the async script handling. I assumed the Vector operations were the reason it was originally done with ref/deref.

&gt; &gt; WebCore/dom/ScriptRunner.cpp:113
&gt; &gt; +        m_scriptsToExecuteInOrder[0].first-&gt;execute(m_scriptsToExecuteInOrder[0].second.get());
&gt; &gt; +        m_scriptsToExecuteInOrder[0].first-&gt;element()-&gt;deref(); // Balances ref() in executeScriptSoon().
&gt; &gt; +        m_document-&gt;decrementLoadEventDelayCount();
&gt; &gt; +        m_scriptsToExecuteInOrder.remove(0);
&gt; 
&gt; Is it really safe to remove the first script after executing the script?

Yeah, it&apos;s the same as the async case, which removes the scripts after executing them too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316926</commentid>
    <comment_count>22</comment_count>
      <attachid>75516</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-03 11:36:05 -0800</bug_when>
    <thetext>Comment on attachment 75516
Patch

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

&gt; WebCore/dom/ScriptRunner.cpp:105
&gt; +    while (!m_scriptsToExecuteInOrder.isEmpty() &amp;&amp; m_scriptsToExecuteInOrder[0].cachedScript-&gt;isLoaded()) {
&gt; +        m_scriptsToExecuteInOrder[0].scriptElement-&gt;execute(m_scriptsToExecuteInOrder[0].cachedScript.get());
&gt; +        m_document-&gt;decrementLoadEventDelayCount();
&gt; +        m_scriptsToExecuteInOrder.remove(0);

Now that we use RefPtr, it might be not desirable to remove an element of m_scriptsToExecuteInOrder in each iteration of the loop.
Is it possible to count the number of items we remove, and mass-remove later?
Better yet, can we extract the scripts that have been loaded into a separate vector just like we do for m_scriptsToExecuteSoon?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316948</commentid>
    <comment_count>23</comment_count>
      <attachid>75523</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-03 12:00:21 -0800</bug_when>
    <thetext>Created attachment 75523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316956</commentid>
    <comment_count>24</comment_count>
      <attachid>75523</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-03 12:14:51 -0800</bug_when>
    <thetext>Comment on attachment 75523
Patch

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

&gt; WebCore/dom/ScriptRunner.cpp:101
&gt; +    size_t numInOrderScriptsToExecute = 0;
&gt; +    for (; numInOrderScriptsToExecute &lt; m_scriptsToExecuteInOrder.size() &amp;&amp; m_scriptsToExecuteInOrder[numInOrderScriptsToExecute].cachedScript-&gt;isLoaded(); ++numInOrderScriptsToExecute)
&gt; +        scripts.append(m_scriptsToExecuteInOrder[numInOrderScriptsToExecute]);
&gt; +    if (numInOrderScriptsToExecute)
&gt; +        m_scriptsToExecuteInOrder.remove(0, numInOrderScriptsToExecute);

How about:
for (size_t i = 0; ; ++i) {
    if (i &gt;= m_scriptsToExecuteInOrder.size() || !m_scriptsToExecuteInOrder[i].cachedScript-&gt;isLoaded()) {
        m_scriptsToExecuteInOrder.remove(0, i);
        break;
    }
    scripts.append(m_scriptsToExecuteInOrder[i]);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316957</commentid>
    <comment_count>25</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-03 12:18:46 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; How about:
&gt; for (size_t i = 0; ; ++i) {
&gt;     if (i &gt;= m_scriptsToExecuteInOrder.size() || !m_scriptsToExecuteInOrder[i].cachedScript-&gt;isLoaded()) {
&gt;         m_scriptsToExecuteInOrder.remove(0, i);
&gt;         break;
&gt;     }
&gt;     scripts.append(m_scriptsToExecuteInOrder[i]);
&gt; }

Oops, this doesn&apos;t quite work.  It needs to be:
for (size_t i = 0; ; ++i) {
    if (i &gt;= m_scriptsToExecuteInOrder.size() || !m_scriptsToExecuteInOrder[i].cachedScript-&gt;isLoaded()) {
        if (i)
            m_scriptsToExecuteInOrder.remove(0, i);
        break;
    }
    scripts.append(m_scriptsToExecuteInOrder[i]);
}

Your version might be better after all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317287</commentid>
    <comment_count>26</comment_count>
      <attachid>75523</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-04 10:09:43 -0800</bug_when>
    <thetext>Comment on attachment 75523
Patch

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

&gt; LayoutTests/fast/dom/HTMLScriptElement/resources/big.js:3
&gt; +    About 16KB to make this resource load slowly.

I&apos;m not sure if this will reliably check your condition (although it won&apos;t be flaky). Did you consider making this an http test with a php/cgi resource that sleeps before returning? That is what some other script ordering tests do.

&gt; LayoutTests/fast/dom/HTMLScriptElement/script-async-attr.html:17
&gt; +&lt;script id=&quot;s7&quot; async&gt;&lt;/script&gt;

We should also test &lt;script id=&quot;s8&quot; async=&quot;false&quot;&gt;&lt;/script&gt;

&gt; WebCore/dom/ScriptRunner.cpp:1
&gt; +/*

It is really difficult to review a rename with changes to the renamed file in the same patch. Is it too much trouble to ask to separate them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317295</commentid>
    <comment_count>27</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-04 11:37:50 -0800</bug_when>
    <thetext>&gt; It is really difficult to review a rename with changes to the renamed file in the same patch. Is it too much trouble to ask to separate them?

An alternative is to use Subversion - in that case, svn-create-patch will separate a rename and later edits, making reviewing easy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317909</commentid>
    <comment_count>28</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-06 16:21:33 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 75523 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=75523&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/dom/HTMLScriptElement/resources/big.js:3
&gt; &gt; +    About 16KB to make this resource load slowly.
&gt; 
&gt; I&apos;m not sure if this will reliably check your condition (although it won&apos;t be flaky). Did you consider making this an http test with a php/cgi resource that sleeps before returning? That is what some other script ordering tests do.

No, but that&apos;s exactly what I wanted. I&apos;ve moved it to an http/ test.

&gt; &gt; LayoutTests/fast/dom/HTMLScriptElement/script-async-attr.html:17
&gt; &gt; +&lt;script id=&quot;s7&quot; async&gt;&lt;/script&gt;
&gt; 
&gt; We should also test &lt;script id=&quot;s8&quot; async=&quot;false&quot;&gt;&lt;/script&gt;

Added. It&apos;s counter-intuitive, but it matches the old behavior.

&gt; &gt; WebCore/dom/ScriptRunner.cpp:1
&gt; &gt; +/*
&gt; 
&gt; It is really difficult to review a rename with changes to the renamed file in the same patch. Is it too much trouble to ask to separate them?

I changed the options to git diff so that it detects renamed files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317910</commentid>
    <comment_count>29</comment_count>
      <attachid>75748</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-06 16:22:06 -0800</bug_when>
    <thetext>Created attachment 75748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317916</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-06 16:27:07 -0800</bug_when>
    <thetext>Attachment 75748 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;HEAD&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;HEAD&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322979</commentid>
    <comment_count>31</comment_count>
      <attachid>76717</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-15 17:37:43 -0800</bug_when>
    <thetext>Created attachment 76717
Patch

Updated to sync with recent changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322984</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-15 17:53:03 -0800</bug_when>
    <thetext>Attachment 76717 did not build on chromium:
Build output: http://queues.webkit.org/results/7173050</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322989</commentid>
    <comment_count>33</comment_count>
      <attachid>76721</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-15 18:05:48 -0800</bug_when>
    <thetext>Created attachment 76721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322991</commentid>
    <comment_count>34</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-15 18:11:08 -0800</bug_when>
    <thetext>Attachment 76717 did not build on qt:
Build output: http://queues.webkit.org/results/7089047</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323002</commentid>
    <comment_count>35</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-12-15 18:39:53 -0800</bug_when>
    <thetext>Attachment 76717 did not build on win:
Build output: http://queues.webkit.org/results/7150052</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325301</commentid>
    <comment_count>36</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-21 17:47:42 -0800</bug_when>
    <thetext>FYI: http://www.nczonline.net/blog/2010/12/21/thoughts-on-script-loaders/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325323</commentid>
    <comment_count>37</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2010-12-21 18:49:11 -0800</bug_when>
    <thetext>Please consider this bug report I just filed with Mozilla regarding their implementation of this `async=false` behavior:

https://bugzilla.mozilla.org/show_bug.cgi?id=620852

In short:

Related to the functionality in this ticket, I would thus suggest a slight modification to the behavior of a parser-inserted script element&apos;s `async` attribute value interpretation:

1. If the value is exactly &quot;false&quot; (or any capitalization thereof), the script element should behave EXACTLY the same as if `async` attribute wasn&apos;t specified at all.

2. If the value is anything other than &quot;false&quot; (including no value at all, or &quot;true&quot;, or &quot;async&quot;, or &quot;foobar&quot;...), the async attribute is turned on.

This minor change will bring the `async` attribute&apos;s semantics more into line with the reflective `async` property&apos;s semantics.

---------
I always intended for my proposal to create symmetry and consistency between the attribute and property values and behavior. It was an oversight on my part that my original proposal left this detail out. I would ask that Webkit consider this additional change, to close up the inconsistency gap.

I can&apos;t imagine that there&apos;s any existing web content that is actually setting `async=&quot;false&quot;` on markup script tags and still expecting that to turn async on, so I don&apos;t believe my request here will create backwards compatibility issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327511</commentid>
    <comment_count>38</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-12-29 01:28:51 -0800</bug_when>
    <thetext>See discussion in &lt;http://www.w3.org/Bugs/Public/show_bug.cgi?id=11295&gt;. This probably shouldn&apos;t be implemented in WebKit until there is a reasonable level of agreement in the HTML WG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327620</commentid>
    <comment_count>39</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2010-12-29 10:37:54 -0800</bug_when>
    <thetext>@Alexey--

With all due respect, I believe the opposite. The discussoin with WHATWG and the W3C members has been going for quite awhile. Some people support the proposal, others don&apos;t. This is true of any proposal, no matter how small or how big.

I think what&apos;s needed is browsers to *agree* to implement something, so it can be tried out (and proven/disproven) in the real world. Mozilla has done so. Opera is potentially considering it. And thus far in this discussion thread, Webkit is attempting to do so. If we have 2 or 3 major browsers agreeing on a feature, and it works, there&apos;s a good chance the others will come around, and the spec will eventually codify it.

-----------
There&apos;ve been lots of other possible alternatives talked about (including &lt;scriptgroup&gt;, &quot;depends&quot;, etc), but ALL of them are more complicated and have a wider surface-area of spec and browser functionality change. And many of them are not suitable to the main use-case.

To be clear, &quot;async=false&quot; as a proposal is not completely what I would want eventually from all browsers. There&apos;s another mechanism, already as a &quot;may&quot; suggestion in spec, that I would much prefer. But only IE implements it now, and the spec under-defines it only as a suggestion thus far. This is much further away from being a viable solution. So &quot;async=false&quot; is the next best thing, and certainly has a smaller surface-area of change and potential breakage.

*Right now*, at this moment, Webkit nightlies (by following the letter of the law in spec) have broken a hugely important use-case, and a bunch of sites that use script loaders like LABjs that rely on that use-case.

Just like when Mozilla&apos;s change broke LABjs back in October, and then they implemented the &quot;async=false&quot; proposal as a stop-gap to prevent existing content from breaking, I&apos;m requesting that Webkit do the same, so that a browser like Safari or Chrome do not release with a trunk of Webkit that breaks the sites and the use-case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327627</commentid>
    <comment_count>40</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2010-12-29 11:03:39 -0800</bug_when>
    <thetext>ap: If you think this is a good idea, implement it. If you don&apos;t, comment on the W3C bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327816</commentid>
    <comment_count>41</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-29 20:18:14 -0800</bug_when>
    <thetext>&gt; *Right now*, at this moment, Webkit nightlies (by following the letter of the law in spec) have broken a hugely important use-case, and a bunch of sites that use script loaders like LABjs that rely on that use-case.

Which sites are broken today with the WebKit nightly?  Last time I asked, the list I got was a couple of sites that actually worked fine and the personal web site of the author of LABjs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327818</commentid>
    <comment_count>42</comment_count>
      <attachid>76721</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-29 20:21:22 -0800</bug_when>
    <thetext>Comment on attachment 76721
Patch

AFACT, our current behavior matches the current spec.  The process we&apos;ve been using with the HTML5 parser, including the script execution part, is to track the spec unless compelled by compatibility to do something different.  If the HTML WG adopts this change, we&apos;ll likely follow suit.  However, I haven&apos;t seen any reason for us to lead the working group in this direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327910</commentid>
    <comment_count>43</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2010-12-30 06:17:22 -0800</bug_when>
    <thetext>@Adam-

&gt; Which sites are broken today with the WebKit nightly?

I&apos;ve listed several major sites which are using LABjs that *will* break in Webkit nightlies.

* Twitter
* Zappos
* Vimeo
* Mefeedia
* Formspring

The reason you don&apos;t see this breakage right now is for a few different reasons, but the bottom line is most of these sites have the &quot;preloading&quot; feature of LABjs turned off, mostly for &quot;safety&quot; reasons until this is all sorted out.

Basically, that means these sites have chosen to have LABjs operate in &quot;serial-load-serial-execute&quot; mode, which is loading each script one at a time, executing it, then loading the next, and so on.

Obviously, this is horribly worse performance than if they just used script tags (and ditched a script loader altogether), because with script tags in the markup, the browser automatically loads in parallel but executes in order.

I am personally in communication with the development teams for many of these major sites using LABjs, and keep them up to speed on the progress of this issue. They are aware of the danger of Webkit being &quot;broken&quot; on preloading. If Webkit refuses to address this use case, and a major browser release (Chrome or Safari) comes out with that broken behavior baked in, most of those sites will have to abandon using a script loader and go back to using regular script tags.

There&apos;s quite a bit of performance optimization that will be lost on these sites if they are forced to go back to using script tags and abandon using script loader techniques. This would be a huge loss for the web community to have Webkit not be forward-thinking (ahead of the spec) and address this obviously needed use case. 

Mozilla realized this same thing and that&apos;s why they acted with a stop-gap measure to address the need before the spec catches up. I&apos;m asking Webkit to do the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327920</commentid>
    <comment_count>44</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-12-30 06:56:38 -0800</bug_when>
    <thetext>(In reply to comment #43)
&gt; Obviously, this is horribly worse performance than if they just used script tags (and ditched a script loader altogether), because with script tags in the markup, the browser automatically loads in parallel but executes in order.

So why is async needed at all? As you point out, parallel load/serial execution is our normal script loading behavior. Non-serialized execution is a terrible idea as it leads to untestable, seemingly random content breakages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327921</commentid>
    <comment_count>45</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2010-12-30 07:08:54 -0800</bug_when>
    <thetext>@Antti-

&gt; So why is async needed at all?

I assume you mean the markup `async` attribute, not the (currently being discussed) `async` property on a dynamic script element in JavaScript?

The usefulness of the `async` attribute in markup is that it tells the browser that this particular script being loaded DOES NOT have any other dependencies, and it can thus execute &quot;as soon as possible&quot; once it downloads.

Scripts like &quot;ga.js&quot; (Google Analytics) are a perfect example of a script that is standalone and has no other dependencies, and so is a candidate for &quot;run me as soon as possible, but don&apos;t make me wait on anyone and definitely don&apos;t make anyone else wait on me.&quot;

The whole point is that in markup, I can choose to either have the &quot;async&quot; attribute or not, and by doing so, I&apos;m choosing if I need ordering behavior or not. For some scripts, I need ordering, for others I don&apos;t.

In JavaScript (using a script loader), the same is of course true. Sometimes I need to preserve execution order for dependencies, sometimes I do not want to. But in JavaScript, I have *no way* to choose the ordering behavior. It&apos;s *always* &quot;async&quot;, even if I don&apos;t want it to be. So the only way for a script loader to get ordered execution is to also do ordered loading (ie, serial one-at-a-time loading), which is of course bad for performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327951</commentid>
    <comment_count>46</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2010-12-30 10:04:22 -0800</bug_when>
    <thetext>I have a new detour problem I need help understanding. This entire process of me requesting the &quot;async=false&quot; of Webkit was because of this changeset (and anticipated LABjs breakage):

http://trac.webkit.org/changeset/67245

...which auspiciously is supposed to prevent Webkit from fetching a script resource if the script `type` attribute/property is unrecognized. Indeed, if you try something like:

&lt;script type=&quot;foo/bar&quot; src=&quot;foo.js&quot;&gt;&lt;/script&gt;

...in markup, that script will in fact NOT be fetched.

However, if you do:

var script = document.createElement(&quot;script&quot;);
script.type = &quot;foo/bar&quot;;
script.src=&quot;foo.js&quot;;
document.getElementsByTagName(&quot;head&quot;)[0].appendChild(script);

...*THAT* script will still be fetched (but not executed, obviously).

So, at the moment, we have that changeset only applying to parser-inserted script elements, and not script-inserted script elements.

Here&apos;s what the spec says, which prompted changeset 67245:

http://www.w3.org/TR/html5/scripting-1.html#running-a-script

&gt; 5. If either:
&gt;
&gt; * the script element has a type attribute and its value is the empty string, 
&gt; or 
&gt; * the script element has no type attribute but it has a language attribute 
&gt; and that attribute&apos;s value is the empty string, or 
&gt; * the script element has neither a type attribute nor a language attribute, 
&gt; then 
&gt; 
&gt; ...let the script block&apos;s type for this script element be &quot;text/javascript&quot;.
&gt;
&gt; Otherwise, if the script element has a type attribute, let the script 
&gt; block&apos;s type for this script element be the value of that attribute with any 
&gt; leading or trailing sequences of space characters removed.
&gt;
&gt; Otherwise, the element has a non-empty language attribute; let the script 
&gt; block&apos;s type for this script element be the concatenation of the 
&gt; string &quot;text/&quot; followed by the value of the language attribute.
&gt;
&gt; The language attribute is never conforming, and is always ignored if there 
&gt; is a type attribute present.
&gt;
&gt; 6. If the user agent does not support the scripting language given by the 
&gt; script block&apos;s type for this script element, then the user agent must abort 
&gt; these steps at this point. The script is not executed.

------

In other words, the above language in the spec is a little ambiguous as to whether or not the instruction to ignore fetching the script if the type is invalid ONLY applies to parser-inserted scripts, or if it applies ALSO to script-inserted scripts.

Many other parts of the algorithm at this point in the spec DO apply to both, and indeed I can&apos;t imagine that the spec is completely silent on how a script inserted script element&apos;s type is determined, so I believe that above language should apply to both.

But it appears that the Webkit changeset was only interpreted to apply to the parser-inserted scripts.

Is this intentional, and if so, what&apos;s the reasoning? If not, should a new bug be filed against that changeset to get it applied to dynamic script elements as well?

----------------

In any case, this is PART of why you&apos;re not yet seeing breakage in Webkit nightlies, because pretty much all script loaders use dynamic script elements and not script tags in markup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327954</commentid>
    <comment_count>47</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-30 10:12:57 -0800</bug_when>
    <thetext>(In reply to comment #45)
&gt; In JavaScript (using a script loader), the same is of course true. Sometimes I need to preserve execution order for dependencies, sometimes I do not want to. But in JavaScript, I have *no way* to choose the ordering behavior. It&apos;s *always* &quot;async&quot;, even if I don&apos;t want it to be. So the only way for a script loader to get ordered execution is to also do ordered loading (ie, serial one-at-a-time loading), which is of course bad for performance.

Isn&apos;t this also true for script element created by a parser?  If I set async=false or didn&apos;t specify the attribute, then the script is loaded and executed in the order. I&apos;m not sure if we should let it load out-of-order just because it&apos;s inserted by a script.  Why should load the resource differently for a script element created by a parser and one created by script?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327956</commentid>
    <comment_count>48</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2010-12-30 10:24:13 -0800</bug_when>
    <thetext>(In reply to comment #47)

&gt; Isn&apos;t this also true for script element created by a parser?  If I set 
&gt; async=false or didn&apos;t specify the attribute

Small nitpick, but actually, because of the definition of &quot;boolean attributes&quot; in markup, setting `async=&quot;false&quot;` in markup will *not* be the same thing as not specifying the attribute. If the attribute is present, regardless of its value, the behavior is turned on.

&gt; I&apos;m not sure if we should let it load out-of-order just because it&apos;s 
&gt; inserted by a script.  Why should load the resource differently for a script 
&gt; element created by a parser and one created by script?

What you&apos;re really asking is: why is the *default behavior* for a script-inserted script element that it be unordered execution, while the default behavior for a markup script element is ordered?

Well, for one, because that&apos;s how Webkit (and IE) have always treated dynamic script elements, so changing that default behavior now would cause potentially a lot of compat issues for pages in those browsers. 

Also, and more importantly, because the spec says that dynamically created elements must be executed &quot;as soon as possible&quot;.

My whole reason for asking for &quot;async=false&quot; is so that an author can CHOOSE which ordering behavior a particular dynamic script element needs. Some scripts will need ordered behavior, others will benefit from unordered behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327958</commentid>
    <comment_count>49</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-30 10:30:38 -0800</bug_when>
    <thetext>&gt; I&apos;ve listed several major sites which are using LABjs that *will* break in Webkit nightlies.

So, currently, there isn&apos;t a compatibility problem to solve.  There&apos;s only a performance problem to solve, correct?

&gt; I am personally in communication with the development teams for many of these major sites using LABjs, and keep them up to speed on the progress of this issue.

Great.  Thanks for doing that.  That&apos;s very valuable.

&gt; There&apos;s quite a bit of performance optimization that will be lost on these sites if they are forced to go back to using script tags and abandon using script loader techniques.

Is this statement backed up with experiments or just intuition?  Antti&apos;s point, which I&apos;m not sure you understood, is that &quot;parallel load, sequential execute&quot; is WebKit&apos;s default behavior if you have a bunch of script tags:

&lt;script src=&quot;aa.js&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;bb.js&quot;&gt;&lt;/script&gt;

The preload scanner will kick off both loads in parallel and then execute them sequentially.

&gt; This would be a huge loss for the web community to have Webkit not be forward-thinking (ahead of the spec) and address this obviously needed use case. 

This statement doesn&apos;t really make sense.  We should be agreeing on behavior in the HTML working group and then implementing those agreements.  Trying to end-run the process by sneaking a patch into WebKit isn&apos;t really productive.  

&gt; Mozilla realized this same thing and that&apos;s why they acted with a stop-gap measure to address the need before the spec catches up. I&apos;m asking Webkit to do the same.

You seem to view the spec as &quot;slow&quot; and in need of &quot;catching up.&quot;  That&apos;s not true at all.  The spec can often be changed faster than implementations because it ships instantly whereas browsers have shipping cycles that last varying amounts of time, but as long as a year.

(In reply to comment #45)
&gt; &gt; So why is async needed at all?
&gt; 
&gt; I assume you mean the markup `async` attribute, not the (currently being discussed) `async` property on a dynamic script element in JavaScript?

Today these two things are the same.  The JavaScript property reflects the DOM attribute, like a ton of other JavaScript properties.

&gt; But in JavaScript, I have *no way* to choose the ordering behavior.

Right.  That&apos;s the real problem.  Why don&apos;t we create an API that solves this particular problem instead of goofing up the connection between the async property and the async attribute?

&gt; I have a new detour problem I need help understanding. This entire process of me requesting the &quot;async=false&quot; of Webkit was because of this changeset (and anticipated LABjs breakage):
&gt; 
&gt; http://trac.webkit.org/changeset/67245

I&apos;m not sure I understand the connection with this change.

&gt; So, at the moment, we have that changeset only applying to parser-inserted script elements, and not script-inserted script elements.

Would it help to apply it to script-inserted scripts as well?

&gt; http://www.w3.org/TR/html5/scripting-1.html#running-a-script

The TR version of the spec is usually wildly out of date.  I recommend always using the whatwg version.

[[
If the user agent does not support the scripting language given by the script block&apos;s type for this script element, then the user agent must abort these steps at this point.
]]

&gt; In other words, the above language in the spec is a little ambiguous as to whether or not the instruction to ignore fetching the script if the type is invalid ONLY applies to parser-inserted scripts, or if it applies ALSO to script-inserted scripts.

It seems clear that we shouldn&apos;t fetch the src in either case.

&gt; Many other parts of the algorithm at this point in the spec DO apply to both, and indeed I can&apos;t imagine that the spec is completely silent on how a script inserted script element&apos;s type is determined, so I believe that above language should apply to both.

Indeed.

&gt; But it appears that the Webkit changeset was only interpreted to apply to the parser-inserted scripts.

That sounds like a bug we should fix.

&gt; Is this intentional, and if so, what&apos;s the reasoning? If not, should a new bug be filed against that changeset to get it applied to dynamic script elements as well?

It&apos;s not intentional.  Please file a new bug (and ideally attach a patch).

Bottom line: Let&apos;s work this issue out in the HTML WG.  That&apos;s the proper forum for this discussion.  Once we decided what to do in that venue, we can implement that decision here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327980</commentid>
    <comment_count>50</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2010-12-30 11:35:55 -0800</bug_when>
    <thetext>&gt; So, currently, there isn&apos;t a compatibility problem to solve.  There&apos;s only a 
&gt; performance problem to solve, correct?

Wrong. As of earlier this morning, that&apos;s what I thought. But it turns out even if they were using the cache-preloading, they still wouldn&apos;t *currently* break in Webkit, because of what I discovered and explained in comment #46.


&gt;&gt; There&apos;s quite a bit of performance optimization that will be lost on these 
&gt;&gt; sites if they are forced to go back to using script tags and abandon using 
&gt;&gt; script loader techniques.
&gt; Is this statement backed up with experiments or just intuition?  

It&apos;s not intuition, it&apos;s provable/experimentable fact.

Regular markup script tags *do* load in parallel, yes. But that&apos;s only a small fraction of the web performance optimization that&apos;s possible.

I&apos;ve explained the 2 primary (performance) advantages of script loaders using dynamic script elements over regular script tags many times, including on the W3C list and bugs. But I&apos;ll restate them here for completeness.

&gt; 1. Markup script tags *block* many other page-load activities, like
&gt; downloading/rendering of images/css/etc, DOMContentLoaded/DOM-ready events,
&gt; etc. Even though they may load in parallel to each other, because of
&gt; document.write(), the browser must be pessimistic and must force everything
&gt; else on the page to wait in case a document.write() is found in one of the
&gt; scripts.
&gt; 
&gt; 2. There are potentially HUGE performance advantages to on-demand or
&gt; lazy-loading techniques, where a page-load can be optimized by reducing to 
&gt; the bare minimum (or none at all!) the scripts that are loaded during the 
&gt; initial page-load, and instead putting off until later the loading (or 
&gt; execution) of such scripts. By getting content in front of users quicker, 
&gt; the perception of page-load speed is greatly improved, which improves user 
&gt; satisfaction on sites.

And even if you want to completely ignore the performance advantages that dynamic script tags have over script loaders, there&apos;s still the module dependency management concern, which is that sometimes you dynamically (on-demand) load one or several modules in response to user actions in the page. You can&apos;t do that with regular script tags in markup, because the page has already been parsed. You *have* to use dynamic script tags. And if you have more than one script to load, you may very well run into this unordered execution pitfall.


&gt; Antti&apos;s point, which I&apos;m not sure you understood, is that &quot;parallel load, 
&gt; sequential execute&quot; is WebKit&apos;s default behavior if you have a bunch of 
&gt; script tags

No, I fully understand Antti&apos;s point. It&apos;s apples and oranges though. What a set of script tags can do in markup is not particularly relevant to what a set of dynamically created script elements can (or in this case, CANNOT) do in JavaScript.

The fact, whether we like it or not, is that dynamically created script tags DIFFER completely from markup inserted script tags, in their ordering behavior. And dynamic script loaders almost exclusively use dynamically created script elements via JavaScript.

As described above, dynamic script tags are far preferable to most script loaders because there&apos;s several performance advantages to them over markup script tags.

So, Webkit&apos;s &quot;parallel load, sequential execute&quot; default beahvior is all well and fine, except that it ONLY applies to markup script tags, and not to dynamic script tags, which isn&apos;t helpful to me, or any other script loaders for that matter.


&gt; We should be agreeing on behavior in the HTML working group and then 
&gt; implementing those agreements.  Trying to end-run the process by sneaking a 
&gt; patch into WebKit isn&apos;t really productive.  

I am not trying to end-run the process at all. That&apos;s a ridiculous miscontruing of my actions and intent. I&apos;m a complete outsider and this is my first foray into this world of specs and browser functionality. And to be honest, it&apos;s all completely opaque, obtuse, confusing, and frustrating.

I tried long and hard to work it out in the W3C comment threads and on the WHATWG wiki page. The long and short of that process thus far basically reveals that the spec process wasn&apos;t convinced this use-case was valid, and that input from, and 2 independent implementations by, browser vendors would be the likely next step before spec progress could continue. Mozilla was the first. And since Webkit was making a change that was also going to break LABjs, Webkit seemed like the likely second candidate to work this out with.

Now you tell me that I&apos;m jumping the gun by coming to Webkit. You&apos;ll have to forgive me if I throw my hands up and cry &quot;Shenanigans&quot; here. I&apos;m not trying to &quot;tail-wag-the-dog&quot;, but depending on who I talk to, I get completely opposite advice.

Some people say that the spec should decide first, and the browsers should follow. Others say the browsers should experiment and when they agree on something that works, then the spec will codify it.

I have no idea how it should really work. But I do know this. If each group points the finger at the other (as is currently happening), deadlock is GUARANTEED.

Plus, you saw Ian&apos;s comment #40. He&apos;s basically responding (subtely) to the question of if the browser should wait on the spec, and saying &quot;if you think it&apos;s a good idea, go ahead.&quot;

Now, you may not think it&apos;s a good idea, which we&apos;re trying to hash out. But suggesting that we have to wait on the spec SEEMS pretty counter-productive in this case.


&gt;&gt; I assume you mean the markup `async` attribute, not the (currently being 
&gt;&gt; discussed) `async` property on a dynamic script element in JavaScript?
&gt; Today these two things are the same.  The JavaScript property reflects the 
&gt; DOM attribute, like a ton of other JavaScript properties.

Wrong. These two things are NOT the same, and that&apos;s my whole point! The `async` attribute in markup can be present or not present, and that alone is enough to control the ordering behavior of that script tag with respect to other script tags.

But the `async` property in JavaScript on a dynamic script element CANNOT control this ordering behavior. The property is NOT fully consistent with, nor is it symmetrical to, the attribute.

If you examine a reflected JavaScript property of an existing markup-defined script element, it *will* indeed reflect `true` or `false` properly.

But, and here&apos;s the key, if you dynamically create a script element via JavaScript (not via markup), that `async` property is completely dead and useless. It doesn&apos;t default to `true` to indicate that this script will in fact have the same unordered behavior as a markup script tag with `async` attribute flagged on. And you can&apos;t change it to `true` or `false` to control it.

So, NO, the `async` attribute and the `async` property are definitely NOT the same.

My request is to ****make them much more the same****. My request is that the `async` property on a dynamically created script element (not from markup) reflect `true` for async, since that&apos;s how it will behave, and that I be able to change that value to false if I want it to behave &quot;not async&quot; (that is, ordered).


&gt; Why don&apos;t we create an API that solves this particular problem 

This idea has been brought up several times. In fact, I don&apos;t have a huge problem with the idea of a new API, except that it is obviously going to be a lot more complicated than to tweak the existing mechanisms.

The chances of designing a whole new loading API and getting all the browsers to agree on it anytime soon are practically zero. LOTS of work and further discussion and arguing about API preferences and syntax styles and all that junk will be had before anything like that sees the light of day.

By contrast, async=&quot;false&quot; has a very small footprint of change compared to that. It piggybacks on an existing mechanism. It extends it in what I think is a very logical, consistent, and symmetrical way (as described above). AND, it&apos;s already been implemented, tested, and proven in one browser. That automatically puts this idea further along in the horserace than any other yet-to-be-designed new loader API.


&gt; instead of goofing up the connection between the async property and the async attribute?

I wholeheartedly disagree, as I just explained, that we are &quot;goofing up the connection&quot; between attribute and property. They *are*, as currently implemented (and spec&apos;d) GOOFED UP and inconsistent, and I&apos;m trying to make them consistent and un-goofed up.


&gt;&gt; http://trac.webkit.org/changeset/67245
&gt; I&apos;m not sure I understand the connection with this change.

This change is why we got into this whole discussion in the first place. Because ostensibly, Webkit was going to disable the only viable &quot;preloading&quot; mechanism available to a script loader (the &quot;cache preload fake mimetype&quot; trick), which they rely on to be able to achieve the intended parallel-load, serial-execute behavior.

&quot;Cache preloading&quot; enables the use-case in a hacky round-about way by pre-caching all the scripts, then re-requesting them (from cache) with proper script tags, in the desired order.

By Webkit removing the ability to do &quot;cache preloading&quot;, and NOT enabling the use-case in another straight forward facility/mechanism, you are neutering script loaders like LABjs.


&gt; Bottom line: Let&apos;s work this issue out in the HTML WG.  That&apos;s the proper 
&gt; forum for this discussion.  Once we decided what to do in that venue, we can 
&gt; implement that decision here.

Again, that would be fine EXCEPT that I&apos;ve already tried that and they essentially, in a round-about way, have said that browser vendors need to have more input and implementations to give better spec guidance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327984</commentid>
    <comment_count>51</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2010-12-30 11:48:13 -0800</bug_when>
    <thetext>If I have in my markup:

&lt;input id=&quot;button1&quot; type=&quot;button&quot; value=&quot;Click Me&quot; disabled /&gt;

That button is disabled as I want it to be. If I have another button:

&lt;input id=&quot;button2&quot; type=&quot;button&quot; value=&quot;No, Click Me&quot; /&gt;

That button is NOT disabled, because I didn&apos;t add the `disabled` attribute. I controlled the disabled state by presence or absence of an attribute.

If I create a button in JavaScript dynamically like this:

var btn = document.createElement(&quot;input&quot;);
btn.type = &quot;button&quot;;
btn.value = &quot;Really, just click me&quot;;

I can control if that button is disabled or not by saying:

btn.disabled = true;
btn.disabled = false;

**THIS** is an example of, in my opinion, a markup tag&apos;s attribute and its corresponding property in JavaScript being VERY consistent.

However, the same is NOT true for the `async` attribute of script tags.

Is it really so hard to see why this is the &quot;goofed up&quot; inconsistency with `async` attributes and properties I want to solve?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328003</commentid>
    <comment_count>52</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-12-30 12:32:27 -0800</bug_when>
    <thetext>I think async was originally specced mostly to address the basic problem that browsers would serialize loading of &lt;script&gt; tags. That problem no longer exist since we have figured out how to parallelize parser initiated loading.

If we do something bad with with dynamically inserted script elements (do we not serialize execution? I didn&apos;t quite get what is going wrong) then that is an important bug to fix but does not justify async.

Generally it sounds to me like async is mostly just a workaround (and an excuse) for bad or buggy regular loading behavior. The actual unique behavior (non-serialization) is a just bad idea (untestable fragility). I might be missing some big upside but it sounds to me that the best way to fix any and all async bugs would be to eliminate the feature from the specs and engines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328009</commentid>
    <comment_count>53</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2010-12-30 12:52:51 -0800</bug_when>
    <thetext>(in reply to comment #52)

@Antti-

The &quot;async&quot; attribute on a markup tag does something very important on top of parallel loading that a normal script tag without that attribute in markup will not get. It tells the browser &quot;this script is totally independent and can EXECUTE as soon as possible, at any time. don&apos;t wait on any other scripts for it to execute, and don&apos;t make any other scripts wait on this one before they execute.&quot;

This is quite important, but it&apos;s distinct and in addition to the parallel loading that all modern browsers have now figured out.

It&apos;s the difference between loading and execution that&apos;s at stake. Some scripts (like Google Analytics, for instance) are totally independent of all other scripts, and thus I not only want good parallel loading behavior but I ALSO want to have its execution happen independently (that is, not waiting on or blocking) of other scripts.

Again, it feels like your underlying question is actually: why is a dynamic script element behaving like an &quot;async&quot; script element? 

The answer is legacy compat and because the spec says to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328014</commentid>
    <comment_count>54</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2010-12-30 12:59:01 -0800</bug_when>
    <thetext>While they may not be entirely in a blocks/depends relationship, I believe this bug is highly related to bug #51760. If bug #51760 is fixed, then we will finally be able to see some demonstratable breakage from &quot;cache preloading&quot; as asserted in this ticket.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328525</commentid>
    <comment_count>55</comment_count>
    <who name="Henri Sivonen">hsivonen</who>
    <bug_when>2011-01-03 04:55:05 -0800</bug_when>
    <thetext>(In reply to comment #37)
&gt; Please consider this bug report I just filed with Mozilla regarding their implementation of this `async=false` behavior:
&gt; 
&gt; https://bugzilla.mozilla.org/show_bug.cgi?id=620852

RESOLVED INVALID. (You may alternatively consider it WONTFIX. There&apos;s no need to stir boolean attribute reflection to consider attribute values in order to achieve the aims of http://www.w3.org/Bugs/Public/show_bug.cgi?id=11295 )

&gt; Related to the functionality in this ticket, I would thus suggest a slight modification to the behavior of a parser-inserted script element&apos;s `async` attribute value interpretation:
&gt; 
&gt; 1. If the value is exactly &quot;false&quot; (or any capitalization thereof), the script element should behave EXACTLY the same as if `async` attribute wasn&apos;t specified at all.

I think it&apos;s best not to try to make async any more magic than http://www.w3.org/Bugs/Public/show_bug.cgi?id=11295#c0 says. Making the DOM property not initially reflect the content attribute is bad enough. Please, please, let&apos;s not derail the chance to get interop between Gecko and WebKit here by having an argument about whether to also make the reflection of the async attribute even more magic by considering the attribute values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328549</commentid>
    <comment_count>56</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2011-01-03 06:18:47 -0800</bug_when>
    <thetext>(in reply to comment #55)

Yeah, I&apos;ve tried over on the Mozilla thread to stir up any kind of support for that idea, and it failed miserably. It&apos;s obviously a dead end. Notice that&apos;s why it hasn&apos;t even been brought up here again since.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343560</commentid>
    <comment_count>57</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2011-02-01 14:45:19 -0800</bug_when>
    <thetext>If it wasn&apos;t clearly communicated, a few weeks ago, Ian posted this comment on the W3C bug thread regarding this &quot;async=false&quot; proposal:

&quot;I plan to spec what&apos;s proposed in comment 0 (modulo editorial issues).&quot;

http://www.w3.org/Bugs/Public/show_bug.cgi?id=11295#c13

So, as time permits, I expect that the proposal in question will indeed become part of the spec, which I hope should help address the uneasiness expressed here about if this bug should proceed to being committed to Webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347639</commentid>
    <comment_count>58</comment_count>
      <attachid>81682</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-02-08 13:32:29 -0800</bug_when>
    <thetext>Created attachment 81682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347669</commentid>
    <comment_count>59</comment_count>
      <attachid>81682</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-08 14:13:20 -0800</bug_when>
    <thetext>Comment on attachment 81682
Patch

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

Looks great!  Ideally Tonyg would look at this patch as well.  Thanks!

&gt; Source/WebCore/dom/ScriptRunner.cpp:68
&gt; +    ASSERT_ARG(scriptElement, scriptElement);

Why ASSERT_ARG and not just ASSERT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347950</commentid>
    <comment_count>60</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-02-08 21:29:25 -0800</bug_when>
    <thetext>
&gt; Looks great!  Ideally Tonyg would look at this patch as well.  Thanks!
I&apos;ll take a look in the morning. Thanks for putting it together!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347971</commentid>
    <comment_count>61</comment_count>
      <attachid>81749</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-02-08 21:56:48 -0800</bug_when>
    <thetext>Created attachment 81749
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347973</commentid>
    <comment_count>62</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-02-08 21:57:44 -0800</bug_when>
    <thetext>(In reply to comment #59)
&gt; (From update of attachment 81682 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=81682&amp;action=review
&gt; 
&gt; Looks great!  Ideally Tonyg would look at this patch as well.  Thanks!
&gt; 
&gt; &gt; Source/WebCore/dom/ScriptRunner.cpp:68
&gt; &gt; +    ASSERT_ARG(scriptElement, scriptElement);
&gt; 
&gt; Why ASSERT_ARG and not just ASSERT?

No idea. I copied it from the function above it. I switched both to just use ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348540</commentid>
    <comment_count>63</comment_count>
      <attachid>81749</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-02-09 13:55:58 -0800</bug_when>
    <thetext>Comment on attachment 81749
Patch

Overall the patch looks good, but it looks like the patch should be bounced up against http://html5.org/tools/web-apps-tracker?from=5816&amp;to=5817 to make sure naming and details are as close as possible.


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

&gt; Source/WebCore/dom/ScriptElement.cpp:61
&gt; +    , m_willExecuteInOrder(false)

Since the spec says &quot;Initially, script elements must have this flag set. It is unset...&quot;, I think we should default it to true and invert the condition in insertedIntoDocument to unset it instead of setting it.

&gt; Source/WebCore/dom/ScriptElement.h:94
&gt; +    bool m_willExecuteInOrder;

I realize you wrote this patch before the spec update. But now that the spec is updated and calls this &quot;force-async&quot;, I think we should use similar names so that future code readers can tie it to the spec easier. I&apos;d suggestion m_forceAsync.

&gt; Source/WebCore/html/HTMLScriptElement.h:72
&gt; +    bool m_forceAsync;

I don&apos;t think this should be HTMLScriptElement-specific. The spec talks of the force-async flag for scripts created by the XML parser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355747</commentid>
    <comment_count>64</comment_count>
      <attachid>83424</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-02-22 18:30:31 -0800</bug_when>
    <thetext>Created attachment 83424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355750</commentid>
    <comment_count>65</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-02-22 18:33:51 -0800</bug_when>
    <thetext>(In reply to comment #63)
&gt; (From update of attachment 81749 [details])
&gt; Overall the patch looks good, but it looks like the patch should be bounced up against http://html5.org/tools/web-apps-tracker?from=5816&amp;to=5817 to make sure naming and details are as close as possible.

I&apos;ve updated this to merge cleanly with the recent ScriptElement changes. It should be easier to follow now that ScriptElement more closely follows the spec. cq- to let the ScriptElement bake a little longer before we add new behavior to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355752</commentid>
    <comment_count>66</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-22 18:35:04 -0800</bug_when>
    <thetext>Attachment 83424 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1

Source/WebCore/dom/ScriptElement.cpp:101:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360475</commentid>
    <comment_count>67</comment_count>
      <attachid>84344</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-03-01 18:20:59 -0800</bug_when>
    <thetext>Created attachment 84344
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361748</commentid>
    <comment_count>68</comment_count>
      <attachid>84344</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-03-03 11:03:07 -0800</bug_when>
    <thetext>Comment on attachment 84344
Patch

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

&gt; LayoutTests/http/tests/misc/script-async-load-execute-in-order-expected.txt:1
&gt; +Attempts to check that async=false enforces execution order dynamically inserted scripts. See: http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order

s/Attempts to check that/Checks that/

Also, let&apos;s point to the spec instead of this wiki.

&gt; Source/WebCore/dom/ScriptElement.cpp:65
&gt; +    , m_willExecuteInOrder(false)

Is this bool really necessary? Seems like we theoretically should be able to get by w/ just m_forceAsync.

&gt; Source/WebCore/dom/ScriptElement.cpp:304
&gt; +        m_element-&gt;document()-&gt;scriptRunner()-&gt;resume();

It doesn&apos;t seem right to call resume here. Yes, the implementation does what you want. But it is confusing because it was never suspended.

&gt; Source/WebCore/dom/ScriptRunner.cpp:99
&gt; +    for (; numInOrderScriptsToExecute &lt; m_scriptsToExecuteInOrder.size() &amp;&amp; m_scriptsToExecuteInOrder[numInOrderScriptsToExecute].cachedScript()-&gt;isLoaded(); ++numInOrderScriptsToExecute)

The other loop makes it a point to copy out the vector first in case during the course of script execution something new is queued up. Shouldn&apos;t we do that here as well?

In any case, it would be nice to add a test that has a async=false script which in the course of its execution queues up another async=false script.

&gt; Source/WebCore/dom/ScriptRunner.h:49
&gt; +    void queueScriptForInOrderExecution(ScriptElement*, CachedResourceHandle&lt;CachedScript&gt;);

Would be nice if these two methods had more synergy in their naming.

Maybe executeScriptSoon() and executeScriptInOrderSoon() or queueScriptForExecution() and queueScriptForInOrderExecution().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362436</commentid>
    <comment_count>69</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2011-03-04 05:30:26 -0800</bug_when>
    <thetext>It would appear that Bug #51760 has either been landed in Webkit nightlies, or was picked up early by Chrome... because LABjs is now breaking in Chrome nightlies, with symptoms clearly tied to 51760. I was under the impression that 51760 and *this* bug would be landed together so as to minimize breakage for LABjs.

Can you advise?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362633</commentid>
    <comment_count>70</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-03-04 11:00:31 -0800</bug_when>
    <thetext>(In reply to comment #68)
&gt; (From update of attachment 84344 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=84344&amp;action=review
&gt; 
&gt; &gt; LayoutTests/http/tests/misc/script-async-load-execute-in-order-expected.txt:1
&gt; &gt; +Attempts to check that async=false enforces execution order dynamically inserted scripts. See: http://wiki.whatwg.org/wiki/Dynamic_Script_Execution_Order
&gt; 
&gt; s/Attempts to check that/Checks that/

Done.

&gt; Also, let&apos;s point to the spec instead of this wiki.

Done.

&gt; &gt; Source/WebCore/dom/ScriptElement.cpp:65
&gt; &gt; +    , m_willExecuteInOrder(false)
&gt; 
&gt; Is this bool really necessary? Seems like we theoretically should be able to get by w/ just m_forceAsync.

Yeah, unfortunately it&apos;s necessary. The page could manipulate the async attribute after the script is requested, but before it executes. In such a case, we need to honor the decision made during prepareScript(), not the current state of the attributes.

Sounds like something worthy of a test, so I added it to the http test.

&gt; &gt; Source/WebCore/dom/ScriptElement.cpp:304
&gt; &gt; +        m_element-&gt;document()-&gt;scriptRunner()-&gt;resume();
&gt; 
&gt; It doesn&apos;t seem right to call resume here. Yes, the implementation does what you want. But it is confusing because it was never suspended.

Done. Long term, we might want to make script runner listen for the callbacks directly instead of the current callback-&gt;element-&gt;runner-&gt;element.

&gt; &gt; Source/WebCore/dom/ScriptRunner.cpp:99
&gt; &gt; +    for (; numInOrderScriptsToExecute &lt; m_scriptsToExecuteInOrder.size() &amp;&amp; m_scriptsToExecuteInOrder[numInOrderScriptsToExecute].cachedScript()-&gt;isLoaded(); ++numInOrderScriptsToExecute)
&gt; 
&gt; The other loop makes it a point to copy out the vector first in case during the course of script execution something new is queued up. Shouldn&apos;t we do that here as well?

We do. Everything is moved to &quot;scripts&quot; before we start executing.

&gt; In any case, it would be nice to add a test that has a async=false script which in the course of its execution queues up another async=false script.

Good idea. Done.

&gt; &gt; Source/WebCore/dom/ScriptRunner.h:49
&gt; &gt; +    void queueScriptForInOrderExecution(ScriptElement*, CachedResourceHandle&lt;CachedScript&gt;);
&gt; 
&gt; Would be nice if these two methods had more synergy in their naming.
&gt; 
&gt; Maybe executeScriptSoon() and executeScriptInOrderSoon() or queueScriptForExecution() and queueScriptForInOrderExecution().

Done. It&apos;s just one method with an enum arg now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362634</commentid>
    <comment_count>71</comment_count>
      <attachid>84783</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-03-04 11:01:06 -0800</bug_when>
    <thetext>Created attachment 84783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362655</commentid>
    <comment_count>72</comment_count>
    <who name="Kyle Simpson">getify</who>
    <bug_when>2011-03-04 12:09:49 -0800</bug_when>
    <thetext>(in reply to my own comment #69)

it is confirmed that the breaking change has landed in Webkit, albeit not by Bug #51760 as I assumed. Apparently the change was made in another changeset and the correlation was missed.

So, at this point, Webkit (and Chome) are broken on LABjs in their nightlies, which makes it kind of important that this patch land successfully fairly soon. Are we on a good track with that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365545</commentid>
    <comment_count>73</comment_count>
      <attachid>84783</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-03-10 14:45:03 -0800</bug_when>
    <thetext>Comment on attachment 84783
Patch

Looks good now, thanks again. There&apos;s probably some follow-up refactoring that can be done now, but landing this first seems like the right approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365602</commentid>
    <comment_count>74</comment_count>
      <attachid>85399</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-03-10 15:55:24 -0800</bug_when>
    <thetext>Created attachment 85399
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365822</commentid>
    <comment_count>75</comment_count>
      <attachid>85399</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-10 22:17:11 -0800</bug_when>
    <thetext>Comment on attachment 85399
Patch for landing

Rejecting attachment 85399 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sl&apos;, &apos;ap...&quot; exit_code: 2

Last 500 characters of output:
rce/WebCore/dom/AsyncScriptRunner.cpp&apos;
patching file Source/WebCore/dom/ScriptRunner.cpp
rm &apos;Source/WebCore/dom/AsyncScriptRunner.h&apos;
patching file Source/WebCore/dom/ScriptRunner.h
patching file Source/WebCore/html/HTMLScriptElement.cpp
patching file Source/WebCore/html/HTMLScriptElement.h
patching file Source/WebCore/html/HTMLScriptElement.idl
patching file Source/WebCore/page/PageGroupLoadDeferrer.cpp

Failed to run &quot;[u&apos;/Projects/CommitQueue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8133166</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368051</commentid>
    <comment_count>76</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-03-15 17:00:29 -0700</bug_when>
    <thetext>Committed r81198: &lt;http://trac.webkit.org/changeset/81198&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368231</commentid>
    <comment_count>77</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-15 23:57:20 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/81198 might have broken WinCE Release (Build)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75397</attachid>
            <date>2010-12-02 11:11:20 -0800</date>
            <delta_ts>2010-12-02 11:55:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50115-20101202111119.patch</filename>
            <type>text/plain</type>
            <size>51458</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxODM5YWUyNjUzNDZiN2VlYjNkNWIyNWRiNDA1MmVmMjNkNDJjNTQ1Li4xMWQ0YzM0
OTA2NDZmM2M1NDdiY2NkN2QwYjk5ZjBmMDYxZWQzMDM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMTItMDIgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVy
ZW50IGJlaGF2aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkg
bG9hZGVkIHNjcmlwdHMKKworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGgg
YXN5bmM9ZmFsc2Ugd2lsbCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4K
KyAgICAgICAgU2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRf
RXhlY3V0aW9uX09yZGVyCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTUwMTE1CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9h
c3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3Vy
Y2VzL2JpZy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
c2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0OiBBZGRlZCB0ZXN0IGNhc2VzIGZvciBmb3Jj
ZUFzeW5jLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3lu
Yy1hdHRyLmh0bWw6IERpdHRvLgorCiAyMDEwLTEyLTAxICBWaWN0b3IgV2FuZyAgPHZpY3RvcndA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3Jk
ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
YXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40N2Q3
ZTdhMDUwNTllNmIwOGExY2JiOTk1YTRhZDM0ODkwODJmNmRkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRl
LWluLW9yZGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK0F0dGVtcHRzIHRvIGNoZWNr
IHRoYXQgYXN5bmM9ZmFsc2UgZW5mb3JjZXMgZXhlY3V0aW9uIG9yZGVyIGR5bmFtaWNhbGx5IGlu
c2VydGVkIHNjcmlwdHMuIFNlZTogaHR0cDovL3dpa2kud2hhdHdnLm9yZy93aWtpL0R5bmFtaWNf
U2NyaXB0X0V4ZWN1dGlvbl9PcmRlcgorYmlnCithc3luYworbG9hZAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRl
ci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtbG9h
ZC1leGVjdXRlLWluLW9yZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE3ODhmMDY5MzU3OGQwNzg3MGRh
NGYxNjZmNDhmNDljMzRmZGM2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci5odG1sCkBA
IC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0iZGVidWcoJ2xvYWQnKTtmaW5pc2hKU1Rlc3QoKTsiPgorQXR0ZW1wdHMgdG8gY2hlY2sgdGhh
dCBhc3luYz1mYWxzZSBlbmZvcmNlcyBleGVjdXRpb24gb3JkZXIgZHluYW1pY2FsbHkgaW5zZXJ0
ZWQgc2NyaXB0cy4KK1NlZTogaHR0cDovL3dpa2kud2hhdHdnLm9yZy93aWtpL0R5bmFtaWNfU2Ny
aXB0X0V4ZWN1dGlvbl9PcmRlcgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
dmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCitzbG93bHlfbG9hZGVkX3NjcmlwdCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworc2xvd2x5X2xvYWRlZF9zY3JpcHQuYXN5bmMg
PSBmYWxzZTsKK3Nsb3dseV9sb2FkZWRfc2NyaXB0LnNyYyA9ICJyZXNvdXJjZXMvYmlnLmpzIjsK
K2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoc2xv
d2x5X2xvYWRlZF9zY3JpcHQpOworCitxdWlja2x5X2xvYWRlZF9zY3JpcHQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKK3F1aWNrbHlfbG9hZGVkX3NjcmlwdC5hc3luYyA9IGZh
bHNlOworcXVpY2tseV9sb2FkZWRfc2NyaXB0LnNyYyA9ICJyZXNvdXJjZXMvYXN5bmMuanMiOwor
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChxdWlj
a2x5X2xvYWRlZF9zY3JpcHQpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2JpZy5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3Jlc291cmNlcy9iaWcuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZi
ZDEzMTdkYjZmNzkwY2ZmY2Y3YTY1NWU0YzA1NDhhYTQ1YjdjNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3Jlc291cmNlcy9iaWcuanMK
QEAgLTAsMCArMSw2OCBAQAorZGVidWcoImJpZyIpOworLyoKKyAgICBBYm91dCAxNktCIHRvIG1h
a2UgdGhpcyByZXNvdXJjZSBsb2FkIHNsb3dseS4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4K
Ky4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4K
Ky4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4K
Ky4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKy4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4KKyovCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Ny
aXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci1leHBlY3RlZC50eHQK
aW5kZXggN2I4YmY0ZGQ2MzJkYzFjOWY0MDJmMjMxYWU3MDMxYTkxMTBkZmI4Mi4uMzUzYmMwMzYx
ZDc3ZTUzZjE4MDE4YzFlMzRjM2QyZWIwY2Q0ZmJiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3lu
Yy1hdHRyLWV4cGVjdGVkLnR4dApAQCAtOCw4ICs4LDEyIEBAIFBBU1MgaXNBc3luYygnczEnKSBp
cyB0cnVlCiBQQVNTIGlzQXN5bmMoJ3MyJykgaXMgdHJ1ZQogUEFTUyBpc0FzeW5jKCdzMycpIGlz
IHRydWUKIFBBU1MgaXNBc3luYygnczQnKSBpcyB0cnVlCitQQVNTIGlzQXN5bmMoJ3M1JykgaXMg
dHJ1ZQorUEFTUyBpc0FzeW5jKCdzNicpIGlzIHRydWUKK1BBU1MgaXNBc3luYygnczcnKSBpcyBm
YWxzZQogUEFTUyBpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyh0cnVlKSBpcyB0cnVl
CiBQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKGZhbHNlKSBpcyBmYWxzZQor
UEFTUyBpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyhudWxsKSBpcyB0cnVlCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5
bmMtYXR0ci5odG1sCmluZGV4IDRhM2YzYWY5MDUyZDcyOWIzNDcxZGNiYjQ0YTk2ZTgxYjE3NmNj
MGYuLjg1M2UxOGNmMGU4ZmM3NmIzMDkxZmJiMThhYjM5YjgwMWZmOTM0YzggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRy
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0
LWFzeW5jLWF0dHIuaHRtbApAQCAtMTIsMTEgKzEyLDE0IEBACiA8c2NyaXB0IGlkPSJzMiIgc3Jj
PSJpZ25vcmVkLmpzIiBhc3luYz0iYXN5bmMiPjwvc2NyaXB0PgogPHNjcmlwdCBpZD0iczMiIHNy
Yz0iaWdub3JlZC5qcyIgYXN5bmM9IkFTWU5DIj48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InM0IiBz
cmM9Imlnbm9yZWQuanMiIGFzeW5jPSJ0cnVlIj48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM1Ij48
L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM2IiBhc3luYz48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM3
IiBhc3luYz48L3NjcmlwdD4KIAogPHNjcmlwdD4KIGRlc2NyaXB0aW9uKCdUaGlzIHRlc3QgY2hl
Y2tzIGZvciBwcm9wZXIgcGFyc2luZyBvZiB0aGUgYXN5bmMgYXR0cmlidXRlIG9uIEhUTUwgc2Ny
aXB0IHRhZ3MuJyk7CiAKLXZhciBuZXh0U2NyaXB0SUQgPSAwOwordmFyIG5leHRTY3JpcHRJRCA9
IDg7CiAKIGZ1bmN0aW9uIGlzQXN5bmMoaWQpCiB7CkBAIC0yOSwxOSArMzIsMjUgQEAgZnVuY3Rp
b24gaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMoYXN5bmMpCiAgICAgdmFyIHNjcmlw
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwogICAgIHNjcmlwdC5pZCA9IGlk
OwogICAgIHNjcmlwdC5zcmMgPSAicmVzb3VyY2VzL3NjcmlwdC1sb2FkLmpzIjsKLSAgICBpZiAo
YXN5bmMpCi0gICAgICAgIHNjcmlwdC5hc3luYyA9ICJhc3luYyI7CisgICAgaWYgKGFzeW5jICE9
IG51bGwpCisgICAgICAgIHNjcmlwdC5hc3luYyA9IGFzeW5jOwogICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoc2NyaXB0KTsKICAgICByZXR1
cm4gaXNBc3luYyhpZCk7CiB9CiAKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzNyIpLnJlbW92
ZUF0dHJpYnV0ZSgiYXN5bmMiKTsKKwogc2hvdWxkQmVGYWxzZSgiaXNBc3luYygnczAnKSIpOwog
c2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzMScpIik7CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3My
JykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNBc3luYygnczMnKSIpOwogc2hvdWxkQmVUcnVlKCJpc0Fz
eW5jKCdzNCcpIik7CitzaG91bGRCZVRydWUoImlzQXN5bmMoJ3M1JykiKTsKK3Nob3VsZEJlVHJ1
ZSgiaXNBc3luYygnczYnKSIpOworc2hvdWxkQmVGYWxzZSgiaXNBc3luYygnczcnKSIpOwogc2hv
dWxkQmVUcnVlKCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyh0cnVlKSIpOwogc2hv
dWxkQmVGYWxzZSgiaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMoZmFsc2UpIik7Citz
aG91bGRCZVRydWUoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKG51bGwpIik7CiAK
IHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0FuZHJvaWQubWsgYi9XZWJDb3JlL0FuZHJvaWQubWsKaW5kZXggMTU0NDY3OTQ2MTE1
MTZiMjVkMzdhMzhlNDQ2YWE3YzIxMTQwYmI1ZS4uYTRjNWQwMGNiYmM2MmIwZGE5ZTJkY2Y2MzRj
NzBlMzQzZWU3ZTI4MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1dlYkNv
cmUvQW5kcm9pZC5tawpAQCAtOTQsNyArOTQsNiBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NB
TF9TUkNfRklMRVMpIFwKIAljc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKIAlcCiAJ
ZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAotCWRvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAgXAog
CWRvbS9BdHRyLmNwcCBcCiAJZG9tL0F0dHJpYnV0ZS5jcHAgXAogCWRvbS9CZWZvcmVUZXh0SW5z
ZXJ0ZWRFdmVudC5jcHAgXApAQCAtMTY4LDYgKzE2Nyw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAk
KExPQ0FMX1NSQ19GSUxFUykgXAogCWRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwIFwK
IAlkb20vU2NyaXB0RWxlbWVudC5jcHAgXAogCWRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cCBcCisJZG9tL1NjcmlwdFJ1bm5lci5jcHAgXAogCWRvbS9TZWxlY3RFbGVtZW50LmNwcCBcCiAJ
ZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwIFwKIAlkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggZjM1ZGEyZjkwYzJiY2U5MzJlZDUyMWE1MDAyNGViOGJmOWRiZDhmNy4uNWU5ZTQ0
NGZkMjM0ZDRmMTEyOGJhYjc0ZGNmM2IwMTBhMWUxNGI4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC03ODcsNyArNzg3
LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwCi0gICAgZG9tL0FzeW5jU2NyaXB0
UnVubmVyLmNwcAogICAgIGRvbS9BdHRyLmNwcAogICAgIGRvbS9BdHRyaWJ1dGUuY3BwCiAgICAg
ZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcApAQCAtODY2LDYgKzg2NSw3IEBAIFNFVChX
ZWJDb3JlX1NPVVJDRVMKICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcAogICAg
IGRvbS9TY3JpcHRFbGVtZW50LmNwcAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cAorICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuY3BwCiAg
ICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3Bw
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDliZGRkZTU5ODkzNDE0MjBjNTQ2YjY5M2RkMGE2ZTVjZTMxYzEwMzkuLjkyY2VmZjk2MDAyYzVi
N2FjMWVlZWVhOGE2NWY1NjJkNDIxMTc4Y2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMTAtMTItMDIgIEph
bWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2aW9yIGZv
ciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNjcmlwdHMK
KworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGggYXN5bmM9ZmFsc2Ugd2ls
bCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4KKyAgICAgICAgU2VlOiBo
dHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9uX09yZGVy
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTE1
CisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtbG9hZC1l
eGVjdXRlLWluLW9yZGVyLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6IFJlbmFtZSBBc3lu
Y1NjcmlwdFJ1bm5lciAtPiBTY3JpcHRSdW5uZXIuCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERp
dHRvLgorICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6IERpdHRvLgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOiBEaXR0by4KKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY3Jp
cHRSdW5uZXIpOiBEaXR0by4KKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpTY3JpcHRFbGVtZW50KTogVHJhY2sgaG93IHNj
cmlwdCBzaG91bGQgZXhlY3V0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Omlu
c2VydGVkSW50b0RvY3VtZW50KTogUXVldWUgaW4gb3JkZXIgaWYgYXN5bmM9ZmFsc2UuCisgICAg
ICAgIChXZWJDb3JlOjppc1N1cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZSk6IEZpeCB3aGl0ZXNw
YWNlLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQpOiBF
eGVjdXRlIGluLW9yZGVyIG9yIGFzeW5jIHNjcmlwdC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dEVsZW1lbnQ6OnNob3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQpOiBGaXggd2hpdGVzcGFjZS4KKyAg
ICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRSdW5uZXIu
Y3BwOiBSZW5hbWVkIGZyb20gV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwLgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpTY3JpcHRSdW5uZXIpOiBBZGQgaW4tb3JkZXIg
c2NyaXB0IHF1ZXVlLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjp+U2NyaXB0UnVu
bmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3Jp
cHRTb29uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JJ
bk9yZGVyRXhlY3V0aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6
OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpyZXN1bWUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKTogUnVuIGluLW9yZGVyIHNj
cmlwdHMgdGhhdCBoYXZlIGxvYWRlZCB0b28uCisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5o
OiBSZW5hbWVkIGZyb20gV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaC4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dFJ1bm5lcjo6aGFzUGVuZGluZ1NjcmlwdHMpOiBDaGVjayBmb3IgaW4tb3JkZXIgc2NyaXB0cyB0
b28uCisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6SFRNTFNjcmlwdEVsZW1lbnQpOiBBZGQgbV9mb3JjZUFz
eW5jIHRvIHRyYWNrIGlmIHVzZXIgZXhwbGljaXRseSByZXF1ZXN0ZWQgYXN5bmMuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZCk6IFVuc2V0IG1f
Zm9yY2VBc3luYyBvbiBhc3luYyBjaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0
RWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKTogU2V0IG1fZm9yY2VBc3luYyBpZiBzY3Jp
cHQgYmVjb21lcyBkeW5hbWljIChubyBzcmMgYW5kIG5vIGNvbnRlbnQpLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmFzeW5jQXR0cmlidXRlVmFsdWUpOiBBbGlhcyBmb3Ig
YXN5bmMoKS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50OjpzZXRBc3luYyk6
IEFkZGVkLiBJZiBjYWxsZWQsIHVuc2V0IG1fZm9yY2VBc3luYy4KKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxTY3JpcHRFbGVtZW50Ojphc3luYyk6IEFkZGVkLiBSZXR1cm4gbV9mb3JjZUFzeW5jIGlm
IGl0J3Mgc2V0LgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbDogUmVtb3ZlZCBSZWZsZWN0IGZyb20gYXN5bmMg
Zm9yIGN1c3RvbSBiZWhhdmlvci4KKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXI6OlBhZ2VHcm91
cExvYWREZWZlcnJlcik6IFJlbmFtZSBBc3luY1NjcmlwdFJ1bm5lciAtPiBTY3JpcHRSdW5uZXIu
CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXI6On5QYWdlR3JvdXBMb2Fk
RGVmZXJyZXIpOiBEaXR0by4KKwogMjAxMC0xMi0wMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5A
YXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeDogQWRkZWQgYSBmb3J3YXJkaW5nIGhlYWRl
ci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDY4YTIzOTQ4ODM2MmNjODM0NTc0NDVjMWQzODA5OTVmNGRhMTc0ZDIuLjRh
OThiZGIzNDljODM0NmM3MDM4NGU3YmJlMTEzYmJlMjhmMTYzNjkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTA2Miw4
ICsxMDYyLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2Nzcy9XZWJLaXRDU1NU
cmFuc2Zvcm1WYWx1ZS5oIFwKIAlXZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKIAlX
ZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaCBcCi0JV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRS
dW5uZXIuY3BwIFwKLQlXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oIFwKIAlXZWJDb3Jl
L2RvbS9BdHRyLmNwcCBcCiAJV2ViQ29yZS9kb20vQXR0ci5oIFwKIAlXZWJDb3JlL2RvbS9BdHRy
aWJ1dGUuY3BwIFwKQEAgLTEyNDgsNiArMTI0Niw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIFwKIAlXZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcCBcCiAJV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIFwK
KwlXZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIFwKKwlXZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuaCBcCiAJV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAgXAogCVdlYkNvcmUvZG9tL1Nl
bGVjdEVsZW1lbnQuaCBcCiAJV2ViQ29yZS9kb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAgXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCA2NGNhZDhlMjgwYTAyODFhNGY2MGQ4MGE3NzQyZWExZGNlY2Q3NGM2Li5lNjg4N2MwYzNhNDJm
NjcyMGU4YTVjMjM1N2NlZTAxMzJiZjA5NjgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTExNiw4ICsxMTE2LDYgQEAKICAg
ICAgICAgICAgICdkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oJywKICAg
ICAgICAgICAgICdkb20vQWN0aXZlRE9NT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0Fj
dGl2ZURPTU9iamVjdC5oJywKLSAgICAgICAgICAgICdkb20vQXN5bmNTY3JpcHRSdW5uZXIuY3Bw
JywKLSAgICAgICAgICAgICdkb20vQXN5bmNTY3JpcHRSdW5uZXIuaCcsCiAgICAgICAgICAgICAn
ZG9tL0F0dHIuY3BwJywKICAgICAgICAgICAgICdkb20vQXR0ci5oJywKICAgICAgICAgICAgICdk
b20vQXR0cmlidXRlLmNwcCcsCkBAIC0xMzAwLDYgKzEyOTgsOCBAQAogICAgICAgICAgICAgJ2Rv
bS9TY3JpcHRFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCcsCisg
ICAgICAgICAgICAnZG9tL1NjcmlwdFJ1bm5lci5jcHAnLAorICAgICAgICAgICAgJ2RvbS9TY3Jp
cHRSdW5uZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1NlbGVjdEVsZW1lbnQuY3BwJywKICAgICAg
ICAgICAgICdkb20vU2VsZWN0RWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JO
b2RlTGlzdC5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNDNl
M2U0M2IxYzE4YjM1NjBlM2Q0NzQ3ODg4ZTlkOTMxZTZjNWE0NS4uZWZkMWMwNGNhNjA3Y2M0YjBm
YWE0ZjEyZTdmYTIxMzU4NTNmMWM2NSAxMDA3NTUKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC00MDg0Niw2MiArNDA4NDYsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxl
Ci0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cQXN5bmNTY3JpcHRSdW5uZXIuY3BwIgotCQkJCT4K
LQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJ
PEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZp
bGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
LQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8
V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29s
Ci0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxX
aW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wK
LQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9MVENH
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRv
bVxBc3luY1NjcmlwdFJ1bm5lci5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxkb21cQXRvbWljU3RyaW5nTGlzdC5oIgogCQkJCT4KIAkJCTwvRmls
ZT4KQEAgLTQ1MjYyLDYgKzQ1MjA2LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTY3JpcHRSdW5uZXIuY3BwIgorCQkJCT4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTY3Jp
cHRSdW5uZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZG9tXFNlbGVjdEVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzk0ZDVh
ZGI2NGYwOWM2ODI4ZDQxNzBhOGNjYzBmYzI4NGM0M2ZiYi4uNGVjZjY1NDFmOGUwNjI0NGRkY2I4
YzI1MWYxNTViZjY1ODQwNDViYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI2NTUsOCArMjY1NSw4IEBACiAJCTg5RDA4REExMTIyMjg0NTEwMDEyNDFE
RiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlFMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0Zp
bGVTeXN0ZW1DYWxsYmFja3MuaCAqLzsgfTsKIAkJOEExMkUzNUQxMUZBMzMyODAwMjU4MzZBIC8q
IERvY3VtZW50TG9hZFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWlu
Zy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThB
MzA5QzlGMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEEzMDlDOUUxMjM5NTBC
RTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggKi87IH07Ci0JCThBNDEzQUUw
MTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8q
IEFzeW5jU2NyaXB0UnVubmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJOEE0MTNBRTExMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVu
bmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhB
NDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgKi87IH07CisJ
CThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURFMTIwN0JCQTUwMDgyMDE2
RSAvKiBTY3JpcHRSdW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURG
MTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovOyB9OwogCQk4QTdDQzk2QjEy
MDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE3Q0M5NkExMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRp
bmdTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4QTdDQzk3MDEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTdDQzk2RjEyMDc2RjhB
MDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgKi87IH07CiAJCThBODFCRjg1MTFEQ0ZEOTAw
MERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJj
ZUxvYWRUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtODc5Niw4ICs4Nzk2LDggQEAKIAkJODlEMDhEOUUxMjIyODQ1MTAwMTI0MURGIC8q
IEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudExvYWRUaW1pbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEEzMDlDOUUxMjM5NTBCRTAwQ0I5MjA0IC8qIE5l
c3RpbmdMZXZlbEluY3JlbWVudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmg7IHBhdGggPSBwYXJzZXIvTmVzdGluZ0xldmVsSW5j
cmVtZW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEE0MTNBREUxMjA3QkJB
NTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFzeW5jU2NyaXB0UnVubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5lci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAv
KiBTY3JpcHRSdW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0
UnVubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThBNDEzQURGMTIwN0JCQTUw
MDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2NyaXB0UnVubmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OEE3Q0M5NkExMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGVuZGluZ1NjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4QTdDQzk2RjEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZW5kaW5nU2NyaXB0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE4MUJGODQxMURDRkQ5MDAwREEyQjk4IC8q
IFJlc291cmNlTG9hZFRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBS
ZXNvdXJjZUxvYWRUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MjAx
LDggKzE4MjAxLDYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUUxQzRERTZEMEVBNzVDNjUwMDIz
Q0NENiAvKiBBY3RpdmVET01PYmplY3QuY3BwICovLAogCQkJCUUxQzRERTY4MEVBNzVDMUUwMDIz
Q0NENiAvKiBBY3RpdmVET01PYmplY3QuaCAqLywKLQkJCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAx
NkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3BwICovLAotCQkJCThBNDEzQURFMTIwN0JCQTUwMDgy
MDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICovLAogCQkJCUE4QzRBN0ZDMDlENTYzMjcwMDAz
QUM4RCAvKiBBdHRyLmNwcCAqLywKIAkJCQlBOEM0QTdGQjA5RDU2MzI3MDAwM0FDOEQgLyogQXR0
ci5oICovLAogCQkJCTkzRUVDMUU1MDlDMjg3NzcwMEM1MTVEMSAvKiBBdHRyLmlkbCAqLywKQEAg
LTE4NDM1LDYgKzE4NDMzLDggQEAKIAkJCQkwOEE0ODQ3NjBFNTI3MkM1MDBDM0ZFNzYgLyogU2Ny
aXB0RWxlbWVudC5oICovLAogCQkJCUUxMUM5REFGMEVCMzY5OTUwMEU0MDlEQiAvKiBTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcCAqLywKIAkJCQlFMTFDOUQ5QTBFQjM2ODEyMDBFNDA5REIgLyog
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oICovLAorCQkJCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2
RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovLAorCQkJCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAv
KiBTY3JpcHRSdW5uZXIuaCAqLywKIAkJCQkwODRBRUJFMjBGQjUwNUZBMDAzODQ4M0UgLyogU2Vs
ZWN0RWxlbWVudC5jcHAgKi8sCiAJCQkJMDg0QUVCRTMwRkI1MDVGQTAwMzg0ODNFIC8qIFNlbGVj
dEVsZW1lbnQuaCAqLywKIAkJCQlCQzdGQTY4MDBEMUYxNjc5MDBEQjIyQTkgLyogU2VsZWN0b3JO
b2RlTGlzdC5jcHAgKi8sCkBAIC0xODYwNSw3ICsxODYwNSw2IEBACiAJCQkJOTc2RDZDNzcxMjJC
OEEzRDAwMUZEMUY3IC8qIEFzeW5jRmlsZVdyaXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc2
RDZDOTMxMjJCOEEzRDAwMUZEMUY3IC8qIEFzeW5jRmlsZVdyaXRlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjAxNDlFN0UxMUE0QjIxNTAwMTk2QTdCIC8qIEFzeW5jSW1hZ2VSZXNpemVy
LmggaW4gSGVhZGVycyAqLywKLQkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzYxRjAxMTIwOTVDODcwMDdBM0M2
NyAvKiBBdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEM0
QTgwRDA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNEE4
MEIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDgz
Niw2ICsyMDgzNSw3IEBACiAJCQkJOUY3MjMwNEYxMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFBy
b2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTlGQTM3RUU0MTE3MkZDODAwMEM0Q0Q1NSAvKiBT
Y3JpcHRQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUY3MjMwNTExMTE4NEI0MTAw
QUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk4QTQxM0FFMDEy
MDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzRD
QzEwQTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0U1NEZEMzgxMDE2RDlBNjAwOEI0NEM4IC8qIFNjcmlwdFNvdXJjZVByb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MUM3NjBCMTBFREUwM0QzMDBDMTY1NUYgLyogU2NyaXB0U3Rh
dGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjE3ODUsNyArMjE3ODUsNiBAQAogCQkJCTQ5RUVDRERG
MTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODlEMDhEOUYxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCMDE0OUU3RDExQTRCMjE1MDAxOTZBN0IgLyogQXN5bmNJbWFnZVJlc2l6
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOEE0MTNBRTExMjA3QkJBNTAwODIwMTZFIC8qIEFz
eW5jU2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzRBODBFMDlENTYzMjcw
MDAzQUM4RCAvKiBBdHRyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzRBODBDMDlENTYzMjcw
MDAzQUM4RCAvKiBBdHRyaWJ1dGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM0RjcxMzgwRDVB
NkVGRjAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTIzNTExLDYgKzIzNTEwLDcgQEAKIAkJCQk0MUYwNjZFNTBGNjRCQ0Y2MDBBMDdF
QUMgLyogU2NyaXB0T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzM0YwMjgyMTIwOTQ3
RjIwMEU1NzQzQSAvKiBTY3JpcHRQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlGNzIz
MDUwMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxMjdENTM3MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5MzRDQzBFMTBFRDM5RDZGMDBBNjU4RjIgLyogU2NyaXB0VmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNj
cm9sbEFuaW1hdG9yLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20v
RE9NQWxsSW5PbmUuY3BwIGIvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IDJmMzUx
MGQ4OGJlMTY0MTUyMTI4NTM0ZGYyZDAxZDU2M2FkYjE5ODguLjQ5YjhlYWY5OGRlNzU3M2JmZjEx
Njc3NjljNzY2OTVjZjk4ODE5OGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RPTUFsbEluT25l
LmNwcAorKysgYi9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTI2LDcgKzI2LDYgQEAK
IC8vIFRoaXMgYWxsLWluLW9uZSBjcHAgZmlsZSBjdXRzIGRvd24gb24gdGVtcGxhdGUgYmxvYXQg
dG8gYWxsb3cgdXMgdG8gYnVpbGQgb3VyIFdpbmRvd3MgcmVsZWFzZSBidWlsZC4KIAogI2luY2x1
ZGUgIkFjdGl2ZURPTU9iamVjdC5jcHAiCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuY3Bw
IgogI2luY2x1ZGUgIkF0dHIuY3BwIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5jcHAiCiAjaW5jbHVk
ZSAiQmVmb3JlUHJvY2Vzc0V2ZW50LmNwcCIKQEAgLTEwMiw2ICsxMDEsNyBAQAogI2luY2x1ZGUg
IlJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmNwcCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmNw
cCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCIKKyNpbmNsdWRlICJTY3Jp
cHRSdW5uZXIuY3BwIgogI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAiCiAj
aW5jbHVkZSAiU2VsZWN0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JOb2RlTGlzdC5j
cHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggYzA4OGU0ZWQwN2RiMzc0NTZkYTQ0NjI4NmJmZTE0NGU5YWEwYjE2
NS4uNzllYzFhZTgxNWU2ZGY2NDc5MDBlNjcwMmNlMDhiOTJlOTQ2ZGYwOSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5oIgog
I2luY2x1ZGUgIkF0dHIuaCIKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJDREFU
QVNlY3Rpb24uaCIKQEAgLTEyMCw2ICsxMTksNyBAQAogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRM
aXN0ZW5lci5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU2VsZWN0
aW9uQ29udHJvbGxlci5oIgpAQCAtMzc4LDcgKzM3OCw3IEBAIERvY3VtZW50OjpEb2N1bWVudChG
cmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCwg
Y29uCiAgICAgLCBtX3N0YXJ0VGltZShjdXJyZW50VGltZSgpKQogICAgICwgbV9vdmVyTWluaW11
bUxheW91dFRocmVzaG9sZChmYWxzZSkKICAgICAsIG1fZXh0cmFMYXlvdXREZWxheSgwKQotICAg
ICwgbV9hc3luY1NjcmlwdFJ1bm5lcihBc3luY1NjcmlwdFJ1bm5lcjo6Y3JlYXRlKHRoaXMpKQor
ICAgICwgbV9zY3JpcHRSdW5uZXIoU2NyaXB0UnVubmVyOjpjcmVhdGUodGhpcykpCiAgICAgLCBt
X3htbFZlcnNpb24oIjEuMCIpCiAgICAgLCBtX3htbFN0YW5kYWxvbmUoZmFsc2UpCiAgICAgLCBt
X3NhdmVkUmVuZGVyZXIoMCkKQEAgLTU0Niw3ICs1NDYsNyBAQCBEb2N1bWVudDo6fkRvY3VtZW50
KCkKICAgICBBU1NFUlQobV9yYW5nZXMuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQoIW1fc3R5bGVS
ZWNhbGNUaW1lci5pc0FjdGl2ZSgpKTsKIAotICAgIG1fYXN5bmNTY3JpcHRSdW5uZXIuY2xlYXIo
KTsKKyAgICBtX3NjcmlwdFJ1bm5lci5jbGVhcigpOwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0
ZW5lcnMoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKaW5kZXggNDc2ZTI1YjFkYTdjZDZiMTcxYTAxMTYxZWVjZWRkOTAwYTEz
YmIxMy4uN2JlMjQ1NDk5YzAwMDBiYzVmYjVkYTIyZjM4ODhmZTE1ZDZhNDEwOCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC01MCw3ICs1MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXN5bmNTY3Jp
cHRSdW5uZXI7CiBjbGFzcyBBdHRyOwogY2xhc3MgQVhPYmplY3RDYWNoZTsKIGNsYXNzIENEQVRB
U2VjdGlvbjsKQEAgLTEwOSw2ICsxMDgsNyBAQCBjbGFzcyBSZW5kZXJBcmVuYTsKIGNsYXNzIFJl
bmRlclZpZXc7CiBjbGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBTY3JpcHRF
bGVtZW50RGF0YTsKK2NsYXNzIFNjcmlwdFJ1bm5lcjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwog
Y2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU2VnbWVudGVkU3RyaW5nOwpAQCAt
ODY5LDcgKzg2OSw3IEBAIHB1YmxpYzoKIAogICAgIGludCBkb2NJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fZG9jSUQ7IH0KICAgICAKLSAgICBBc3luY1NjcmlwdFJ1bm5lciogYXN5bmNTY3JpcHRSdW5u
ZXIoKSB7IHJldHVybiBtX2FzeW5jU2NyaXB0UnVubmVyLmdldCgpOyB9CisgICAgU2NyaXB0UnVu
bmVyKiBzY3JpcHRSdW5uZXIoKSB7IHJldHVybiBtX3NjcmlwdFJ1bm5lci5nZXQoKTsgfQogCiAj
aWYgRU5BQkxFKFhTTFQpCiAgICAgdm9pZCBhcHBseVhTTFRyYW5zZm9ybShQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24qIHBpKTsKQEAgLTEyNzMsNyArMTI3Myw3IEBAIHByaXZhdGU6CiAgICAgLy8gcG9p
bnRzIGR1cmluZyB0aGUgbGlmZXRpbWUgb2YgdGhlIERvY3VtZW50LgogICAgIGludCBtX2V4dHJh
TGF5b3V0RGVsYXk7CiAgICAgCi0gICAgT3duUHRyPEFzeW5jU2NyaXB0UnVubmVyPiBtX2FzeW5j
U2NyaXB0UnVubmVyOworICAgIE93blB0cjxTY3JpcHRSdW5uZXI+IG1fc2NyaXB0UnVubmVyOwog
CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgT3duUHRyPFRyYW5zZm9ybVNvdXJjZT4gbV90cmFuc2Zv
cm1Tb3VyY2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDc0ZjI1ODAzNzJkNGNmNTg4MTA3OTRk
YWMxMDk2ODMzMDdjYzNjYjkuLjEwZjFhMWNmNzQyNzgwN2E2MzZiY2ZlMGYzZDI5NmZlMjkwN2M5
ZWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCi0jaW5jbHVkZSAiQXN5bmNTY3Jp
cHRSdW5uZXIuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zNyw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmgiCiAjaW5j
bHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKQEAgLTU4LDYgKzU4LDcgQEAgU2NyaXB0RWxlbWVudDo6U2NyaXB0
RWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wg
d2EKICAgICAsIG1faXNFeHRlcm5hbFNjcmlwdChmYWxzZSkKICAgICAsIG1fd2FzQWxyZWFkeVN0
YXJ0ZWQod2FzQWxyZWFkeVN0YXJ0ZWQpCiAgICAgLCBtX2hhdmVGaXJlZExvYWQoZmFsc2UpCisg
ICAgLCBtX3dpbGxFeGVjdXRlSW5PcmRlcihmYWxzZSkKIHsKICAgICBBU1NFUlQobV9lbGVtZW50
KTsKIH0KQEAgLTc2LDYgKzc3LDEwIEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRv
RG9jdW1lbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpCiAKICAgICBpZiAoIXNvdXJjZVVybC5p
c0VtcHR5KCkpIHsKICAgICAgICAgcmVxdWVzdFNjcmlwdChzb3VyY2VVcmwpOworICAgICAgICBp
ZiAoIWlzQXN5bmNocm9ub3VzKCkgJiYgbV9jYWNoZWRTY3JpcHQpIHsKKyAgICAgICAgICAgIG1f
d2lsbEV4ZWN1dGVJbk9yZGVyID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+c2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4ZWN1dGlvbih0aGlz
LCBtX2NhY2hlZFNjcmlwdCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMTM3LDcgKzE0Miw3IEBAIHN0YXRpYyBib29sIGlzU3VwcG9ydGVkSmF2YVNjcmlwdExhbmd1
YWdlKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCiAgICAgICAgIGxhbmd1YWdlcy5hZGQoImphdmFz
Y3JpcHQxLjciKTsKICAgICAgICAgbGFuZ3VhZ2VzLmFkZCgibGl2ZXNjcmlwdCIpOwogICAgICAg
ICBsYW5ndWFnZXMuYWRkKCJlY21hc2NyaXB0Iik7Ci0gICAgICAgIGxhbmd1YWdlcy5hZGQoImpz
Y3JpcHQiKTsgICAgICAgICAgICAgICAgCisgICAgICAgIGxhbmd1YWdlcy5hZGQoImpzY3JpcHQi
KTsKICAgICB9CiAKICAgICByZXR1cm4gbGFuZ3VhZ2VzLmNvbnRhaW5zKGxhbmd1YWdlKTsKQEAg
LTIzOCw3ICsyNDMsMTAgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlKENhY2hlZFNjcmlw
dCogY2FjaGVkU2NyaXB0KQogdm9pZCBTY3JpcHRFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNo
ZWRSZXNvdXJjZSogbykKIHsKICAgICBBU1NFUlRfVU5VU0VEKG8sIG8gPT0gbV9jYWNoZWRTY3Jp
cHQpOwotICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+YXN5bmNTY3JpcHRSdW5uZXIoKS0+ZXhl
Y3V0ZVNjcmlwdFNvb24odGhpcywgbV9jYWNoZWRTY3JpcHQpOworICAgIGlmIChtX3dpbGxFeGVj
dXRlSW5PcmRlcikKKyAgICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIo
KS0+cmVzdW1lKCk7CisgICAgZWxzZQorICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNj
cmlwdFJ1bm5lcigpLT5leGVjdXRlU2NyaXB0U29vbih0aGlzLCBtX2NhY2hlZFNjcmlwdCk7CiAg
ICAgbV9jYWNoZWRTY3JpcHQgPSAwOwogfQogCkBAIC0yNTUsNyArMjYzLDcgQEAgYm9vbCBTY3Jp
cHRFbGVtZW50OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0KCkgY29uc3QKICAgICAgICAgIFdp
bklFIDcgYWNjZXB0cyBlY21hc2NyaXB0IGFuZCBqc2NyaXB0LCBidXQgTW96aWxsYSAxLjggZG9l
c24ndC4KICAgICAgICAgIE5laXRoZXIgTW96aWxsYSAxLjggbm9yIFdpbklFIDcgYWNjZXB0IGxl
YWRpbmcgb3IgdHJhaWxpbmcgd2hpdGVzcGFjZS4KICAgICAgICAgIFdlIHdhbnQgdG8gYWNjZXB0
IGFsbCB0aGUgdmFsdWVzIHRoYXQgZWl0aGVyIG9mIHRoZXNlIGJyb3dzZXJzIGFjY2VwdCwgYnV0
IG5vdCBvdGhlciB2YWx1ZXMuCi0gICAgIAorCiAgICAgICAgICBGSVhNRTogSXMgdGhpcyBIVE1M
NSBjb21wbGlhbnQ/CiAgICAgICovCiAgICAgU3RyaW5nIHR5cGUgPSB0eXBlQXR0cmlidXRlVmFs
dWUoKTsKQEAgLTI2Niw3ICsyNzQsNyBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnNob3VsZEV4ZWN1
dGVBc0phdmFTY3JpcHQoKSBjb25zdAogICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBsYW5ndWFn
ZUF0dHJpYnV0ZVZhbHVlKCk7CiAgICAgICAgIGlmICghbGFuZ3VhZ2UuaXNFbXB0eSgpICYmICFp
c1N1cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZShsYW5ndWFnZSkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgfSAgICAKKyAgICB9CiAKICAgICAvLyBObyB0eXBlIG9yIGxhbmd1YWdl
IGlzIHNwZWNpZmllZCwgc28gd2UgYXNzdW1lIHRoZSBzY3JpcHQgdG8gYmUgSmF2YVNjcmlwdC4K
IApAQCAtMjc2LDEyICsyODQsMTIgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpzaG91bGRFeGVjdXRl
QXNKYXZhU2NyaXB0KCkgY29uc3QKICAgICAgICAgZm9yQXR0cmlidXRlID0gZm9yQXR0cmlidXRl
LnN0cmlwV2hpdGVTcGFjZSgpOwogICAgICAgICBpZiAoIWVxdWFsSWdub3JpbmdDYXNlKGZvckF0
dHJpYnV0ZSwgIndpbmRvdyIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAg
ICAgCisKICAgICAgICAgZXZlbnRBdHRyaWJ1dGUgPSBldmVudEF0dHJpYnV0ZS5zdHJpcFdoaXRl
U3BhY2UoKTsKICAgICAgICAgaWYgKCFlcXVhbElnbm9yaW5nQ2FzZShldmVudEF0dHJpYnV0ZSwg
Im9ubG9hZCIpICYmICFlcXVhbElnbm9yaW5nQ2FzZShldmVudEF0dHJpYnV0ZSwgIm9ubG9hZCgp
IikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAppbmRleCAwN2M1OWRiODUxNzk5NjhiYTBhNmNhZTFh
YWJlYmYyZGQ2MGU3YjNkLi41MGE3YmZjNmQ0NjBlYzdkZWI0ZWU3NjVmMGYzODNkZWM4NzFlZGZm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9k
b20vU2NyaXB0RWxlbWVudC5oCkBAIC05MCw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2lzRXh0ZXJuYWxTY3JpcHQ7CiAgICAgYm9vbCBtX3dhc0FscmVhZHlTdGFydGVkOwogICAgIGJv
b2wgbV9oYXZlRmlyZWRMb2FkOworICAgIGJvb2wgbV93aWxsRXhlY3V0ZUluT3JkZXI7CiB9Owog
CiBTY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVsZW1lbnQoRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MU2Ny
aXB0RWxlbWVudC5jcHAKaW5kZXggZTIyOWJiOGI5MWRjZmQ5NmFkZmE3NTU2YTBmMzk3N2IzZTZk
ODNlNS4uZDg5ZjNhNzMyYzFmODlkODY5ZDI2Y2I2MTgzM2U0ZDhkMzUzOTZiZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CiBpbmxpbmUgSFRNTFNjcmlwdEVsZW1lbnQ6OkhUTUxTY3JpcHRFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCB3YXNJ
bnNlcnRlZEJ5UGFyc2VyLCBib29sIHdhc0FscmVhZHlTdGFydGVkKQogICAgIDogSFRNTEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBTY3JpcHRFbGVtZW50KHRoaXMsIHdhc0luc2Vy
dGVkQnlQYXJzZXIsIHdhc0FscmVhZHlTdGFydGVkKQorICAgICwgbV9mb3JjZUFzeW5jKCF3YXNJ
bnNlcnRlZEJ5UGFyc2VyKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKHNjcmlwdFRhZykpOwog
fQpAQCAtNTgsNiArNTksMTMgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UKICAgICBIVE1MRWxl
bWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRl
ckNoYW5nZSwgY2hpbGRDb3VudERlbHRhKTsKIH0KIAordm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqIGF0dHIsIGJvb2wgcHJlc2VydmVEZWNscykKK3sK
KyAgICBpZiAoYXR0ci0+bmFtZSgpID09IGFzeW5jQXR0cikKKyAgICAgICAgbV9mb3JjZUFzeW5j
ID0gZmFsc2U7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoYXR0ciwgcHJlc2Vy
dmVEZWNscyk7Cit9CisKIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKEF0dHJpYnV0ZSogYXR0cikKIHsKICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSA9IGF0dHItPm5hbWUoKTsKQEAgLTc4LDYgKzg2LDggQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVu
dDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKIHsKICAgICBTY3JpcHRFbGVtZW50OjpmaW5pc2hQ
YXJzaW5nQ2hpbGRyZW4oc291cmNlQXR0cmlidXRlVmFsdWUoKSk7CiAgICAgSFRNTEVsZW1lbnQ6
OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOworICAgIGlmIChzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgp
LmlzRW1wdHkoKSAmJiBzY3JpcHRDb250ZW50KCkuaXNFbXB0eSgpKQorICAgICAgICBtX2ZvcmNl
QXN5bmMgPSAhaGFzQXR0cmlidXRlKGFzeW5jQXR0cik7CiB9CiAKIHZvaWQgSFRNTFNjcmlwdEVs
ZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKQEAgLTE1Miw3ICsxNjIsNyBAQCBTdHJpbmcg
SFRNTFNjcmlwdEVsZW1lbnQ6OmV2ZW50QXR0cmlidXRlVmFsdWUoKSBjb25zdAogCiBib29sIEhU
TUxTY3JpcHRFbGVtZW50Ojphc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gIWdldEF0dHJpYnV0ZShhc3luY0F0dHIpLmlzTnVsbCgpOworICAgIHJldHVybiBhc3luYygp
OwogfQogCiBib29sIEhUTUxTY3JpcHRFbGVtZW50OjpkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29u
c3QKQEAgLTE2MCw2ICsxNzAsMTcgQEAgYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6ZGVmZXJBdHRy
aWJ1dGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuICFnZXRBdHRyaWJ1dGUoZGVmZXJBdHRyKS5p
c051bGwoKTsKIH0KIAordm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6c2V0QXN5bmMoYm9vbCBhc3lu
YykKK3sKKyAgICBzZXRCb29sZWFuQXR0cmlidXRlKGFzeW5jQXR0ciwgYXN5bmMpOworICAgIG1f
Zm9yY2VBc3luYyA9IGZhbHNlOworfQorCitib29sIEhUTUxTY3JpcHRFbGVtZW50Ojphc3luYygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZm9yY2VBc3luYyB8fCAhZ2V0QXR0cmlidXRlKGFzeW5j
QXR0cikuaXNOdWxsKCk7Cit9CisKIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmRpc3BhdGNoTG9h
ZEV2ZW50KCkKIHsKICAgICBBU1NFUlQoIWhhdmVGaXJlZExvYWRFdmVudCgpKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmgKaW5kZXggMDk3NzNjNWZiYzY0NTBlYTg3YWU4NGNlMWQyNTdkNmUyYWU4
NTdhZi4uNGU1ZDA3Y2Q0OTNiYTI4NmNkNWFkOGM2MmJjZGU2MjNjOGZhZGE3NyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxTY3JpcHRFbGVtZW50LmgKQEAgLTM4LDYgKzM4LDkgQEAgcHVibGljOgogCiAgICAgS1VSTCBz
cmMoKSBjb25zdDsKIAorICAgIHZvaWQgc2V0QXN5bmMoYm9vbCk7CisgICAgYm9vbCBhc3luYygp
IGNvbnN0OworCiBwcml2YXRlOgogICAgIEhUTUxTY3JpcHRFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCB3YXNBbHJl
YWR5U3RhcnRlZCk7CiAKQEAgLTQ1LDYgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21E
b2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2Vk
QnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFu
Z2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CisgICAgdmlydHVhbCB2b2lkIGF0dHJp
YnV0ZUNoYW5nZWQoQXR0cmlidXRlKiwgYm9vbCBwcmVzZXJ2ZURlY2xzID0gZmFsc2UpOwogCiAg
ICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKQEAgLTY0LDYgKzY4LDggQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hFcnJvckV2ZW50KCk7CiAKICAgICBQYXNz
UmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4o
KSBjb25zdDsKKworICAgIGJvb2wgbV9mb3JjZUFzeW5jOwogfTsKIAogfSAvL25hbWVzcGFjZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCBiL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwKaW5kZXggMjBiNzMzMWJkOWQwZTdmYmM3NjAzM2Jl
OGFiYmQ1M2RjYmMzZDMzZS4uZmE3OTljYjJjYjBkNDE0ZjZkOTczYzZhNDViMjAxMjc5YmVmY2Qy
NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCkBAIC0yNCw3ICsyNCw3IEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWZvcl0gRE9NU3RyaW5nIGh0bWxG
b3I7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGV2ZW50OwogICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjaGFyc2V0OwotICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXN5bmM7CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGFz
eW5jOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGVmZXI7CiAgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgc3JjOwogICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyB0eXBlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1Bh
Z2VHcm91cExvYWREZWZlcnJlci5jcHAgYi9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVy
cmVyLmNwcAppbmRleCA5OGE0NzIwNDgwMmRhZjNjYjEzMDlmODIxOTcyN2ZmMWUyMGQxYjRlLi5k
M2IwZjA5Njg0NjQ1ZWM0MjZhNDQ3ODQ4MWExNjZkN2RlNmRjZjgwIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmNwcApAQCAtMjEsMTAgKzIxLDEwIEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwTG9hZERlZmVycmVyLmgiCiAKLSNpbmNsdWRlICJB
c3luY1NjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDcgKzQ4
LDcgQEAgUGFnZUdyb3VwTG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXIoUGFnZSog
cGFnZSwgYm9vbCBkZWZlclNlbGYpCiAgICAgICAgICAgICAgICAgLy8gdGhlIGNvbnN0cnVjdG9y
IHdpbGwgbmVlZCB0byB0YWtlIGEgQWN0aXZlRE9NT2JqZWN0OjpSZWFzb25Gb3JTdXNwZW5zaW9u
LgogICAgICAgICAgICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gb3RoZXJQYWdlLT5tYWluRnJh
bWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnN1c3BlbmRBY3RpdmVET01PYmpl
Y3RzKEFjdGl2ZURPTU9iamVjdDo6V2lsbFNob3dEaWFsb2cpOwotICAgICAgICAgICAgICAgICAg
ICBmcmFtZS0+ZG9jdW1lbnQoKS0+YXN5bmNTY3JpcHRSdW5uZXIoKS0+c3VzcGVuZCgpOworICAg
ICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCktPnN1c3Bl
bmQoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTY4
LDcgKzY4LDcgQEAgUGFnZUdyb3VwTG9hZERlZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVy
KCkKIAogICAgICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsg
ZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAg
ICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0cygpOwotICAg
ICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5hc3luY1NjcmlwdFJ1bm5lcigpLT5yZXN1
bWUoKTsKKyAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCkt
PnJlc3VtZSgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75400</attachid>
            <date>2010-12-02 11:55:08 -0800</date>
            <delta_ts>2010-12-02 12:42:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50115-20101202115506.patch</filename>
            <type>text/plain</type>
            <size>52322</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MDk1MGMzMjM5YWFhZGUxYTE2NTc1YjZhZjAwNjE0NDQyMzIxN2VmLi4wYzY0MDYy
YmMwOGRhMWVlYWNkMzZhYmRjYjU1MDJiOThlMDFiNTNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTAtMTItMDIgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVy
ZW50IGJlaGF2aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkg
bG9hZGVkIHNjcmlwdHMKKworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGgg
YXN5bmM9ZmFsc2Ugd2lsbCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4K
KyAgICAgICAgU2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRf
RXhlY3V0aW9uX09yZGVyCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTUwMTE1CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9h
c3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3Vy
Y2VzL2JpZy5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
c2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0OiBBZGRlZCB0ZXN0IGNhc2VzIGZvciBmb3Jj
ZUFzeW5jLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3lu
Yy1hdHRyLmh0bWw6IERpdHRvLgorCiAyMDEwLTEyLTAyICBOb2VsIEdvcmRvbiAgPG5vZWwuZ29y
ZG9uQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLWxvYWQt
ZXhlY3V0ZS1pbi1vcmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
U2NyaXB0RWxlbWVudC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ3ZDdlN2EwNTA1OWU2YjA4YTFjYmI5OTVhNGFkMzQ4OTA4MmY2ZGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3lu
Yy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQXR0
ZW1wdHMgdG8gY2hlY2sgdGhhdCBhc3luYz1mYWxzZSBlbmZvcmNlcyBleGVjdXRpb24gb3JkZXIg
ZHluYW1pY2FsbHkgaW5zZXJ0ZWQgc2NyaXB0cy4gU2VlOiBodHRwOi8vd2lraS53aGF0d2cub3Jn
L3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9uX09yZGVyCitiaWcKK2FzeW5jCitsb2FkCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtbG9hZC1l
eGVjdXRlLWluLW9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxl
bWVudC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTc4OGYw
NjkzNTc4ZDA3ODcwZGE0ZjE2NmY0OGY0OWMzNGZkYzYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRlLWlu
LW9yZGVyLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJkZWJ1ZygnbG9hZCcpO2ZpbmlzaEpTVGVzdCgpOyI+CitBdHRlbXB0
cyB0byBjaGVjayB0aGF0IGFzeW5jPWZhbHNlIGVuZm9yY2VzIGV4ZWN1dGlvbiBvcmRlciBkeW5h
bWljYWxseSBpbnNlcnRlZCBzY3JpcHRzLgorU2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dp
a2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9uX09yZGVyCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQ+Cit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKK3Nsb3dseV9sb2FkZWRf
c2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CitzbG93bHlfbG9hZGVk
X3NjcmlwdC5hc3luYyA9IGZhbHNlOworc2xvd2x5X2xvYWRlZF9zY3JpcHQuc3JjID0gInJlc291
cmNlcy9iaWcuanMiOworZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5h
cHBlbmRDaGlsZChzbG93bHlfbG9hZGVkX3NjcmlwdCk7CisKK3F1aWNrbHlfbG9hZGVkX3Njcmlw
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworcXVpY2tseV9sb2FkZWRfc2Ny
aXB0LmFzeW5jID0gZmFsc2U7CitxdWlja2x5X2xvYWRlZF9zY3JpcHQuc3JjID0gInJlc291cmNl
cy9hc3luYy5qcyI7Citkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFw
cGVuZENoaWxkKHF1aWNrbHlfbG9hZGVkX3NjcmlwdCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZXNvdXJjZXMvYmlnLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2JpZy5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yZmJkMTMxN2RiNmY3OTBjZmZjZjdhNjU1ZTRjMDU0OGFhNDViN2M3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVz
b3VyY2VzL2JpZy5qcwpAQCAtMCwwICsxLDY4IEBACitkZWJ1ZygiYmlnIik7CisvKgorICAgIEFi
b3V0IDE2S0IgdG8gbWFrZSB0aGlzIHJlc291cmNlIGxvYWQgc2xvd2x5LgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgor
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgor
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgor
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorKi8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRy
LWV4cGVjdGVkLnR4dAppbmRleCA3YjhiZjRkZDYzMmRjMWM5ZjQwMmYyMzFhZTcwMzFhOTExMGRm
YjgyLi43YWE0OGYzYzJhYmU5NDIzYmFiYjAyYTlhNDlhOTU4OTg3NTAwZmM5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1l
bnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0CkBAIC04LDggKzgsMTMgQEAgUEFTUyBp
c0FzeW5jKCdzMScpIGlzIHRydWUKIFBBU1MgaXNBc3luYygnczInKSBpcyB0cnVlCiBQQVNTIGlz
QXN5bmMoJ3MzJykgaXMgdHJ1ZQogUEFTUyBpc0FzeW5jKCdzNCcpIGlzIHRydWUKK1BBU1MgaXNB
c3luYygnczUnKSBpcyB0cnVlCitQQVNTIGlzQXN5bmMoJ3M2JykgaXMgdHJ1ZQorUEFTUyBpc0Fz
eW5jKCdzNycpIGlzIGZhbHNlCiBQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5j
KHRydWUpIGlzIHRydWUKIFBBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMoZmFs
c2UpIGlzIGZhbHNlCitQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKCJhc3lu
YyIpIGlzIHRydWUKK1BBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMobnVsbCkg
aXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRF
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3Jp
cHQtYXN5bmMtYXR0ci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1l
bnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRtbAppbmRleCA0YTNmM2FmOTA1MmQ3MjliMzQ3MWRjYmI0
NGE5NmU4MWIxNzZjYzBmLi42ZDE1MTZhMTUwZDM3NDBlMTMyMDIxMmIzYzRhNTE1MWVmZjRhYjI3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3Jp
cHQtYXN5bmMtYXR0ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWwKQEAgLTEyLDExICsxMiwxNCBAQAogPHNjcmlw
dCBpZD0iczIiIHNyYz0iaWdub3JlZC5qcyIgYXN5bmM9ImFzeW5jIj48L3NjcmlwdD4KIDxzY3Jp
cHQgaWQ9InMzIiBzcmM9Imlnbm9yZWQuanMiIGFzeW5jPSJBU1lOQyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IGlkPSJzNCIgc3JjPSJpZ25vcmVkLmpzIiBhc3luYz0idHJ1ZSI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IGlkPSJzNSI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJzNiIgYXN5bmM+PC9zY3JpcHQ+Cis8
c2NyaXB0IGlkPSJzNyIgYXN5bmM+PC9zY3JpcHQ+CiAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbign
VGhpcyB0ZXN0IGNoZWNrcyBmb3IgcHJvcGVyIHBhcnNpbmcgb2YgdGhlIGFzeW5jIGF0dHJpYnV0
ZSBvbiBIVE1MIHNjcmlwdCB0YWdzLicpOwogCi12YXIgbmV4dFNjcmlwdElEID0gMDsKK3ZhciBu
ZXh0U2NyaXB0SUQgPSA4OwogCiBmdW5jdGlvbiBpc0FzeW5jKGlkKQogewpAQCAtMjksMTkgKzMy
LDI2IEBAIGZ1bmN0aW9uIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKGFzeW5jKQog
ICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICBz
Y3JpcHQuaWQgPSBpZDsKICAgICBzY3JpcHQuc3JjID0gInJlc291cmNlcy9zY3JpcHQtbG9hZC5q
cyI7Ci0gICAgaWYgKGFzeW5jKQotICAgICAgICBzY3JpcHQuYXN5bmMgPSAiYXN5bmMiOworICAg
IGlmIChhc3luYyAhPSBudWxsKQorICAgICAgICBzY3JpcHQuYXN5bmMgPSBhc3luYzsKICAgICBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHNjcmlw
dCk7CiAgICAgcmV0dXJuIGlzQXN5bmMoaWQpOwogfQogCitkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiczciKS5yZW1vdmVBdHRyaWJ1dGUoImFzeW5jIik7CisKIHNob3VsZEJlRmFsc2UoImlzQXN5
bmMoJ3MwJykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNBc3luYygnczEnKSIpOwogc2hvdWxkQmVUcnVl
KCJpc0FzeW5jKCdzMicpIik7CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3MzJykiKTsKIHNob3Vs
ZEJlVHJ1ZSgiaXNBc3luYygnczQnKSIpOworc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzNScpIik7
CitzaG91bGRCZVRydWUoImlzQXN5bmMoJ3M2JykiKTsKK3Nob3VsZEJlRmFsc2UoImlzQXN5bmMo
J3M3JykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMo
dHJ1ZSkiKTsKIHNob3VsZEJlRmFsc2UoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5j
KGZhbHNlKSIpOworc2hvdWxkQmVUcnVlKCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3lu
YyhcImFzeW5jXCIpIik7CitzaG91bGRCZVRydWUoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlw
dEFzeW5jKG51bGwpIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJvaWQubWsgYi9XZWJDb3JlL0FuZHJvaWQubWsK
aW5kZXggMTU0NDY3OTQ2MTE1MTZiMjVkMzdhMzhlNDQ2YWE3YzIxMTQwYmI1ZS4uYTRjNWQwMGNi
YmM2MmIwZGE5ZTJkY2Y2MzRjNzBlMzQzZWU3ZTI4MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRy
b2lkLm1rCisrKyBiL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtOTQsNyArOTQsNiBAQCBMT0NBTF9T
UkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAljc3MvV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuY3BwIFwKIAlcCiAJZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAotCWRvbS9Bc3luY1Nj
cmlwdFJ1bm5lci5jcHAgXAogCWRvbS9BdHRyLmNwcCBcCiAJZG9tL0F0dHJpYnV0ZS5jcHAgXAog
CWRvbS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgXApAQCAtMTY4LDYgKzE2Nyw3IEBAIExP
Q0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCWRvbS9TY3JpcHRhYmxlRG9j
dW1lbnRQYXJzZXIuY3BwIFwKIAlkb20vU2NyaXB0RWxlbWVudC5jcHAgXAogCWRvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcCBcCisJZG9tL1NjcmlwdFJ1bm5lci5jcHAgXAogCWRvbS9TZWxl
Y3RFbGVtZW50LmNwcCBcCiAJZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwIFwKIAlkb20vU3BhY2VT
cGxpdFN0cmluZy5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggM2JhZDgwZjE5MGEzNmE5N2E5OGVkNDc5YWI3YTRj
ZDAwNDNjMTdhYi4uOGIyODJhNGVmZjgyNjIxY2ZlYjQwZDY1MzA3OGU4NmY5OTJmY2Q5MCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC03ODcsNyArNzg3LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9XZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwCi0g
ICAgZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcAogICAgIGRvbS9BdHRyLmNwcAogICAgIGRvbS9B
dHRyaWJ1dGUuY3BwCiAgICAgZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcApAQCAtODY2
LDYgKzg2NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vU2NyaXB0YWJsZURvY3Vt
ZW50UGFyc2VyLmNwcAogICAgIGRvbS9TY3JpcHRFbGVtZW50LmNwcAogICAgIGRvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcAorICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwCiAgICAgZG9tL1Nl
bGVjdEVsZW1lbnQuY3BwCiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwCiAgICAgZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDQ5OWRlMmJhODkyMjIzYWVkYjFhODI0YmE1MGQ2MjdhNjEzYzMx
ZjQuLjkzNzNjNzliNTY0ZjQyZmQ4ZmQ4MGU2NjdiOTY4MTc3ZGZhNDllZjggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAg
QEAKKzIwMTAtMTItMDIgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlm
ZmVyZW50IGJlaGF2aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2Fs
bHkgbG9hZGVkIHNjcmlwdHMKKworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdp
dGggYXN5bmM9ZmFsc2Ugd2lsbCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRl
ci4KKyAgICAgICAgU2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3Jp
cHRfRXhlY3V0aW9uX09yZGVyCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUwMTE1CisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRNTFNjcmlwdEVs
ZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwKKworICAgICAgICAqIEFuZHJv
aWQubWs6IFJlbmFtZSBBc3luY1NjcmlwdFJ1bm5lciAtPiBTY3JpcHRSdW5uZXIuCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0
by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJv
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8u
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAg
ICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOiBEaXR0by4KKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KTogRGl0dG8uCisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2NyaXB0UnVubmVy
KTogRGl0dG8uCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0RWxlbWVudDo6U2NyaXB0RWxlbWVudCk6IFRyYWNrIGhvdyBzY3JpcHQgc2hv
dWxkIGV4ZWN1dGUuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjppbnNlcnRlZElu
dG9Eb2N1bWVudCk6IFF1ZXVlIGluIG9yZGVyIGlmIGFzeW5jPWZhbHNlLgorICAgICAgICAoV2Vi
Q29yZTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UpOiBGaXggd2hpdGVzcGFjZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKTogRXhlY3V0ZSBp
bi1vcmRlciBvciBhc3luYyBzY3JpcHQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50
OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0KTogRml4IHdoaXRlc3BhY2UuCisgICAgICAgICog
ZG9tL1NjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0UnVubmVyLmNwcDogUmVu
YW1lZCBmcm9tIFdlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcC4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFJ1bm5lcjo6U2NyaXB0UnVubmVyKTogQWRkIGluLW9yZGVyIHNjcmlwdCBx
dWV1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5lcik6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbik6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4
ZWN1dGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpzdXNwZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6cmVzdW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6IFJ1biBpbi1vcmRlciBzY3JpcHRzIHRo
YXQgaGF2ZSBsb2FkZWQgdG9vLgorICAgICAgICAqIGRvbS9TY3JpcHRSdW5uZXIuaDogUmVuYW1l
ZCBmcm9tIFdlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmguCisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRSdW5uZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6
Omhhc1BlbmRpbmdTY3JpcHRzKTogQ2hlY2sgZm9yIGluLW9yZGVyIHNjcmlwdHMgdG9vLgorICAg
ICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNjcmlwdEVsZW1lbnQ6OkhUTUxTY3JpcHRFbGVtZW50KTogQWRkIG1fZm9yY2VBc3luYyB0byB0
cmFjayBpZiB1c2VyIGV4cGxpY2l0bHkgcmVxdWVzdGVkIGFzeW5jLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQpOiBVbnNldCBtX2ZvcmNlQXN5
bmMgb24gYXN5bmMgY2hhbmdlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6
OmZpbmlzaFBhcnNpbmdDaGlsZHJlbik6IFNldCBtX2ZvcmNlQXN5bmMgaWYgc2NyaXB0IGJlY29t
ZXMgZHluYW1pYyAobm8gc3JjIGFuZCBubyBjb250ZW50KS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxTY3JpcHRFbGVtZW50Ojphc3luY0F0dHJpYnV0ZVZhbHVlKTogQWxpYXMgZm9yIGFzeW5jKCku
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6c2V0QXN5bmMpOiBBZGRlZC4g
SWYgY2FsbGVkLCB1bnNldCBtX2ZvcmNlQXN5bmMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Ny
aXB0RWxlbWVudDo6YXN5bmMpOiBBZGRlZC4gUmV0dXJuIG1fZm9yY2VBc3luYyBpZiBpdCdzIHNl
dC4KKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5pZGw6IFJlbW92ZWQgUmVmbGVjdCBmcm9tIGFzeW5jIGZvciBjdXN0
b20gYmVoYXZpb3IuCisgICAgICAgICogcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVm
ZXJyZXIpOiBSZW5hbWUgQXN5bmNTY3JpcHRSdW5uZXIgLT4gU2NyaXB0UnVubmVyLgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9hZERlZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVy
KTogRGl0dG8uCisKIDIwMTAtMTItMDIgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA5ZWMy
NGNiNTg3NDQ1NmY1YzFjZDY3M2UwZTcyM2FmMTA2NTZiNWM2Li43OTE1MGM3ZDc1ZmZjMzdjMmU2
ODkxZDVkMDAyMjZmYWY2ODVhN2E3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTEwNjIsOCArMTA2Miw2IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBc
CiAJV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmNwcCBcCiAJV2ViQ29yZS9kb20vQWN0aXZl
RE9NT2JqZWN0LmggXAotCVdlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcCBcCi0JV2Vi
Q29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaCBcCiAJV2ViQ29yZS9kb20vQXR0ci5jcHAgXAog
CVdlYkNvcmUvZG9tL0F0dHIuaCBcCiAJV2ViQ29yZS9kb20vQXR0cmlidXRlLmNwcCBcCkBAIC0x
MjQ4LDYgKzEyNDYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuaCBcCiAJV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgXAog
CVdlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBcCisJV2ViQ29yZS9kb20vU2Ny
aXB0UnVubmVyLmNwcCBcCisJV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmggXAogCVdlYkNvcmUv
ZG9tL1NlbGVjdEVsZW1lbnQuY3BwIFwKIAlXZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmggXAog
CVdlYkNvcmUvZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggODc3MzU4MjJhZDI5Zjgz
NDk4MmU5NjVlOWM4NDUxNjBhYzc4ZjhhYS4uMzA2YTVmZGE1NmFlMGZjYzJjMTY5ZjVmY2YxOWVh
NTRjNWEwMjE0NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTExMTcsOCArMTExNyw2IEBACiAgICAgICAgICAgICAnZG9tL2Rl
ZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaCcsCiAgICAgICAgICAgICAnZG9tL0Fj
dGl2ZURPTU9iamVjdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9BY3RpdmVET01PYmplY3QuaCcs
Ci0gICAgICAgICAgICAnZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcCcsCi0gICAgICAgICAgICAn
ZG9tL0FzeW5jU2NyaXB0UnVubmVyLmgnLAogICAgICAgICAgICAgJ2RvbS9BdHRyLmNwcCcsCiAg
ICAgICAgICAgICAnZG9tL0F0dHIuaCcsCiAgICAgICAgICAgICAnZG9tL0F0dHJpYnV0ZS5jcHAn
LApAQCAtMTMwMSw2ICsxMjk5LDggQEAKICAgICAgICAgICAgICdkb20vU2NyaXB0RWxlbWVudC5o
JywKICAgICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAnLAogICAgICAg
ICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgnLAorICAgICAgICAgICAgJ2RvbS9T
Y3JpcHRSdW5uZXIuY3BwJywKKyAgICAgICAgICAgICdkb20vU2NyaXB0UnVubmVyLmgnLAogICAg
ICAgICAgICAgJ2RvbS9TZWxlY3RFbGVtZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1NlbGVj
dEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwJywKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IDYzYjAyYjhlZTBmYTI5NDVhNzY2ZWY3YmRiMmRhNDU4ZmE1ZDFmMDUuLmYzZDQ5NGE0N2U2ZDQ1
YWNkNTAxYzVlN2QxYmMyZTIwMWY3ODk3OWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNjgxLDcgKzY4MSw2IEBAIFNPVVJDRVMg
Kz0gXAogICAgIGNzcy9XZWJLaXRDU1NNYXRyaXguY3BwIFwKICAgICBjc3MvV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUuY3BwIFwKICAgICBkb20vQWN0aXZlRE9NT2JqZWN0LmNwcCBcCi0gICAgZG9t
L0FzeW5jU2NyaXB0UnVubmVyLmNwcCBcCiAgICAgZG9tL0F0dHIuY3BwIFwKICAgICBkb20vQXR0
cmlidXRlLmNwcCBcCiAgICAgZG9tL0JlZm9yZVByb2Nlc3NFdmVudC5jcHAgXApAQCAtNzYzLDYg
Kzc2Miw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIu
Y3BwIFwKICAgICBkb20vU2NyaXB0RWxlbWVudC5jcHAgXAogICAgIGRvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcCBcCisgICAgZG9tL1NjcmlwdFJ1bm5lci5jcHAgXAogICAgIGRvbS9TZWxl
Y3RFbGVtZW50LmNwcCBcCiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwIFwKICAgICBkb20v
U3BhY2VTcGxpdFN0cmluZy5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggOTJjZjQyYmM0ODRlOTg2NjA5YjRlMmFiOTNmYmNkOGUyZWQwOGNjMC4uYjQyZmE2YjJh
OWRjNjhhMmQ3NzM0NzhkOTAwYzliZjExNjg0MjU0NCAxMDA3NTUKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCkBAIC00MDg0Niw2MiArNDA4NDYsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cQXN5bmNTY3JpcHRSdW5uZXIuY3Bw
IgotCQkJCT4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0J
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wK
LQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWly
b19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0J
CQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRl
YnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJ
CQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVs
ZWFzZV9MVENHfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGRvbVxBc3luY1NjcmlwdFJ1bm5lci5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxG
aWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cQXRvbWljU3RyaW5nTGlzdC5oIgogCQkJCT4K
IAkJCTwvRmlsZT4KQEAgLTQ1MjYyLDYgKzQ1MjA2LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgog
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTY3JpcHRSdW5uZXIuY3BwIgorCQkJ
CT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxp
dGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0Fs
bHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9M
VENHfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGRvbVxTY3JpcHRSdW5uZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cZG9tXFNlbGVjdEVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNzg2MDRiMDVkOTFkYjZiNTIxNjc0YmU1YzExNTAyMWM2MDAyOTFiNi4uODFmYzg3MTQxNzMy
OWM3MzAzMWI5NDk2MTNmYTgyNTE3YzhhYjUxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTI2NTMsOCArMjY1Myw4IEBACiAJCTg5RDA4REExMTIyMjg0
NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlFMTIyMjg0NTEwMDEyNDFERiAv
KiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLzsgfTsKIAkJOEExMkUzNUQxMUZBMzMyODAw
MjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50
TG9hZFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCThBMzA5QzlGMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEEzMDlD
OUUxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggKi87IH07Ci0J
CThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREUxMjA3QkJBNTAw
ODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOEE0MTNBRTExMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5j
U2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDhBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAg
Ki87IH07CisJCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURFMTIwN0JC
QTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0
UnVubmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovOyB9OwogCQk4
QTdDQzk2QjEyMDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE3Q0M5NkExMjA3NkQ3MzAwMUQ0NTg4
IC8qIFBlbmRpbmdTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4QTdDQzk3MDEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTdDQzk2
RjEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgKi87IH07CiAJCThBODFCRjg1
MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAv
KiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtODc5Miw4ICs4NzkyLDggQEAKIAkJODlEMDhEOUUxMjIyODQ1MTAw
MTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRp
bWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudExvYWRUaW1p
bmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEEzMDlDOUUxMjM5NTBCRTAwQ0I5
MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmg7IHBhdGggPSBwYXJzZXIvTmVzdGlu
Z0xldmVsSW5jcmVtZW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEE0MTNB
REUxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jU2NyaXB0UnVubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5l
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBc3luY1NjcmlwdFJ1
bm5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThBNDEzQURFMTIwN0JCQTUw
MDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU2NyaXB0UnVubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThBNDEzQURG
MTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0UnVubmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOEE3Q0M5NkExMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVuZGluZ1NjcmlwdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4QTdDQzk2RjEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1Nj
cmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZW5kaW5nU2Ny
aXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE4MUJGODQxMURDRkQ5MDAw
REEyQjk4IC8qIFJlc291cmNlTG9hZFRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZXNvdXJjZUxvYWRUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE4MTk1LDggKzE4MTk1LDYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUUxQzRERTZEMEVB
NzVDNjUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmplY3QuY3BwICovLAogCQkJCUUxQzRERTY4MEVB
NzVDMUUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmplY3QuaCAqLywKLQkJCQk4QTQxM0FERjEyMDdC
QkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3BwICovLAotCQkJCThBNDEzQURFMTIw
N0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICovLAogCQkJCUE4QzRBN0ZDMDlE
NTYzMjcwMDAzQUM4RCAvKiBBdHRyLmNwcCAqLywKIAkJCQlBOEM0QTdGQjA5RDU2MzI3MDAwM0FD
OEQgLyogQXR0ci5oICovLAogCQkJCTkzRUVDMUU1MDlDMjg3NzcwMEM1MTVEMSAvKiBBdHRyLmlk
bCAqLywKQEAgLTE4NDI5LDYgKzE4NDI3LDggQEAKIAkJCQkwOEE0ODQ3NjBFNTI3MkM1MDBDM0ZF
NzYgLyogU2NyaXB0RWxlbWVudC5oICovLAogCQkJCUUxMUM5REFGMEVCMzY5OTUwMEU0MDlEQiAv
KiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCAqLywKIAkJCQlFMTFDOUQ5QTBFQjM2ODEyMDBF
NDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oICovLAorCQkJCThBNDEzQURGMTIwN0JC
QTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovLAorCQkJCThBNDEzQURFMTIwN0JCQTUw
MDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCAqLywKIAkJCQkwODRBRUJFMjBGQjUwNUZBMDAzODQ4
M0UgLyogU2VsZWN0RWxlbWVudC5jcHAgKi8sCiAJCQkJMDg0QUVCRTMwRkI1MDVGQTAwMzg0ODNF
IC8qIFNlbGVjdEVsZW1lbnQuaCAqLywKIAkJCQlCQzdGQTY4MDBEMUYxNjc5MDBEQjIyQTkgLyog
U2VsZWN0b3JOb2RlTGlzdC5jcHAgKi8sCkBAIC0xODU5OSw3ICsxODU5OSw2IEBACiAJCQkJOTc2
RDZDNzcxMjJCOEEzRDAwMUZEMUY3IC8qIEFzeW5jRmlsZVdyaXRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTc2RDZDOTMxMjJCOEEzRDAwMUZEMUY3IC8qIEFzeW5jRmlsZVdyaXRlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjAxNDlFN0UxMUE0QjIxNTAwMTk2QTdCIC8qIEFzeW5jSW1h
Z2VSZXNpemVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUg
LyogQXN5bmNTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzYxRjAxMTIwOTVD
ODcwMDdBM0M2NyAvKiBBdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEM0QTgwRDA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThDNEE4MEIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMDg0NSw2ICsyMDg0NCw3IEBACiAJCQkJOUY3MjMwNEYxMTE4NEI0MTAwQUQwMTI2IC8q
IFNjcmlwdFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTlGQTM3RUU0MTE3MkZDODAwMEM0
Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUY3MjMwNTEx
MTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk4
QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0U1NEZEMzgxMDE2RDlBNjAwOEI0NEM4IC8qIFNjcmlwdFNvdXJjZVBy
b3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUM3NjBCMTBFREUwM0QzMDBDMTY1NUYgLyog
U2NyaXB0U3RhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjE3NzgsNyArMjE3NzgsNiBAQAogCQkJ
CTQ5RUVDRERGMTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODlEMDhEOUYxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCMDE0OUU3RDExQTRCMjE1MDAxOTZBN0IgLyogQXN5bmNJ
bWFnZVJlc2l6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOEE0MTNBRTExMjA3QkJBNTAwODIw
MTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzRBODBF
MDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzRBODBD
MDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyaWJ1dGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM0
RjcxMzgwRDVBNkVGRjAwMDE4RDY5IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTIzNTI0LDYgKzIzNTIzLDcgQEAKIAkJCQk0MUYwNjZFNTBGNjRC
Q0Y2MDBBMDdFQUMgLyogU2NyaXB0T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzM0Yw
MjgyMTIwOTQ3RjIwMEU1NzQzQSAvKiBTY3JpcHRQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTlGNzIzMDUwMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjdENTM3MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRT
dGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzRDQzBFMTBFRDM5RDZGMDBBNjU4RjIgLyog
U2NyaXB0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZD
RTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmlu
ZGV4IDJmMzUxMGQ4OGJlMTY0MTUyMTI4NTM0ZGYyZDAxZDU2M2FkYjE5ODguLjQ5YjhlYWY5OGRl
NzU3M2JmZjExNjc3NjljNzY2OTVjZjk4ODE5OGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcAorKysgYi9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTI2LDcg
KzI2LDYgQEAKIC8vIFRoaXMgYWxsLWluLW9uZSBjcHAgZmlsZSBjdXRzIGRvd24gb24gdGVtcGxh
dGUgYmxvYXQgdG8gYWxsb3cgdXMgdG8gYnVpbGQgb3VyIFdpbmRvd3MgcmVsZWFzZSBidWlsZC4K
IAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5jcHAiCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRS
dW5uZXIuY3BwIgogI2luY2x1ZGUgIkF0dHIuY3BwIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5jcHAi
CiAjaW5jbHVkZSAiQmVmb3JlUHJvY2Vzc0V2ZW50LmNwcCIKQEAgLTEwMiw2ICsxMDEsNyBAQAog
I2luY2x1ZGUgIlJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmNwcCIKICNpbmNsdWRlICJTY3JpcHRF
bGVtZW50LmNwcCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCIKKyNpbmNs
dWRlICJTY3JpcHRSdW5uZXIuY3BwIgogI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNl
ci5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JO
b2RlTGlzdC5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYzA4OGU0ZWQwN2RiMzc0NTZkYTQ0NjI4NmJmZTE0
NGU5YWEwYjE2NS4uNzllYzFhZTgxNWU2ZGY2NDc5MDBlNjcwMmNlMDhiOTJlOTQ2ZGYwOSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgog
I2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1
bm5lci5oIgogI2luY2x1ZGUgIkF0dHIuaCIKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNs
dWRlICJDREFUQVNlY3Rpb24uaCIKQEAgLTEyMCw2ICsxMTksNyBAQAogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2Ny
aXB0RXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgpAQCAtMzc4LDcgKzM3OCw3IEBAIERvY3VtZW50OjpE
b2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29s
IGlzSFRNTCwgY29uCiAgICAgLCBtX3N0YXJ0VGltZShjdXJyZW50VGltZSgpKQogICAgICwgbV9v
dmVyTWluaW11bUxheW91dFRocmVzaG9sZChmYWxzZSkKICAgICAsIG1fZXh0cmFMYXlvdXREZWxh
eSgwKQotICAgICwgbV9hc3luY1NjcmlwdFJ1bm5lcihBc3luY1NjcmlwdFJ1bm5lcjo6Y3JlYXRl
KHRoaXMpKQorICAgICwgbV9zY3JpcHRSdW5uZXIoU2NyaXB0UnVubmVyOjpjcmVhdGUodGhpcykp
CiAgICAgLCBtX3htbFZlcnNpb24oIjEuMCIpCiAgICAgLCBtX3htbFN0YW5kYWxvbmUoZmFsc2Up
CiAgICAgLCBtX3NhdmVkUmVuZGVyZXIoMCkKQEAgLTU0Niw3ICs1NDYsNyBAQCBEb2N1bWVudDo6
fkRvY3VtZW50KCkKICAgICBBU1NFUlQobV9yYW5nZXMuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQo
IW1fc3R5bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpKTsKIAotICAgIG1fYXN5bmNTY3JpcHRSdW5u
ZXIuY2xlYXIoKTsKKyAgICBtX3NjcmlwdFJ1bm5lci5jbGVhcigpOwogCiAgICAgcmVtb3ZlQWxs
RXZlbnRMaXN0ZW5lcnMoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBi
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNDc2ZTI1YjFkYTdjZDZiMTcxYTAxMTYxZWVj
ZWRkOTAwYTEzYmIxMy4uN2JlMjQ1NDk5YzAwMDBiYzVmYjVkYTIyZjM4ODhmZTE1ZDZhNDEwOCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC01MCw3ICs1MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
QXN5bmNTY3JpcHRSdW5uZXI7CiBjbGFzcyBBdHRyOwogY2xhc3MgQVhPYmplY3RDYWNoZTsKIGNs
YXNzIENEQVRBU2VjdGlvbjsKQEAgLTEwOSw2ICsxMDgsNyBAQCBjbGFzcyBSZW5kZXJBcmVuYTsK
IGNsYXNzIFJlbmRlclZpZXc7CiBjbGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXI7CiBjbGFz
cyBTY3JpcHRFbGVtZW50RGF0YTsKK2NsYXNzIFNjcmlwdFJ1bm5lcjsKIGNsYXNzIFNlY3VyaXR5
T3JpZ2luOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU2VnbWVudGVkU3Ry
aW5nOwpAQCAtODY5LDcgKzg2OSw3IEBAIHB1YmxpYzoKIAogICAgIGludCBkb2NJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fZG9jSUQ7IH0KICAgICAKLSAgICBBc3luY1NjcmlwdFJ1bm5lciogYXN5bmNT
Y3JpcHRSdW5uZXIoKSB7IHJldHVybiBtX2FzeW5jU2NyaXB0UnVubmVyLmdldCgpOyB9CisgICAg
U2NyaXB0UnVubmVyKiBzY3JpcHRSdW5uZXIoKSB7IHJldHVybiBtX3NjcmlwdFJ1bm5lci5nZXQo
KTsgfQogCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgdm9pZCBhcHBseVhTTFRyYW5zZm9ybShQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24qIHBpKTsKQEAgLTEyNzMsNyArMTI3Myw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gcG9pbnRzIGR1cmluZyB0aGUgbGlmZXRpbWUgb2YgdGhlIERvY3VtZW50LgogICAgIGlu
dCBtX2V4dHJhTGF5b3V0RGVsYXk7CiAgICAgCi0gICAgT3duUHRyPEFzeW5jU2NyaXB0UnVubmVy
PiBtX2FzeW5jU2NyaXB0UnVubmVyOworICAgIE93blB0cjxTY3JpcHRSdW5uZXI+IG1fc2NyaXB0
UnVubmVyOwogCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgT3duUHRyPFRyYW5zZm9ybVNvdXJjZT4g
bV90cmFuc2Zvcm1Tb3VyY2U7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50
LmNwcCBiL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDc0ZjI1ODAzNzJkNGNm
NTg4MTA3OTRkYWMxMDk2ODMzMDdjYzNjYjkuLjEwZjFhMWNmNzQyNzgwN2E2MzZiY2ZlMGYzZDI5
NmZlMjkwN2M5ZWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisr
KyBiL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogCi0jaW5jbHVkZSAi
QXN5bmNTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zNyw2
ICszNiw3IEBACiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVy
LmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTU4LDYgKzU4LDcgQEAgU2NyaXB0RWxlbWVu
dDo6U2NyaXB0RWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBib29sIHdhc0luc2VydGVkQnlQYXJz
ZXIsIGJvb2wgd2EKICAgICAsIG1faXNFeHRlcm5hbFNjcmlwdChmYWxzZSkKICAgICAsIG1fd2Fz
QWxyZWFkeVN0YXJ0ZWQod2FzQWxyZWFkeVN0YXJ0ZWQpCiAgICAgLCBtX2hhdmVGaXJlZExvYWQo
ZmFsc2UpCisgICAgLCBtX3dpbGxFeGVjdXRlSW5PcmRlcihmYWxzZSkKIHsKICAgICBBU1NFUlQo
bV9lbGVtZW50KTsKIH0KQEAgLTc2LDYgKzc3LDEwIEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6aW5z
ZXJ0ZWRJbnRvRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpCiAKICAgICBpZiAoIXNv
dXJjZVVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgcmVxdWVzdFNjcmlwdChzb3VyY2VVcmwpOwor
ICAgICAgICBpZiAoIWlzQXN5bmNocm9ub3VzKCkgJiYgbV9jYWNoZWRTY3JpcHQpIHsKKyAgICAg
ICAgICAgIG1fd2lsbEV4ZWN1dGVJbk9yZGVyID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4ZWN1
dGlvbih0aGlzLCBtX2NhY2hlZFNjcmlwdCk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMTM3LDcgKzE0Miw3IEBAIHN0YXRpYyBib29sIGlzU3VwcG9ydGVkSmF2YVNj
cmlwdExhbmd1YWdlKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCiAgICAgICAgIGxhbmd1YWdlcy5h
ZGQoImphdmFzY3JpcHQxLjciKTsKICAgICAgICAgbGFuZ3VhZ2VzLmFkZCgibGl2ZXNjcmlwdCIp
OwogICAgICAgICBsYW5ndWFnZXMuYWRkKCJlY21hc2NyaXB0Iik7Ci0gICAgICAgIGxhbmd1YWdl
cy5hZGQoImpzY3JpcHQiKTsgICAgICAgICAgICAgICAgCisgICAgICAgIGxhbmd1YWdlcy5hZGQo
ImpzY3JpcHQiKTsKICAgICB9CiAKICAgICByZXR1cm4gbGFuZ3VhZ2VzLmNvbnRhaW5zKGxhbmd1
YWdlKTsKQEAgLTIzOCw3ICsyNDMsMTAgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlKENh
Y2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQogdm9pZCBTY3JpcHRFbGVtZW50Ojpub3RpZnlGaW5p
c2hlZChDYWNoZWRSZXNvdXJjZSogbykKIHsKICAgICBBU1NFUlRfVU5VU0VEKG8sIG8gPT0gbV9j
YWNoZWRTY3JpcHQpOwotICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+YXN5bmNTY3JpcHRSdW5u
ZXIoKS0+ZXhlY3V0ZVNjcmlwdFNvb24odGhpcywgbV9jYWNoZWRTY3JpcHQpOworICAgIGlmICht
X3dpbGxFeGVjdXRlSW5PcmRlcikKKyAgICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zY3Jp
cHRSdW5uZXIoKS0+cmVzdW1lKCk7CisgICAgZWxzZQorICAgICAgICBtX2VsZW1lbnQtPmRvY3Vt
ZW50KCktPnNjcmlwdFJ1bm5lcigpLT5leGVjdXRlU2NyaXB0U29vbih0aGlzLCBtX2NhY2hlZFNj
cmlwdCk7CiAgICAgbV9jYWNoZWRTY3JpcHQgPSAwOwogfQogCkBAIC0yNTUsNyArMjYzLDcgQEAg
Ym9vbCBTY3JpcHRFbGVtZW50OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0KCkgY29uc3QKICAg
ICAgICAgIFdpbklFIDcgYWNjZXB0cyBlY21hc2NyaXB0IGFuZCBqc2NyaXB0LCBidXQgTW96aWxs
YSAxLjggZG9lc24ndC4KICAgICAgICAgIE5laXRoZXIgTW96aWxsYSAxLjggbm9yIFdpbklFIDcg
YWNjZXB0IGxlYWRpbmcgb3IgdHJhaWxpbmcgd2hpdGVzcGFjZS4KICAgICAgICAgIFdlIHdhbnQg
dG8gYWNjZXB0IGFsbCB0aGUgdmFsdWVzIHRoYXQgZWl0aGVyIG9mIHRoZXNlIGJyb3dzZXJzIGFj
Y2VwdCwgYnV0IG5vdCBvdGhlciB2YWx1ZXMuCi0gICAgIAorCiAgICAgICAgICBGSVhNRTogSXMg
dGhpcyBIVE1MNSBjb21wbGlhbnQ/CiAgICAgICovCiAgICAgU3RyaW5nIHR5cGUgPSB0eXBlQXR0
cmlidXRlVmFsdWUoKTsKQEAgLTI2Niw3ICsyNzQsNyBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnNo
b3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSBjb25zdAogICAgICAgICBTdHJpbmcgbGFuZ3VhZ2Ug
PSBsYW5ndWFnZUF0dHJpYnV0ZVZhbHVlKCk7CiAgICAgICAgIGlmICghbGFuZ3VhZ2UuaXNFbXB0
eSgpICYmICFpc1N1cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZShsYW5ndWFnZSkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSAgICAKKyAgICB9CiAKICAgICAvLyBObyB0eXBlIG9y
IGxhbmd1YWdlIGlzIHNwZWNpZmllZCwgc28gd2UgYXNzdW1lIHRoZSBzY3JpcHQgdG8gYmUgSmF2
YVNjcmlwdC4KIApAQCAtMjc2LDEyICsyODQsMTIgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpzaG91
bGRFeGVjdXRlQXNKYXZhU2NyaXB0KCkgY29uc3QKICAgICAgICAgZm9yQXR0cmlidXRlID0gZm9y
QXR0cmlidXRlLnN0cmlwV2hpdGVTcGFjZSgpOwogICAgICAgICBpZiAoIWVxdWFsSWdub3JpbmdD
YXNlKGZvckF0dHJpYnV0ZSwgIndpbmRvdyIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICAgICAgCisKICAgICAgICAgZXZlbnRBdHRyaWJ1dGUgPSBldmVudEF0dHJpYnV0ZS5z
dHJpcFdoaXRlU3BhY2UoKTsKICAgICAgICAgaWYgKCFlcXVhbElnbm9yaW5nQ2FzZShldmVudEF0
dHJpYnV0ZSwgIm9ubG9hZCIpICYmICFlcXVhbElnbm9yaW5nQ2FzZShldmVudEF0dHJpYnV0ZSwg
Im9ubG9hZCgpIikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIAorCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuaCBiL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAppbmRleCAwN2M1OWRiODUxNzk5Njhi
YTBhNmNhZTFhYWJlYmYyZGQ2MGU3YjNkLi41MGE3YmZjNmQ0NjBlYzdkZWI0ZWU3NjVmMGYzODNk
ZWM4NzFlZGZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKKysrIGIv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC05MCw2ICs5MCw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2lzRXh0ZXJuYWxTY3JpcHQ7CiAgICAgYm9vbCBtX3dhc0FscmVhZHlTdGFydGVk
OwogICAgIGJvb2wgbV9oYXZlRmlyZWRMb2FkOworICAgIGJvb2wgbV93aWxsRXhlY3V0ZUluT3Jk
ZXI7CiB9OwogCiBTY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVsZW1lbnQoRWxlbWVudCopOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRt
bC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZTIyOWJiOGI5MWRjZmQ5NmFkZmE3NTU2YTBm
Mzk3N2IzZTZkODNlNS4uZDg5ZjNhNzMyYzFmODlkODY5ZDI2Y2I2MTgzM2U0ZDhkMzUzOTZiZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiBpbmxpbmUgSFRNTFNjcmlwdEVsZW1lbnQ6OkhUTUxTY3JpcHRF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwg
Ym9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIHdhc0FscmVhZHlTdGFydGVkKQogICAgIDog
SFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBTY3JpcHRFbGVtZW50KHRoaXMs
IHdhc0luc2VydGVkQnlQYXJzZXIsIHdhc0FscmVhZHlTdGFydGVkKQorICAgICwgbV9mb3JjZUFz
eW5jKCF3YXNJbnNlcnRlZEJ5UGFyc2VyKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKHNjcmlw
dFRhZykpOwogfQpAQCAtNTgsNiArNTksMTMgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6Y2hp
bGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UKICAg
ICBIVE1MRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hh
bmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3VudERlbHRhKTsKIH0KIAordm9pZCBIVE1MU2NyaXB0
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqIGF0dHIsIGJvb2wgcHJlc2VydmVE
ZWNscykKK3sKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IGFzeW5jQXR0cikKKyAgICAgICAgbV9m
b3JjZUFzeW5jID0gZmFsc2U7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoYXR0
ciwgcHJlc2VydmVEZWNscyk7Cit9CisKIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnBhcnNlTWFw
cGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKIHsKICAgICBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSA9IGF0dHItPm5hbWUoKTsKQEAgLTc4LDYgKzg2LDggQEAgdm9pZCBIVE1MU2Ny
aXB0RWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKIHsKICAgICBTY3JpcHRFbGVtZW50
OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oc291cmNlQXR0cmlidXRlVmFsdWUoKSk7CiAgICAgSFRN
TEVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOworICAgIGlmIChzb3VyY2VBdHRyaWJ1
dGVWYWx1ZSgpLmlzRW1wdHkoKSAmJiBzY3JpcHRDb250ZW50KCkuaXNFbXB0eSgpKQorICAgICAg
ICBtX2ZvcmNlQXN5bmMgPSAhaGFzQXR0cmlidXRlKGFzeW5jQXR0cik7CiB9CiAKIHZvaWQgSFRN
TFNjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKQEAgLTE1Miw3ICsxNjIsNyBA
QCBTdHJpbmcgSFRNTFNjcmlwdEVsZW1lbnQ6OmV2ZW50QXR0cmlidXRlVmFsdWUoKSBjb25zdAog
CiBib29sIEhUTUxTY3JpcHRFbGVtZW50Ojphc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gIWdldEF0dHJpYnV0ZShhc3luY0F0dHIpLmlzTnVsbCgpOworICAgIHJldHVy
biBhc3luYygpOwogfQogCiBib29sIEhUTUxTY3JpcHRFbGVtZW50OjpkZWZlckF0dHJpYnV0ZVZh
bHVlKCkgY29uc3QKQEAgLTE2MCw2ICsxNzAsMTcgQEAgYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6
ZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuICFnZXRBdHRyaWJ1dGUoZGVm
ZXJBdHRyKS5pc051bGwoKTsKIH0KIAordm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6c2V0QXN5bmMo
Ym9vbCBhc3luYykKK3sKKyAgICBzZXRCb29sZWFuQXR0cmlidXRlKGFzeW5jQXR0ciwgYXN5bmMp
OworICAgIG1fZm9yY2VBc3luYyA9IGZhbHNlOworfQorCitib29sIEhUTUxTY3JpcHRFbGVtZW50
Ojphc3luYygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZm9yY2VBc3luYyB8fCAhZ2V0QXR0cmli
dXRlKGFzeW5jQXR0cikuaXNOdWxsKCk7Cit9CisKIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmRp
c3BhdGNoTG9hZEV2ZW50KCkKIHsKICAgICBBU1NFUlQoIWhhdmVGaXJlZExvYWRFdmVudCgpKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggMDk3NzNjNWZiYzY0NTBlYTg3YWU4NGNlMWQy
NTdkNmUyYWU4NTdhZi4uNGU1ZDA3Y2Q0OTNiYTI4NmNkNWFkOGM2MmJjZGU2MjNjOGZhZGE3NyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvV2ViQ29y
ZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTM4LDYgKzM4LDkgQEAgcHVibGljOgogCiAg
ICAgS1VSTCBzcmMoKSBjb25zdDsKIAorICAgIHZvaWQgc2V0QXN5bmMoYm9vbCk7CisgICAgYm9v
bCBhc3luYygpIGNvbnN0OworCiBwcml2YXRlOgogICAgIEhUTUxTY3JpcHRFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9v
bCB3YXNBbHJlYWR5U3RhcnRlZCk7CiAKQEAgLTQ1LDYgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlZEZyb21Eb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9v
bCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSog
YWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CisgICAgdmlydHVhbCB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoQXR0cmlidXRlKiwgYm9vbCBwcmVzZXJ2ZURlY2xzID0gZmFs
c2UpOwogCiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKQEAgLTY0LDYgKzY4
LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hFcnJvckV2ZW50KCk7CiAK
ICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5k
Q2hpbGRyZW4oKSBjb25zdDsKKworICAgIGJvb2wgbV9mb3JjZUFzeW5jOwogfTsKIAogfSAvL25h
bWVzcGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCBi
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwKaW5kZXggMjBiNzMzMWJkOWQwZTdm
YmM3NjAzM2JlOGFiYmQ1M2RjYmMzZDMzZS4uZmE3OTljYjJjYjBkNDE0ZjZkOTczYzZhNDViMjAx
Mjc5YmVmY2QyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50Lmlk
bAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCkBAIC0yNCw3ICsyNCw3
IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWZvcl0gRE9NU3Ry
aW5nIGh0bWxGb3I7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGV2ZW50
OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjaGFyc2V0OwotICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXN5bmM7CisgICAgICAgIGF0dHJpYnV0ZSBi
b29sZWFuIGFzeW5jOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGVmZXI7
CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgc3JjOwogICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB0eXBlOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgYi9XZWJDb3JlL3BhZ2UvUGFnZUdyb3Vw
TG9hZERlZmVycmVyLmNwcAppbmRleCA5OGE0NzIwNDgwMmRhZjNjYjEzMDlmODIxOTcyN2ZmMWUy
MGQxYjRlLi5kM2IwZjA5Njg0NjQ1ZWM0MjZhNDQ3ODQ4MWExNjZkN2RlNmRjZjgwIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcAorKysgYi9XZWJDb3Jl
L3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcApAQCAtMjEsMTAgKzIxLDEwIEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwTG9hZERlZmVycmVyLmgiCiAKLSNp
bmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5l
ci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQ4LDcgKzQ4LDcgQEAgUGFnZUdyb3VwTG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVmZXJy
ZXIoUGFnZSogcGFnZSwgYm9vbCBkZWZlclNlbGYpCiAgICAgICAgICAgICAgICAgLy8gdGhlIGNv
bnN0cnVjdG9yIHdpbGwgbmVlZCB0byB0YWtlIGEgQWN0aXZlRE9NT2JqZWN0OjpSZWFzb25Gb3JT
dXNwZW5zaW9uLgogICAgICAgICAgICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gb3RoZXJQYWdl
LT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0
KCkpIHsKICAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnN1c3BlbmRBY3Rp
dmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVjdDo6V2lsbFNob3dEaWFsb2cpOwotICAgICAgICAg
ICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+YXN5bmNTY3JpcHRSdW5uZXIoKS0+c3VzcGVu
ZCgpOworICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVy
KCktPnN1c3BlbmQoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTY4LDcgKzY4LDcgQEAgUGFnZUdyb3VwTG9hZERlZmVycmVyOjp+UGFnZUdyb3VwTG9h
ZERlZmVycmVyKCkKIAogICAgICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWlu
RnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsK
ICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0
cygpOwotICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5hc3luY1NjcmlwdFJ1bm5l
cigpLT5yZXN1bWUoKTsKKyAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c2NyaXB0
UnVubmVyKCktPnJlc3VtZSgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75406</attachid>
            <date>2010-12-02 12:42:04 -0800</date>
            <delta_ts>2010-12-03 11:30:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>63974</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2MDk1MGMzLi4wYzY0MDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMTIt
MDIgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2
aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNj
cmlwdHMKKworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGggYXN5bmM9ZmFs
c2Ugd2lsbCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4KKyAgICAgICAg
U2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9u
X09yZGVyCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTE1CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2Fk
LWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2JpZy5q
czogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFz
eW5jLWF0dHItZXhwZWN0ZWQudHh0OiBBZGRlZCB0ZXN0IGNhc2VzIGZvciBmb3JjZUFzeW5jLgor
ICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0
bWw6IERpdHRvLgorCiAyMDEwLTEyLTAyICBOb2VsIEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWls
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLWxvYWQtZXhlY3V0ZS1p
bi1vcmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxl
bWVudC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZDdlN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4t
b3JkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQXR0ZW1wdHMgdG8gY2hlY2sgdGhh
dCBhc3luYz1mYWxzZSBlbmZvcmNlcyBleGVjdXRpb24gb3JkZXIgZHluYW1pY2FsbHkgaW5zZXJ0
ZWQgc2NyaXB0cy4gU2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3Jp
cHRfRXhlY3V0aW9uX09yZGVyCitiaWcKK2FzeW5jCitsb2FkCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2FkLWV4
ZWN1dGUtaW4tb3JkZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5h
YTc4OGYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlw
dEVsZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwKQEAgLTAsMCArMSwyOCBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkZWJ1ZygnbG9h
ZCcpO2ZpbmlzaEpTVGVzdCgpOyI+CitBdHRlbXB0cyB0byBjaGVjayB0aGF0IGFzeW5jPWZhbHNl
IGVuZm9yY2VzIGV4ZWN1dGlvbiBvcmRlciBkeW5hbWljYWxseSBpbnNlcnRlZCBzY3JpcHRzLgor
U2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9u
X09yZGVyCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIganNUZXN0SXNB
c3luYyA9IHRydWU7CisKK3Nsb3dseV9sb2FkZWRfc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic2NyaXB0Iik7CitzbG93bHlfbG9hZGVkX3NjcmlwdC5hc3luYyA9IGZhbHNlOworc2xv
d2x5X2xvYWRlZF9zY3JpcHQuc3JjID0gInJlc291cmNlcy9iaWcuanMiOworZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChzbG93bHlfbG9hZGVkX3Nj
cmlwdCk7CisKK3F1aWNrbHlfbG9hZGVkX3NjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNjcmlwdCIpOworcXVpY2tseV9sb2FkZWRfc2NyaXB0LmFzeW5jID0gZmFsc2U7CitxdWlja2x5
X2xvYWRlZF9zY3JpcHQuc3JjID0gInJlc291cmNlcy9hc3luYy5qcyI7Citkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHF1aWNrbHlfbG9hZGVkX3Nj
cmlwdCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Ny
aXB0RWxlbWVudC9yZXNvdXJjZXMvYmlnLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvcmVzb3VyY2VzL2JpZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4yZmJkMTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2JpZy5qcwpAQCAtMCwwICsxLDY4IEBACitkZWJ1
ZygiYmlnIik7CisvKgorICAgIEFib3V0IDE2S0IgdG8gbWFrZSB0aGlzIHJlc291cmNlIGxvYWQg
c2xvd2x5LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgor
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgor
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgor
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorKi8KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3lu
Yy1hdHRyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVt
ZW50L3NjcmlwdC1hc3luYy1hdHRyLWV4cGVjdGVkLnR4dAppbmRleCA3YjhiZjRkLi43YWE0OGYz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3Jp
cHQtYXN5bmMtYXR0ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0CkBAIC04LDggKzgs
MTMgQEAgUEFTUyBpc0FzeW5jKCdzMScpIGlzIHRydWUKIFBBU1MgaXNBc3luYygnczInKSBpcyB0
cnVlCiBQQVNTIGlzQXN5bmMoJ3MzJykgaXMgdHJ1ZQogUEFTUyBpc0FzeW5jKCdzNCcpIGlzIHRy
dWUKK1BBU1MgaXNBc3luYygnczUnKSBpcyB0cnVlCitQQVNTIGlzQXN5bmMoJ3M2JykgaXMgdHJ1
ZQorUEFTUyBpc0FzeW5jKCdzNycpIGlzIGZhbHNlCiBQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRl
ZFNjcmlwdEFzeW5jKHRydWUpIGlzIHRydWUKIFBBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2Ny
aXB0QXN5bmMoZmFsc2UpIGlzIGZhbHNlCitQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlw
dEFzeW5jKCJhc3luYyIpIGlzIHRydWUKK1BBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0
QXN5bmMobnVsbCkgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBU
RVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0
RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRtbAppbmRleCA0YTNmM2FmLi42ZDE1
MTZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9z
Y3JpcHQtYXN5bmMtYXR0ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3Jp
cHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWwKQEAgLTEyLDExICsxMiwxNCBAQAogPHNj
cmlwdCBpZD0iczIiIHNyYz0iaWdub3JlZC5qcyIgYXN5bmM9ImFzeW5jIj48L3NjcmlwdD4KIDxz
Y3JpcHQgaWQ9InMzIiBzcmM9Imlnbm9yZWQuanMiIGFzeW5jPSJBU1lOQyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IGlkPSJzNCIgc3JjPSJpZ25vcmVkLmpzIiBhc3luYz0idHJ1ZSI+PC9zY3JpcHQ+Cis8
c2NyaXB0IGlkPSJzNSI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJzNiIgYXN5bmM+PC9zY3JpcHQ+
Cis8c2NyaXB0IGlkPSJzNyIgYXN5bmM+PC9zY3JpcHQ+CiAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlv
bignVGhpcyB0ZXN0IGNoZWNrcyBmb3IgcHJvcGVyIHBhcnNpbmcgb2YgdGhlIGFzeW5jIGF0dHJp
YnV0ZSBvbiBIVE1MIHNjcmlwdCB0YWdzLicpOwogCi12YXIgbmV4dFNjcmlwdElEID0gMDsKK3Zh
ciBuZXh0U2NyaXB0SUQgPSA4OwogCiBmdW5jdGlvbiBpc0FzeW5jKGlkKQogewpAQCAtMjksMTkg
KzMyLDI2IEBAIGZ1bmN0aW9uIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKGFzeW5j
KQogICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAg
ICBzY3JpcHQuaWQgPSBpZDsKICAgICBzY3JpcHQuc3JjID0gInJlc291cmNlcy9zY3JpcHQtbG9h
ZC5qcyI7Ci0gICAgaWYgKGFzeW5jKQotICAgICAgICBzY3JpcHQuYXN5bmMgPSAiYXN5bmMiOwor
ICAgIGlmIChhc3luYyAhPSBudWxsKQorICAgICAgICBzY3JpcHQuYXN5bmMgPSBhc3luYzsKICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHNj
cmlwdCk7CiAgICAgcmV0dXJuIGlzQXN5bmMoaWQpOwogfQogCitkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiczciKS5yZW1vdmVBdHRyaWJ1dGUoImFzeW5jIik7CisKIHNob3VsZEJlRmFsc2UoImlz
QXN5bmMoJ3MwJykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNBc3luYygnczEnKSIpOwogc2hvdWxkQmVU
cnVlKCJpc0FzeW5jKCdzMicpIik7CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3MzJykiKTsKIHNo
b3VsZEJlVHJ1ZSgiaXNBc3luYygnczQnKSIpOworc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzNScp
Iik7CitzaG91bGRCZVRydWUoImlzQXN5bmMoJ3M2JykiKTsKK3Nob3VsZEJlRmFsc2UoImlzQXN5
bmMoJ3M3JykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5
bmModHJ1ZSkiKTsKIHNob3VsZEJlRmFsc2UoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFz
eW5jKGZhbHNlKSIpOworc2hvdWxkQmVUcnVlKCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRB
c3luYyhcImFzeW5jXCIpIik7CitzaG91bGRCZVRydWUoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNj
cmlwdEFzeW5jKG51bGwpIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJvaWQubWsgYi9XZWJDb3JlL0FuZHJvaWQu
bWsKaW5kZXggMTU0NDY3OS4uYTRjNWQwMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLm1r
CisrKyBiL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtOTQsNyArOTQsNiBAQCBMT0NBTF9TUkNfRklM
RVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAljc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUu
Y3BwIFwKIAlcCiAJZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAotCWRvbS9Bc3luY1NjcmlwdFJ1
bm5lci5jcHAgXAogCWRvbS9BdHRyLmNwcCBcCiAJZG9tL0F0dHJpYnV0ZS5jcHAgXAogCWRvbS9C
ZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgXApAQCAtMTY4LDYgKzE2Nyw3IEBAIExPQ0FMX1NS
Q19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCWRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQ
YXJzZXIuY3BwIFwKIAlkb20vU2NyaXB0RWxlbWVudC5jcHAgXAogCWRvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcCBcCisJZG9tL1NjcmlwdFJ1bm5lci5jcHAgXAogCWRvbS9TZWxlY3RFbGVt
ZW50LmNwcCBcCiAJZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwIFwKIAlkb20vU3BhY2VTcGxpdFN0
cmluZy5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggM2JhZDgwZi4uOGIyODJhNCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC03ODcsNyAr
Nzg3LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1W
YWx1ZS5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwCi0gICAgZG9tL0FzeW5jU2Ny
aXB0UnVubmVyLmNwcAogICAgIGRvbS9BdHRyLmNwcAogICAgIGRvbS9BdHRyaWJ1dGUuY3BwCiAg
ICAgZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcApAQCAtODY2LDYgKzg2NSw3IEBAIFNF
VChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcAog
ICAgIGRvbS9TY3JpcHRFbGVtZW50LmNwcAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmNwcAorICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuY3Bw
CiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcu
Y3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDQ5OWRlMmIuLjkzNzNjNzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTAtMTItMDIgIEphbWVzIFNp
bW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2aW9yIGZvciBlbnN1
cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNjcmlwdHMKKworICAg
ICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGggYXN5bmM9ZmFsc2Ugd2lsbCBsb2Fk
IGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4KKyAgICAgICAgU2VlOiBodHRwOi8v
d2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9uX09yZGVyCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTE1CisKKyAg
ICAgICAgVGVzdDogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRl
LWluLW9yZGVyLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6IFJlbmFtZSBBc3luY1Njcmlw
dFJ1bm5lciAtPiBTY3JpcHRSdW5uZXIuCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IERpdHRv
LgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBEaXR0by4KKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUu
Y3BwOiBEaXR0by4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OkRvY3VtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6fkRvY3VtZW50KTogRGl0dG8uCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6c2NyaXB0UnVubmVyKTogRGl0dG8uCisgICAgICAgICogZG9t
L1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6U2Ny
aXB0RWxlbWVudCk6IFRyYWNrIGhvdyBzY3JpcHQgc2hvdWxkIGV4ZWN1dGUuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCk6IFF1ZXVlIGluIG9y
ZGVyIGlmIGFzeW5jPWZhbHNlLgorICAgICAgICAoV2ViQ29yZTo6aXNTdXBwb3J0ZWRKYXZhU2Ny
aXB0TGFuZ3VhZ2UpOiBGaXggd2hpdGVzcGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVs
ZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKTogRXhlY3V0ZSBpbi1vcmRlciBvciBhc3luYyBzY3JpcHQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpzaG91bGRFeGVjdXRlQXNKYXZhU2Ny
aXB0KTogRml4IHdoaXRlc3BhY2UuCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBkb20vU2NyaXB0UnVubmVyLmNwcDogUmVuYW1lZCBmcm9tIFdlYkNvcmUvZG9tL0Fz
eW5jU2NyaXB0UnVubmVyLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6U2Ny
aXB0UnVubmVyKTogQWRkIGluLW9yZGVyIHNjcmlwdCBxdWV1ZS4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5lcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4ZWN1dGlvbik6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdFJ1bm5lcjo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6dGlt
ZXJGaXJlZCk6IFJ1biBpbi1vcmRlciBzY3JpcHRzIHRoYXQgaGF2ZSBsb2FkZWQgdG9vLgorICAg
ICAgICAqIGRvbS9TY3JpcHRSdW5uZXIuaDogUmVuYW1lZCBmcm9tIFdlYkNvcmUvZG9tL0FzeW5j
U2NyaXB0UnVubmVyLmguCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6Omhhc1BlbmRpbmdTY3JpcHRzKTogQ2hl
Y2sgZm9yIGluLW9yZGVyIHNjcmlwdHMgdG9vLgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OkhUTUxTY3Jp
cHRFbGVtZW50KTogQWRkIG1fZm9yY2VBc3luYyB0byB0cmFjayBpZiB1c2VyIGV4cGxpY2l0bHkg
cmVxdWVzdGVkIGFzeW5jLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQpOiBVbnNldCBtX2ZvcmNlQXN5bmMgb24gYXN5bmMgY2hhbmdlLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbik6
IFNldCBtX2ZvcmNlQXN5bmMgaWYgc2NyaXB0IGJlY29tZXMgZHluYW1pYyAobm8gc3JjIGFuZCBu
byBjb250ZW50KS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50Ojphc3luY0F0
dHJpYnV0ZVZhbHVlKTogQWxpYXMgZm9yIGFzeW5jKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
U2NyaXB0RWxlbWVudDo6c2V0QXN5bmMpOiBBZGRlZC4gSWYgY2FsbGVkLCB1bnNldCBtX2ZvcmNl
QXN5bmMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6YXN5bmMpOiBBZGRl
ZC4gUmV0dXJuIG1fZm9yY2VBc3luYyBpZiBpdCdzIHNldC4KKyAgICAgICAgKiBodG1sL0hUTUxT
Y3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGw6IFJl
bW92ZWQgUmVmbGVjdCBmcm9tIGFzeW5jIGZvciBjdXN0b20gYmVoYXZpb3IuCisgICAgICAgICog
cGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdy
b3VwTG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXIpOiBSZW5hbWUgQXN5bmNTY3Jp
cHRSdW5uZXIgLT4gU2NyaXB0UnVubmVyLgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9h
ZERlZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVyKTogRGl0dG8uCisKIDIwMTAtMTItMDIg
IENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBLZW5uZXRoIFJ1c3NlbGwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA5ZWMyNGNiLi43OTE1MGM3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAg
LTEwNjIsOCArMTA2Miw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCiAJV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmNw
cCBcCiAJV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmggXAotCVdlYkNvcmUvZG9tL0FzeW5j
U2NyaXB0UnVubmVyLmNwcCBcCi0JV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaCBcCiAJ
V2ViQ29yZS9kb20vQXR0ci5jcHAgXAogCVdlYkNvcmUvZG9tL0F0dHIuaCBcCiAJV2ViQ29yZS9k
b20vQXR0cmlidXRlLmNwcCBcCkBAIC0xMjQ4LDYgKzEyNDYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVdlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBcCiAJV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAgXAogCVdlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCBcCisJV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcCBcCisJV2ViQ29yZS9kb20vU2Ny
aXB0UnVubmVyLmggXAogCVdlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwIFwKIAlXZWJDb3Jl
L2RvbS9TZWxlY3RFbGVtZW50LmggXAogCVdlYkNvcmUvZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3Bw
IFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggODc3MzU4Mi4uMzA2YTVmZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMTE3LDggKzExMTcsNiBAQAogICAg
ICAgICAgICAgJ2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgnLAogICAg
ICAgICAgICAgJ2RvbS9BY3RpdmVET01PYmplY3QuY3BwJywKICAgICAgICAgICAgICdkb20vQWN0
aXZlRE9NT2JqZWN0LmgnLAotICAgICAgICAgICAgJ2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAn
LAotICAgICAgICAgICAgJ2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oJywKICAgICAgICAgICAgICdk
b20vQXR0ci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9BdHRyLmgnLAogICAgICAgICAgICAgJ2Rv
bS9BdHRyaWJ1dGUuY3BwJywKQEAgLTEzMDEsNiArMTI5OSw4IEBACiAgICAgICAgICAgICAnZG9t
L1NjcmlwdEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwJywKICAgICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKKyAg
ICAgICAgICAgICdkb20vU2NyaXB0UnVubmVyLmNwcCcsCisgICAgICAgICAgICAnZG9tL1Njcmlw
dFJ1bm5lci5oJywKICAgICAgICAgICAgICdkb20vU2VsZWN0RWxlbWVudC5jcHAnLAogICAgICAg
ICAgICAgJ2RvbS9TZWxlY3RFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9TZWxlY3Rvck5v
ZGVMaXN0LmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9X
ZWJDb3JlLnBybwppbmRleCA2M2IwMmI4Li5mM2Q0OTRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTY4MSw3ICs2ODEsNiBAQCBT
T1VSQ0VTICs9IFwKICAgICBjc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCBcCiAgICAgY3NzL1dlYktp
dENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAgICAgZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAot
ICAgIGRvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAgXAogICAgIGRvbS9BdHRyLmNwcCBcCiAgICAg
ZG9tL0F0dHJpYnV0ZS5jcHAgXAogICAgIGRvbS9CZWZvcmVQcm9jZXNzRXZlbnQuY3BwIFwKQEAg
LTc2Myw2ICs3NjIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50
UGFyc2VyLmNwcCBcCiAgICAgZG9tL1NjcmlwdEVsZW1lbnQuY3BwIFwKICAgICBkb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAgXAorICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwIFwKICAgICBk
b20vU2VsZWN0RWxlbWVudC5jcHAgXAogICAgIGRvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAg
ICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCmluZGV4IDkyY2Y0MmIuLmI0MmZhNmIgMTAwNzU1Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagpAQCAtNDA4NDYsNjIgKzQwODQ2LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJ
CQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEFzeW5jU2NyaXB0UnVubmVyLmNwcCIK
LQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2lu
MzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0J
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9f
Q0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJ
CQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1
Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVh
c2VfTFRDR3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJ
CQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIuLlxkb21cQXN5bmNTY3JpcHRSdW5uZXIuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8Rmls
ZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEF0b21pY1N0cmluZ0xpc3QuaCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+CkBAIC00NTI2Miw2ICs0NTIwNiw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2NyaXB0UnVubmVyLmNwcCIKKwkJCQk+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRD
R3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxk
b21cU2NyaXB0UnVubmVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxTZWxlY3RFbGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDc4NjA0YjAuLjgxZmM4NzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yNjUzLDggKzI2NTMsOCBAQAogCQk4OUQwOERBMTEyMjI4NDUxMDAxMjQxREYg
LyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4OUQwOEQ5RTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxl
U3lzdGVtQ2FsbGJhY2tzLmggKi87IH07CiAJCThBMTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBE
b2N1bWVudExvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDhBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4QTMw
OUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBMzA5QzlFMTIzOTUwQkUw
MENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oICovOyB9OwotCQk4QTQxM0FFMDEy
MDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBB
c3luY1NjcmlwdFJ1bm5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCThBNDEzQUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5l
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQx
M0FERjEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3BwICovOyB9OworCQk4
QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUg
LyogU2NyaXB0UnVubmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJOEE0MTNBRTExMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERjEy
MDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCAqLzsgfTsKIAkJOEE3Q0M5NkIxMjA3
NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBN0NDOTZBMTIwNzZENzMwMDFENDU4OCAvKiBQZW5kaW5n
U2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOEE3Q0M5NzAxMjA3NkY4QTAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE3Q0M5NkYxMjA3NkY4QTAw
MUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuY3BwICovOyB9OwogCQk4QTgxQkY4NTExRENGRDkwMDBE
QTJCOTggLyogUmVzb3VyY2VMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4QTgxQkY4NDExRENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VM
b2FkVGltaW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTg3OTIsOCArODc5Miw4IEBACiAJCTg5RDA4RDlFMTIyMjg0NTEwMDEyNDFERiAvKiBB
c3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCThBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRMb2FkVGltaW5nLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBMzA5QzlFMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0
aW5nTGV2ZWxJbmNyZW1lbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBO
ZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oOyBwYXRoID0gcGFyc2VyL05lc3RpbmdMZXZlbEluY3Jl
bWVudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCThBNDEzQURFMTIwN0JCQTUw
MDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXN5bmNTY3JpcHRSdW5uZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyog
U2NyaXB0UnVubmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFJ1
bm5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4QTQxM0FERjEyMDdCQkE1MDA4
MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcmlwdFJ1bm5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThB
N0NDOTZBMTIwNzZENzMwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBlbmRpbmdTY3JpcHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOEE3Q0M5NkYxMjA3NkY4QTAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVuZGluZ1NjcmlwdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBS
ZXNvdXJjZUxvYWRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVz
b3VyY2VMb2FkVGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODE5NSw4
ICsxODE5NSw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlFMUM0REU2RDBFQTc1QzY1MDAyM0ND
RDYgLyogQWN0aXZlRE9NT2JqZWN0LmNwcCAqLywKIAkJCQlFMUM0REU2ODBFQTc1QzFFMDAyM0ND
RDYgLyogQWN0aXZlRE9NT2JqZWN0LmggKi8sCi0JCQkJOEE0MTNBREYxMjA3QkJBNTAwODIwMTZF
IC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLywKLQkJCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAx
NkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuaCAqLywKIAkJCQlBOEM0QTdGQzA5RDU2MzI3MDAwM0FD
OEQgLyogQXR0ci5jcHAgKi8sCiAJCQkJQThDNEE3RkIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIu
aCAqLywKIAkJCQk5M0VFQzFFNTA5QzI4Nzc3MDBDNTE1RDEgLyogQXR0ci5pZGwgKi8sCkBAIC0x
ODQyOSw2ICsxODQyNyw4IEBACiAJCQkJMDhBNDg0NzYwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlw
dEVsZW1lbnQuaCAqLywKIAkJCQlFMTFDOURBRjBFQjM2OTk1MDBFNDA5REIgLyogU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5jcHAgKi8sCiAJCQkJRTExQzlEOUEwRUIzNjgxMjAwRTQwOURCIC8qIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCAqLywKKwkJCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUg
LyogU2NyaXB0UnVubmVyLmNwcCAqLywKKwkJCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyog
U2NyaXB0UnVubmVyLmggKi8sCiAJCQkJMDg0QUVCRTIwRkI1MDVGQTAwMzg0ODNFIC8qIFNlbGVj
dEVsZW1lbnQuY3BwICovLAogCQkJCTA4NEFFQkUzMEZCNTA1RkEwMDM4NDgzRSAvKiBTZWxlY3RF
bGVtZW50LmggKi8sCiAJCQkJQkM3RkE2ODAwRDFGMTY3OTAwREIyMkE5IC8qIFNlbGVjdG9yTm9k
ZUxpc3QuY3BwICovLApAQCAtMTg1OTksNyArMTg1OTksNiBAQAogCQkJCTk3NkQ2Qzc3MTIyQjhB
M0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVXcml0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NkQ2
QzkzMTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVXcml0ZXJDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIwMTQ5RTdFMTFBNEIyMTUwMDE5NkE3QiAvKiBBc3luY0ltYWdlUmVzaXplci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJOEE0MTNBRTAxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2Ny
aXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M2MUYwMTEyMDk1Qzg3MDA3QTNDNjcg
LyogQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNEE4
MEQwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzRBODBC
MDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyaWJ1dGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjA4NDUs
NiArMjA4NDQsNyBAQAogCQkJCTlGNzIzMDRGMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9m
aWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5RkEzN0VFNDExNzJGQzgwMDBDNENENTUgLyogU2Ny
aXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTlGNzIzMDUxMTExODRCNDEwMEFE
MDEyNiAvKiBTY3JpcHRQcm9maWxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOEE0MTNBRTAxMjA3
QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0Q0Mx
MEEwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNFNTRGRDM4MTAxNkQ5QTYwMDhCNDRDOCAvKiBTY3JpcHRTb3VyY2VQcm92aWRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDFDNzYwQjEwRURFMDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRl
LmggaW4gSGVhZGVycyAqLywKQEAgLTIxNzc4LDcgKzIxNzc4LDYgQEAKIAkJCQk0OUVFQ0RERjEw
NTAzQzI0MDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg5RDA4RDlGMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjAxNDlFN0QxMUE0QjIxNTAwMTk2QTdCIC8qIEFzeW5jSW1hZ2VSZXNpemVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCThBNDEzQUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3lu
Y1NjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEM0QTgwRTA5RDU2MzI3MDAw
M0FDOEQgLyogQXR0ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEM0QTgwQzA5RDU2MzI3MDAw
M0FDOEQgLyogQXR0cmlidXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNEY3MTM4MEQ1QTZF
RkYwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yMzUyNCw2ICsyMzUyMyw3IEBACiAJCQkJNDFGMDY2RTUwRjY0QkNGNjAwQTA3RUFD
IC8qIFNjcmlwdE9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGMzNGMDI4MjEyMDk0N0Yy
MDBFNTc0M0EgLyogU2NyaXB0UHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RjcyMzA1
MDExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJOEE0MTNBRTExMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0MTI3RDUzNzBGOEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTM0Q0MwRTEwRUQzOUQ2RjAwQTY1OEYyIC8qIFNjcmlwdFZhbHVl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNBM0JGNjdDMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3Jv
bGxBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0Fz
eW5jU2NyaXB0UnVubmVyLmNwcCBiL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Y1ZjFiNi4uMDAwMDAwMAotLS0gYS9XZWJD
b3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmgiCi0KLSNpbmNs
dWRlICJDYWNoZWRTY3JpcHQuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotQXN5bmNTY3JpcHRSdW5uZXI6OkFzeW5jU2NyaXB0UnVubmVyKERvY3VtZW50KiBkb2N1
bWVudCkKLSAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCi0gICAgLCBtX3RpbWVyKHRoaXMsICZB
c3luY1NjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCkKLXsKLSAgICBBU1NFUlQoZG9jdW1lbnQpOwot
fQotCi1Bc3luY1NjcmlwdFJ1bm5lcjo6fkFzeW5jU2NyaXB0UnVubmVyKCkKLXsKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kpIHsK
LSAgICAgICAgbV9zY3JpcHRzVG9FeGVjdXRlU29vbltpXS5maXJzdC0+ZWxlbWVudCgpLT5kZXJl
ZigpOyAvLyBCYWxhbmNlcyByZWYoKSBpbiBleGVjdXRlU2NyaXB0U29vbigpLgotICAgICAgICBt
X2RvY3VtZW50LT5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7Ci0gICAgfQotfQotCi12
b2lkIEFzeW5jU2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbihTY3JpcHRFbGVtZW50KiBk
YXRhLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCkKLXsK
LSAgICBBU1NFUlRfQVJHKGRhdGEsIGRhdGEpOwotCi0gICAgRWxlbWVudCogZWxlbWVudCA9IGRh
dGEtPmVsZW1lbnQoKTsKLSAgICBBU1NFUlQoZWxlbWVudCk7Ci0gICAgQVNTRVJUKGVsZW1lbnQt
PmluRG9jdW1lbnQoKSk7Ci0KLSAgICBtX2RvY3VtZW50LT5pbmNyZW1lbnRMb2FkRXZlbnREZWxh
eUNvdW50KCk7Ci0gICAgbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5hcHBlbmQobWFrZV9wYWlyKGRh
dGEsIGNhY2hlZFNjcmlwdCkpOwotICAgIGVsZW1lbnQtPnJlZigpOyAvLyBCYWxhbmNlZCBieSBk
ZXJlZigpcyBpbiB0aW1lckZpcmVkKCkgYW5kIGR0b3IuCi0gICAgaWYgKCFtX3RpbWVyLmlzQWN0
aXZlKCkpCi0gICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwotfQotCi12b2lkIEFzeW5j
U2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKLXsKLSAgICBtX3RpbWVyLnN0b3AoKTsKLX0KLQotdm9p
ZCBBc3luY1NjcmlwdFJ1bm5lcjo6cmVzdW1lKCkKLXsKLSAgICBpZiAoaGFzUGVuZGluZ1Njcmlw
dHMoKSkKLSAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7Ci19Ci0KLXZvaWQgQXN5bmNT
Y3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoVGltZXI8QXN5bmNTY3JpcHRSdW5uZXI+KiB0aW1lcikK
LXsKLSAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV90aW1lcik7Ci0KLSAgICBS
ZWZQdHI8RG9jdW1lbnQ+IHByb3RlY3QobV9kb2N1bWVudCk7Ci0gICAgCi0gICAgVmVjdG9yPHBh
aXI8U2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gPiA+
IHNjcmlwdHM7Ci0gICAgc2NyaXB0cy5zd2FwKG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24pOwotICAg
IHNpemVfdCBzaXplID0gc2NyaXB0cy5zaXplKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBzaXplOyArK2kpIHsKLSAgICAgICAgc2NyaXB0c1tpXS5maXJzdC0+ZXhlY3V0ZShzY3JpcHRz
W2ldLnNlY29uZC5nZXQoKSk7Ci0gICAgICAgIHNjcmlwdHNbaV0uZmlyc3QtPmVsZW1lbnQoKS0+
ZGVyZWYoKTsgLy8gQmFsYW5jZXMgcmVmKCkgaW4gZXhlY3V0ZVNjcmlwdFNvb24oKS4KLSAgICAg
ICAgbV9kb2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwotICAgIH0KLX0K
LQotfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaCBiL1dlYkNv
cmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDFhMDUxYTguLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaAor
KysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEFzeW5jU2NyaXB0UnVubmVyX2gKLSNkZWZp
bmUgQXN5bmNTY3JpcHRSdW5uZXJfaAotCi0jaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUu
aCIKLSNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENhY2hlZFNjcmlwdDsKLWNsYXNzIERvY3VtZW50Owot
Y2xhc3MgU2NyaXB0RWxlbWVudDsKLSAgICAKLWNsYXNzIEFzeW5jU2NyaXB0UnVubmVyIDogcHVi
bGljIE5vbmNvcHlhYmxlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxBc3luY1Nj
cmlwdFJ1bm5lcj4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkgeyByZXR1cm4gbmV3IEFzeW5j
U2NyaXB0UnVubmVyKGRvY3VtZW50KTsgfQotICAgIH5Bc3luY1NjcmlwdFJ1bm5lcigpOwotCi0g
ICAgdm9pZCBleGVjdXRlU2NyaXB0U29vbihTY3JpcHRFbGVtZW50KiwgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU2NyaXB0Pik7Ci0gICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0
IHsgcmV0dXJuICFtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKTsgfQotICAgIHZvaWQg
c3VzcGVuZCgpOwotICAgIHZvaWQgcmVzdW1lKCk7Ci0KLXByaXZhdGU6Ci0gICAgQXN5bmNTY3Jp
cHRSdW5uZXIoRG9jdW1lbnQqKTsKLQotICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxBc3luY1Nj
cmlwdFJ1bm5lcj4qKTsKLQotICAgIERvY3VtZW50KiBtX2RvY3VtZW50OwotICAgIFZlY3Rvcjxz
dGQ6OnBhaXI8U2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlw
dD4gPiA+IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb247Ci0gICAgVGltZXI8QXN5bmNTY3JpcHRSdW5u
ZXI+IG1fdGltZXI7Ci19OwotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20v
RE9NQWxsSW5PbmUuY3BwIGIvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IDJmMzUx
MGQuLjQ5YjhlYWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysg
Yi9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKIC8vIFRoaXMg
YWxsLWluLW9uZSBjcHAgZmlsZSBjdXRzIGRvd24gb24gdGVtcGxhdGUgYmxvYXQgdG8gYWxsb3cg
dXMgdG8gYnVpbGQgb3VyIFdpbmRvd3MgcmVsZWFzZSBidWlsZC4KIAogI2luY2x1ZGUgIkFjdGl2
ZURPTU9iamVjdC5jcHAiCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuY3BwIgogI2luY2x1
ZGUgIkF0dHIuY3BwIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5jcHAiCiAjaW5jbHVkZSAiQmVmb3Jl
UHJvY2Vzc0V2ZW50LmNwcCIKQEAgLTEwMiw2ICsxMDEsNyBAQAogI2luY2x1ZGUgIlJlZ2lzdGVy
ZWRFdmVudExpc3RlbmVyLmNwcCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmNwcCIKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIu
Y3BwIgogI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAiCiAjaW5jbHVkZSAi
U2VsZWN0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JOb2RlTGlzdC5jcHAiCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggYzA4OGU0ZS4uNzllYzFhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjksNyArMjksNiBAQAog
CiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRyb2xs
ZXIuaCIKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgIkF0dHIuaCIK
ICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJDREFUQVNlY3Rpb24uaCIKQEAgLTEy
MCw2ICsxMTksNyBAQAogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJT
Y3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgorI2luY2x1
ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVk
ZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgpA
QCAtMzc4LDcgKzM3OCw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0
IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCwgY29uCiAgICAgLCBtX3N0YXJ0
VGltZShjdXJyZW50VGltZSgpKQogICAgICwgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZChm
YWxzZSkKICAgICAsIG1fZXh0cmFMYXlvdXREZWxheSgwKQotICAgICwgbV9hc3luY1NjcmlwdFJ1
bm5lcihBc3luY1NjcmlwdFJ1bm5lcjo6Y3JlYXRlKHRoaXMpKQorICAgICwgbV9zY3JpcHRSdW5u
ZXIoU2NyaXB0UnVubmVyOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3htbFZlcnNpb24oIjEuMCIp
CiAgICAgLCBtX3htbFN0YW5kYWxvbmUoZmFsc2UpCiAgICAgLCBtX3NhdmVkUmVuZGVyZXIoMCkK
QEAgLTU0Niw3ICs1NDYsNyBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKICAgICBBU1NFUlQobV9y
YW5nZXMuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQoIW1fc3R5bGVSZWNhbGNUaW1lci5pc0FjdGl2
ZSgpKTsKIAotICAgIG1fYXN5bmNTY3JpcHRSdW5uZXIuY2xlYXIoKTsKKyAgICBtX3NjcmlwdFJ1
bm5lci5jbGVhcigpOwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggNDc2ZTI1Yi4uN2JlMjQ1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAor
KysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01MCw3ICs1MCw2IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgQXN5bmNTY3JpcHRSdW5uZXI7CiBjbGFzcyBBdHRyOwogY2xh
c3MgQVhPYmplY3RDYWNoZTsKIGNsYXNzIENEQVRBU2VjdGlvbjsKQEAgLTEwOSw2ICsxMDgsNyBA
QCBjbGFzcyBSZW5kZXJBcmVuYTsKIGNsYXNzIFJlbmRlclZpZXc7CiBjbGFzcyBTY3JpcHRhYmxl
RG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBTY3JpcHRFbGVtZW50RGF0YTsKK2NsYXNzIFNjcmlwdFJ1
bm5lcjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVl
OwogY2xhc3MgU2VnbWVudGVkU3RyaW5nOwpAQCAtODY5LDcgKzg2OSw3IEBAIHB1YmxpYzoKIAog
ICAgIGludCBkb2NJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jSUQ7IH0KICAgICAKLSAgICBBc3lu
Y1NjcmlwdFJ1bm5lciogYXN5bmNTY3JpcHRSdW5uZXIoKSB7IHJldHVybiBtX2FzeW5jU2NyaXB0
UnVubmVyLmdldCgpOyB9CisgICAgU2NyaXB0UnVubmVyKiBzY3JpcHRSdW5uZXIoKSB7IHJldHVy
biBtX3NjcmlwdFJ1bm5lci5nZXQoKTsgfQogCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgdm9pZCBh
cHBseVhTTFRyYW5zZm9ybShQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qIHBpKTsKQEAgLTEyNzMsNyAr
MTI3Myw3IEBAIHByaXZhdGU6CiAgICAgLy8gcG9pbnRzIGR1cmluZyB0aGUgbGlmZXRpbWUgb2Yg
dGhlIERvY3VtZW50LgogICAgIGludCBtX2V4dHJhTGF5b3V0RGVsYXk7CiAgICAgCi0gICAgT3du
UHRyPEFzeW5jU2NyaXB0UnVubmVyPiBtX2FzeW5jU2NyaXB0UnVubmVyOworICAgIE93blB0cjxT
Y3JpcHRSdW5uZXI+IG1fc2NyaXB0UnVubmVyOwogCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgT3du
UHRyPFRyYW5zZm9ybVNvdXJjZT4gbV90cmFuc2Zvcm1Tb3VyY2U7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
CmluZGV4IDc0ZjI1ODAuLjEwZjFhMWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0yNCw3ICsy
NCw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgog
Ci0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQu
aCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCkBAIC0zNyw2ICszNiw3IEBACiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
U2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUg
IlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTU4LDYgKzU4LDcgQEAg
U2NyaXB0RWxlbWVudDo6U2NyaXB0RWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBib29sIHdhc0lu
c2VydGVkQnlQYXJzZXIsIGJvb2wgd2EKICAgICAsIG1faXNFeHRlcm5hbFNjcmlwdChmYWxzZSkK
ICAgICAsIG1fd2FzQWxyZWFkeVN0YXJ0ZWQod2FzQWxyZWFkeVN0YXJ0ZWQpCiAgICAgLCBtX2hh
dmVGaXJlZExvYWQoZmFsc2UpCisgICAgLCBtX3dpbGxFeGVjdXRlSW5PcmRlcihmYWxzZSkKIHsK
ICAgICBBU1NFUlQobV9lbGVtZW50KTsKIH0KQEAgLTc2LDYgKzc3LDEwIEBAIHZvaWQgU2NyaXB0
RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpCiAK
ICAgICBpZiAoIXNvdXJjZVVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgcmVxdWVzdFNjcmlwdChz
b3VyY2VVcmwpOworICAgICAgICBpZiAoIWlzQXN5bmNocm9ub3VzKCkgJiYgbV9jYWNoZWRTY3Jp
cHQpIHsKKyAgICAgICAgICAgIG1fd2lsbEV4ZWN1dGVJbk9yZGVyID0gdHJ1ZTsKKyAgICAgICAg
ICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0Rm9y
SW5PcmRlckV4ZWN1dGlvbih0aGlzLCBtX2NhY2hlZFNjcmlwdCk7CisgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTM3LDcgKzE0Miw3IEBAIHN0YXRpYyBib29sIGlzU3Vw
cG9ydGVkSmF2YVNjcmlwdExhbmd1YWdlKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCiAgICAgICAg
IGxhbmd1YWdlcy5hZGQoImphdmFzY3JpcHQxLjciKTsKICAgICAgICAgbGFuZ3VhZ2VzLmFkZCgi
bGl2ZXNjcmlwdCIpOwogICAgICAgICBsYW5ndWFnZXMuYWRkKCJlY21hc2NyaXB0Iik7Ci0gICAg
ICAgIGxhbmd1YWdlcy5hZGQoImpzY3JpcHQiKTsgICAgICAgICAgICAgICAgCisgICAgICAgIGxh
bmd1YWdlcy5hZGQoImpzY3JpcHQiKTsKICAgICB9CiAKICAgICByZXR1cm4gbGFuZ3VhZ2VzLmNv
bnRhaW5zKGxhbmd1YWdlKTsKQEAgLTIzOCw3ICsyNDMsMTAgQEAgdm9pZCBTY3JpcHRFbGVtZW50
OjpleGVjdXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQogdm9pZCBTY3JpcHRFbGVtZW50
Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogbykKIHsKICAgICBBU1NFUlRfVU5VU0VE
KG8sIG8gPT0gbV9jYWNoZWRTY3JpcHQpOwotICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+YXN5
bmNTY3JpcHRSdW5uZXIoKS0+ZXhlY3V0ZVNjcmlwdFNvb24odGhpcywgbV9jYWNoZWRTY3JpcHQp
OworICAgIGlmIChtX3dpbGxFeGVjdXRlSW5PcmRlcikKKyAgICAgICAgbV9lbGVtZW50LT5kb2N1
bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+cmVzdW1lKCk7CisgICAgZWxzZQorICAgICAgICBtX2Vs
ZW1lbnQtPmRvY3VtZW50KCktPnNjcmlwdFJ1bm5lcigpLT5leGVjdXRlU2NyaXB0U29vbih0aGlz
LCBtX2NhY2hlZFNjcmlwdCk7CiAgICAgbV9jYWNoZWRTY3JpcHQgPSAwOwogfQogCkBAIC0yNTUs
NyArMjYzLDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0
KCkgY29uc3QKICAgICAgICAgIFdpbklFIDcgYWNjZXB0cyBlY21hc2NyaXB0IGFuZCBqc2NyaXB0
LCBidXQgTW96aWxsYSAxLjggZG9lc24ndC4KICAgICAgICAgIE5laXRoZXIgTW96aWxsYSAxLjgg
bm9yIFdpbklFIDcgYWNjZXB0IGxlYWRpbmcgb3IgdHJhaWxpbmcgd2hpdGVzcGFjZS4KICAgICAg
ICAgIFdlIHdhbnQgdG8gYWNjZXB0IGFsbCB0aGUgdmFsdWVzIHRoYXQgZWl0aGVyIG9mIHRoZXNl
IGJyb3dzZXJzIGFjY2VwdCwgYnV0IG5vdCBvdGhlciB2YWx1ZXMuCi0gICAgIAorCiAgICAgICAg
ICBGSVhNRTogSXMgdGhpcyBIVE1MNSBjb21wbGlhbnQ/CiAgICAgICovCiAgICAgU3RyaW5nIHR5
cGUgPSB0eXBlQXR0cmlidXRlVmFsdWUoKTsKQEAgLTI2Niw3ICsyNzQsNyBAQCBib29sIFNjcmlw
dEVsZW1lbnQ6OnNob3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSBjb25zdAogICAgICAgICBTdHJp
bmcgbGFuZ3VhZ2UgPSBsYW5ndWFnZUF0dHJpYnV0ZVZhbHVlKCk7CiAgICAgICAgIGlmICghbGFu
Z3VhZ2UuaXNFbXB0eSgpICYmICFpc1N1cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZShsYW5ndWFn
ZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSAgICAKKyAgICB9CiAKICAgICAv
LyBObyB0eXBlIG9yIGxhbmd1YWdlIGlzIHNwZWNpZmllZCwgc28gd2UgYXNzdW1lIHRoZSBzY3Jp
cHQgdG8gYmUgSmF2YVNjcmlwdC4KIApAQCAtMjc2LDEyICsyODQsMTIgQEAgYm9vbCBTY3JpcHRF
bGVtZW50OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0KCkgY29uc3QKICAgICAgICAgZm9yQXR0
cmlidXRlID0gZm9yQXR0cmlidXRlLnN0cmlwV2hpdGVTcGFjZSgpOwogICAgICAgICBpZiAoIWVx
dWFsSWdub3JpbmdDYXNlKGZvckF0dHJpYnV0ZSwgIndpbmRvdyIpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICAgICAgCisKICAgICAgICAgZXZlbnRBdHRyaWJ1dGUgPSBldmVu
dEF0dHJpYnV0ZS5zdHJpcFdoaXRlU3BhY2UoKTsKICAgICAgICAgaWYgKCFlcXVhbElnbm9yaW5n
Q2FzZShldmVudEF0dHJpYnV0ZSwgIm9ubG9hZCIpICYmICFlcXVhbElnbm9yaW5nQ2FzZShldmVu
dEF0dHJpYnV0ZSwgIm9ubG9hZCgpIikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQotICAgIAorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuaCBiL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAppbmRleCAwN2M1
OWRiLi41MGE3YmZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC05MCw2ICs5MCw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2lzRXh0ZXJuYWxTY3JpcHQ7CiAgICAgYm9vbCBtX3dhc0FscmVhZHlTdGFy
dGVkOwogICAgIGJvb2wgbV9oYXZlRmlyZWRMb2FkOworICAgIGJvb2wgbV93aWxsRXhlY3V0ZUlu
T3JkZXI7CiB9OwogCiBTY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVsZW1lbnQoRWxlbWVudCopOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcCBiL1dlYkNvcmUvZG9tL1Nj
cmlwdFJ1bm5lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBjMmVh
NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTAs
MCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmgiCisKKyNp
bmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkVsZW1lbnQuaCIKKyNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworU2NyaXB0UnVubmVyOjpTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50KQor
ICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKKyAgICAsIG1fdGltZXIodGhpcywgJlNjcmlwdFJ1
bm5lcjo6dGltZXJGaXJlZCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworfQorCitTY3JpcHRS
dW5uZXI6On5TY3JpcHRSdW5uZXIoKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9z
Y3JpcHRzVG9FeGVjdXRlU29vbi5zaXplKCk7ICsraSkgeworICAgICAgICBtX3NjcmlwdHNUb0V4
ZWN1dGVTb29uW2ldLmZpcnN0LT5lbGVtZW50KCktPmRlcmVmKCk7IC8vIEJhbGFuY2VzIHJlZigp
IGluIGV4ZWN1dGVTY3JpcHRTb29uKCkuCisgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExv
YWRFdmVudERlbGF5Q291bnQoKTsKKyAgICB9CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLnNpemUoKTsgKytpKSB7CisgICAgICAgIG1fc2NyaXB0
c1RvRXhlY3V0ZUluT3JkZXJbaV0uZmlyc3QtPmVsZW1lbnQoKS0+ZGVyZWYoKTsgLy8gQmFsYW5j
ZXMgcmVmKCkgaW4gZXhlY3V0ZVNjcmlwdFNvb24oKS4KKyAgICAgICAgbV9kb2N1bWVudC0+ZGVj
cmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIH0KK30KKwordm9pZCBTY3JpcHRSdW5u
ZXI6OmV4ZWN1dGVTY3JpcHRTb29uKFNjcmlwdEVsZW1lbnQqIGRhdGEsIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0KQoreworICAgIEFTU0VSVF9BUkcoZGF0
YSwgZGF0YSk7CisKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gZGF0YS0+ZWxlbWVudCgpOworICAg
IEFTU0VSVChlbGVtZW50KTsKKyAgICBBU1NFUlQoZWxlbWVudC0+aW5Eb2N1bWVudCgpKTsKKwor
ICAgIG1fZG9jdW1lbnQtPmluY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBtX3Nj
cmlwdHNUb0V4ZWN1dGVTb29uLmFwcGVuZChtYWtlX3BhaXIoZGF0YSwgY2FjaGVkU2NyaXB0KSk7
CisgICAgZWxlbWVudC0+cmVmKCk7IC8vIEJhbGFuY2VkIGJ5IGRlcmVmKClzIGluIHRpbWVyRmly
ZWQoKSBhbmQgZHRvci4KKyAgICBpZiAoIW1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV90
aW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgU2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlw
dEZvckluT3JkZXJFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogZGF0YSwgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCit7CisgICAgQVNTRVJUX0FSRyhkYXRh
LCBkYXRhKTsKKworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBkYXRhLT5lbGVtZW50KCk7CisgICAg
QVNTRVJUKGVsZW1lbnQpOworICAgIEFTU0VSVChlbGVtZW50LT5pbkRvY3VtZW50KCkpOworCisg
ICAgbV9kb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIG1fc2Ny
aXB0c1RvRXhlY3V0ZUluT3JkZXIuYXBwZW5kKG1ha2VfcGFpcihkYXRhLCBjYWNoZWRTY3JpcHQp
KTsKKyAgICBlbGVtZW50LT5yZWYoKTsgLy8gQmFsYW5jZWQgYnkgZGVyZWYoKXMgaW4gdGltZXJG
aXJlZCgpIGFuZCBkdG9yLgorfQorCit2b2lkIFNjcmlwdFJ1bm5lcjo6c3VzcGVuZCgpCit7Cisg
ICAgbV90aW1lci5zdG9wKCk7Cit9CisKK3ZvaWQgU2NyaXB0UnVubmVyOjpyZXN1bWUoKQorewor
ICAgIGlmIChoYXNQZW5kaW5nU2NyaXB0cygpKQorICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hv
dCgwKTsKK30KKwordm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoVGltZXI8U2NyaXB0UnVu
bmVyPiogdGltZXIpCit7CisgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGlt
ZXIpOworCisgICAgUmVmUHRyPERvY3VtZW50PiBwcm90ZWN0KG1fZG9jdW1lbnQpOworCisgICAg
VmVjdG9yPHBhaXI8U2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNj
cmlwdD4gPiA+IHNjcmlwdHM7CisgICAgc2NyaXB0cy5zd2FwKG1fc2NyaXB0c1RvRXhlY3V0ZVNv
b24pOworICAgIHNpemVfdCBzaXplID0gc2NyaXB0cy5zaXplKCk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgc2NyaXB0c1tpXS5maXJzdC0+ZXhlY3V0
ZShzY3JpcHRzW2ldLnNlY29uZC5nZXQoKSk7CisgICAgICAgIHNjcmlwdHNbaV0uZmlyc3QtPmVs
ZW1lbnQoKS0+ZGVyZWYoKTsgLy8gQmFsYW5jZXMgcmVmKCkgaW4gZXhlY3V0ZVNjcmlwdFNvb24o
KS4KKyAgICAgICAgbV9kb2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwor
ICAgIH0KKworICAgIHdoaWxlICghbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5KCkg
JiYgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlclswXS5zZWNvbmQtPmlzTG9hZGVkKCkpIHsKKyAg
ICAgICAgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlclswXS5maXJzdC0+ZXhlY3V0ZShtX3Njcmlw
dHNUb0V4ZWN1dGVJbk9yZGVyWzBdLnNlY29uZC5nZXQoKSk7CisgICAgICAgIG1fc2NyaXB0c1Rv
RXhlY3V0ZUluT3JkZXJbMF0uZmlyc3QtPmVsZW1lbnQoKS0+ZGVyZWYoKTsgLy8gQmFsYW5jZXMg
cmVmKCkgaW4gZXhlY3V0ZVNjcmlwdFNvb24oKS4KKyAgICAgICAgbV9kb2N1bWVudC0+ZGVjcmVt
ZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgICAgICBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9y
ZGVyLnJlbW92ZSgwKTsKKyAgICB9Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1Nj
cmlwdFJ1bm5lci5oIGIvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uODQ1ZmQ0MAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
ZG9tL1NjcmlwdFJ1bm5lci5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFNjcmlwdFJ1bm5lcl9oCisjZGVm
aW5lIFNjcmlwdFJ1bm5lcl9oCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgor
I2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVkU2NyaXB0OworY2xhc3MgRG9jdW1lbnQ7CitjbGFz
cyBTY3JpcHRFbGVtZW50OworCitjbGFzcyBTY3JpcHRSdW5uZXIgOiBwdWJsaWMgTm9uY29weWFi
bGUgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFNjcmlwdFJ1bm5lcj4gY3JlYXRl
KERvY3VtZW50KiBkb2N1bWVudCkgeyByZXR1cm4gbmV3IFNjcmlwdFJ1bm5lcihkb2N1bWVudCk7
IH0KKyAgICB+U2NyaXB0UnVubmVyKCk7CisKKyAgICB2b2lkIGV4ZWN1dGVTY3JpcHRTb29uKFNj
cmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+KTsKKyAgICB2
b2lkIHF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiwgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0Pik7CisgICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0
cygpIGNvbnN0IHsgcmV0dXJuICFtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAh
bV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5pc0VtcHR5KCk7IH0KKyAgICB2b2lkIHN1c3BlbmQo
KTsKKyAgICB2b2lkIHJlc3VtZSgpOworCitwcml2YXRlOgorICAgIFNjcmlwdFJ1bm5lcihEb2N1
bWVudCopOworCisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPFNjcmlwdFJ1bm5lcj4qKTsKKwor
ICAgIERvY3VtZW50KiBtX2RvY3VtZW50OworICAgIFZlY3RvcjxzdGQ6OnBhaXI8U2NyaXB0RWxl
bWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gPiA+IG1fc2NyaXB0c1Rv
RXhlY3V0ZUluT3JkZXI7CisgICAgVmVjdG9yPHN0ZDo6cGFpcjxTY3JpcHRFbGVtZW50KiwgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiA+ID4gbV9zY3JpcHRzVG9FeGVjdXRlU29v
bjsKKyAgICBUaW1lcjxTY3JpcHRSdW5uZXI+IG1fdGltZXI7Cit9OworCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZTIyOWJiOC4uZDg5ZjNhNyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiBpbmxpbmUgSFRNTFNjcmlwdEVsZW1lbnQ6OkhUTUxTY3JpcHRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCB3
YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIHdhc0FscmVhZHlTdGFydGVkKQogICAgIDogSFRNTEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBTY3JpcHRFbGVtZW50KHRoaXMsIHdhc0lu
c2VydGVkQnlQYXJzZXIsIHdhc0FscmVhZHlTdGFydGVkKQorICAgICwgbV9mb3JjZUFzeW5jKCF3
YXNJbnNlcnRlZEJ5UGFyc2VyKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKHNjcmlwdFRhZykp
OwogfQpAQCAtNTgsNiArNTksMTMgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6Y2hpbGRyZW5D
aGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UKICAgICBIVE1M
RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdlLCBh
ZnRlckNoYW5nZSwgY2hpbGRDb3VudERlbHRhKTsKIH0KIAordm9pZCBIVE1MU2NyaXB0RWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqIGF0dHIsIGJvb2wgcHJlc2VydmVEZWNscykK
K3sKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IGFzeW5jQXR0cikKKyAgICAgICAgbV9mb3JjZUFz
eW5jID0gZmFsc2U7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoYXR0ciwgcHJl
c2VydmVEZWNscyk7Cit9CisKIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0
cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKIHsKICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSA9IGF0dHItPm5hbWUoKTsKQEAgLTc4LDYgKzg2LDggQEAgdm9pZCBIVE1MU2NyaXB0RWxl
bWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKIHsKICAgICBTY3JpcHRFbGVtZW50OjpmaW5p
c2hQYXJzaW5nQ2hpbGRyZW4oc291cmNlQXR0cmlidXRlVmFsdWUoKSk7CiAgICAgSFRNTEVsZW1l
bnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOworICAgIGlmIChzb3VyY2VBdHRyaWJ1dGVWYWx1
ZSgpLmlzRW1wdHkoKSAmJiBzY3JpcHRDb250ZW50KCkuaXNFbXB0eSgpKQorICAgICAgICBtX2Zv
cmNlQXN5bmMgPSAhaGFzQXR0cmlidXRlKGFzeW5jQXR0cik7CiB9CiAKIHZvaWQgSFRNTFNjcmlw
dEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKQEAgLTE1Miw3ICsxNjIsNyBAQCBTdHJp
bmcgSFRNTFNjcmlwdEVsZW1lbnQ6OmV2ZW50QXR0cmlidXRlVmFsdWUoKSBjb25zdAogCiBib29s
IEhUTUxTY3JpcHRFbGVtZW50Ojphc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gIWdldEF0dHJpYnV0ZShhc3luY0F0dHIpLmlzTnVsbCgpOworICAgIHJldHVybiBhc3lu
YygpOwogfQogCiBib29sIEhUTUxTY3JpcHRFbGVtZW50OjpkZWZlckF0dHJpYnV0ZVZhbHVlKCkg
Y29uc3QKQEAgLTE2MCw2ICsxNzAsMTcgQEAgYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6ZGVmZXJB
dHRyaWJ1dGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuICFnZXRBdHRyaWJ1dGUoZGVmZXJBdHRy
KS5pc051bGwoKTsKIH0KIAordm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6c2V0QXN5bmMoYm9vbCBh
c3luYykKK3sKKyAgICBzZXRCb29sZWFuQXR0cmlidXRlKGFzeW5jQXR0ciwgYXN5bmMpOworICAg
IG1fZm9yY2VBc3luYyA9IGZhbHNlOworfQorCitib29sIEhUTUxTY3JpcHRFbGVtZW50Ojphc3lu
YygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZm9yY2VBc3luYyB8fCAhZ2V0QXR0cmlidXRlKGFz
eW5jQXR0cikuaXNOdWxsKCk7Cit9CisKIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmRpc3BhdGNo
TG9hZEV2ZW50KCkKIHsKICAgICBBU1NFUlQoIWhhdmVGaXJlZExvYWRFdmVudCgpKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hU
TUxTY3JpcHRFbGVtZW50LmgKaW5kZXggMDk3NzNjNS4uNGU1ZDA3YyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTY3Jp
cHRFbGVtZW50LmgKQEAgLTM4LDYgKzM4LDkgQEAgcHVibGljOgogCiAgICAgS1VSTCBzcmMoKSBj
b25zdDsKIAorICAgIHZvaWQgc2V0QXN5bmMoYm9vbCk7CisgICAgYm9vbCBhc3luYygpIGNvbnN0
OworCiBwcml2YXRlOgogICAgIEhUTUxTY3JpcHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCosIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCB3YXNBbHJlYWR5U3Rh
cnRlZCk7CiAKQEAgLTQ1LDYgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgaW5z
ZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVu
dCgpOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJz
ZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAw
LCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CisgICAgdmlydHVhbCB2b2lkIGF0dHJpYnV0ZUNo
YW5nZWQoQXR0cmlidXRlKiwgYm9vbCBwcmVzZXJ2ZURlY2xzID0gZmFsc2UpOwogCiAgICAgdmly
dHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OwogICAgIHZpcnR1YWwg
dm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKQEAgLTY0LDYgKzY4LDggQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hFcnJvckV2ZW50KCk7CiAKICAgICBQYXNzUmVmUHRy
PEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hpbGRyZW4oKSBjb25z
dDsKKworICAgIGJvb2wgbV9mb3JjZUFzeW5jOwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5pZGwKaW5kZXggMjBiNzMzMS4uZmE3OTljYiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TFNjcmlwdEVsZW1lbnQuaWRsCkBAIC0yNCw3ICsyNCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0PWZvcl0gRE9NU3RyaW5nIGh0bWxGb3I7CiAgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGV2ZW50OwogICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBjaGFyc2V0OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJv
b2xlYW4gYXN5bmM7CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGFzeW5jOwogICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGVmZXI7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdCwgVVJMXSBET01TdHJpbmcgc3JjOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyB0eXBlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZl
cnJlci5jcHAgYi9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcAppbmRleCA5
OGE0NzIwLi5kM2IwZjA5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERl
ZmVycmVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcApA
QCAtMjEsMTAgKzIxLDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGFnZUdy
b3VwTG9hZERlZmVycmVyLmgiCiAKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5o
IgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDcgKzQ4LDcgQEAgUGFnZUdyb3VwTG9hZERlZmVy
cmVyOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXIoUGFnZSogcGFnZSwgYm9vbCBkZWZlclNlbGYpCiAg
ICAgICAgICAgICAgICAgLy8gdGhlIGNvbnN0cnVjdG9yIHdpbGwgbmVlZCB0byB0YWtlIGEgQWN0
aXZlRE9NT2JqZWN0OjpSZWFzb25Gb3JTdXNwZW5zaW9uLgogICAgICAgICAgICAgICAgIGZvciAo
RnJhbWUqIGZyYW1lID0gb3RoZXJQYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJh
bWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgZnJhbWUt
PmRvY3VtZW50KCktPnN1c3BlbmRBY3RpdmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVjdDo6V2ls
bFNob3dEaWFsb2cpOwotICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+YXN5
bmNTY3JpcHRSdW5uZXIoKS0+c3VzcGVuZCgpOworICAgICAgICAgICAgICAgICAgICBmcmFtZS0+
ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCktPnN1c3BlbmQoKTsKICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTY4LDcgKzY4LDcgQEAgUGFnZUdyb3VwTG9h
ZERlZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVyKCkKIAogICAgICAgICAgICAgZm9yIChG
cmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRy
ZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQo
KS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0cygpOwotICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1
bWVudCgpLT5hc3luY1NjcmlwdFJ1bm5lcigpLT5yZXN1bWUoKTsKKyAgICAgICAgICAgICAgICBm
cmFtZS0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCktPnJlc3VtZSgpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75516</attachid>
            <date>2010-12-03 11:30:16 -0800</date>
            <delta_ts>2010-12-03 12:00:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>63986</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzOWFhNzE5Li41MjVkYTYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMTIt
MDMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2
aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNj
cmlwdHMKKworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGggYXN5bmM9ZmFs
c2Ugd2lsbCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4KKyAgICAgICAg
U2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9u
X09yZGVyCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTE1CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2Fk
LWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2JpZy5q
czogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFz
eW5jLWF0dHItZXhwZWN0ZWQudHh0OiBBZGRlZCB0ZXN0IGNhc2VzIGZvciBmb3JjZUFzeW5jLgor
ICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0
bWw6IERpdHRvLgorCiAyMDEwLTEyLTAzICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQWRkIG1pc3NpbmcgZXhwZWN0ZWQgcmVzdWx0cy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLWxvYWQtZXhlY3V0ZS1pbi1v
cmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVu
dC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZDdlN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3Jk
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQXR0ZW1wdHMgdG8gY2hlY2sgdGhhdCBh
c3luYz1mYWxzZSBlbmZvcmNlcyBleGVjdXRpb24gb3JkZXIgZHluYW1pY2FsbHkgaW5zZXJ0ZWQg
c2NyaXB0cy4gU2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRf
RXhlY3V0aW9uX09yZGVyCitiaWcKK2FzeW5jCitsb2FkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2FkLWV4ZWN1
dGUtaW4tb3JkZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTc4
OGYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVs
ZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwKQEAgLTAsMCArMSwyOCBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkZWJ1ZygnbG9hZCcp
O2ZpbmlzaEpTVGVzdCgpOyI+CitBdHRlbXB0cyB0byBjaGVjayB0aGF0IGFzeW5jPWZhbHNlIGVu
Zm9yY2VzIGV4ZWN1dGlvbiBvcmRlciBkeW5hbWljYWxseSBpbnNlcnRlZCBzY3JpcHRzLgorU2Vl
OiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9uX09y
ZGVyCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK3Nsb3dseV9sb2FkZWRfc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic2NyaXB0Iik7CitzbG93bHlfbG9hZGVkX3NjcmlwdC5hc3luYyA9IGZhbHNlOworc2xvd2x5
X2xvYWRlZF9zY3JpcHQuc3JjID0gInJlc291cmNlcy9iaWcuanMiOworZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChzbG93bHlfbG9hZGVkX3Njcmlw
dCk7CisKK3F1aWNrbHlfbG9hZGVkX3NjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNj
cmlwdCIpOworcXVpY2tseV9sb2FkZWRfc2NyaXB0LmFzeW5jID0gZmFsc2U7CitxdWlja2x5X2xv
YWRlZF9zY3JpcHQuc3JjID0gInJlc291cmNlcy9hc3luYy5qcyI7Citkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHF1aWNrbHlfbG9hZGVkX3Njcmlw
dCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0
RWxlbWVudC9yZXNvdXJjZXMvYmlnLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlw
dEVsZW1lbnQvcmVzb3VyY2VzL2JpZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4yZmJkMTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2JpZy5qcwpAQCAtMCwwICsxLDY4IEBACitkZWJ1Zygi
YmlnIik7CisvKgorICAgIEFib3V0IDE2S0IgdG8gbWFrZSB0aGlzIHJlc291cmNlIGxvYWQgc2xv
d2x5LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgor
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgor
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgor
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorKi8KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1h
dHRyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50
L3NjcmlwdC1hc3luYy1hdHRyLWV4cGVjdGVkLnR4dAppbmRleCA3YjhiZjRkLi43YWE0OGYzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQt
YXN5bmMtYXR0ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0CkBAIC04LDggKzgsMTMg
QEAgUEFTUyBpc0FzeW5jKCdzMScpIGlzIHRydWUKIFBBU1MgaXNBc3luYygnczInKSBpcyB0cnVl
CiBQQVNTIGlzQXN5bmMoJ3MzJykgaXMgdHJ1ZQogUEFTUyBpc0FzeW5jKCdzNCcpIGlzIHRydWUK
K1BBU1MgaXNBc3luYygnczUnKSBpcyB0cnVlCitQQVNTIGlzQXN5bmMoJ3M2JykgaXMgdHJ1ZQor
UEFTUyBpc0FzeW5jKCdzNycpIGlzIGZhbHNlCiBQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNj
cmlwdEFzeW5jKHRydWUpIGlzIHRydWUKIFBBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0
QXN5bmMoZmFsc2UpIGlzIGZhbHNlCitQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFz
eW5jKCJhc3luYyIpIGlzIHRydWUKK1BBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5
bmMobnVsbCkgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxl
bWVudC9zY3JpcHQtYXN5bmMtYXR0ci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRtbAppbmRleCA0YTNmM2FmLi42ZDE1MTZh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3Jp
cHQtYXN5bmMtYXR0ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWwKQEAgLTEyLDExICsxMiwxNCBAQAogPHNjcmlw
dCBpZD0iczIiIHNyYz0iaWdub3JlZC5qcyIgYXN5bmM9ImFzeW5jIj48L3NjcmlwdD4KIDxzY3Jp
cHQgaWQ9InMzIiBzcmM9Imlnbm9yZWQuanMiIGFzeW5jPSJBU1lOQyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IGlkPSJzNCIgc3JjPSJpZ25vcmVkLmpzIiBhc3luYz0idHJ1ZSI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IGlkPSJzNSI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJzNiIgYXN5bmM+PC9zY3JpcHQ+Cis8
c2NyaXB0IGlkPSJzNyIgYXN5bmM+PC9zY3JpcHQ+CiAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbign
VGhpcyB0ZXN0IGNoZWNrcyBmb3IgcHJvcGVyIHBhcnNpbmcgb2YgdGhlIGFzeW5jIGF0dHJpYnV0
ZSBvbiBIVE1MIHNjcmlwdCB0YWdzLicpOwogCi12YXIgbmV4dFNjcmlwdElEID0gMDsKK3ZhciBu
ZXh0U2NyaXB0SUQgPSA4OwogCiBmdW5jdGlvbiBpc0FzeW5jKGlkKQogewpAQCAtMjksMTkgKzMy
LDI2IEBAIGZ1bmN0aW9uIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKGFzeW5jKQog
ICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICBz
Y3JpcHQuaWQgPSBpZDsKICAgICBzY3JpcHQuc3JjID0gInJlc291cmNlcy9zY3JpcHQtbG9hZC5q
cyI7Ci0gICAgaWYgKGFzeW5jKQotICAgICAgICBzY3JpcHQuYXN5bmMgPSAiYXN5bmMiOworICAg
IGlmIChhc3luYyAhPSBudWxsKQorICAgICAgICBzY3JpcHQuYXN5bmMgPSBhc3luYzsKICAgICBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHNjcmlw
dCk7CiAgICAgcmV0dXJuIGlzQXN5bmMoaWQpOwogfQogCitkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiczciKS5yZW1vdmVBdHRyaWJ1dGUoImFzeW5jIik7CisKIHNob3VsZEJlRmFsc2UoImlzQXN5
bmMoJ3MwJykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNBc3luYygnczEnKSIpOwogc2hvdWxkQmVUcnVl
KCJpc0FzeW5jKCdzMicpIik7CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3MzJykiKTsKIHNob3Vs
ZEJlVHJ1ZSgiaXNBc3luYygnczQnKSIpOworc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzNScpIik7
CitzaG91bGRCZVRydWUoImlzQXN5bmMoJ3M2JykiKTsKK3Nob3VsZEJlRmFsc2UoImlzQXN5bmMo
J3M3JykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMo
dHJ1ZSkiKTsKIHNob3VsZEJlRmFsc2UoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5j
KGZhbHNlKSIpOworc2hvdWxkQmVUcnVlKCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3lu
YyhcImFzeW5jXCIpIik7CitzaG91bGRCZVRydWUoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlw
dEFzeW5jKG51bGwpIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJvaWQubWsgYi9XZWJDb3JlL0FuZHJvaWQubWsK
aW5kZXggMTU0NDY3OS4uYTRjNWQwMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLm1rCisr
KyBiL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtOTQsNyArOTQsNiBAQCBMT0NBTF9TUkNfRklMRVMg
Oj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAljc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3Bw
IFwKIAlcCiAJZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAotCWRvbS9Bc3luY1NjcmlwdFJ1bm5l
ci5jcHAgXAogCWRvbS9BdHRyLmNwcCBcCiAJZG9tL0F0dHJpYnV0ZS5jcHAgXAogCWRvbS9CZWZv
cmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgXApAQCAtMTY4LDYgKzE2Nyw3IEBAIExPQ0FMX1NSQ19G
SUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCWRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJz
ZXIuY3BwIFwKIAlkb20vU2NyaXB0RWxlbWVudC5jcHAgXAogCWRvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmNwcCBcCisJZG9tL1NjcmlwdFJ1bm5lci5jcHAgXAogCWRvbS9TZWxlY3RFbGVtZW50
LmNwcCBcCiAJZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwIFwKIAlkb20vU3BhY2VTcGxpdFN0cmlu
Zy5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggZGViYWE1NC4uODc3OGZhNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC03ODYsNyArNzg2
LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwCi0gICAgZG9tL0FzeW5jU2NyaXB0
UnVubmVyLmNwcAogICAgIGRvbS9BdHRyLmNwcAogICAgIGRvbS9BdHRyaWJ1dGUuY3BwCiAgICAg
ZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcApAQCAtODY1LDYgKzg2NCw3IEBAIFNFVChX
ZWJDb3JlX1NPVVJDRVMKICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcAogICAg
IGRvbS9TY3JpcHRFbGVtZW50LmNwcAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cAorICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuY3BwCiAg
ICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3Bw
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDRkOGI0NDUuLmNlMTY2ZTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTAtMTItMDMgIEphbWVzIFNpbW9u
c2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2aW9yIGZvciBlbnN1cmlu
ZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNjcmlwdHMKKworICAgICAg
ICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGggYXN5bmM9ZmFsc2Ugd2lsbCBsb2FkIGlu
IHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4KKyAgICAgICAgU2VlOiBodHRwOi8vd2lr
aS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9uX09yZGVyCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTE1CisKKyAgICAg
ICAgVGVzdDogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRlLWlu
LW9yZGVyLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6IFJlbmFtZSBBc3luY1NjcmlwdFJ1
bm5lciAtPiBTY3JpcHRSdW5uZXIuCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IERpdHRvLgor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3Bw
OiBEaXR0by4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OkRvY3VtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
fkRvY3VtZW50KTogRGl0dG8uCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6c2NyaXB0UnVubmVyKTogRGl0dG8uCisgICAgICAgICogZG9tL1Nj
cmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6U2NyaXB0
RWxlbWVudCk6IFRyYWNrIGhvdyBzY3JpcHQgc2hvdWxkIGV4ZWN1dGUuCisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCk6IFF1ZXVlIGluIG9yZGVy
IGlmIGFzeW5jPWZhbHNlLgorICAgICAgICAoV2ViQ29yZTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0
TGFuZ3VhZ2UpOiBGaXggd2hpdGVzcGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1l
bnQ6Om5vdGlmeUZpbmlzaGVkKTogRXhlY3V0ZSBpbi1vcmRlciBvciBhc3luYyBzY3JpcHQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0
KTogRml4IHdoaXRlc3BhY2UuCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBkb20vU2NyaXB0UnVubmVyLmNwcDogUmVuYW1lZCBmcm9tIFdlYkNvcmUvZG9tL0FzeW5j
U2NyaXB0UnVubmVyLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6U2NyaXB0
UnVubmVyKTogQWRkIGluLW9yZGVyIHNjcmlwdCBxdWV1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5lcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRS
dW5uZXI6OnF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4ZWN1dGlvbik6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0UnVubmVyOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dFJ1bm5lcjo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6dGltZXJG
aXJlZCk6IFJ1biBpbi1vcmRlciBzY3JpcHRzIHRoYXQgaGF2ZSBsb2FkZWQgdG9vLgorICAgICAg
ICAqIGRvbS9TY3JpcHRSdW5uZXIuaDogUmVuYW1lZCBmcm9tIFdlYkNvcmUvZG9tL0FzeW5jU2Ny
aXB0UnVubmVyLmguCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6Omhhc1BlbmRpbmdTY3JpcHRzKTogQ2hlY2sg
Zm9yIGluLW9yZGVyIHNjcmlwdHMgdG9vLgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OkhUTUxTY3JpcHRF
bGVtZW50KTogQWRkIG1fZm9yY2VBc3luYyB0byB0cmFjayBpZiB1c2VyIGV4cGxpY2l0bHkgcmVx
dWVzdGVkIGFzeW5jLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQpOiBVbnNldCBtX2ZvcmNlQXN5bmMgb24gYXN5bmMgY2hhbmdlLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbik6IFNl
dCBtX2ZvcmNlQXN5bmMgaWYgc2NyaXB0IGJlY29tZXMgZHluYW1pYyAobm8gc3JjIGFuZCBubyBj
b250ZW50KS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50Ojphc3luY0F0dHJp
YnV0ZVZhbHVlKTogQWxpYXMgZm9yIGFzeW5jKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Ny
aXB0RWxlbWVudDo6c2V0QXN5bmMpOiBBZGRlZC4gSWYgY2FsbGVkLCB1bnNldCBtX2ZvcmNlQXN5
bmMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6YXN5bmMpOiBBZGRlZC4g
UmV0dXJuIG1fZm9yY2VBc3luYyBpZiBpdCdzIHNldC4KKyAgICAgICAgKiBodG1sL0hUTUxTY3Jp
cHRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGw6IFJlbW92
ZWQgUmVmbGVjdCBmcm9tIGFzeW5jIGZvciBjdXN0b20gYmVoYXZpb3IuCisgICAgICAgICogcGFn
ZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3Vw
TG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXIpOiBSZW5hbWUgQXN5bmNTY3JpcHRS
dW5uZXIgLT4gU2NyaXB0UnVubmVyLgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9hZERl
ZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVyKTogRGl0dG8uCisKIDIwMTAtMTItMDMgIERh
bmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
VG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCmluZGV4IDllYzI0Y2IuLjc5MTUwYzcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTA2Miw4
ICsxMDYyLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2Nzcy9XZWJLaXRDU1NU
cmFuc2Zvcm1WYWx1ZS5oIFwKIAlXZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKIAlX
ZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaCBcCi0JV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRS
dW5uZXIuY3BwIFwKLQlXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oIFwKIAlXZWJDb3Jl
L2RvbS9BdHRyLmNwcCBcCiAJV2ViQ29yZS9kb20vQXR0ci5oIFwKIAlXZWJDb3JlL2RvbS9BdHRy
aWJ1dGUuY3BwIFwKQEAgLTEyNDgsNiArMTI0Niw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIFwKIAlXZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcCBcCiAJV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIFwK
KwlXZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIFwKKwlXZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuaCBcCiAJV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAgXAogCVdlYkNvcmUvZG9tL1Nl
bGVjdEVsZW1lbnQuaCBcCiAJV2ViQ29yZS9kb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAgXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBmOTFkOTAzLi5jZTIzYjEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTExNyw4ICsxMTE3LDYgQEAKICAgICAgICAgICAg
ICdkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oJywKICAgICAgICAgICAg
ICdkb20vQWN0aXZlRE9NT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0FjdGl2ZURPTU9i
amVjdC5oJywKLSAgICAgICAgICAgICdkb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwJywKLSAgICAg
ICAgICAgICdkb20vQXN5bmNTY3JpcHRSdW5uZXIuaCcsCiAgICAgICAgICAgICAnZG9tL0F0dHIu
Y3BwJywKICAgICAgICAgICAgICdkb20vQXR0ci5oJywKICAgICAgICAgICAgICdkb20vQXR0cmli
dXRlLmNwcCcsCkBAIC0xMzAxLDYgKzEyOTksOCBAQAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRF
bGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCcs
CiAgICAgICAgICAgICAnZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCcsCisgICAgICAgICAg
ICAnZG9tL1NjcmlwdFJ1bm5lci5jcHAnLAorICAgICAgICAgICAgJ2RvbS9TY3JpcHRSdW5uZXIu
aCcsCiAgICAgICAgICAgICAnZG9tL1NlbGVjdEVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdk
b20vU2VsZWN0RWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JOb2RlTGlzdC5j
cHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5w
cm8KaW5kZXggNjNiMDJiOC4uZjNkNDk0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBy
bworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC02ODEsNyArNjgxLDYgQEAgU09VUkNFUyAr
PSBcCiAgICAgY3NzL1dlYktpdENTU01hdHJpeC5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5jcHAgXAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKLSAgICBkb20v
QXN5bmNTY3JpcHRSdW5uZXIuY3BwIFwKICAgICBkb20vQXR0ci5jcHAgXAogICAgIGRvbS9BdHRy
aWJ1dGUuY3BwIFwKICAgICBkb20vQmVmb3JlUHJvY2Vzc0V2ZW50LmNwcCBcCkBAIC03NjMsNiAr
NzYyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5j
cHAgXAogICAgIGRvbS9TY3JpcHRFbGVtZW50LmNwcCBcCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwIFwKKyAgICBkb20vU2NyaXB0UnVubmVyLmNwcCBcCiAgICAgZG9tL1NlbGVj
dEVsZW1lbnQuY3BwIFwKICAgICBkb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAgXAogICAgIGRvbS9T
cGFjZVNwbGl0U3RyaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpp
bmRleCA5MmNmNDJiLi5iNDJmYTZiIDEwMDc1NQotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTQwODQ2LDYyICs0MDg0Niw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxBc3luY1NjcmlwdFJ1bm5lci5jcHAiCi0JCQkJPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wK
LQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8
V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29s
Ci0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9t
XEFzeW5jU2NyaXB0UnVubmVyLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxBdG9taWNTdHJpbmdMaXN0LmgiCiAJCQkJPgogCQkJPC9GaWxl
PgpAQCAtNDUyNjIsNiArNDUyMDYsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNjcmlwdFJ1bm5lci5jcHAiCisJCQkJPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNjcmlw
dFJ1bm5lci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxkb21cU2VsZWN0RWxlbWVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ODYwNGIw
Li44MWZjODcxIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjY1Myw4ICsyNjUzLDggQEAKIAkJODlEMDhEQTExMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODlEMDhEOUUxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcy5oICovOyB9OwogCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRM
b2FkVGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEEzMDlDOUYxMjM5
NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTMwOUM5RTEyMzk1MEJFMDBDQjkyMDQg
LyogTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCAqLzsgfTsKLQkJOEE0MTNBRTAxMjA3QkJBNTAw
ODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3Jp
cHRSdW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREYxMjA3
QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLzsgfTsKKwkJOEE0MTNBRTAx
MjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlw
dFJ1bm5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCThBNDEzQUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREYxMjA3QkJBNTAw
ODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5jcHAgKi87IH07CiAJCThBN0NDOTZCMTIwNzZENzMwMDFE
NDU4OCAvKiBQZW5kaW5nU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4QTdDQzk2QTEyMDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBN0ND
OTcwMTIwNzZGOEEwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBN0NDOTZGMTIwNzZGOEEwMDFENDU4OCAv
KiBQZW5kaW5nU2NyaXB0LmNwcCAqLzsgfTsKIAkJOEE4MUJGODUxMURDRkQ5MDAwREEyQjk4IC8q
IFJlc291cmNlTG9hZFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOEE4MUJGODQxMURDRkQ5MDAwREEyQjk4IC8qIFJlc291cmNlTG9hZFRpbWlu
Zy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04
NzkyLDggKzg3OTIsOCBAQAogCQk4OUQwOEQ5RTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxl
U3lzdGVtQ2FsbGJhY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTEy
RTM1QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50TG9hZFRpbWluZy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4QTMwOUM5RTEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVs
SW5jcmVtZW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmVzdGluZ0xl
dmVsSW5jcmVtZW50ZXIuaDsgcGF0aCA9IHBhcnNlci9OZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUg
LyogQXN5bmNTY3JpcHRSdW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXN5bmNTY3JpcHRSdW5uZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEE0MTNB
REYxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFzeW5jU2NyaXB0UnVubmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1
bm5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRSdW5uZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEE0MTNBREYxMjA3QkJBNTAwODIwMTZFIC8q
IFNjcmlwdFJ1bm5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
Y3JpcHRSdW5uZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTdDQzk2QTEy
MDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQZW5kaW5nU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CThBN0NDOTZGMTIwNzZGOEEwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlbmRpbmdTY3JpcHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4QTgxQkY4NDExRENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VM
b2FkVGltaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9h
ZFRpbWluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgxOTUsOCArMTgxOTUs
NiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRTFDNERFNkQwRUE3NUM2NTAwMjNDQ0Q2IC8qIEFj
dGl2ZURPTU9iamVjdC5jcHAgKi8sCiAJCQkJRTFDNERFNjgwRUE3NUMxRTAwMjNDQ0Q2IC8qIEFj
dGl2ZURPTU9iamVjdC5oICovLAotCQkJCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3lu
Y1NjcmlwdFJ1bm5lci5jcHAgKi8sCi0JCQkJOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIEFz
eW5jU2NyaXB0UnVubmVyLmggKi8sCiAJCQkJQThDNEE3RkMwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0
dHIuY3BwICovLAogCQkJCUE4QzRBN0ZCMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmggKi8sCiAJ
CQkJOTNFRUMxRTUwOUMyODc3NzAwQzUxNUQxIC8qIEF0dHIuaWRsICovLApAQCAtMTg0MjksNiAr
MTg0MjcsOCBAQAogCQkJCTA4QTQ4NDc2MEU1MjcyQzUwMEMzRkU3NiAvKiBTY3JpcHRFbGVtZW50
LmggKi8sCiAJCQkJRTExQzlEQUYwRUIzNjk5NTAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwICovLAogCQkJCUUxMUM5RDlBMEVCMzY4MTIwMEU0MDlEQiAvKiBTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmggKi8sCisJCQkJOEE0MTNBREYxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlw
dFJ1bm5lci5jcHAgKi8sCisJCQkJOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1
bm5lci5oICovLAogCQkJCTA4NEFFQkUyMEZCNTA1RkEwMDM4NDgzRSAvKiBTZWxlY3RFbGVtZW50
LmNwcCAqLywKIAkJCQkwODRBRUJFMzBGQjUwNUZBMDAzODQ4M0UgLyogU2VsZWN0RWxlbWVudC5o
ICovLAogCQkJCUJDN0ZBNjgwMEQxRjE2NzkwMERCMjJBOSAvKiBTZWxlY3Rvck5vZGVMaXN0LmNw
cCAqLywKQEAgLTE4NTk5LDcgKzE4NTk5LDYgQEAKIAkJCQk5NzZENkM3NzEyMkI4QTNEMDAxRkQx
RjcgLyogQXN5bmNGaWxlV3JpdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzZENkM5MzEyMkI4
QTNEMDAxRkQxRjcgLyogQXN5bmNGaWxlV3JpdGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMDE0OUU3RTExQTRCMjE1MDAxOTZBN0IgLyogQXN5bmNJbWFnZVJlc2l6ZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDNjFGMDExMjA5NUM4NzAwN0EzQzY3IC8qIEF0b21p
Y1N0cmluZ0tleWVkTVJVQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzRBODBEMDlENTYz
MjcwMDAzQUM4RCAvKiBBdHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEM0QTgwQjA5RDU2MzI3
MDAwM0FDOEQgLyogQXR0cmlidXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTIwODQ1LDYgKzIwODQ0
LDcgQEAKIAkJCQk5RjcyMzA0RjExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOUZBMzdFRTQxMTcyRkM4MDAwQzRDRDU1IC8qIFNjcmlwdFByb2Zp
bGVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5RjcyMzA1MTExMTg0QjQxMDBBRDAxMjYgLyog
U2NyaXB0UHJvZmlsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCThBNDEzQUUwMTIwN0JCQTUwMDgy
MDE2RSAvKiBTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNENDMTBBMEVEQjIy
MzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTU0
RkQzODEwMTZEOUE2MDA4QjQ0QzggLyogU2NyaXB0U291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxQzc2MEIxMEVERTAzRDMwMEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yMTc3OCw3ICsyMTc3OCw2IEBACiAJCQkJNDlFRUNEREYxMDUwM0MyNDAw
MDk5RkFCIC8qIEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OUQwOEQ5
RjEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUIwMTQ5RTdEMTFBNEIyMTUwMDE5NkE3QiAvKiBBc3luY0ltYWdlUmVzaXplci5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRS
dW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MEUwOUQ1NjMyNzAwMDNBQzhEIC8q
IEF0dHIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MEMwOUQ1NjMyNzAwMDNBQzhEIC8q
IEF0dHJpYnV0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzRGNzEzODBENUE2RUZGMDAwMThE
NjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MjM1MjQsNiArMjM1MjMsNyBAQAogCQkJCTQxRjA2NkU1MEY2NEJDRjYwMEEwN0VBQyAvKiBTY3Jp
cHRPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjMzRjAyODIxMjA5NDdGMjAwRTU3NDNB
IC8qIFNjcmlwdFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUY3MjMwNTAxMTE4NEI0
MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCThBNDEz
QUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDEyN0Q1MzcwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzNENDMEUxMEVEMzlENkYwMEE2NThGMiAvKiBTY3JpcHRWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDQTNCRjY3QzEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Bc3luY1Njcmlw
dFJ1bm5lci5jcHAgYi9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmNWYxYjYuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS9kb20v
QXN5bmNTY3JpcHRSdW5uZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5oIgotCi0jaW5jbHVkZSAiQ2Fj
aGVkU2NyaXB0LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFbGVtZW50Lmgi
Ci0jaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUFz
eW5jU2NyaXB0UnVubmVyOjpBc3luY1NjcmlwdFJ1bm5lcihEb2N1bWVudCogZG9jdW1lbnQpCi0g
ICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQotICAgICwgbV90aW1lcih0aGlzLCAmQXN5bmNTY3Jp
cHRSdW5uZXI6OnRpbWVyRmlyZWQpCi17Ci0gICAgQVNTRVJUKGRvY3VtZW50KTsKLX0KLQotQXN5
bmNTY3JpcHRSdW5uZXI6On5Bc3luY1NjcmlwdFJ1bm5lcigpCi17Ci0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLnNpemUoKTsgKytpKSB7Ci0gICAgICAg
IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb25baV0uZmlyc3QtPmVsZW1lbnQoKS0+ZGVyZWYoKTsgLy8g
QmFsYW5jZXMgcmVmKCkgaW4gZXhlY3V0ZVNjcmlwdFNvb24oKS4KLSAgICAgICAgbV9kb2N1bWVu
dC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwotICAgIH0KLX0KLQotdm9pZCBBc3lu
Y1NjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCogZGF0YSwgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCi17Ci0gICAgQVNT
RVJUX0FSRyhkYXRhLCBkYXRhKTsKLQotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBkYXRhLT5lbGVt
ZW50KCk7Ci0gICAgQVNTRVJUKGVsZW1lbnQpOwotICAgIEFTU0VSVChlbGVtZW50LT5pbkRvY3Vt
ZW50KCkpOwotCi0gICAgbV9kb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgp
OwotICAgIG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uYXBwZW5kKG1ha2VfcGFpcihkYXRhLCBjYWNo
ZWRTY3JpcHQpKTsKLSAgICBlbGVtZW50LT5yZWYoKTsgLy8gQmFsYW5jZWQgYnkgZGVyZWYoKXMg
aW4gdGltZXJGaXJlZCgpIGFuZCBkdG9yLgotICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQot
ICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLX0KLQotdm9pZCBBc3luY1NjcmlwdFJ1
bm5lcjo6c3VzcGVuZCgpCi17Ci0gICAgbV90aW1lci5zdG9wKCk7Ci19Ci0KLXZvaWQgQXN5bmNT
Y3JpcHRSdW5uZXI6OnJlc3VtZSgpCi17Ci0gICAgaWYgKGhhc1BlbmRpbmdTY3JpcHRzKCkpCi0g
ICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwotfQotCi12b2lkIEFzeW5jU2NyaXB0UnVu
bmVyOjp0aW1lckZpcmVkKFRpbWVyPEFzeW5jU2NyaXB0UnVubmVyPiogdGltZXIpCi17Ci0gICAg
QVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGltZXIpOwotCi0gICAgUmVmUHRyPERv
Y3VtZW50PiBwcm90ZWN0KG1fZG9jdW1lbnQpOwotICAgIAotICAgIFZlY3RvcjxwYWlyPFNjcmlw
dEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+ID4gPiBzY3JpcHRz
OwotICAgIHNjcmlwdHMuc3dhcChtX3NjcmlwdHNUb0V4ZWN1dGVTb29uKTsKLSAgICBzaXplX3Qg
c2l6ZSA9IHNjcmlwdHMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsg
KytpKSB7Ci0gICAgICAgIHNjcmlwdHNbaV0uZmlyc3QtPmV4ZWN1dGUoc2NyaXB0c1tpXS5zZWNv
bmQuZ2V0KCkpOwotICAgICAgICBzY3JpcHRzW2ldLmZpcnN0LT5lbGVtZW50KCktPmRlcmVmKCk7
IC8vIEJhbGFuY2VzIHJlZigpIGluIGV4ZWN1dGVTY3JpcHRTb29uKCkuCi0gICAgICAgIG1fZG9j
dW1lbnQtPmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKLSAgICB9Ci19Ci0KLX0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmggYi9XZWJDb3JlL2RvbS9B
c3luY1NjcmlwdFJ1bm5lci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYTA1MWE4
Li4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmgKKysrIC9kZXYv
bnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2lmbmRlZiBBc3luY1NjcmlwdFJ1bm5lcl9oCi0jZGVmaW5lIEFzeW5j
U2NyaXB0UnVubmVyX2gKLQotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCi0jaW5j
bHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBDYWNoZWRTY3JpcHQ7Ci1jbGFzcyBEb2N1bWVudDsKLWNsYXNzIFNj
cmlwdEVsZW1lbnQ7Ci0gICAgCi1jbGFzcyBBc3luY1NjcmlwdFJ1bm5lciA6IHB1YmxpYyBOb25j
b3B5YWJsZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8QXN5bmNTY3JpcHRSdW5u
ZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIG5ldyBBc3luY1NjcmlwdFJ1
bm5lcihkb2N1bWVudCk7IH0KLSAgICB+QXN5bmNTY3JpcHRSdW5uZXIoKTsKLQotICAgIHZvaWQg
ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFNjcmlwdD4pOwotICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVy
biAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCk7IH0KLSAgICB2b2lkIHN1c3BlbmQo
KTsKLSAgICB2b2lkIHJlc3VtZSgpOwotCi1wcml2YXRlOgotICAgIEFzeW5jU2NyaXB0UnVubmVy
KERvY3VtZW50Kik7Ci0KLSAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8QXN5bmNTY3JpcHRSdW5u
ZXI+Kik7Ci0KLSAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKLSAgICBWZWN0b3I8c3RkOjpwYWly
PFNjcmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+ID4gPiBt
X3NjcmlwdHNUb0V4ZWN1dGVTb29uOwotICAgIFRpbWVyPEFzeW5jU2NyaXB0UnVubmVyPiBtX3Rp
bWVyOwotfTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RPTUFsbElu
T25lLmNwcCBiL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCAyZjM1MTBkLi40OWI4
ZWFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29y
ZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAvLyBUaGlzIGFsbC1pbi1v
bmUgY3BwIGZpbGUgY3V0cyBkb3duIG9uIHRlbXBsYXRlIGJsb2F0IHRvIGFsbG93IHVzIHRvIGJ1
aWxkIG91ciBXaW5kb3dzIHJlbGVhc2UgYnVpbGQuCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmpl
Y3QuY3BwIgotI2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmNwcCIKICNpbmNsdWRlICJBdHRy
LmNwcCIKICNpbmNsdWRlICJBdHRyaWJ1dGUuY3BwIgogI2luY2x1ZGUgIkJlZm9yZVByb2Nlc3NF
dmVudC5jcHAiCkBAIC0xMDIsNiArMTAxLDcgQEAKICNpbmNsdWRlICJSZWdpc3RlcmVkRXZlbnRM
aXN0ZW5lci5jcHAiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5jcHAiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmNwcCIKICNp
bmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwIgogI2luY2x1ZGUgIlNlbGVjdEVs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNlbGVjdG9yTm9kZUxpc3QuY3BwIgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IGMwODhlNGUuLjc5ZWMxYWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBbmltYXRpb25Db250cm9sbGVyLmgiCi0j
aW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVk
ZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQ0RBVEFTZWN0aW9uLmgiCkBAIC0xMjAsNiArMTE5
LDcgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxl
bWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJTY3Jp
cHRSdW5uZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlZ21l
bnRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKQEAgLTM3OCw3
ICszNzgsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1
cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwsIGNvbgogICAgICwgbV9zdGFydFRpbWUoY3Vy
cmVudFRpbWUoKSkKICAgICAsIG1fb3Zlck1pbmltdW1MYXlvdXRUaHJlc2hvbGQoZmFsc2UpCiAg
ICAgLCBtX2V4dHJhTGF5b3V0RGVsYXkoMCkKLSAgICAsIG1fYXN5bmNTY3JpcHRSdW5uZXIoQXN5
bmNTY3JpcHRSdW5uZXI6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fc2NyaXB0UnVubmVyKFNjcmlw
dFJ1bm5lcjo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV94bWxWZXJzaW9uKCIxLjAiKQogICAgICwg
bV94bWxTdGFuZGFsb25lKGZhbHNlKQogICAgICwgbV9zYXZlZFJlbmRlcmVyKDApCkBAIC01NDYs
NyArNTQ2LDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAgQVNTRVJUKG1fcmFuZ2VzLmlz
RW1wdHkoKSk7CiAgICAgQVNTRVJUKCFtX3N0eWxlUmVjYWxjVGltZXIuaXNBY3RpdmUoKSk7CiAK
LSAgICBtX2FzeW5jU2NyaXB0UnVubmVyLmNsZWFyKCk7CisgICAgbV9zY3JpcHRSdW5uZXIuY2xl
YXIoKTsKIAogICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDQ3NmUy
NWIuLjdiZTI0NTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtNTAsNyArNTAsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIEFzeW5jU2NyaXB0UnVubmVyOwogY2xhc3MgQXR0cjsKIGNsYXNzIEFYT2Jq
ZWN0Q2FjaGU7CiBjbGFzcyBDREFUQVNlY3Rpb247CkBAIC0xMDksNiArMTA4LDcgQEAgY2xhc3Mg
UmVuZGVyQXJlbmE7CiBjbGFzcyBSZW5kZXJWaWV3OwogY2xhc3MgU2NyaXB0YWJsZURvY3VtZW50
UGFyc2VyOwogY2xhc3MgU2NyaXB0RWxlbWVudERhdGE7CitjbGFzcyBTY3JpcHRSdW5uZXI7CiBj
bGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNz
IFNlZ21lbnRlZFN0cmluZzsKQEAgLTg2OSw3ICs4NjksNyBAQCBwdWJsaWM6CiAKICAgICBpbnQg
ZG9jSUQoKSBjb25zdCB7IHJldHVybiBtX2RvY0lEOyB9CiAgICAgCi0gICAgQXN5bmNTY3JpcHRS
dW5uZXIqIGFzeW5jU2NyaXB0UnVubmVyKCkgeyByZXR1cm4gbV9hc3luY1NjcmlwdFJ1bm5lci5n
ZXQoKTsgfQorICAgIFNjcmlwdFJ1bm5lciogc2NyaXB0UnVubmVyKCkgeyByZXR1cm4gbV9zY3Jp
cHRSdW5uZXIuZ2V0KCk7IH0KIAogI2lmIEVOQUJMRShYU0xUKQogICAgIHZvaWQgYXBwbHlYU0xU
cmFuc2Zvcm0oUHJvY2Vzc2luZ0luc3RydWN0aW9uKiBwaSk7CkBAIC0xMjczLDcgKzEyNzMsNyBA
QCBwcml2YXRlOgogICAgIC8vIHBvaW50cyBkdXJpbmcgdGhlIGxpZmV0aW1lIG9mIHRoZSBEb2N1
bWVudC4KICAgICBpbnQgbV9leHRyYUxheW91dERlbGF5OwogICAgIAotICAgIE93blB0cjxBc3lu
Y1NjcmlwdFJ1bm5lcj4gbV9hc3luY1NjcmlwdFJ1bm5lcjsKKyAgICBPd25QdHI8U2NyaXB0UnVu
bmVyPiBtX3NjcmlwdFJ1bm5lcjsKIAogI2lmIEVOQUJMRShYU0xUKQogICAgIE93blB0cjxUcmFu
c2Zvcm1Tb3VyY2U+IG1fdHJhbnNmb3JtU291cmNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20v
U2NyaXB0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCA3
NGYyNTgwLi4xMGYxYTFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNw
cAorKysgYi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjQsNyArMjQsNiBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIAotI2luY2x1
ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAt
MzcsNiArMzYsNyBAQAogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1
bm5lci5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRW
YWx1ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC01OCw2ICs1OCw3IEBAIFNjcmlwdEVs
ZW1lbnQ6OlNjcmlwdEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgYm9vbCB3YXNJbnNlcnRlZEJ5
UGFyc2VyLCBib29sIHdhCiAgICAgLCBtX2lzRXh0ZXJuYWxTY3JpcHQoZmFsc2UpCiAgICAgLCBt
X3dhc0FscmVhZHlTdGFydGVkKHdhc0FscmVhZHlTdGFydGVkKQogICAgICwgbV9oYXZlRmlyZWRM
b2FkKGZhbHNlKQorICAgICwgbV93aWxsRXhlY3V0ZUluT3JkZXIoZmFsc2UpCiB7CiAgICAgQVNT
RVJUKG1fZWxlbWVudCk7CiB9CkBAIC03Niw2ICs3NywxMCBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6
Omluc2VydGVkSW50b0RvY3VtZW50KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogCiAgICAgaWYg
KCFzb3VyY2VVcmwuaXNFbXB0eSgpKSB7CiAgICAgICAgIHJlcXVlc3RTY3JpcHQoc291cmNlVXJs
KTsKKyAgICAgICAgaWYgKCFpc0FzeW5jaHJvbm91cygpICYmIG1fY2FjaGVkU2NyaXB0KSB7Cisg
ICAgICAgICAgICBtX3dpbGxFeGVjdXRlSW5PcmRlciA9IHRydWU7CisgICAgICAgICAgICBtX2Vs
ZW1lbnQtPmRvY3VtZW50KCktPnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckluT3JkZXJF
eGVjdXRpb24odGhpcywgbV9jYWNoZWRTY3JpcHQpOworICAgICAgICB9CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTEzNyw3ICsxNDIsNyBAQCBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZEph
dmFTY3JpcHRMYW5ndWFnZShjb25zdCBTdHJpbmcmIGxhbmd1YWdlKQogICAgICAgICBsYW5ndWFn
ZXMuYWRkKCJqYXZhc2NyaXB0MS43Iik7CiAgICAgICAgIGxhbmd1YWdlcy5hZGQoImxpdmVzY3Jp
cHQiKTsKICAgICAgICAgbGFuZ3VhZ2VzLmFkZCgiZWNtYXNjcmlwdCIpOwotICAgICAgICBsYW5n
dWFnZXMuYWRkKCJqc2NyaXB0Iik7ICAgICAgICAgICAgICAgIAorICAgICAgICBsYW5ndWFnZXMu
YWRkKCJqc2NyaXB0Iik7CiAgICAgfQogCiAgICAgcmV0dXJuIGxhbmd1YWdlcy5jb250YWlucyhs
YW5ndWFnZSk7CkBAIC0yMzgsNyArMjQzLDEwIEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0
ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKIHZvaWQgU2NyaXB0RWxlbWVudDo6bm90aWZ5
RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIG8pCiB7CiAgICAgQVNTRVJUX1VOVVNFRChvLCBvID09
IG1fY2FjaGVkU2NyaXB0KTsKLSAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmFzeW5jU2NyaXB0
UnVubmVyKCktPmV4ZWN1dGVTY3JpcHRTb29uKHRoaXMsIG1fY2FjaGVkU2NyaXB0KTsKKyAgICBp
ZiAobV93aWxsRXhlY3V0ZUluT3JkZXIpCisgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+
c2NyaXB0UnVubmVyKCktPnJlc3VtZSgpOworICAgIGVsc2UKKyAgICAgICAgbV9lbGVtZW50LT5k
b2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+ZXhlY3V0ZVNjcmlwdFNvb24odGhpcywgbV9jYWNo
ZWRTY3JpcHQpOwogICAgIG1fY2FjaGVkU2NyaXB0ID0gMDsKIH0KIApAQCAtMjU1LDcgKzI2Myw3
IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6c2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpIGNvbnN0
CiAgICAgICAgICBXaW5JRSA3IGFjY2VwdHMgZWNtYXNjcmlwdCBhbmQganNjcmlwdCwgYnV0IE1v
emlsbGEgMS44IGRvZXNuJ3QuCiAgICAgICAgICBOZWl0aGVyIE1vemlsbGEgMS44IG5vciBXaW5J
RSA3IGFjY2VwdCBsZWFkaW5nIG9yIHRyYWlsaW5nIHdoaXRlc3BhY2UuCiAgICAgICAgICBXZSB3
YW50IHRvIGFjY2VwdCBhbGwgdGhlIHZhbHVlcyB0aGF0IGVpdGhlciBvZiB0aGVzZSBicm93c2Vy
cyBhY2NlcHQsIGJ1dCBub3Qgb3RoZXIgdmFsdWVzLgotICAgICAKKwogICAgICAgICAgRklYTUU6
IElzIHRoaXMgSFRNTDUgY29tcGxpYW50PwogICAgICAqLwogICAgIFN0cmluZyB0eXBlID0gdHlw
ZUF0dHJpYnV0ZVZhbHVlKCk7CkBAIC0yNjYsNyArMjc0LDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50
OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0KCkgY29uc3QKICAgICAgICAgU3RyaW5nIGxhbmd1
YWdlID0gbGFuZ3VhZ2VBdHRyaWJ1dGVWYWx1ZSgpOwogICAgICAgICBpZiAoIWxhbmd1YWdlLmlz
RW1wdHkoKSAmJiAhaXNTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UobGFuZ3VhZ2UpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0gICAgCisgICAgfQogCiAgICAgLy8gTm8gdHlw
ZSBvciBsYW5ndWFnZSBpcyBzcGVjaWZpZWQsIHNvIHdlIGFzc3VtZSB0aGUgc2NyaXB0IHRvIGJl
IEphdmFTY3JpcHQuCiAKQEAgLTI3NiwxMiArMjg0LDEyIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6
c2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpIGNvbnN0CiAgICAgICAgIGZvckF0dHJpYnV0ZSA9
IGZvckF0dHJpYnV0ZS5zdHJpcFdoaXRlU3BhY2UoKTsKICAgICAgICAgaWYgKCFlcXVhbElnbm9y
aW5nQ2FzZShmb3JBdHRyaWJ1dGUsICJ3aW5kb3ciKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgICAgIAorCiAgICAgICAgIGV2ZW50QXR0cmlidXRlID0gZXZlbnRBdHRyaWJ1
dGUuc3RyaXBXaGl0ZVNwYWNlKCk7CiAgICAgICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2UoZXZl
bnRBdHRyaWJ1dGUsICJvbmxvYWQiKSAmJiAhZXF1YWxJZ25vcmluZ0Nhc2UoZXZlbnRBdHRyaWJ1
dGUsICJvbmxvYWQoKSIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICAK
KwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRF
bGVtZW50LmggYi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggMDdjNTlkYi4uNTBh
N2JmYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuaApAQCAtOTAsNiArOTAsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9pc0V4dGVybmFsU2NyaXB0OwogICAgIGJvb2wgbV93YXNBbHJlYWR5U3RhcnRlZDsKICAg
ICBib29sIG1faGF2ZUZpcmVkTG9hZDsKKyAgICBib29sIG1fd2lsbEV4ZWN1dGVJbk9yZGVyOwog
fTsKIAogU2NyaXB0RWxlbWVudCogdG9TY3JpcHRFbGVtZW50KEVsZW1lbnQqKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAgYi9XZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzZDRkOGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCkBAIC0wLDAgKzEsMTIw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgorCisjaW5jbHVkZSAi
Q2FjaGVkU2NyaXB0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50
LmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1NjcmlwdFJ1bm5lcjo6U2NyaXB0UnVubmVyKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IG1f
ZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX3RpbWVyKHRoaXMsICZTY3JpcHRSdW5uZXI6OnRp
bWVyRmlyZWQpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKK30KKworU2NyaXB0UnVubmVyOjp+
U2NyaXB0UnVubmVyKCkKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1Rv
RXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExv
YWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0
c1RvRXhlY3V0ZUluT3JkZXIuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQtPmRlY3Jl
bWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKK30KKwordm9pZCBTY3JpcHRSdW5uZXI6OmV4ZWN1
dGVTY3JpcHRTb29uKFNjcmlwdEVsZW1lbnQqIGRhdGEsIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0KQoreworICAgIEFTU0VSVF9BUkcoZGF0YSwgZGF0YSk7
CisKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gZGF0YS0+ZWxlbWVudCgpOworICAgIEFTU0VSVChl
bGVtZW50KTsKKyAgICBBU1NFUlQoZWxlbWVudC0+aW5Eb2N1bWVudCgpKTsKKworICAgIG1fZG9j
dW1lbnQtPmluY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBtX3NjcmlwdHNUb0V4
ZWN1dGVTb29uLmFwcGVuZChQZW5kaW5nU2NyaXB0KGRhdGEsIGVsZW1lbnQsIGNhY2hlZFNjcmlw
dCkpOworICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3RpbWVyLnN0YXJ0
T25lU2hvdCgwKTsKK30KKwordm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9ySW5PcmRl
ckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBkYXRhLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCkKK3sKKyAgICBBU1NFUlRfQVJHKGRhdGEsIGRhdGEpOwor
CisgICAgRWxlbWVudCogZWxlbWVudCA9IGRhdGEtPmVsZW1lbnQoKTsKKyAgICBBU1NFUlQoZWxl
bWVudCk7CisgICAgQVNTRVJUKGVsZW1lbnQtPmluRG9jdW1lbnQoKSk7CisKKyAgICBtX2RvY3Vt
ZW50LT5pbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisgICAgbV9zY3JpcHRzVG9FeGVj
dXRlSW5PcmRlci5hcHBlbmQoUGVuZGluZ1NjcmlwdChkYXRhLCBlbGVtZW50LCBjYWNoZWRTY3Jp
cHQpKTsKK30KKwordm9pZCBTY3JpcHRSdW5uZXI6OnN1c3BlbmQoKQoreworICAgIG1fdGltZXIu
c3RvcCgpOworfQorCit2b2lkIFNjcmlwdFJ1bm5lcjo6cmVzdW1lKCkKK3sKKyAgICBpZiAoaGFz
UGVuZGluZ1NjcmlwdHMoKSkKKyAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisK
K3ZvaWQgU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKFRpbWVyPFNjcmlwdFJ1bm5lcj4qIHRpbWVy
KQoreworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKKworICAg
IFJlZlB0cjxEb2N1bWVudD4gcHJvdGVjdChtX2RvY3VtZW50KTsKKworICAgIFZlY3RvcjxQZW5k
aW5nU2NyaXB0PiBzY3JpcHRzOworICAgIHNjcmlwdHMuc3dhcChtX3NjcmlwdHNUb0V4ZWN1dGVT
b29uKTsKKyAgICBzaXplX3Qgc2l6ZSA9IHNjcmlwdHMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIHNjcmlwdHNbaV0uc2NyaXB0RWxlbWVu
dC0+ZXhlY3V0ZShzY3JpcHRzW2ldLmNhY2hlZFNjcmlwdC5nZXQoKSk7CisgICAgICAgIG1fZG9j
dW1lbnQtPmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICB9CisKKyAgICB3aGls
ZSAoIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpICYmIG1fc2NyaXB0c1RvRXhl
Y3V0ZUluT3JkZXJbMF0uY2FjaGVkU2NyaXB0LT5pc0xvYWRlZCgpKSB7CisgICAgICAgIG1fc2Ny
aXB0c1RvRXhlY3V0ZUluT3JkZXJbMF0uc2NyaXB0RWxlbWVudC0+ZXhlY3V0ZShtX3NjcmlwdHNU
b0V4ZWN1dGVJbk9yZGVyWzBdLmNhY2hlZFNjcmlwdC5nZXQoKSk7CisgICAgICAgIG1fZG9jdW1l
bnQtPmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICAgICAgbV9zY3JpcHRzVG9F
eGVjdXRlSW5PcmRlci5yZW1vdmUoMCk7CisgICAgfQorfQorCitTY3JpcHRSdW5uZXI6OlBlbmRp
bmdTY3JpcHQ6OlBlbmRpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgUmVm
UHRyPEVsZW1lbnQ+IHJlZmVkRWxlbWVudCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2Ny
aXB0PiBjYWNoZWRTY3JpcHQpCisgICAgOiBzY3JpcHRFbGVtZW50KHNjcmlwdEVsZW1lbnQpCisg
ICAgLCByZWZlZEVsZW1lbnQocmVmZWRFbGVtZW50KQorICAgICwgY2FjaGVkU2NyaXB0KGNhY2hl
ZFNjcmlwdCkKK3sKK30KKworU2NyaXB0UnVubmVyOjpQZW5kaW5nU2NyaXB0Ojp+UGVuZGluZ1Nj
cmlwdCgpCit7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5o
IGIvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZGY5MWMzMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdFJ1
bm5lci5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIFNjcmlwdFJ1bm5lcl9oCisjZGVmaW5lIFNjcmlwdFJ1
bm5lcl9oCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlRp
bWVyLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgQ2FjaGVkU2NyaXB0OworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50Owor
Y2xhc3MgU2NyaXB0RWxlbWVudDsKKworY2xhc3MgU2NyaXB0UnVubmVyIDogcHVibGljIE5vbmNv
cHlhYmxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxTY3JpcHRSdW5uZXI+IGNy
ZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIG5ldyBTY3JpcHRSdW5uZXIoZG9jdW1l
bnQpOyB9CisgICAgflNjcmlwdFJ1bm5lcigpOworCisgICAgdm9pZCBleGVjdXRlU2NyaXB0U29v
bihTY3JpcHRFbGVtZW50KiwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0Pik7Cisg
ICAgdm9pZCBxdWV1ZVNjcmlwdEZvckluT3JkZXJFeGVjdXRpb24oU2NyaXB0RWxlbWVudCosIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4pOworICAgIGJvb2wgaGFzUGVuZGluZ1Nj
cmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkg
fHwgIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpOyB9CisgICAgdm9pZCBzdXNw
ZW5kKCk7CisgICAgdm9pZCByZXN1bWUoKTsKKworcHJpdmF0ZToKKyAgICBTY3JpcHRSdW5uZXIo
RG9jdW1lbnQqKTsKKworICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxTY3JpcHRSdW5uZXI+Kik7
CisKKyAgICBzdHJ1Y3QgUGVuZGluZ1NjcmlwdCB7CisgICAgICAgIFBlbmRpbmdTY3JpcHQoU2Ny
aXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgUmVmUHRyPEVsZW1lbnQ+IHJlZmVkRWxlbWVudCwg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpOworICAgICAg
ICB+UGVuZGluZ1NjcmlwdCgpOworCisgICAgICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1l
bnQ7CisgICAgICAgIFJlZlB0cjxFbGVtZW50PiByZWZlZEVsZW1lbnQ7CisgICAgICAgIENhY2hl
ZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0OworICAgIH07CisKKyAg
ICBEb2N1bWVudCogbV9kb2N1bWVudDsKKyAgICBWZWN0b3I8UGVuZGluZ1NjcmlwdD4gbV9zY3Jp
cHRzVG9FeGVjdXRlSW5PcmRlcjsKKyAgICBWZWN0b3I8UGVuZGluZ1NjcmlwdD4gbV9zY3JpcHRz
VG9FeGVjdXRlU29vbjsKKyAgICBUaW1lcjxTY3JpcHRSdW5uZXI+IG1fdGltZXI7Cit9OworCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNw
cCBiL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZTIyOWJiOC4uZDg5
ZjNhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAorKysg
Yi9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBpbmxpbmUgSFRNTFNjcmlwdEVsZW1lbnQ6OkhUTUxT
Y3JpcHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIHdhc0FscmVhZHlTdGFydGVkKQog
ICAgIDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBTY3JpcHRFbGVtZW50
KHRoaXMsIHdhc0luc2VydGVkQnlQYXJzZXIsIHdhc0FscmVhZHlTdGFydGVkKQorICAgICwgbV9m
b3JjZUFzeW5jKCF3YXNJbnNlcnRlZEJ5UGFyc2VyKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1l
KHNjcmlwdFRhZykpOwogfQpAQCAtNTgsNiArNTksMTMgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFu
Z2UKICAgICBIVE1MRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVm
b3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3VudERlbHRhKTsKIH0KIAordm9pZCBIVE1M
U2NyaXB0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqIGF0dHIsIGJvb2wgcHJl
c2VydmVEZWNscykKK3sKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IGFzeW5jQXR0cikKKyAgICAg
ICAgbV9mb3JjZUFzeW5jID0gZmFsc2U7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQoYXR0ciwgcHJlc2VydmVEZWNscyk7Cit9CisKIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKIHsKICAgICBjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSA9IGF0dHItPm5hbWUoKTsKQEAgLTc4LDYgKzg2LDggQEAgdm9pZCBI
VE1MU2NyaXB0RWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKIHsKICAgICBTY3JpcHRF
bGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oc291cmNlQXR0cmlidXRlVmFsdWUoKSk7CiAg
ICAgSFRNTEVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOworICAgIGlmIChzb3VyY2VB
dHRyaWJ1dGVWYWx1ZSgpLmlzRW1wdHkoKSAmJiBzY3JpcHRDb250ZW50KCkuaXNFbXB0eSgpKQor
ICAgICAgICBtX2ZvcmNlQXN5bmMgPSAhaGFzQXR0cmlidXRlKGFzeW5jQXR0cik7CiB9CiAKIHZv
aWQgSFRNTFNjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKQEAgLTE1Miw3ICsx
NjIsNyBAQCBTdHJpbmcgSFRNTFNjcmlwdEVsZW1lbnQ6OmV2ZW50QXR0cmlidXRlVmFsdWUoKSBj
b25zdAogCiBib29sIEhUTUxTY3JpcHRFbGVtZW50Ojphc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gIWdldEF0dHJpYnV0ZShhc3luY0F0dHIpLmlzTnVsbCgpOworICAg
IHJldHVybiBhc3luYygpOwogfQogCiBib29sIEhUTUxTY3JpcHRFbGVtZW50OjpkZWZlckF0dHJp
YnV0ZVZhbHVlKCkgY29uc3QKQEAgLTE2MCw2ICsxNzAsMTcgQEAgYm9vbCBIVE1MU2NyaXB0RWxl
bWVudDo6ZGVmZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuICFnZXRBdHRyaWJ1
dGUoZGVmZXJBdHRyKS5pc051bGwoKTsKIH0KIAordm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6c2V0
QXN5bmMoYm9vbCBhc3luYykKK3sKKyAgICBzZXRCb29sZWFuQXR0cmlidXRlKGFzeW5jQXR0ciwg
YXN5bmMpOworICAgIG1fZm9yY2VBc3luYyA9IGZhbHNlOworfQorCitib29sIEhUTUxTY3JpcHRF
bGVtZW50Ojphc3luYygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZm9yY2VBc3luYyB8fCAhZ2V0
QXR0cmlidXRlKGFzeW5jQXR0cikuaXNOdWxsKCk7Cit9CisKIHZvaWQgSFRNTFNjcmlwdEVsZW1l
bnQ6OmRpc3BhdGNoTG9hZEV2ZW50KCkKIHsKICAgICBBU1NFUlQoIWhhdmVGaXJlZExvYWRFdmVu
dCgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggMDk3NzNjNS4uNGU1ZDA3YyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTM4LDYgKzM4LDkgQEAgcHVibGljOgogCiAgICAg
S1VSTCBzcmMoKSBjb25zdDsKIAorICAgIHZvaWQgc2V0QXN5bmMoYm9vbCk7CisgICAgYm9vbCBh
c3luYygpIGNvbnN0OworCiBwcml2YXRlOgogICAgIEhUTUxTY3JpcHRFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCB3
YXNBbHJlYWR5U3RhcnRlZCk7CiAKQEAgLTQ1LDYgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
ZEZyb21Eb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBj
aGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0
ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CisgICAgdmlydHVhbCB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoQXR0cmlidXRlKiwgYm9vbCBwcmVzZXJ2ZURlY2xzID0gZmFsc2Up
OwogCiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKQEAgLTY0LDYgKzY4LDgg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hFcnJvckV2ZW50KCk7CiAKICAg
ICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNsb25lRWxlbWVudFdpdGhvdXRBdHRyaWJ1dGVzQW5kQ2hp
bGRyZW4oKSBjb25zdDsKKworICAgIGJvb2wgbV9mb3JjZUFzeW5jOwogfTsKIAogfSAvL25hbWVz
cGFjZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCBiL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwKaW5kZXggMjBiNzMzMS4uZmE3OTljYiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCkBAIC0yNCw3ICsyNCw3IEBAIG1vZHVsZSBo
dG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWZvcl0gRE9NU3RyaW5nIGh0bWxGb3I7
CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGV2ZW50OwogICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjaGFyc2V0OwotICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIGJvb2xlYW4gYXN5bmM7CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGFzeW5j
OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGVmZXI7CiAgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgc3JjOwogICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyB0eXBlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1BhZ2VH
cm91cExvYWREZWZlcnJlci5jcHAgYi9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVy
LmNwcAppbmRleCA5OGE0NzIwLi5kM2IwZjA5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERl
ZmVycmVyLmNwcApAQCAtMjEsMTAgKzIxLDEwIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiUGFnZUdyb3VwTG9hZERlZmVycmVyLmgiCiAKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1
bm5lci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDcgKzQ4LDcgQEAgUGFnZUdy
b3VwTG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXIoUGFnZSogcGFnZSwgYm9vbCBk
ZWZlclNlbGYpCiAgICAgICAgICAgICAgICAgLy8gdGhlIGNvbnN0cnVjdG9yIHdpbGwgbmVlZCB0
byB0YWtlIGEgQWN0aXZlRE9NT2JqZWN0OjpSZWFzb25Gb3JTdXNwZW5zaW9uLgogICAgICAgICAg
ICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gb3RoZXJQYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7
IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnN1c3BlbmRBY3RpdmVET01PYmplY3RzKEFjdGl2ZURP
TU9iamVjdDo6V2lsbFNob3dEaWFsb2cpOwotICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9j
dW1lbnQoKS0+YXN5bmNTY3JpcHRSdW5uZXIoKS0+c3VzcGVuZCgpOworICAgICAgICAgICAgICAg
ICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCktPnN1c3BlbmQoKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTY4LDcgKzY4LDcgQEAg
UGFnZUdyb3VwTG9hZERlZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVyKCkKIAogICAgICAg
ICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgICAgICAgICBmcmFt
ZS0+ZG9jdW1lbnQoKS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0cygpOwotICAgICAgICAgICAgICAg
IGZyYW1lLT5kb2N1bWVudCgpLT5hc3luY1NjcmlwdFJ1bm5lcigpLT5yZXN1bWUoKTsKKyAgICAg
ICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCktPnJlc3VtZSgpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75523</attachid>
            <date>2010-12-03 12:00:21 -0800</date>
            <delta_ts>2010-12-06 16:22:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>64084</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzOWFhNzE5Li41MjVkYTYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMTIt
MDMgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2
aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNj
cmlwdHMKKworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGggYXN5bmM9ZmFs
c2Ugd2lsbCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4KKyAgICAgICAg
U2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9u
X09yZGVyCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTE1CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2Fk
LWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2JpZy5q
czogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFz
eW5jLWF0dHItZXhwZWN0ZWQudHh0OiBBZGRlZCB0ZXN0IGNhc2VzIGZvciBmb3JjZUFzeW5jLgor
ICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0
bWw6IERpdHRvLgorCiAyMDEwLTEyLTAzICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQWRkIG1pc3NpbmcgZXhwZWN0ZWQgcmVzdWx0cy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLWxvYWQtZXhlY3V0ZS1pbi1v
cmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVu
dC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZDdlN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3Jk
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQXR0ZW1wdHMgdG8gY2hlY2sgdGhhdCBh
c3luYz1mYWxzZSBlbmZvcmNlcyBleGVjdXRpb24gb3JkZXIgZHluYW1pY2FsbHkgaW5zZXJ0ZWQg
c2NyaXB0cy4gU2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRf
RXhlY3V0aW9uX09yZGVyCitiaWcKK2FzeW5jCitsb2FkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1sb2FkLWV4ZWN1
dGUtaW4tb3JkZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTc4
OGYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVs
ZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwKQEAgLTAsMCArMSwyOCBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkZWJ1ZygnbG9hZCcp
O2ZpbmlzaEpTVGVzdCgpOyI+CitBdHRlbXB0cyB0byBjaGVjayB0aGF0IGFzeW5jPWZhbHNlIGVu
Zm9yY2VzIGV4ZWN1dGlvbiBvcmRlciBkeW5hbWljYWxseSBpbnNlcnRlZCBzY3JpcHRzLgorU2Vl
OiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9uX09y
ZGVyCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK3Nsb3dseV9sb2FkZWRfc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgic2NyaXB0Iik7CitzbG93bHlfbG9hZGVkX3NjcmlwdC5hc3luYyA9IGZhbHNlOworc2xvd2x5
X2xvYWRlZF9zY3JpcHQuc3JjID0gInJlc291cmNlcy9iaWcuanMiOworZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChzbG93bHlfbG9hZGVkX3Njcmlw
dCk7CisKK3F1aWNrbHlfbG9hZGVkX3NjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNj
cmlwdCIpOworcXVpY2tseV9sb2FkZWRfc2NyaXB0LmFzeW5jID0gZmFsc2U7CitxdWlja2x5X2xv
YWRlZF9zY3JpcHQuc3JjID0gInJlc291cmNlcy9hc3luYy5qcyI7Citkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHF1aWNrbHlfbG9hZGVkX3Njcmlw
dCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0
RWxlbWVudC9yZXNvdXJjZXMvYmlnLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlw
dEVsZW1lbnQvcmVzb3VyY2VzL2JpZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4yZmJkMTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2JpZy5qcwpAQCAtMCwwICsxLDY4IEBACitkZWJ1Zygi
YmlnIik7CisvKgorICAgIEFib3V0IDE2S0IgdG8gbWFrZSB0aGlzIHJlc291cmNlIGxvYWQgc2xv
d2x5LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgor
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgor
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgor
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
LgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLgorLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLgorKi8KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1h
dHRyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50
L3NjcmlwdC1hc3luYy1hdHRyLWV4cGVjdGVkLnR4dAppbmRleCA3YjhiZjRkLi43YWE0OGYzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQt
YXN5bmMtYXR0ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0CkBAIC04LDggKzgsMTMg
QEAgUEFTUyBpc0FzeW5jKCdzMScpIGlzIHRydWUKIFBBU1MgaXNBc3luYygnczInKSBpcyB0cnVl
CiBQQVNTIGlzQXN5bmMoJ3MzJykgaXMgdHJ1ZQogUEFTUyBpc0FzeW5jKCdzNCcpIGlzIHRydWUK
K1BBU1MgaXNBc3luYygnczUnKSBpcyB0cnVlCitQQVNTIGlzQXN5bmMoJ3M2JykgaXMgdHJ1ZQor
UEFTUyBpc0FzeW5jKCdzNycpIGlzIGZhbHNlCiBQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNj
cmlwdEFzeW5jKHRydWUpIGlzIHRydWUKIFBBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0
QXN5bmMoZmFsc2UpIGlzIGZhbHNlCitQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFz
eW5jKCJhc3luYyIpIGlzIHRydWUKK1BBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5
bmMobnVsbCkgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxl
bWVudC9zY3JpcHQtYXN5bmMtYXR0ci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRtbAppbmRleCA0YTNmM2FmLi42ZDE1MTZh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3Jp
cHQtYXN5bmMtYXR0ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWwKQEAgLTEyLDExICsxMiwxNCBAQAogPHNjcmlw
dCBpZD0iczIiIHNyYz0iaWdub3JlZC5qcyIgYXN5bmM9ImFzeW5jIj48L3NjcmlwdD4KIDxzY3Jp
cHQgaWQ9InMzIiBzcmM9Imlnbm9yZWQuanMiIGFzeW5jPSJBU1lOQyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IGlkPSJzNCIgc3JjPSJpZ25vcmVkLmpzIiBhc3luYz0idHJ1ZSI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IGlkPSJzNSI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJzNiIgYXN5bmM+PC9zY3JpcHQ+Cis8
c2NyaXB0IGlkPSJzNyIgYXN5bmM+PC9zY3JpcHQ+CiAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbign
VGhpcyB0ZXN0IGNoZWNrcyBmb3IgcHJvcGVyIHBhcnNpbmcgb2YgdGhlIGFzeW5jIGF0dHJpYnV0
ZSBvbiBIVE1MIHNjcmlwdCB0YWdzLicpOwogCi12YXIgbmV4dFNjcmlwdElEID0gMDsKK3ZhciBu
ZXh0U2NyaXB0SUQgPSA4OwogCiBmdW5jdGlvbiBpc0FzeW5jKGlkKQogewpAQCAtMjksMTkgKzMy
LDI2IEBAIGZ1bmN0aW9uIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKGFzeW5jKQog
ICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICBz
Y3JpcHQuaWQgPSBpZDsKICAgICBzY3JpcHQuc3JjID0gInJlc291cmNlcy9zY3JpcHQtbG9hZC5q
cyI7Ci0gICAgaWYgKGFzeW5jKQotICAgICAgICBzY3JpcHQuYXN5bmMgPSAiYXN5bmMiOworICAg
IGlmIChhc3luYyAhPSBudWxsKQorICAgICAgICBzY3JpcHQuYXN5bmMgPSBhc3luYzsKICAgICBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHNjcmlw
dCk7CiAgICAgcmV0dXJuIGlzQXN5bmMoaWQpOwogfQogCitkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiczciKS5yZW1vdmVBdHRyaWJ1dGUoImFzeW5jIik7CisKIHNob3VsZEJlRmFsc2UoImlzQXN5
bmMoJ3MwJykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNBc3luYygnczEnKSIpOwogc2hvdWxkQmVUcnVl
KCJpc0FzeW5jKCdzMicpIik7CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3MzJykiKTsKIHNob3Vs
ZEJlVHJ1ZSgiaXNBc3luYygnczQnKSIpOworc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzNScpIik7
CitzaG91bGRCZVRydWUoImlzQXN5bmMoJ3M2JykiKTsKK3Nob3VsZEJlRmFsc2UoImlzQXN5bmMo
J3M3JykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMo
dHJ1ZSkiKTsKIHNob3VsZEJlRmFsc2UoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5j
KGZhbHNlKSIpOworc2hvdWxkQmVUcnVlKCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3lu
YyhcImFzeW5jXCIpIik7CitzaG91bGRCZVRydWUoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlw
dEFzeW5jKG51bGwpIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJvaWQubWsgYi9XZWJDb3JlL0FuZHJvaWQubWsK
aW5kZXggMTU0NDY3OS4uYTRjNWQwMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLm1rCisr
KyBiL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtOTQsNyArOTQsNiBAQCBMT0NBTF9TUkNfRklMRVMg
Oj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAljc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3Bw
IFwKIAlcCiAJZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAotCWRvbS9Bc3luY1NjcmlwdFJ1bm5l
ci5jcHAgXAogCWRvbS9BdHRyLmNwcCBcCiAJZG9tL0F0dHJpYnV0ZS5jcHAgXAogCWRvbS9CZWZv
cmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgXApAQCAtMTY4LDYgKzE2Nyw3IEBAIExPQ0FMX1NSQ19G
SUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCWRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJz
ZXIuY3BwIFwKIAlkb20vU2NyaXB0RWxlbWVudC5jcHAgXAogCWRvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmNwcCBcCisJZG9tL1NjcmlwdFJ1bm5lci5jcHAgXAogCWRvbS9TZWxlY3RFbGVtZW50
LmNwcCBcCiAJZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwIFwKIAlkb20vU3BhY2VTcGxpdFN0cmlu
Zy5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggZGViYWE1NC4uODc3OGZhNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC03ODYsNyArNzg2
LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwCi0gICAgZG9tL0FzeW5jU2NyaXB0
UnVubmVyLmNwcAogICAgIGRvbS9BdHRyLmNwcAogICAgIGRvbS9BdHRyaWJ1dGUuY3BwCiAgICAg
ZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcApAQCAtODY1LDYgKzg2NCw3IEBAIFNFVChX
ZWJDb3JlX1NPVVJDRVMKICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcAogICAg
IGRvbS9TY3JpcHRFbGVtZW50LmNwcAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cAorICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuY3BwCiAg
ICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3Bw
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDRkOGI0NDUuLmNlMTY2ZTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTAtMTItMDMgIEphbWVzIFNpbW9u
c2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2aW9yIGZvciBlbnN1cmlu
ZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNjcmlwdHMKKworICAgICAg
ICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGggYXN5bmM9ZmFsc2Ugd2lsbCBsb2FkIGlu
IHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4KKyAgICAgICAgU2VlOiBodHRwOi8vd2lr
aS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9uX09yZGVyCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTE1CisKKyAgICAg
ICAgVGVzdDogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRlLWlu
LW9yZGVyLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6IFJlbmFtZSBBc3luY1NjcmlwdFJ1
bm5lciAtPiBTY3JpcHRSdW5uZXIuCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IERpdHRvLgor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3Bw
OiBEaXR0by4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OkRvY3VtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
fkRvY3VtZW50KTogRGl0dG8uCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6c2NyaXB0UnVubmVyKTogRGl0dG8uCisgICAgICAgICogZG9tL1Nj
cmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6U2NyaXB0
RWxlbWVudCk6IFRyYWNrIGhvdyBzY3JpcHQgc2hvdWxkIGV4ZWN1dGUuCisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCk6IFF1ZXVlIGluIG9yZGVy
IGlmIGFzeW5jPWZhbHNlLgorICAgICAgICAoV2ViQ29yZTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0
TGFuZ3VhZ2UpOiBGaXggd2hpdGVzcGFjZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1l
bnQ6Om5vdGlmeUZpbmlzaGVkKTogRXhlY3V0ZSBpbi1vcmRlciBvciBhc3luYyBzY3JpcHQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0
KTogRml4IHdoaXRlc3BhY2UuCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBkb20vU2NyaXB0UnVubmVyLmNwcDogUmVuYW1lZCBmcm9tIFdlYkNvcmUvZG9tL0FzeW5j
U2NyaXB0UnVubmVyLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6U2NyaXB0
UnVubmVyKTogQWRkIGluLW9yZGVyIHNjcmlwdCBxdWV1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5lcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRS
dW5uZXI6OnF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4ZWN1dGlvbik6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0UnVubmVyOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dFJ1bm5lcjo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6dGltZXJG
aXJlZCk6IFJ1biBpbi1vcmRlciBzY3JpcHRzIHRoYXQgaGF2ZSBsb2FkZWQgdG9vLgorICAgICAg
ICAqIGRvbS9TY3JpcHRSdW5uZXIuaDogUmVuYW1lZCBmcm9tIFdlYkNvcmUvZG9tL0FzeW5jU2Ny
aXB0UnVubmVyLmguCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6Omhhc1BlbmRpbmdTY3JpcHRzKTogQ2hlY2sg
Zm9yIGluLW9yZGVyIHNjcmlwdHMgdG9vLgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OkhUTUxTY3JpcHRF
bGVtZW50KTogQWRkIG1fZm9yY2VBc3luYyB0byB0cmFjayBpZiB1c2VyIGV4cGxpY2l0bHkgcmVx
dWVzdGVkIGFzeW5jLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQpOiBVbnNldCBtX2ZvcmNlQXN5bmMgb24gYXN5bmMgY2hhbmdlLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbik6IFNl
dCBtX2ZvcmNlQXN5bmMgaWYgc2NyaXB0IGJlY29tZXMgZHluYW1pYyAobm8gc3JjIGFuZCBubyBj
b250ZW50KS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50Ojphc3luY0F0dHJp
YnV0ZVZhbHVlKTogQWxpYXMgZm9yIGFzeW5jKCkuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Ny
aXB0RWxlbWVudDo6c2V0QXN5bmMpOiBBZGRlZC4gSWYgY2FsbGVkLCB1bnNldCBtX2ZvcmNlQXN5
bmMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6YXN5bmMpOiBBZGRlZC4g
UmV0dXJuIG1fZm9yY2VBc3luYyBpZiBpdCdzIHNldC4KKyAgICAgICAgKiBodG1sL0hUTUxTY3Jp
cHRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGw6IFJlbW92
ZWQgUmVmbGVjdCBmcm9tIGFzeW5jIGZvciBjdXN0b20gYmVoYXZpb3IuCisgICAgICAgICogcGFn
ZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3Vw
TG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXIpOiBSZW5hbWUgQXN5bmNTY3JpcHRS
dW5uZXIgLT4gU2NyaXB0UnVubmVyLgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9hZERl
ZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVyKTogRGl0dG8uCisKIDIwMTAtMTItMDMgIERh
bmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
VG9ueSBDaGFuZy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCmluZGV4IDllYzI0Y2IuLjc5MTUwYzcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTA2Miw4
ICsxMDYyLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2Nzcy9XZWJLaXRDU1NU
cmFuc2Zvcm1WYWx1ZS5oIFwKIAlXZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKIAlX
ZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaCBcCi0JV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRS
dW5uZXIuY3BwIFwKLQlXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oIFwKIAlXZWJDb3Jl
L2RvbS9BdHRyLmNwcCBcCiAJV2ViQ29yZS9kb20vQXR0ci5oIFwKIAlXZWJDb3JlL2RvbS9BdHRy
aWJ1dGUuY3BwIFwKQEAgLTEyNDgsNiArMTI0Niw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIFwKIAlXZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcCBcCiAJV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIFwK
KwlXZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIFwKKwlXZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuaCBcCiAJV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAgXAogCVdlYkNvcmUvZG9tL1Nl
bGVjdEVsZW1lbnQuaCBcCiAJV2ViQ29yZS9kb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAgXApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBmOTFkOTAzLi5jZTIzYjEzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTExNyw4ICsxMTE3LDYgQEAKICAgICAgICAgICAg
ICdkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oJywKICAgICAgICAgICAg
ICdkb20vQWN0aXZlRE9NT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0FjdGl2ZURPTU9i
amVjdC5oJywKLSAgICAgICAgICAgICdkb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwJywKLSAgICAg
ICAgICAgICdkb20vQXN5bmNTY3JpcHRSdW5uZXIuaCcsCiAgICAgICAgICAgICAnZG9tL0F0dHIu
Y3BwJywKICAgICAgICAgICAgICdkb20vQXR0ci5oJywKICAgICAgICAgICAgICdkb20vQXR0cmli
dXRlLmNwcCcsCkBAIC0xMzAxLDYgKzEyOTksOCBAQAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRF
bGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCcs
CiAgICAgICAgICAgICAnZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCcsCisgICAgICAgICAg
ICAnZG9tL1NjcmlwdFJ1bm5lci5jcHAnLAorICAgICAgICAgICAgJ2RvbS9TY3JpcHRSdW5uZXIu
aCcsCiAgICAgICAgICAgICAnZG9tL1NlbGVjdEVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdk
b20vU2VsZWN0RWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JOb2RlTGlzdC5j
cHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5w
cm8KaW5kZXggNjNiMDJiOC4uZjNkNDk0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBy
bworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC02ODEsNyArNjgxLDYgQEAgU09VUkNFUyAr
PSBcCiAgICAgY3NzL1dlYktpdENTU01hdHJpeC5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5jcHAgXAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKLSAgICBkb20v
QXN5bmNTY3JpcHRSdW5uZXIuY3BwIFwKICAgICBkb20vQXR0ci5jcHAgXAogICAgIGRvbS9BdHRy
aWJ1dGUuY3BwIFwKICAgICBkb20vQmVmb3JlUHJvY2Vzc0V2ZW50LmNwcCBcCkBAIC03NjMsNiAr
NzYyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5j
cHAgXAogICAgIGRvbS9TY3JpcHRFbGVtZW50LmNwcCBcCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwIFwKKyAgICBkb20vU2NyaXB0UnVubmVyLmNwcCBcCiAgICAgZG9tL1NlbGVj
dEVsZW1lbnQuY3BwIFwKICAgICBkb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAgXAogICAgIGRvbS9T
cGFjZVNwbGl0U3RyaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpp
bmRleCA5MmNmNDJiLi5iNDJmYTZiIDEwMDc1NQotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTQwODQ2LDYyICs0MDg0Niw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxBc3luY1NjcmlwdFJ1bm5lci5jcHAiCi0JCQkJPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgot
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wK
LQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAot
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8
V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29s
Ci0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9t
XEFzeW5jU2NyaXB0UnVubmVyLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxBdG9taWNTdHJpbmdMaXN0LmgiCiAJCQkJPgogCQkJPC9GaWxl
PgpAQCAtNDUyNjIsNiArNDUyMDYsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNjcmlwdFJ1bm5lci5jcHAiCisJCQkJPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNjcmlw
dFJ1bm5lci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxkb21cU2VsZWN0RWxlbWVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ODYwNGIw
Li44MWZjODcxIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjY1Myw4ICsyNjUzLDggQEAKIAkJODlEMDhEQTExMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODlEMDhEOUUxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcy5oICovOyB9OwogCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRM
b2FkVGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4QTEyRTM1QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEEzMDlDOUYxMjM5
NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTMwOUM5RTEyMzk1MEJFMDBDQjkyMDQg
LyogTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCAqLzsgfTsKLQkJOEE0MTNBRTAxMjA3QkJBNTAw
ODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3Jp
cHRSdW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREYxMjA3
QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLzsgfTsKKwkJOEE0MTNBRTAx
MjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlw
dFJ1bm5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCThBNDEzQUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREYxMjA3QkJBNTAw
ODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5jcHAgKi87IH07CiAJCThBN0NDOTZCMTIwNzZENzMwMDFE
NDU4OCAvKiBQZW5kaW5nU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4QTdDQzk2QTEyMDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBN0ND
OTcwMTIwNzZGOEEwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBN0NDOTZGMTIwNzZGOEEwMDFENDU4OCAv
KiBQZW5kaW5nU2NyaXB0LmNwcCAqLzsgfTsKIAkJOEE4MUJGODUxMURDRkQ5MDAwREEyQjk4IC8q
IFJlc291cmNlTG9hZFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOEE4MUJGODQxMURDRkQ5MDAwREEyQjk4IC8qIFJlc291cmNlTG9hZFRpbWlu
Zy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04
NzkyLDggKzg3OTIsOCBAQAogCQk4OUQwOEQ5RTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxl
U3lzdGVtQ2FsbGJhY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5j
RmlsZVN5c3RlbUNhbGxiYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTEy
RTM1QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50TG9hZFRpbWluZy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4QTMwOUM5RTEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVs
SW5jcmVtZW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmVzdGluZ0xl
dmVsSW5jcmVtZW50ZXIuaDsgcGF0aCA9IHBhcnNlci9OZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUg
LyogQXN5bmNTY3JpcHRSdW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXN5bmNTY3JpcHRSdW5uZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEE0MTNB
REYxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFzeW5jU2NyaXB0UnVubmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1
bm5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRSdW5uZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEE0MTNBREYxMjA3QkJBNTAwODIwMTZFIC8q
IFNjcmlwdFJ1bm5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
Y3JpcHRSdW5uZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTdDQzk2QTEy
MDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQZW5kaW5nU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CThBN0NDOTZGMTIwNzZGOEEwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlbmRpbmdTY3JpcHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4QTgxQkY4NDExRENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VM
b2FkVGltaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9h
ZFRpbWluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgxOTUsOCArMTgxOTUs
NiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJRTFDNERFNkQwRUE3NUM2NTAwMjNDQ0Q2IC8qIEFj
dGl2ZURPTU9iamVjdC5jcHAgKi8sCiAJCQkJRTFDNERFNjgwRUE3NUMxRTAwMjNDQ0Q2IC8qIEFj
dGl2ZURPTU9iamVjdC5oICovLAotCQkJCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3lu
Y1NjcmlwdFJ1bm5lci5jcHAgKi8sCi0JCQkJOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIEFz
eW5jU2NyaXB0UnVubmVyLmggKi8sCiAJCQkJQThDNEE3RkMwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0
dHIuY3BwICovLAogCQkJCUE4QzRBN0ZCMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmggKi8sCiAJ
CQkJOTNFRUMxRTUwOUMyODc3NzAwQzUxNUQxIC8qIEF0dHIuaWRsICovLApAQCAtMTg0MjksNiAr
MTg0MjcsOCBAQAogCQkJCTA4QTQ4NDc2MEU1MjcyQzUwMEMzRkU3NiAvKiBTY3JpcHRFbGVtZW50
LmggKi8sCiAJCQkJRTExQzlEQUYwRUIzNjk5NTAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwICovLAogCQkJCUUxMUM5RDlBMEVCMzY4MTIwMEU0MDlEQiAvKiBTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmggKi8sCisJCQkJOEE0MTNBREYxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlw
dFJ1bm5lci5jcHAgKi8sCisJCQkJOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1
bm5lci5oICovLAogCQkJCTA4NEFFQkUyMEZCNTA1RkEwMDM4NDgzRSAvKiBTZWxlY3RFbGVtZW50
LmNwcCAqLywKIAkJCQkwODRBRUJFMzBGQjUwNUZBMDAzODQ4M0UgLyogU2VsZWN0RWxlbWVudC5o
ICovLAogCQkJCUJDN0ZBNjgwMEQxRjE2NzkwMERCMjJBOSAvKiBTZWxlY3Rvck5vZGVMaXN0LmNw
cCAqLywKQEAgLTE4NTk5LDcgKzE4NTk5LDYgQEAKIAkJCQk5NzZENkM3NzEyMkI4QTNEMDAxRkQx
RjcgLyogQXN5bmNGaWxlV3JpdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzZENkM5MzEyMkI4
QTNEMDAxRkQxRjcgLyogQXN5bmNGaWxlV3JpdGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMDE0OUU3RTExQTRCMjE1MDAxOTZBN0IgLyogQXN5bmNJbWFnZVJlc2l6ZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDNjFGMDExMjA5NUM4NzAwN0EzQzY3IC8qIEF0b21p
Y1N0cmluZ0tleWVkTVJVQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzRBODBEMDlENTYz
MjcwMDAzQUM4RCAvKiBBdHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEM0QTgwQjA5RDU2MzI3
MDAwM0FDOEQgLyogQXR0cmlidXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTIwODQ1LDYgKzIwODQ0
LDcgQEAKIAkJCQk5RjcyMzA0RjExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOUZBMzdFRTQxMTcyRkM4MDAwQzRDRDU1IC8qIFNjcmlwdFByb2Zp
bGVOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5RjcyMzA1MTExMTg0QjQxMDBBRDAxMjYgLyog
U2NyaXB0UHJvZmlsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCThBNDEzQUUwMTIwN0JCQTUwMDgy
MDE2RSAvKiBTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNENDMTBBMEVEQjIy
MzkwMEE2NThGMiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTU0
RkQzODEwMTZEOUE2MDA4QjQ0QzggLyogU2NyaXB0U291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxQzc2MEIxMEVERTAzRDMwMEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yMTc3OCw3ICsyMTc3OCw2IEBACiAJCQkJNDlFRUNEREYxMDUwM0MyNDAw
MDk5RkFCIC8qIEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OUQwOEQ5
RjEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUIwMTQ5RTdEMTFBNEIyMTUwMDE5NkE3QiAvKiBBc3luY0ltYWdlUmVzaXplci5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRS
dW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MEUwOUQ1NjMyNzAwMDNBQzhEIC8q
IEF0dHIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MEMwOUQ1NjMyNzAwMDNBQzhEIC8q
IEF0dHJpYnV0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzRGNzEzODBENUE2RUZGMDAwMThE
NjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MjM1MjQsNiArMjM1MjMsNyBAQAogCQkJCTQxRjA2NkU1MEY2NEJDRjYwMEEwN0VBQyAvKiBTY3Jp
cHRPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjMzRjAyODIxMjA5NDdGMjAwRTU3NDNB
IC8qIFNjcmlwdFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUY3MjMwNTAxMTE4NEI0
MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCThBNDEz
QUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDEyN0Q1MzcwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzNENDMEUxMEVEMzlENkYwMEE2NThGMiAvKiBTY3JpcHRWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDQTNCRjY3QzEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Bc3luY1Njcmlw
dFJ1bm5lci5jcHAgYi9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmNWYxYjYuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS9kb20v
QXN5bmNTY3JpcHRSdW5uZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5oIgotCi0jaW5jbHVkZSAiQ2Fj
aGVkU2NyaXB0LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFbGVtZW50Lmgi
Ci0jaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUFz
eW5jU2NyaXB0UnVubmVyOjpBc3luY1NjcmlwdFJ1bm5lcihEb2N1bWVudCogZG9jdW1lbnQpCi0g
ICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQotICAgICwgbV90aW1lcih0aGlzLCAmQXN5bmNTY3Jp
cHRSdW5uZXI6OnRpbWVyRmlyZWQpCi17Ci0gICAgQVNTRVJUKGRvY3VtZW50KTsKLX0KLQotQXN5
bmNTY3JpcHRSdW5uZXI6On5Bc3luY1NjcmlwdFJ1bm5lcigpCi17Ci0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLnNpemUoKTsgKytpKSB7Ci0gICAgICAg
IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb25baV0uZmlyc3QtPmVsZW1lbnQoKS0+ZGVyZWYoKTsgLy8g
QmFsYW5jZXMgcmVmKCkgaW4gZXhlY3V0ZVNjcmlwdFNvb24oKS4KLSAgICAgICAgbV9kb2N1bWVu
dC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwotICAgIH0KLX0KLQotdm9pZCBBc3lu
Y1NjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCogZGF0YSwgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCi17Ci0gICAgQVNT
RVJUX0FSRyhkYXRhLCBkYXRhKTsKLQotICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBkYXRhLT5lbGVt
ZW50KCk7Ci0gICAgQVNTRVJUKGVsZW1lbnQpOwotICAgIEFTU0VSVChlbGVtZW50LT5pbkRvY3Vt
ZW50KCkpOwotCi0gICAgbV9kb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgp
OwotICAgIG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uYXBwZW5kKG1ha2VfcGFpcihkYXRhLCBjYWNo
ZWRTY3JpcHQpKTsKLSAgICBlbGVtZW50LT5yZWYoKTsgLy8gQmFsYW5jZWQgYnkgZGVyZWYoKXMg
aW4gdGltZXJGaXJlZCgpIGFuZCBkdG9yLgotICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQot
ICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLX0KLQotdm9pZCBBc3luY1NjcmlwdFJ1
bm5lcjo6c3VzcGVuZCgpCi17Ci0gICAgbV90aW1lci5zdG9wKCk7Ci19Ci0KLXZvaWQgQXN5bmNT
Y3JpcHRSdW5uZXI6OnJlc3VtZSgpCi17Ci0gICAgaWYgKGhhc1BlbmRpbmdTY3JpcHRzKCkpCi0g
ICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwotfQotCi12b2lkIEFzeW5jU2NyaXB0UnVu
bmVyOjp0aW1lckZpcmVkKFRpbWVyPEFzeW5jU2NyaXB0UnVubmVyPiogdGltZXIpCi17Ci0gICAg
QVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGltZXIpOwotCi0gICAgUmVmUHRyPERv
Y3VtZW50PiBwcm90ZWN0KG1fZG9jdW1lbnQpOwotICAgIAotICAgIFZlY3RvcjxwYWlyPFNjcmlw
dEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+ID4gPiBzY3JpcHRz
OwotICAgIHNjcmlwdHMuc3dhcChtX3NjcmlwdHNUb0V4ZWN1dGVTb29uKTsKLSAgICBzaXplX3Qg
c2l6ZSA9IHNjcmlwdHMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsg
KytpKSB7Ci0gICAgICAgIHNjcmlwdHNbaV0uZmlyc3QtPmV4ZWN1dGUoc2NyaXB0c1tpXS5zZWNv
bmQuZ2V0KCkpOwotICAgICAgICBzY3JpcHRzW2ldLmZpcnN0LT5lbGVtZW50KCktPmRlcmVmKCk7
IC8vIEJhbGFuY2VzIHJlZigpIGluIGV4ZWN1dGVTY3JpcHRTb29uKCkuCi0gICAgICAgIG1fZG9j
dW1lbnQtPmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKLSAgICB9Ci19Ci0KLX0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmggYi9XZWJDb3JlL2RvbS9B
c3luY1NjcmlwdFJ1bm5lci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYTA1MWE4
Li4wMDAwMDAwCi0tLSBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmgKKysrIC9kZXYv
bnVsbApAQCAtMSw2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2lmbmRlZiBBc3luY1NjcmlwdFJ1bm5lcl9oCi0jZGVmaW5lIEFzeW5j
U2NyaXB0UnVubmVyX2gKLQotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCi0jaW5j
bHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBDYWNoZWRTY3JpcHQ7Ci1jbGFzcyBEb2N1bWVudDsKLWNsYXNzIFNj
cmlwdEVsZW1lbnQ7Ci0gICAgCi1jbGFzcyBBc3luY1NjcmlwdFJ1bm5lciA6IHB1YmxpYyBOb25j
b3B5YWJsZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8QXN5bmNTY3JpcHRSdW5u
ZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIG5ldyBBc3luY1NjcmlwdFJ1
bm5lcihkb2N1bWVudCk7IH0KLSAgICB+QXN5bmNTY3JpcHRSdW5uZXIoKTsKLQotICAgIHZvaWQg
ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFNjcmlwdD4pOwotICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVy
biAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCk7IH0KLSAgICB2b2lkIHN1c3BlbmQo
KTsKLSAgICB2b2lkIHJlc3VtZSgpOwotCi1wcml2YXRlOgotICAgIEFzeW5jU2NyaXB0UnVubmVy
KERvY3VtZW50Kik7Ci0KLSAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8QXN5bmNTY3JpcHRSdW5u
ZXI+Kik7Ci0KLSAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKLSAgICBWZWN0b3I8c3RkOjpwYWly
PFNjcmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+ID4gPiBt
X3NjcmlwdHNUb0V4ZWN1dGVTb29uOwotICAgIFRpbWVyPEFzeW5jU2NyaXB0UnVubmVyPiBtX3Rp
bWVyOwotfTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RPTUFsbElu
T25lLmNwcCBiL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCAyZjM1MTBkLi40OWI4
ZWFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29y
ZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAvLyBUaGlzIGFsbC1pbi1v
bmUgY3BwIGZpbGUgY3V0cyBkb3duIG9uIHRlbXBsYXRlIGJsb2F0IHRvIGFsbG93IHVzIHRvIGJ1
aWxkIG91ciBXaW5kb3dzIHJlbGVhc2UgYnVpbGQuCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmpl
Y3QuY3BwIgotI2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmNwcCIKICNpbmNsdWRlICJBdHRy
LmNwcCIKICNpbmNsdWRlICJBdHRyaWJ1dGUuY3BwIgogI2luY2x1ZGUgIkJlZm9yZVByb2Nlc3NF
dmVudC5jcHAiCkBAIC0xMDIsNiArMTAxLDcgQEAKICNpbmNsdWRlICJSZWdpc3RlcmVkRXZlbnRM
aXN0ZW5lci5jcHAiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5jcHAiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmNwcCIKICNp
bmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwIgogI2luY2x1ZGUgIlNlbGVjdEVs
ZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNlbGVjdG9yTm9kZUxpc3QuY3BwIgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IGMwODhlNGUuLjc5ZWMxYWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1
ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBbmltYXRpb25Db250cm9sbGVyLmgiCi0j
aW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVk
ZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQ0RBVEFTZWN0aW9uLmgiCkBAIC0xMjAsNiArMTE5
LDcgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxl
bWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJTY3Jp
cHRSdW5uZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlZ21l
bnRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKQEAgLTM3OCw3
ICszNzgsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1
cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwsIGNvbgogICAgICwgbV9zdGFydFRpbWUoY3Vy
cmVudFRpbWUoKSkKICAgICAsIG1fb3Zlck1pbmltdW1MYXlvdXRUaHJlc2hvbGQoZmFsc2UpCiAg
ICAgLCBtX2V4dHJhTGF5b3V0RGVsYXkoMCkKLSAgICAsIG1fYXN5bmNTY3JpcHRSdW5uZXIoQXN5
bmNTY3JpcHRSdW5uZXI6OmNyZWF0ZSh0aGlzKSkKKyAgICAsIG1fc2NyaXB0UnVubmVyKFNjcmlw
dFJ1bm5lcjo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV94bWxWZXJzaW9uKCIxLjAiKQogICAgICwg
bV94bWxTdGFuZGFsb25lKGZhbHNlKQogICAgICwgbV9zYXZlZFJlbmRlcmVyKDApCkBAIC01NDYs
NyArNTQ2LDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAgQVNTRVJUKG1fcmFuZ2VzLmlz
RW1wdHkoKSk7CiAgICAgQVNTRVJUKCFtX3N0eWxlUmVjYWxjVGltZXIuaXNBY3RpdmUoKSk7CiAK
LSAgICBtX2FzeW5jU2NyaXB0UnVubmVyLmNsZWFyKCk7CisgICAgbV9zY3JpcHRSdW5uZXIuY2xl
YXIoKTsKIAogICAgIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDQ3NmUy
NWIuLjdiZTI0NTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtNTAsNyArNTAsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIEFzeW5jU2NyaXB0UnVubmVyOwogY2xhc3MgQXR0cjsKIGNsYXNzIEFYT2Jq
ZWN0Q2FjaGU7CiBjbGFzcyBDREFUQVNlY3Rpb247CkBAIC0xMDksNiArMTA4LDcgQEAgY2xhc3Mg
UmVuZGVyQXJlbmE7CiBjbGFzcyBSZW5kZXJWaWV3OwogY2xhc3MgU2NyaXB0YWJsZURvY3VtZW50
UGFyc2VyOwogY2xhc3MgU2NyaXB0RWxlbWVudERhdGE7CitjbGFzcyBTY3JpcHRSdW5uZXI7CiBj
bGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNz
IFNlZ21lbnRlZFN0cmluZzsKQEAgLTg2OSw3ICs4NjksNyBAQCBwdWJsaWM6CiAKICAgICBpbnQg
ZG9jSUQoKSBjb25zdCB7IHJldHVybiBtX2RvY0lEOyB9CiAgICAgCi0gICAgQXN5bmNTY3JpcHRS
dW5uZXIqIGFzeW5jU2NyaXB0UnVubmVyKCkgeyByZXR1cm4gbV9hc3luY1NjcmlwdFJ1bm5lci5n
ZXQoKTsgfQorICAgIFNjcmlwdFJ1bm5lciogc2NyaXB0UnVubmVyKCkgeyByZXR1cm4gbV9zY3Jp
cHRSdW5uZXIuZ2V0KCk7IH0KIAogI2lmIEVOQUJMRShYU0xUKQogICAgIHZvaWQgYXBwbHlYU0xU
cmFuc2Zvcm0oUHJvY2Vzc2luZ0luc3RydWN0aW9uKiBwaSk7CkBAIC0xMjczLDcgKzEyNzMsNyBA
QCBwcml2YXRlOgogICAgIC8vIHBvaW50cyBkdXJpbmcgdGhlIGxpZmV0aW1lIG9mIHRoZSBEb2N1
bWVudC4KICAgICBpbnQgbV9leHRyYUxheW91dERlbGF5OwogICAgIAotICAgIE93blB0cjxBc3lu
Y1NjcmlwdFJ1bm5lcj4gbV9hc3luY1NjcmlwdFJ1bm5lcjsKKyAgICBPd25QdHI8U2NyaXB0UnVu
bmVyPiBtX3NjcmlwdFJ1bm5lcjsKIAogI2lmIEVOQUJMRShYU0xUKQogICAgIE93blB0cjxUcmFu
c2Zvcm1Tb3VyY2U+IG1fdHJhbnNmb3JtU291cmNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20v
U2NyaXB0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCA3
NGYyNTgwLi4xMGYxYTFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNw
cAorKysgYi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjQsNyArMjQsNiBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIAotI2luY2x1
ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAt
MzcsNiArMzYsNyBAQAogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1
bm5lci5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRW
YWx1ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC01OCw2ICs1OCw3IEBAIFNjcmlwdEVs
ZW1lbnQ6OlNjcmlwdEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgYm9vbCB3YXNJbnNlcnRlZEJ5
UGFyc2VyLCBib29sIHdhCiAgICAgLCBtX2lzRXh0ZXJuYWxTY3JpcHQoZmFsc2UpCiAgICAgLCBt
X3dhc0FscmVhZHlTdGFydGVkKHdhc0FscmVhZHlTdGFydGVkKQogICAgICwgbV9oYXZlRmlyZWRM
b2FkKGZhbHNlKQorICAgICwgbV93aWxsRXhlY3V0ZUluT3JkZXIoZmFsc2UpCiB7CiAgICAgQVNT
RVJUKG1fZWxlbWVudCk7CiB9CkBAIC03Niw2ICs3NywxMCBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6
Omluc2VydGVkSW50b0RvY3VtZW50KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogCiAgICAgaWYg
KCFzb3VyY2VVcmwuaXNFbXB0eSgpKSB7CiAgICAgICAgIHJlcXVlc3RTY3JpcHQoc291cmNlVXJs
KTsKKyAgICAgICAgaWYgKCFpc0FzeW5jaHJvbm91cygpICYmIG1fY2FjaGVkU2NyaXB0KSB7Cisg
ICAgICAgICAgICBtX3dpbGxFeGVjdXRlSW5PcmRlciA9IHRydWU7CisgICAgICAgICAgICBtX2Vs
ZW1lbnQtPmRvY3VtZW50KCktPnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckluT3JkZXJF
eGVjdXRpb24odGhpcywgbV9jYWNoZWRTY3JpcHQpOworICAgICAgICB9CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTEzNyw3ICsxNDIsNyBAQCBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZEph
dmFTY3JpcHRMYW5ndWFnZShjb25zdCBTdHJpbmcmIGxhbmd1YWdlKQogICAgICAgICBsYW5ndWFn
ZXMuYWRkKCJqYXZhc2NyaXB0MS43Iik7CiAgICAgICAgIGxhbmd1YWdlcy5hZGQoImxpdmVzY3Jp
cHQiKTsKICAgICAgICAgbGFuZ3VhZ2VzLmFkZCgiZWNtYXNjcmlwdCIpOwotICAgICAgICBsYW5n
dWFnZXMuYWRkKCJqc2NyaXB0Iik7ICAgICAgICAgICAgICAgIAorICAgICAgICBsYW5ndWFnZXMu
YWRkKCJqc2NyaXB0Iik7CiAgICAgfQogCiAgICAgcmV0dXJuIGxhbmd1YWdlcy5jb250YWlucyhs
YW5ndWFnZSk7CkBAIC0yMzgsNyArMjQzLDEwIEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0
ZShDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKIHZvaWQgU2NyaXB0RWxlbWVudDo6bm90aWZ5
RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIG8pCiB7CiAgICAgQVNTRVJUX1VOVVNFRChvLCBvID09
IG1fY2FjaGVkU2NyaXB0KTsKLSAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmFzeW5jU2NyaXB0
UnVubmVyKCktPmV4ZWN1dGVTY3JpcHRTb29uKHRoaXMsIG1fY2FjaGVkU2NyaXB0KTsKKyAgICBp
ZiAobV93aWxsRXhlY3V0ZUluT3JkZXIpCisgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+
c2NyaXB0UnVubmVyKCktPnJlc3VtZSgpOworICAgIGVsc2UKKyAgICAgICAgbV9lbGVtZW50LT5k
b2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+ZXhlY3V0ZVNjcmlwdFNvb24odGhpcywgbV9jYWNo
ZWRTY3JpcHQpOwogICAgIG1fY2FjaGVkU2NyaXB0ID0gMDsKIH0KIApAQCAtMjU1LDcgKzI2Myw3
IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6c2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpIGNvbnN0
CiAgICAgICAgICBXaW5JRSA3IGFjY2VwdHMgZWNtYXNjcmlwdCBhbmQganNjcmlwdCwgYnV0IE1v
emlsbGEgMS44IGRvZXNuJ3QuCiAgICAgICAgICBOZWl0aGVyIE1vemlsbGEgMS44IG5vciBXaW5J
RSA3IGFjY2VwdCBsZWFkaW5nIG9yIHRyYWlsaW5nIHdoaXRlc3BhY2UuCiAgICAgICAgICBXZSB3
YW50IHRvIGFjY2VwdCBhbGwgdGhlIHZhbHVlcyB0aGF0IGVpdGhlciBvZiB0aGVzZSBicm93c2Vy
cyBhY2NlcHQsIGJ1dCBub3Qgb3RoZXIgdmFsdWVzLgotICAgICAKKwogICAgICAgICAgRklYTUU6
IElzIHRoaXMgSFRNTDUgY29tcGxpYW50PwogICAgICAqLwogICAgIFN0cmluZyB0eXBlID0gdHlw
ZUF0dHJpYnV0ZVZhbHVlKCk7CkBAIC0yNjYsNyArMjc0LDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50
OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0KCkgY29uc3QKICAgICAgICAgU3RyaW5nIGxhbmd1
YWdlID0gbGFuZ3VhZ2VBdHRyaWJ1dGVWYWx1ZSgpOwogICAgICAgICBpZiAoIWxhbmd1YWdlLmlz
RW1wdHkoKSAmJiAhaXNTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UobGFuZ3VhZ2UpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0gICAgCisgICAgfQogCiAgICAgLy8gTm8gdHlw
ZSBvciBsYW5ndWFnZSBpcyBzcGVjaWZpZWQsIHNvIHdlIGFzc3VtZSB0aGUgc2NyaXB0IHRvIGJl
IEphdmFTY3JpcHQuCiAKQEAgLTI3NiwxMiArMjg0LDEyIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6
c2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpIGNvbnN0CiAgICAgICAgIGZvckF0dHJpYnV0ZSA9
IGZvckF0dHJpYnV0ZS5zdHJpcFdoaXRlU3BhY2UoKTsKICAgICAgICAgaWYgKCFlcXVhbElnbm9y
aW5nQ2FzZShmb3JBdHRyaWJ1dGUsICJ3aW5kb3ciKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgICAgIAorCiAgICAgICAgIGV2ZW50QXR0cmlidXRlID0gZXZlbnRBdHRyaWJ1
dGUuc3RyaXBXaGl0ZVNwYWNlKCk7CiAgICAgICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2UoZXZl
bnRBdHRyaWJ1dGUsICJvbmxvYWQiKSAmJiAhZXF1YWxJZ25vcmluZ0Nhc2UoZXZlbnRBdHRyaWJ1
dGUsICJvbmxvYWQoKSIpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICAK
KwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRF
bGVtZW50LmggYi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggMDdjNTlkYi4uNTBh
N2JmYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuaApAQCAtOTAsNiArOTAsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9pc0V4dGVybmFsU2NyaXB0OwogICAgIGJvb2wgbV93YXNBbHJlYWR5U3RhcnRlZDsKICAg
ICBib29sIG1faGF2ZUZpcmVkTG9hZDsKKyAgICBib29sIG1fd2lsbEV4ZWN1dGVJbk9yZGVyOwog
fTsKIAogU2NyaXB0RWxlbWVudCogdG9TY3JpcHRFbGVtZW50KEVsZW1lbnQqKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAgYi9XZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUzZDlkM2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCkBAIC0wLDAgKzEsMTIx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgorCisjaW5jbHVkZSAi
Q2FjaGVkU2NyaXB0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFbGVtZW50
LmgiCisjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1NjcmlwdFJ1bm5lcjo6U2NyaXB0UnVubmVyKERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IG1f
ZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX3RpbWVyKHRoaXMsICZTY3JpcHRSdW5uZXI6OnRp
bWVyRmlyZWQpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKK30KKworU2NyaXB0UnVubmVyOjp+
U2NyaXB0UnVubmVyKCkKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1Rv
RXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExv
YWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0
c1RvRXhlY3V0ZUluT3JkZXIuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQtPmRlY3Jl
bWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKK30KKwordm9pZCBTY3JpcHRSdW5uZXI6OmV4ZWN1
dGVTY3JpcHRTb29uKFNjcmlwdEVsZW1lbnQqIGRhdGEsIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0KQoreworICAgIEFTU0VSVF9BUkcoZGF0YSwgZGF0YSk7
CisKKyAgICBFbGVtZW50KiBlbGVtZW50ID0gZGF0YS0+ZWxlbWVudCgpOworICAgIEFTU0VSVChl
bGVtZW50KTsKKyAgICBBU1NFUlQoZWxlbWVudC0+aW5Eb2N1bWVudCgpKTsKKworICAgIG1fZG9j
dW1lbnQtPmluY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBtX3NjcmlwdHNUb0V4
ZWN1dGVTb29uLmFwcGVuZChQZW5kaW5nU2NyaXB0KGRhdGEsIGVsZW1lbnQsIGNhY2hlZFNjcmlw
dCkpOworICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3RpbWVyLnN0YXJ0
T25lU2hvdCgwKTsKK30KKwordm9pZCBTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9ySW5PcmRl
ckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBkYXRhLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCkKK3sKKyAgICBBU1NFUlRfQVJHKGRhdGEsIGRhdGEpOwor
CisgICAgRWxlbWVudCogZWxlbWVudCA9IGRhdGEtPmVsZW1lbnQoKTsKKyAgICBBU1NFUlQoZWxl
bWVudCk7CisgICAgQVNTRVJUKGVsZW1lbnQtPmluRG9jdW1lbnQoKSk7CisKKyAgICBtX2RvY3Vt
ZW50LT5pbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CisgICAgbV9zY3JpcHRzVG9FeGVj
dXRlSW5PcmRlci5hcHBlbmQoUGVuZGluZ1NjcmlwdChkYXRhLCBlbGVtZW50LCBjYWNoZWRTY3Jp
cHQpKTsKK30KKwordm9pZCBTY3JpcHRSdW5uZXI6OnN1c3BlbmQoKQoreworICAgIG1fdGltZXIu
c3RvcCgpOworfQorCit2b2lkIFNjcmlwdFJ1bm5lcjo6cmVzdW1lKCkKK3sKKyAgICBpZiAoaGFz
UGVuZGluZ1NjcmlwdHMoKSkKKyAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisK
K3ZvaWQgU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKFRpbWVyPFNjcmlwdFJ1bm5lcj4qIHRpbWVy
KQoreworICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsKKworICAg
IFJlZlB0cjxEb2N1bWVudD4gcHJvdGVjdChtX2RvY3VtZW50KTsKKworICAgIFZlY3RvcjxQZW5k
aW5nU2NyaXB0PiBzY3JpcHRzOworICAgIHNjcmlwdHMuc3dhcChtX3NjcmlwdHNUb0V4ZWN1dGVT
b29uKTsKKworICAgIHNpemVfdCBudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZSA9IDA7CisgICAg
Zm9yICg7IG51bUluT3JkZXJTY3JpcHRzVG9FeGVjdXRlIDwgbV9zY3JpcHRzVG9FeGVjdXRlSW5P
cmRlci5zaXplKCkgJiYgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlcltudW1Jbk9yZGVyU2NyaXB0
c1RvRXhlY3V0ZV0uY2FjaGVkU2NyaXB0LT5pc0xvYWRlZCgpOyArK251bUluT3JkZXJTY3JpcHRz
VG9FeGVjdXRlKQorICAgICAgICBzY3JpcHRzLmFwcGVuZChtX3NjcmlwdHNUb0V4ZWN1dGVJbk9y
ZGVyW251bUluT3JkZXJTY3JpcHRzVG9FeGVjdXRlXSk7CisgICAgaWYgKG51bUluT3JkZXJTY3Jp
cHRzVG9FeGVjdXRlKQorICAgICAgICBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLnJlbW92ZSgw
LCBudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZSk7CisKKyAgICBzaXplX3Qgc2l6ZSA9IHNjcmlw
dHMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAg
ICAgIHNjcmlwdHNbaV0uc2NyaXB0RWxlbWVudC0+ZXhlY3V0ZShzY3JpcHRzW2ldLmNhY2hlZFNj
cmlwdC5nZXQoKSk7CisgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExvYWRFdmVudERlbGF5
Q291bnQoKTsKKyAgICB9Cit9CisKK1NjcmlwdFJ1bm5lcjo6UGVuZGluZ1NjcmlwdDo6UGVuZGlu
Z1NjcmlwdChTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBSZWZQdHI8RWxlbWVudD4gcmVm
ZWRFbGVtZW50LCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlw
dCkKKyAgICA6IHNjcmlwdEVsZW1lbnQoc2NyaXB0RWxlbWVudCkKKyAgICAsIHJlZmVkRWxlbWVu
dChyZWZlZEVsZW1lbnQpCisgICAgLCBjYWNoZWRTY3JpcHQoY2FjaGVkU2NyaXB0KQoreworfQor
CitTY3JpcHRSdW5uZXI6OlBlbmRpbmdTY3JpcHQ6On5QZW5kaW5nU2NyaXB0KCkKK3sKK30KKwor
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmggYi9XZWJDb3JlL2RvbS9T
Y3JpcHRSdW5uZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZjkxYzMx
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKQEAgLTAsMCAr
MSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgU2NyaXB0UnVubmVyX2gKKyNkZWZpbmUgU2NyaXB0UnVubmVyX2gKKworI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRT
Y3JpcHQ7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBTY3JpcHRFbGVt
ZW50OworCitjbGFzcyBTY3JpcHRSdW5uZXIgOiBwdWJsaWMgTm9uY29weWFibGUgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFNjcmlwdFJ1bm5lcj4gY3JlYXRlKERvY3VtZW50KiBk
b2N1bWVudCkgeyByZXR1cm4gbmV3IFNjcmlwdFJ1bm5lcihkb2N1bWVudCk7IH0KKyAgICB+U2Ny
aXB0UnVubmVyKCk7CisKKyAgICB2b2lkIGV4ZWN1dGVTY3JpcHRTb29uKFNjcmlwdEVsZW1lbnQq
LCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+KTsKKyAgICB2b2lkIHF1ZXVlU2Ny
aXB0Rm9ySW5PcmRlckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiwgQ2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkU2NyaXB0Pik7CisgICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsg
cmV0dXJuICFtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKSB8fCAhbV9zY3JpcHRzVG9F
eGVjdXRlSW5PcmRlci5pc0VtcHR5KCk7IH0KKyAgICB2b2lkIHN1c3BlbmQoKTsKKyAgICB2b2lk
IHJlc3VtZSgpOworCitwcml2YXRlOgorICAgIFNjcmlwdFJ1bm5lcihEb2N1bWVudCopOworCisg
ICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPFNjcmlwdFJ1bm5lcj4qKTsKKworICAgIHN0cnVjdCBQ
ZW5kaW5nU2NyaXB0IHsKKyAgICAgICAgUGVuZGluZ1NjcmlwdChTY3JpcHRFbGVtZW50KiBzY3Jp
cHRFbGVtZW50LCBSZWZQdHI8RWxlbWVudD4gcmVmZWRFbGVtZW50LCBDYWNoZWRSZXNvdXJjZUhh
bmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCk7CisgICAgICAgIH5QZW5kaW5nU2NyaXB0
KCk7CisKKyAgICAgICAgU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudDsKKyAgICAgICAgUmVm
UHRyPEVsZW1lbnQ+IHJlZmVkRWxlbWVudDsKKyAgICAgICAgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8
Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQ7CisgICAgfTsKKworICAgIERvY3VtZW50KiBtX2Rv
Y3VtZW50OworICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9y
ZGVyOworICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uOwor
ICAgIFRpbWVyPFNjcmlwdFJ1bm5lcj4gbV90aW1lcjsKK307CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1s
L0hUTUxTY3JpcHRFbGVtZW50LmNwcAppbmRleCBlMjI5YmI4Li5kODlmM2E3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIGlubGluZSBIVE1MU2NyaXB0RWxlbWVudDo6SFRNTFNjcmlwdEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIHdhc0lu
c2VydGVkQnlQYXJzZXIsIGJvb2wgd2FzQWxyZWFkeVN0YXJ0ZWQpCiAgICAgOiBIVE1MRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAsIFNjcmlwdEVsZW1lbnQodGhpcywgd2FzSW5zZXJ0
ZWRCeVBhcnNlciwgd2FzQWxyZWFkeVN0YXJ0ZWQpCisgICAgLCBtX2ZvcmNlQXN5bmMoIXdhc0lu
c2VydGVkQnlQYXJzZXIpCiB7CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoc2NyaXB0VGFnKSk7CiB9
CkBAIC01OCw2ICs1OSwxMyBAQCB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpjaGlsZHJlbkNoYW5n
ZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5nZQogICAgIEhUTUxFbGVt
ZW50OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlZEJ5UGFyc2VyLCBiZWZvcmVDaGFuZ2UsIGFmdGVy
Q2hhbmdlLCBjaGlsZENvdW50RGVsdGEpOwogfQogCit2b2lkIEhUTUxTY3JpcHRFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKEF0dHJpYnV0ZSogYXR0ciwgYm9vbCBwcmVzZXJ2ZURlY2xzKQorewor
ICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gYXN5bmNBdHRyKQorICAgICAgICBtX2ZvcmNlQXN5bmMg
PSBmYWxzZTsKKyAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChhdHRyLCBwcmVzZXJ2
ZURlY2xzKTsKK30KKwogdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoQXR0cmlidXRlKiBhdHRyKQogewogICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
ID0gYXR0ci0+bmFtZSgpOwpAQCAtNzgsNiArODYsOCBAQCB2b2lkIEhUTUxTY3JpcHRFbGVtZW50
OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKQogewogICAgIFNjcmlwdEVsZW1lbnQ6OmZpbmlzaFBh
cnNpbmdDaGlsZHJlbihzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpKTsKICAgICBIVE1MRWxlbWVudDo6
ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCk7CisgICAgaWYgKHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCku
aXNFbXB0eSgpICYmIHNjcmlwdENvbnRlbnQoKS5pc0VtcHR5KCkpCisgICAgICAgIG1fZm9yY2VB
c3luYyA9ICFoYXNBdHRyaWJ1dGUoYXN5bmNBdHRyKTsKIH0KIAogdm9pZCBIVE1MU2NyaXB0RWxl
bWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQpAQCAtMTUyLDcgKzE2Miw3IEBAIFN0cmluZyBI
VE1MU2NyaXB0RWxlbWVudDo6ZXZlbnRBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0CiAKIGJvb2wgSFRN
TFNjcmlwdEVsZW1lbnQ6OmFzeW5jQXR0cmlidXRlVmFsdWUoKSBjb25zdAogewotICAgIHJldHVy
biAhZ2V0QXR0cmlidXRlKGFzeW5jQXR0cikuaXNOdWxsKCk7CisgICAgcmV0dXJuIGFzeW5jKCk7
CiB9CiAKIGJvb2wgSFRNTFNjcmlwdEVsZW1lbnQ6OmRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25z
dApAQCAtMTYwLDYgKzE3MCwxNyBAQCBib29sIEhUTUxTY3JpcHRFbGVtZW50OjpkZWZlckF0dHJp
YnV0ZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gIWdldEF0dHJpYnV0ZShkZWZlckF0dHIpLmlz
TnVsbCgpOwogfQogCit2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpzZXRBc3luYyhib29sIGFzeW5j
KQoreworICAgIHNldEJvb2xlYW5BdHRyaWJ1dGUoYXN5bmNBdHRyLCBhc3luYyk7CisgICAgbV9m
b3JjZUFzeW5jID0gZmFsc2U7Cit9CisKK2Jvb2wgSFRNTFNjcmlwdEVsZW1lbnQ6OmFzeW5jKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9mb3JjZUFzeW5jIHx8ICFnZXRBdHRyaWJ1dGUoYXN5bmNB
dHRyKS5pc051bGwoKTsKK30KKwogdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hMb2Fk
RXZlbnQoKQogewogICAgIEFTU0VSVCghaGF2ZUZpcmVkTG9hZEV2ZW50KCkpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuaAppbmRleCAwOTc3M2M1Li40ZTVkMDdjIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuaApAQCAtMzgsNiArMzgsOSBAQCBwdWJsaWM6CiAKICAgICBLVVJMIHNyYygpIGNvbnN0
OwogCisgICAgdm9pZCBzZXRBc3luYyhib29sKTsKKyAgICBib29sIGFzeW5jKCkgY29uc3Q7CisK
IHByaXZhdGU6CiAgICAgSFRNTFNjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50KiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIHdhc0FscmVhZHlTdGFydGVk
KTsKIApAQCAtNDUsNiArNDgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRl
ZEludG9Eb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7
CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciA9
IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2UgPSAwLCBOb2RlKiBhZnRlckNoYW5nZSA9IDAsIGlu
dCBjaGlsZENvdW50RGVsdGEgPSAwKTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChBdHRyaWJ1dGUqLCBib29sIHByZXNlcnZlRGVjbHMgPSBmYWxzZSk7CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lk
IGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOwpAQCAtNjQsNiArNjgsOCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaEVycm9yRXZlbnQoKTsKIAogICAgIFBhc3NSZWZQdHI8RWxl
bWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpIGNvbnN0Owor
CisgICAgYm9vbCBtX2ZvcmNlQXN5bmM7CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmlkbAppbmRleCAyMGI3MzMxLi5mYTc5OWNiIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2Ny
aXB0RWxlbWVudC5pZGwKQEAgLTI0LDcgKzI0LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3Q9Zm9yXSBET01TdHJpbmcgaHRtbEZvcjsKICAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZXZlbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gRE9NU3RyaW5nIGNoYXJzZXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVh
biBhc3luYzsKKyAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gYXN5bmM7CiAgICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBkZWZlcjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
LCBVUkxdIERPTVN0cmluZyBzcmM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIHR5cGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVy
LmNwcCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCmluZGV4IDk4YTQ3
MjAuLmQzYjBmMDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJy
ZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCkBAIC0y
MSwxMCArMjEsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQYWdlR3JvdXBM
b2FkRGVmZXJyZXIuaCIKIAotI2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCisj
aW5jbHVkZSAiU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsNyArNDgsNyBAQCBQYWdlR3JvdXBMb2FkRGVmZXJyZXI6
OlBhZ2VHcm91cExvYWREZWZlcnJlcihQYWdlKiBwYWdlLCBib29sIGRlZmVyU2VsZikKICAgICAg
ICAgICAgICAgICAvLyB0aGUgY29uc3RydWN0b3Igd2lsbCBuZWVkIHRvIHRha2UgYSBBY3RpdmVE
T01PYmplY3Q6OlJlYXNvbkZvclN1c3BlbnNpb24uCiAgICAgICAgICAgICAgICAgZm9yIChGcmFt
ZSogZnJhbWUgPSBvdGhlclBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+
dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9j
dW1lbnQoKS0+c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMoQWN0aXZlRE9NT2JqZWN0OjpXaWxsU2hv
d0RpYWxvZyk7Ci0gICAgICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5hc3luY1Nj
cmlwdFJ1bm5lcigpLT5zdXNwZW5kKCk7CisgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1
bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+c3VzcGVuZCgpOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNjgsNyArNjgsNyBAQCBQYWdlR3JvdXBMb2FkRGVm
ZXJyZXI6On5QYWdlR3JvdXBMb2FkRGVmZXJyZXIoKQogCiAgICAgICAgICAgICBmb3IgKEZyYW1l
KiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5y
ZXN1bWVBY3RpdmVET01PYmplY3RzKCk7Ci0gICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50
KCktPmFzeW5jU2NyaXB0UnVubmVyKCktPnJlc3VtZSgpOworICAgICAgICAgICAgICAgIGZyYW1l
LT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+cmVzdW1lKCk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75748</attachid>
            <date>2010-12-06 16:22:06 -0800</date>
            <delta_ts>2010-12-15 17:37:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch2</filename>
            <type>text/plain</type>
            <size>40522</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MGFhMTU0Li4zY2RkNDc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAtMTIt
MDYgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2
aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNj
cmlwdHMKKworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGggYXN5bmM9ZmFs
c2Ugd2lsbCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4KKyAgICAgICAg
U2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9u
X09yZGVyCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTE1CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5
bmMtYXR0ci1leHBlY3RlZC50eHQ6IEFkZGVkIHRlc3QgY2FzZXMgZm9yIGZvcmNlQXN5bmMuCisg
ICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRt
bDogRGl0dG8uCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQt
YXN5bmMtYXR0ci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVs
ZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2Mv
c2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9y
ZGVyLmh0bWw6IEFkZGVkLgorCiAyMDEwLTEyLTA2ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3lu
Yy1hdHRyLWV4cGVjdGVkLnR4dAppbmRleCA3YjhiZjRkLi5lODY3ZjQwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
c2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0CkBAIC04LDggKzgsMTQgQEAgUEFTUyBpc0Fz
eW5jKCdzMScpIGlzIHRydWUKIFBBU1MgaXNBc3luYygnczInKSBpcyB0cnVlCiBQQVNTIGlzQXN5
bmMoJ3MzJykgaXMgdHJ1ZQogUEFTUyBpc0FzeW5jKCdzNCcpIGlzIHRydWUKK1BBU1MgaXNBc3lu
YygnczUnKSBpcyB0cnVlCitQQVNTIGlzQXN5bmMoJ3M2JykgaXMgdHJ1ZQorUEFTUyBpc0FzeW5j
KCdzNycpIGlzIHRydWUKK1BBU1MgaXNBc3luYygnczgnKSBpcyBmYWxzZQogUEFTUyBpc0R5bmFt
aWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyh0cnVlKSBpcyB0cnVlCiBQQVNTIGlzRHluYW1pY2Fs
bHlJbnNlcnRlZFNjcmlwdEFzeW5jKGZhbHNlKSBpcyBmYWxzZQorUEFTUyBpc0R5bmFtaWNhbGx5
SW5zZXJ0ZWRTY3JpcHRBc3luYygiYXN5bmMiKSBpcyB0cnVlCitQQVNTIGlzRHluYW1pY2FsbHlJ
bnNlcnRlZFNjcmlwdEFzeW5jKG51bGwpIGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWwKaW5kZXgg
NGEzZjNhZi4uYjBlNDA2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci5odG1sCkBAIC0xMiwxMSAr
MTIsMTUgQEAKIDxzY3JpcHQgaWQ9InMyIiBzcmM9Imlnbm9yZWQuanMiIGFzeW5jPSJhc3luYyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJzMyIgc3JjPSJpZ25vcmVkLmpzIiBhc3luYz0iQVNZTkMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBpZD0iczQiIHNyYz0iaWdub3JlZC5qcyIgYXN5bmM9InRydWUi
Pjwvc2NyaXB0PgorPHNjcmlwdCBpZD0iczUiIHNyYz0iaWdub3JlZC5qcyIgYXN5bmM9ImZhbHNl
Ij48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM2Ij48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM3IiBh
c3luYz48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM4IiBhc3luYz48L3NjcmlwdD4KIAogPHNjcmlw
dD4KIGRlc2NyaXB0aW9uKCdUaGlzIHRlc3QgY2hlY2tzIGZvciBwcm9wZXIgcGFyc2luZyBvZiB0
aGUgYXN5bmMgYXR0cmlidXRlIG9uIEhUTUwgc2NyaXB0IHRhZ3MuJyk7CiAKLXZhciBuZXh0U2Ny
aXB0SUQgPSAwOwordmFyIG5leHRTY3JpcHRJRCA9IDk7CiAKIGZ1bmN0aW9uIGlzQXN5bmMoaWQp
CiB7CkBAIC0yOSwxOSArMzMsMjcgQEAgZnVuY3Rpb24gaXNEeW5hbWljYWxseUluc2VydGVkU2Ny
aXB0QXN5bmMoYXN5bmMpCiAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNjcmlwdCIpOwogICAgIHNjcmlwdC5pZCA9IGlkOwogICAgIHNjcmlwdC5zcmMgPSAicmVzb3Vy
Y2VzL3NjcmlwdC1sb2FkLmpzIjsKLSAgICBpZiAoYXN5bmMpCi0gICAgICAgIHNjcmlwdC5hc3lu
YyA9ICJhc3luYyI7CisgICAgaWYgKGFzeW5jICE9IG51bGwpCisgICAgICAgIHNjcmlwdC5hc3lu
YyA9IGFzeW5jOwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0u
YXBwZW5kQ2hpbGQoc2NyaXB0KTsKICAgICByZXR1cm4gaXNBc3luYyhpZCk7CiB9CiAKK2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzOCIpLnJlbW92ZUF0dHJpYnV0ZSgiYXN5bmMiKTsKKwogc2hv
dWxkQmVGYWxzZSgiaXNBc3luYygnczAnKSIpOwogc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzMScp
Iik7CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3MyJykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNBc3lu
YygnczMnKSIpOwogc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzNCcpIik7CitzaG91bGRCZVRydWUo
ImlzQXN5bmMoJ3M1JykiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNBc3luYygnczYnKSIpOworc2hvdWxk
QmVUcnVlKCJpc0FzeW5jKCdzNycpIik7CitzaG91bGRCZUZhbHNlKCJpc0FzeW5jKCdzOCcpIik7
CiBzaG91bGRCZVRydWUoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKHRydWUpIik7
CiBzaG91bGRCZUZhbHNlKCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyhmYWxzZSki
KTsKK3Nob3VsZEJlVHJ1ZSgiaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMoXCJhc3lu
Y1wiKSIpOworc2hvdWxkQmVUcnVlKCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyhu
dWxsKSIpOwogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4
ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjOGQxODAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1v
cmRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitBdHRlbXB0cyB0byBjaGVjayB0aGF0
IGFzeW5jPWZhbHNlIGVuZm9yY2VzIGV4ZWN1dGlvbiBvcmRlciBkeW5hbWljYWxseSBpbnNlcnRl
ZCBzY3JpcHRzLiBTZWU6IGh0dHA6Ly93aWtpLndoYXR3Zy5vcmcvd2lraS9EeW5hbWljX1Njcmlw
dF9FeGVjdXRpb25fT3JkZXIKK3Nsb3dBc3luYworYXN5bmMKK2xvYWQKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1
dGUtaW4tb3JkZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Nzcz
ZmQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Njcmlw
dC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy10ZXN0cy1yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZGVidWco
J2xvYWQnKTtmaW5pc2hKU1Rlc3QoKTsiPgorQXR0ZW1wdHMgdG8gY2hlY2sgdGhhdCBhc3luYz1m
YWxzZSBlbmZvcmNlcyBleGVjdXRpb24gb3JkZXIgZHluYW1pY2FsbHkgaW5zZXJ0ZWQgc2NyaXB0
cy4KK1NlZTogaHR0cDovL3dpa2kud2hhdHdnLm9yZy93aWtpL0R5bmFtaWNfU2NyaXB0X0V4ZWN1
dGlvbl9PcmRlcgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGpzVGVz
dElzQXN5bmMgPSB0cnVlOworCitzbG93bHlfbG9hZGVkX3NjcmlwdCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNjcmlwdCIpOworc2xvd2x5X2xvYWRlZF9zY3JpcHQuYXN5bmMgPSBmYWxzZTsK
K3Nsb3dseV9sb2FkZWRfc2NyaXB0LnNyYyA9ICJyZXNvdXJjZXMvc2xvdy1hc3luYy1zY3JpcHQu
Y2dpIjsKK2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hp
bGQoc2xvd2x5X2xvYWRlZF9zY3JpcHQpOworCitxdWlja2x5X2xvYWRlZF9zY3JpcHQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKK3F1aWNrbHlfbG9hZGVkX3NjcmlwdC5hc3lu
YyA9IGZhbHNlOworcXVpY2tseV9sb2FkZWRfc2NyaXB0LnNyYyA9ICJyZXNvdXJjZXMvYXN5bmMt
c2NyaXB0LmpzIjsKK2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBw
ZW5kQ2hpbGQocXVpY2tseV9sb2FkZWRfc2NyaXB0KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9BbmRyb2lkLm1rIGIvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDE1NDQ2Nzku
LmE0YzVkMDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9XZWJDb3JlL0Fu
ZHJvaWQubWsKQEAgLTk0LDcgKzk0LDYgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JD
X0ZJTEVTKSBcCiAJY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAJXAogCWRvbS9B
Y3RpdmVET01PYmplY3QuY3BwIFwKLQlkb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwIFwKIAlkb20v
QXR0ci5jcHAgXAogCWRvbS9BdHRyaWJ1dGUuY3BwIFwKIAlkb20vQmVmb3JlVGV4dEluc2VydGVk
RXZlbnQuY3BwIFwKQEAgLTE2OCw2ICsxNjcsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NB
TF9TUkNfRklMRVMpIFwKIAlkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBcCiAJZG9t
L1NjcmlwdEVsZW1lbnQuY3BwIFwKIAlkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgXAor
CWRvbS9TY3JpcHRSdW5uZXIuY3BwIFwKIAlkb20vU2VsZWN0RWxlbWVudC5jcHAgXAogCWRvbS9T
ZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAJZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDczMTY2MWEuLmUzNDg3MGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNzk2LDcgKzc5Niw2IEBAIFNFVChXZWJD
b3JlX1NPVVJDRVMKICAgICBjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwCiAKICAgICBk
b20vQWN0aXZlRE9NT2JqZWN0LmNwcAotICAgIGRvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKICAg
ICBkb20vQXR0ci5jcHAKICAgICBkb20vQXR0cmlidXRlLmNwcAogICAgIGRvbS9CZWZvcmVUZXh0
SW5zZXJ0ZWRFdmVudC5jcHAKQEAgLTg3NSw2ICs4NzQsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAKICAgICBkb20vU2NyaXB0RWxl
bWVudC5jcHAKICAgICBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKyAgICBkb20vU2Ny
aXB0UnVubmVyLmNwcAogICAgIGRvbS9TZWxlY3RFbGVtZW50LmNwcAogICAgIGRvbS9TZWxlY3Rv
ck5vZGVMaXN0LmNwcAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOTk5ODkyLi42Mzk4
ZTA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDYwIEBACisyMDEwLTEyLTA2ICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFt
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBOZWVkIGRpZmZlcmVudCBiZWhhdmlvciBmb3IgZW5zdXJpbmcgZXhlY3V0aW9uIG9y
ZGVyIG9mIGR5bmFtaWNhbGx5IGxvYWRlZCBzY3JpcHRzCisKKyAgICAgICAgRHluYW1pY2FsbHkg
YWRkZWQgc2NyaXB0cyB3aXRoIGFzeW5jPWZhbHNlIHdpbGwgbG9hZCBpbiBwYXJhbGxlbCwgYnV0
IGV4ZWN1dGUgaW4gb3JkZXIuCisgICAgICAgIFNlZTogaHR0cDovL3dpa2kud2hhdHdnLm9yZy93
aWtpL0R5bmFtaWNfU2NyaXB0X0V4ZWN1dGlvbl9PcmRlcgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDExNQorCisgICAgICAgIFRlc3Q6IGZhc3Qv
ZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci5odG1sCisK
KyAgICAgICAgKiBBbmRyb2lkLm1rOiBSZW5hbWUgQXN5bmNTY3JpcHRSdW5uZXIgLT4gU2NyaXB0
UnVubmVyLgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBEaXR0by4KKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAg
ICAgKiBXZWJDb3JlLnBybzogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajogRGl0dG8uCisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDogRGl0dG8uCisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1
bWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6IERp
dHRvLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNjcmlwdFJ1bm5lcik6IERpdHRvLgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OlNjcmlwdEVsZW1lbnQpOiBUcmFj
ayBob3cgc2NyaXB0IHNob3VsZCBleGVjdXRlLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxl
bWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOiBRdWV1ZSBpbiBvcmRlciBpZiBhc3luYz1mYWxz
ZS4KKyAgICAgICAgKFdlYkNvcmU6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdExhbmd1YWdlKTogRml4
IHdoaXRlc3BhY2UuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojpub3RpZnlGaW5p
c2hlZCk6IEV4ZWN1dGUgaW4tb3JkZXIgb3IgYXN5bmMgc2NyaXB0LgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0RWxlbWVudDo6c2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCk6IEZpeCB3aGl0ZXNw
YWNlLgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogZG9tL1Njcmlw
dFJ1bm5lci5jcHA6IFJlbmFtZWQgZnJvbSBXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5j
cHAuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OlNjcmlwdFJ1bm5lcik6IEFkZCBp
bi1vcmRlciBzY3JpcHQgcXVldWUuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6On5T
Y3JpcHRSdW5uZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6ZXhl
Y3V0ZVNjcmlwdFNvb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpxdWV1ZVNj
cmlwdEZvckluT3JkZXJFeGVjdXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dFJ1bm5lcjo6c3VzcGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnJlc3Vt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQpOiBSdW4gaW4t
b3JkZXIgc2NyaXB0cyB0aGF0IGhhdmUgbG9hZGVkIHRvby4KKyAgICAgICAgKiBkb20vU2NyaXB0
UnVubmVyLmg6IFJlbmFtZWQgZnJvbSBXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oLgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0UnVubmVyOjpoYXNQZW5kaW5nU2NyaXB0cyk6IENoZWNrIGZvciBpbi1vcmRlciBz
Y3JpcHRzIHRvby4KKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50OjpIVE1MU2NyaXB0RWxlbWVudCk6IEFkZCBt
X2ZvcmNlQXN5bmMgdG8gdHJhY2sgaWYgdXNlciBleHBsaWNpdGx5IHJlcXVlc3RlZCBhc3luYy4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKTog
VW5zZXQgbV9mb3JjZUFzeW5jIG9uIGFzeW5jIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxTY3JpcHRFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4pOiBTZXQgbV9mb3JjZUFzeW5j
IGlmIHNjcmlwdCBiZWNvbWVzIGR5bmFtaWMgKG5vIHNyYyBhbmQgbm8gY29udGVudCkuCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6YXN5bmNBdHRyaWJ1dGVWYWx1ZSk6IEFs
aWFzIGZvciBhc3luYygpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OnNl
dEFzeW5jKTogQWRkZWQuIElmIGNhbGxlZCwgdW5zZXQgbV9mb3JjZUFzeW5jLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmFzeW5jKTogQWRkZWQuIFJldHVybiBtX2ZvcmNl
QXN5bmMgaWYgaXQncyBzZXQuCisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsOiBSZW1vdmVkIFJlZmxlY3QgZnJv
bSBhc3luYyBmb3IgY3VzdG9tIGJlaGF2aW9yLgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3VwTG9h
ZERlZmVycmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cExvYWREZWZlcnJlcjo6
UGFnZUdyb3VwTG9hZERlZmVycmVyKTogUmVuYW1lIEFzeW5jU2NyaXB0UnVubmVyIC0+IFNjcmlw
dFJ1bm5lci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cExvYWREZWZlcnJlcjo6flBhZ2VH
cm91cExvYWREZWZlcnJlcik6IERpdHRvLgorCiAyMDEwLTEyLTAzICBaaGVueWFvIE1vICA8em1v
QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
aW5kZXggNmIyNjQ2NC4uMzlhYjA0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMDcwLDggKzEwNzAsNiBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmgg
XAogCVdlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAogCVdlYkNvcmUvZG9tL0FjdGl2
ZURPTU9iamVjdC5oIFwKLQlXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAgXAotCVdl
YkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmggXAogCVdlYkNvcmUvZG9tL0F0dHIuY3BwIFwK
IAlXZWJDb3JlL2RvbS9BdHRyLmggXAogCVdlYkNvcmUvZG9tL0F0dHJpYnV0ZS5jcHAgXApAQCAt
MTI1Niw2ICsxMjU0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2RvbS9TY3Jp
cHRFbGVtZW50LmggXAogCVdlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIFwK
IAlXZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggXAorCVdlYkNvcmUvZG9tL1Nj
cmlwdFJ1bm5lci5jcHAgXAorCVdlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oIFwKIAlXZWJDb3Jl
L2RvbS9TZWxlY3RFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5oIFwK
IAlXZWJDb3JlL2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDAxYzVjODkuLjBmNWFi
NWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0xMTQwLDggKzExNDAsNiBAQAogICAgICAgICAgICAgJ2RvbS9kZWZhdWx0L1Bs
YXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgnLAogICAgICAgICAgICAgJ2RvbS9BY3RpdmVET01P
YmplY3QuY3BwJywKICAgICAgICAgICAgICdkb20vQWN0aXZlRE9NT2JqZWN0LmgnLAotICAgICAg
ICAgICAgJ2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAnLAotICAgICAgICAgICAgJ2RvbS9Bc3lu
Y1NjcmlwdFJ1bm5lci5oJywKICAgICAgICAgICAgICdkb20vQXR0ci5jcHAnLAogICAgICAgICAg
ICAgJ2RvbS9BdHRyLmgnLAogICAgICAgICAgICAgJ2RvbS9BdHRyaWJ1dGUuY3BwJywKQEAgLTEz
MjQsNiArMTMyMiw4IEBACiAgICAgICAgICAgICAnZG9tL1NjcmlwdEVsZW1lbnQuaCcsCiAgICAg
ICAgICAgICAnZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwJywKICAgICAgICAgICAgICdk
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKKyAgICAgICAgICAgICdkb20vU2NyaXB0UnVu
bmVyLmNwcCcsCisgICAgICAgICAgICAnZG9tL1NjcmlwdFJ1bm5lci5oJywKICAgICAgICAgICAg
ICdkb20vU2VsZWN0RWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TZWxlY3RFbGVtZW50
LmgnLAogICAgICAgICAgICAgJ2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCcsCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBhMmVlZTdl
Li5iZWMxNTkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS5wcm8KQEAgLTY4Myw3ICs2ODMsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvV2Vi
S2l0Q1NTTWF0cml4LmNwcCBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBc
CiAgICAgZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAotICAgIGRvbS9Bc3luY1NjcmlwdFJ1bm5l
ci5jcHAgXAogICAgIGRvbS9BdHRyLmNwcCBcCiAgICAgZG9tL0F0dHJpYnV0ZS5jcHAgXAogICAg
IGRvbS9CZWZvcmVQcm9jZXNzRXZlbnQuY3BwIFwKQEAgLTc2NSw2ICs3NjQsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBcCiAgICAgZG9tL1Nj
cmlwdEVsZW1lbnQuY3BwIFwKICAgICBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgXAor
ICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwIFwKICAgICBkb20vU2VsZWN0RWxlbWVudC5jcHAgXAog
ICAgIGRvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcu
Y3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDNhMDRiYWMuLmY4
ZGNlMDggMTAwNzU1Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDEwNzAsNjIg
KzQxMDcwLDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0
aD0iLi5cZG9tXEFzeW5jU2NyaXB0UnVubmVyLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1
cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJ
CQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgot
CQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1
cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZp
bGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKLQkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cQXN5bmNTY3JpcHRSdW5u
ZXIuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXEF0b21pY1N0cmluZ0xpc3QuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC00NTQ4Niw2ICs0
NTQzMCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxkb21cU2NyaXB0UnVubmVyLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
Lz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2NyaXB0UnVubmVyLmgiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTZWxlY3RF
bGVtZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRmN2VkNzguLjYxNDUxNTUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjU3LDggKzI2NTcs
OCBAQAogCQk4OUQwOERBMTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUQw
OEQ5RTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi87IH07
CiAJCThBMTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBMTJFMzVDMTFGQTMz
MjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyog
TmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDhBMzA5QzlFMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJ
bmNyZW1lbnRlci5oICovOyB9OwotCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCThBNDEzQUUxMTIw
N0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyog
QXN5bmNTY3JpcHRSdW5uZXIuY3BwICovOyB9OworCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUg
LyogU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOEE0MTNBRTExMjA3
QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0
UnVubmVyLmNwcCAqLzsgfTsKIAkJOEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdT
Y3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhB
N0NDOTZBMTIwNzZENzMwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE3Q0M5NzAxMjA3NkY4QTAwMUQ0
NTg4IC8qIFBlbmRpbmdTY3JpcHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOEE3Q0M5NkYxMjA3NkY4QTAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQu
Y3BwICovOyB9OwogCQk4QTgxQkY4NTExRENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VMb2FkVGlt
aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTgx
QkY4NDExRENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VMb2FkVGltaW5nLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTg4MTMsOCArODgxMyw4IEBA
CiAJCTg5RDA4RDlFMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBMTJFMzVDMTFGQTMzMjgwMDI1
ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRG9jdW1lbnRMb2FkVGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CThBMzA5QzlFMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5o
OyBwYXRoID0gcGFyc2VyL05lc3RpbmdMZXZlbEluY3JlbWVudGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1
bm5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5l
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAx
NkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQXN5bmNTY3JpcHRSdW5uZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFJ1bm5lci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdFJ1bm5lci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBN0NDOTZBMTIwNzZENzMwMDFENDU4OCAv
KiBQZW5kaW5nU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlbmRp
bmdTY3JpcHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE3Q0M5NkYxMjA3NkY4
QTAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUGVuZGluZ1NjcmlwdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCThBODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkVGltaW5nLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODI2NCw4ICsxODI2NCw2IEBACiAJCQljaGlsZHJl
biA9ICgKIAkJCQlFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmNw
cCAqLywKIAkJCQlFMUM0REU2ODBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0Lmgg
Ki8sCi0JCQkJOEE0MTNBREYxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNw
cCAqLywKLQkJCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIu
aCAqLywKIAkJCQlBOEM0QTdGQzA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5jcHAgKi8sCiAJCQkJ
QThDNEE3RkIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuaCAqLywKIAkJCQk5M0VFQzFFNTA5QzI4
Nzc3MDBDNTE1RDEgLyogQXR0ci5pZGwgKi8sCkBAIC0xODQ5OCw2ICsxODQ5Niw4IEBACiAJCQkJ
MDhBNDg0NzYwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuaCAqLywKIAkJCQlFMTFD
OURBRjBFQjM2OTk1MDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgKi8sCiAJ
CQkJRTExQzlEOUEwRUIzNjgxMjAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCAq
LywKKwkJCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCAqLywK
KwkJCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi8sCiAJCQkJ
MDg0QUVCRTIwRkI1MDVGQTAwMzg0ODNFIC8qIFNlbGVjdEVsZW1lbnQuY3BwICovLAogCQkJCTA4
NEFFQkUzMEZCNTA1RkEwMDM4NDgzRSAvKiBTZWxlY3RFbGVtZW50LmggKi8sCiAJCQkJQkM3RkE2
ODAwRDFGMTY3OTAwREIyMkE5IC8qIFNlbGVjdG9yTm9kZUxpc3QuY3BwICovLApAQCAtMTg2Njgs
NyArMTg2NjgsNiBAQAogCQkJCTk3NkQ2Qzc3MTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVX
cml0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NkQ2QzkzMTIyQjhBM0QwMDFGRDFGNyAvKiBB
c3luY0ZpbGVXcml0ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIwMTQ5RTdFMTFBNEIy
MTUwMDE5NkE3QiAvKiBBc3luY0ltYWdlUmVzaXplci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOEE0
MTNBRTAxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzN0M2MUYwMTEyMDk1Qzg3MDA3QTNDNjcgLyogQXRvbWljU3RyaW5nS2V5ZWRNUlVD
YWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNEE4MEQwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0
dHIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzRBODBCMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRy
aWJ1dGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjA5MjAsNiArMjA5MTksNyBAQAogCQkJCTlGNzIz
MDRGMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5RkEzN0VFNDExNzJGQzgwMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTlGNzIzMDUxMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOEE0MTNBRTAxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1
bm5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0Q0MxMEEwRURCMjIzOTAwQTY1OEYyIC8qIFNj
cmlwdFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNTRGRDM4MTAxNkQ5QTYwMDhC
NDRDOCAvKiBTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFDNzYw
QjEwRURFMDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTIx
ODU2LDcgKzIxODU2LDYgQEAKIAkJCQk0OUVFQ0RERjEwNTAzQzI0MDAwOTlGQUIgLyogQXJyYXlC
dWZmZXJWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5RDA4RDlGMTIyMjg0NTEwMDEyNDFE
RiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjAxNDlFN0QxMUE0
QjIxNTAwMTk2QTdCIC8qIEFzeW5jSW1hZ2VSZXNpemVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CThBNDEzQUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEM0QTgwRTA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEM0QTgwQzA5RDU2MzI3MDAwM0FDOEQgLyogQXR0cmlidXRlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTkzNEY3MTM4MEQ1QTZFRkYwMDAxOEQ2OSAvKiBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMzYwNyw2ICsyMzYwNiw3
IEBACiAJCQkJNDFGMDY2RTUwRjY0QkNGNjAwQTA3RUFDIC8qIFNjcmlwdE9iamVjdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGMzNGMDI4MjEyMDk0N0YyMDBFNTc0M0EgLyogU2NyaXB0UHJvZmls
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RjcyMzA1MDExMTg0QjQxMDBBRDAxMjYgLyogU2Ny
aXB0UHJvZmlsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOEE0MTNBRTExMjA3QkJBNTAwODIw
MTZFIC8qIFNjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTI3RDUzNzBGOEFB
QjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM0Q0Mw
RTEwRUQzOUQ2RjAwQTY1OEYyIC8qIFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUNBM0JGNjdDMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1dlYkNvcmUv
ZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCAyZjM1MTBkLi40OWI4ZWFmIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUu
Y3BwCkBAIC0yNiw3ICsyNiw2IEBACiAvLyBUaGlzIGFsbC1pbi1vbmUgY3BwIGZpbGUgY3V0cyBk
b3duIG9uIHRlbXBsYXRlIGJsb2F0IHRvIGFsbG93IHVzIHRvIGJ1aWxkIG91ciBXaW5kb3dzIHJl
bGVhc2UgYnVpbGQuCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuY3BwIgotI2luY2x1ZGUg
IkFzeW5jU2NyaXB0UnVubmVyLmNwcCIKICNpbmNsdWRlICJBdHRyLmNwcCIKICNpbmNsdWRlICJB
dHRyaWJ1dGUuY3BwIgogI2luY2x1ZGUgIkJlZm9yZVByb2Nlc3NFdmVudC5jcHAiCkBAIC0xMDIs
NiArMTAxLDcgQEAKICNpbmNsdWRlICJSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAiCiAjaW5j
bHVkZSAiU2NyaXB0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcHAiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmNwcCIKICNpbmNsdWRlICJTY3JpcHRhYmxl
RG9jdW1lbnRQYXJzZXIuY3BwIgogI2luY2x1ZGUgIlNlbGVjdEVsZW1lbnQuY3BwIgogI2luY2x1
ZGUgIlNlbGVjdG9yTm9kZUxpc3QuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGUxODIyMTQuLmIyMTNmNGQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJBbmltYXRpb25Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiQXN5bmNTY3Jp
cHRSdW5uZXIuaCIKICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAj
aW5jbHVkZSAiQ0RBVEFTZWN0aW9uLmgiCkBAIC0xMjAsNiArMTE5LDcgQEAKICNpbmNsdWRlICJT
Y3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUg
IlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKICNpbmNs
dWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgogI2lu
Y2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKQEAgLTM3OCw3ICszNzgsNyBAQCBEb2N1bWVu
dDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwg
Ym9vbCBpc0hUTUwsIGNvbgogICAgICwgbV9zdGFydFRpbWUoY3VycmVudFRpbWUoKSkKICAgICAs
IG1fb3Zlck1pbmltdW1MYXlvdXRUaHJlc2hvbGQoZmFsc2UpCiAgICAgLCBtX2V4dHJhTGF5b3V0
RGVsYXkoMCkKLSAgICAsIG1fYXN5bmNTY3JpcHRSdW5uZXIoQXN5bmNTY3JpcHRSdW5uZXI6OmNy
ZWF0ZSh0aGlzKSkKKyAgICAsIG1fc2NyaXB0UnVubmVyKFNjcmlwdFJ1bm5lcjo6Y3JlYXRlKHRo
aXMpKQogICAgICwgbV94bWxWZXJzaW9uKCIxLjAiKQogICAgICwgbV94bWxTdGFuZGFsb25lKGZh
bHNlKQogICAgICwgbV9zYXZlZFJlbmRlcmVyKDApCkBAIC01NDcsNyArNTQ3LDcgQEAgRG9jdW1l
bnQ6On5Eb2N1bWVudCgpCiAgICAgQVNTRVJUKG1fcmFuZ2VzLmlzRW1wdHkoKSk7CiAgICAgQVNT
RVJUKCFtX3N0eWxlUmVjYWxjVGltZXIuaXNBY3RpdmUoKSk7CiAKLSAgICBtX2FzeW5jU2NyaXB0
UnVubmVyLmNsZWFyKCk7CisgICAgbV9zY3JpcHRSdW5uZXIuY2xlYXIoKTsKIAogICAgIHJlbW92
ZUFsbEV2ZW50TGlzdGVuZXJzKCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGJjMDY4ODMuLjNkNzcxYWUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aApAQCAtNTEsNyArNTEsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEFzeW5j
U2NyaXB0UnVubmVyOwogY2xhc3MgQXR0cjsKIGNsYXNzIEFYT2JqZWN0Q2FjaGU7CiBjbGFzcyBD
REFUQVNlY3Rpb247CkBAIC0xMTAsNiArMTA5LDcgQEAgY2xhc3MgUmVuZGVyQXJlbmE7CiBjbGFz
cyBSZW5kZXJWaWV3OwogY2xhc3MgU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyOwogY2xhc3MgU2Ny
aXB0RWxlbWVudERhdGE7CitjbGFzcyBTY3JpcHRSdW5uZXI7CiBjbGFzcyBTZWN1cml0eU9yaWdp
bjsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFNlZ21lbnRlZFN0cmluZzsK
QEAgLTg3Myw3ICs4NzMsNyBAQCBwdWJsaWM6CiAKICAgICBpbnQgZG9jSUQoKSBjb25zdCB7IHJl
dHVybiBtX2RvY0lEOyB9CiAgICAgCi0gICAgQXN5bmNTY3JpcHRSdW5uZXIqIGFzeW5jU2NyaXB0
UnVubmVyKCkgeyByZXR1cm4gbV9hc3luY1NjcmlwdFJ1bm5lci5nZXQoKTsgfQorICAgIFNjcmlw
dFJ1bm5lciogc2NyaXB0UnVubmVyKCkgeyByZXR1cm4gbV9zY3JpcHRSdW5uZXIuZ2V0KCk7IH0K
IAogI2lmIEVOQUJMRShYU0xUKQogICAgIHZvaWQgYXBwbHlYU0xUcmFuc2Zvcm0oUHJvY2Vzc2lu
Z0luc3RydWN0aW9uKiBwaSk7CkBAIC0xMjc4LDcgKzEyNzgsNyBAQCBwcml2YXRlOgogICAgIC8v
IHBvaW50cyBkdXJpbmcgdGhlIGxpZmV0aW1lIG9mIHRoZSBEb2N1bWVudC4KICAgICBpbnQgbV9l
eHRyYUxheW91dERlbGF5OwogICAgIAotICAgIE93blB0cjxBc3luY1NjcmlwdFJ1bm5lcj4gbV9h
c3luY1NjcmlwdFJ1bm5lcjsKKyAgICBPd25QdHI8U2NyaXB0UnVubmVyPiBtX3NjcmlwdFJ1bm5l
cjsKIAogI2lmIEVOQUJMRShYU0xUKQogICAgIE93blB0cjxUcmFuc2Zvcm1Tb3VyY2U+IG1fdHJh
bnNmb3JtU291cmNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAg
Yi9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCA3Mjg3OGQyLi5jMmIwOGNiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2Rv
bS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIAotI2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVu
bmVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMzcsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
U2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUg
IlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCkBAIC01OCw2ICs1OCw3IEBAIFNjcmlwdEVsZW1lbnQ6OlNjcmlwdEVsZW1l
bnQoRWxlbWVudCogZWxlbWVudCwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIHdhCiAg
ICAgLCBtX2lzRXh0ZXJuYWxTY3JpcHQoZmFsc2UpCiAgICAgLCBtX3dhc0FscmVhZHlTdGFydGVk
KHdhc0FscmVhZHlTdGFydGVkKQogICAgICwgbV9oYXZlRmlyZWRMb2FkKGZhbHNlKQorICAgICwg
bV93aWxsRXhlY3V0ZUluT3JkZXIoZmFsc2UpCiB7CiAgICAgQVNTRVJUKG1fZWxlbWVudCk7CiB9
CkBAIC03Niw2ICs3NywxMCBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3Vt
ZW50KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogCiAgICAgaWYgKCFzb3VyY2VVcmwuaXNFbXB0
eSgpKSB7CiAgICAgICAgIHJlcXVlc3RTY3JpcHQoc291cmNlVXJsKTsKKyAgICAgICAgaWYgKCFp
c0FzeW5jaHJvbm91cygpICYmIG1fY2FjaGVkU2NyaXB0KSB7CisgICAgICAgICAgICBtX3dpbGxF
eGVjdXRlSW5PcmRlciA9IHRydWU7CisgICAgICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCkt
PnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckluT3JkZXJFeGVjdXRpb24odGhpcywgbV9j
YWNoZWRTY3JpcHQpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEz
Nyw3ICsxNDIsNyBAQCBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZShj
b25zdCBTdHJpbmcmIGxhbmd1YWdlKQogICAgICAgICBsYW5ndWFnZXMuYWRkKCJqYXZhc2NyaXB0
MS43Iik7CiAgICAgICAgIGxhbmd1YWdlcy5hZGQoImxpdmVzY3JpcHQiKTsKICAgICAgICAgbGFu
Z3VhZ2VzLmFkZCgiZWNtYXNjcmlwdCIpOwotICAgICAgICBsYW5ndWFnZXMuYWRkKCJqc2NyaXB0
Iik7ICAgICAgICAgICAgICAgIAorICAgICAgICBsYW5ndWFnZXMuYWRkKCJqc2NyaXB0Iik7CiAg
ICAgfQogCiAgICAgcmV0dXJuIGxhbmd1YWdlcy5jb250YWlucyhsYW5ndWFnZSk7CkBAIC0yMzgs
NyArMjQzLDEwIEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZShDYWNoZWRTY3JpcHQqIGNh
Y2hlZFNjcmlwdCkKIHZvaWQgU2NyaXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVz
b3VyY2UqIG8pCiB7CiAgICAgQVNTRVJUX1VOVVNFRChvLCBvID09IG1fY2FjaGVkU2NyaXB0KTsK
LSAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmFzeW5jU2NyaXB0UnVubmVyKCktPmV4ZWN1dGVT
Y3JpcHRTb29uKHRoaXMsIG1fY2FjaGVkU2NyaXB0KTsKKyAgICBpZiAobV93aWxsRXhlY3V0ZUlu
T3JkZXIpCisgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCktPnJl
c3VtZSgpOworICAgIGVsc2UKKyAgICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zY3JpcHRS
dW5uZXIoKS0+ZXhlY3V0ZVNjcmlwdFNvb24odGhpcywgbV9jYWNoZWRTY3JpcHQpOwogICAgIG1f
Y2FjaGVkU2NyaXB0ID0gMDsKIH0KIApAQCAtMjU1LDcgKzI2Myw3IEBAIGJvb2wgU2NyaXB0RWxl
bWVudDo6c2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpIGNvbnN0CiAgICAgICAgICBXaW5JRSA3
IGFjY2VwdHMgZWNtYXNjcmlwdCBhbmQganNjcmlwdCwgYnV0IE1vemlsbGEgMS44IGRvZXNuJ3Qu
CiAgICAgICAgICBOZWl0aGVyIE1vemlsbGEgMS44IG5vciBXaW5JRSA3IGFjY2VwdCBsZWFkaW5n
IG9yIHRyYWlsaW5nIHdoaXRlc3BhY2UuCiAgICAgICAgICBXZSB3YW50IHRvIGFjY2VwdCBhbGwg
dGhlIHZhbHVlcyB0aGF0IGVpdGhlciBvZiB0aGVzZSBicm93c2VycyBhY2NlcHQsIGJ1dCBub3Qg
b3RoZXIgdmFsdWVzLgotICAgICAKKwogICAgICAgICAgRklYTUU6IElzIHRoaXMgSFRNTDUgY29t
cGxpYW50PwogICAgICAqLwogICAgIFN0cmluZyB0eXBlID0gdHlwZUF0dHJpYnV0ZVZhbHVlKCk7
CkBAIC0yNjYsNyArMjc0LDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpzaG91bGRFeGVjdXRlQXNK
YXZhU2NyaXB0KCkgY29uc3QKICAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbGFuZ3VhZ2VBdHRy
aWJ1dGVWYWx1ZSgpOwogICAgICAgICBpZiAoIWxhbmd1YWdlLmlzRW1wdHkoKSAmJiAhaXNTdXBw
b3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UobGFuZ3VhZ2UpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0gICAgCisgICAgfQogCiAgICAgLy8gTm8gdHlwZSBvciBsYW5ndWFnZSBpcyBz
cGVjaWZpZWQsIHNvIHdlIGFzc3VtZSB0aGUgc2NyaXB0IHRvIGJlIEphdmFTY3JpcHQuCiAKQEAg
LTI3NiwxMiArMjg0LDEyIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6c2hvdWxkRXhlY3V0ZUFzSmF2
YVNjcmlwdCgpIGNvbnN0CiAgICAgICAgIGZvckF0dHJpYnV0ZSA9IGZvckF0dHJpYnV0ZS5zdHJp
cFdoaXRlU3BhY2UoKTsKICAgICAgICAgaWYgKCFlcXVhbElnbm9yaW5nQ2FzZShmb3JBdHRyaWJ1
dGUsICJ3aW5kb3ciKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIAor
CiAgICAgICAgIGV2ZW50QXR0cmlidXRlID0gZXZlbnRBdHRyaWJ1dGUuc3RyaXBXaGl0ZVNwYWNl
KCk7CiAgICAgICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2UoZXZlbnRBdHRyaWJ1dGUsICJvbmxv
YWQiKSAmJiAhZXF1YWxJZ25vcmluZ0Nhc2UoZXZlbnRBdHRyaWJ1dGUsICJvbmxvYWQoKSIpKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiB0cnVl
OwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmggYi9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggMDdjNTlkYi4uNTBhN2JmYyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuaApAQCAtOTAsNiArOTAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0V4dGVybmFsU2Ny
aXB0OwogICAgIGJvb2wgbV93YXNBbHJlYWR5U3RhcnRlZDsKICAgICBib29sIG1faGF2ZUZpcmVk
TG9hZDsKKyAgICBib29sIG1fd2lsbEV4ZWN1dGVJbk9yZGVyOwogfTsKIAogU2NyaXB0RWxlbWVu
dCogdG9TY3JpcHRFbGVtZW50KEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0Fz
eW5jU2NyaXB0UnVubmVyLmNwcCBiL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKc2ltaWxh
cml0eSBpbmRleCA1NCUKcmVuYW1lIGZyb20gV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIu
Y3BwCnJlbmFtZSB0byBXZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCmluZGV4IDdmNWYxYjYu
LjUzZDlkM2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcAor
KysgYi9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8K
IAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmgiCisj
aW5jbHVkZSAiU2NyaXB0UnVubmVyLmgiCiAKICNpbmNsdWRlICJDYWNoZWRTY3JpcHQuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMzMsMjIgKzMzLDIyIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotQXN5bmNTY3JpcHRSdW5uZXI6OkFzeW5jU2NyaXB0UnVubmVyKERvY3VtZW50KiBk
b2N1bWVudCkKK1NjcmlwdFJ1bm5lcjo6U2NyaXB0UnVubmVyKERvY3VtZW50KiBkb2N1bWVudCkK
ICAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCi0gICAgLCBtX3RpbWVyKHRoaXMsICZBc3luY1Nj
cmlwdFJ1bm5lcjo6dGltZXJGaXJlZCkKKyAgICAsIG1fdGltZXIodGhpcywgJlNjcmlwdFJ1bm5l
cjo6dGltZXJGaXJlZCkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwogfQogCi1Bc3luY1Njcmlw
dFJ1bm5lcjo6fkFzeW5jU2NyaXB0UnVubmVyKCkKK1NjcmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5l
cigpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3NjcmlwdHNUb0V4ZWN1dGVTb29u
LnNpemUoKTsgKytpKSB7Ci0gICAgICAgIG1fc2NyaXB0c1RvRXhlY3V0ZVNvb25baV0uZmlyc3Qt
PmVsZW1lbnQoKS0+ZGVyZWYoKTsgLy8gQmFsYW5jZXMgcmVmKCkgaW4gZXhlY3V0ZVNjcmlwdFNv
b24oKS4KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24u
c2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExvYWRFdmVudERlbGF5
Q291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1RvRXhlY3V0ZUlu
T3JkZXIuc2l6ZSgpOyArK2kpCiAgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExvYWRFdmVu
dERlbGF5Q291bnQoKTsKLSAgICB9CiB9CiAKLXZvaWQgQXN5bmNTY3JpcHRSdW5uZXI6OmV4ZWN1
dGVTY3JpcHRTb29uKFNjcmlwdEVsZW1lbnQqIGRhdGEsIENhY2hlZFJlc291cmNlSGFuZGxlPENh
Y2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0KQordm9pZCBTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3Jp
cHRTb29uKFNjcmlwdEVsZW1lbnQqIGRhdGEsIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNj
cmlwdD4gY2FjaGVkU2NyaXB0KQogewogICAgIEFTU0VSVF9BUkcoZGF0YSwgZGF0YSk7CiAKQEAg
LTU3LDM3ICs1Nyw2NSBAQCB2b2lkIEFzeW5jU2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29v
bihTY3JpcHRFbGVtZW50KiBkYXRhLCBDYWNoZWRSZXNvdXJjZUhhbgogICAgIEFTU0VSVChlbGVt
ZW50LT5pbkRvY3VtZW50KCkpOwogCiAgICAgbV9kb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2ZW50
RGVsYXlDb3VudCgpOwotICAgIG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uYXBwZW5kKG1ha2VfcGFp
cihkYXRhLCBjYWNoZWRTY3JpcHQpKTsKLSAgICBlbGVtZW50LT5yZWYoKTsgLy8gQmFsYW5jZWQg
YnkgZGVyZWYoKXMgaW4gdGltZXJGaXJlZCgpIGFuZCBkdG9yLgorICAgIG1fc2NyaXB0c1RvRXhl
Y3V0ZVNvb24uYXBwZW5kKFBlbmRpbmdTY3JpcHQoZGF0YSwgZWxlbWVudCwgY2FjaGVkU2NyaXB0
KSk7CiAgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fdGltZXIuc3RhcnRP
bmVTaG90KDApOwogfQogCi12b2lkIEFzeW5jU2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKK3ZvaWQg
U2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckluT3JkZXJFeGVjdXRpb24oU2NyaXB0RWxlbWVu
dCogZGF0YSwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQp
Cit7CisgICAgQVNTRVJUX0FSRyhkYXRhLCBkYXRhKTsKKworICAgIEVsZW1lbnQqIGVsZW1lbnQg
PSBkYXRhLT5lbGVtZW50KCk7CisgICAgQVNTRVJUKGVsZW1lbnQpOworICAgIEFTU0VSVChlbGVt
ZW50LT5pbkRvY3VtZW50KCkpOworCisgICAgbV9kb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2ZW50
RGVsYXlDb3VudCgpOworICAgIG1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuYXBwZW5kKFBlbmRp
bmdTY3JpcHQoZGF0YSwgZWxlbWVudCwgY2FjaGVkU2NyaXB0KSk7Cit9CisKK3ZvaWQgU2NyaXB0
UnVubmVyOjpzdXNwZW5kKCkKIHsKICAgICBtX3RpbWVyLnN0b3AoKTsKIH0KIAotdm9pZCBBc3lu
Y1NjcmlwdFJ1bm5lcjo6cmVzdW1lKCkKK3ZvaWQgU2NyaXB0UnVubmVyOjpyZXN1bWUoKQogewog
ICAgIGlmIChoYXNQZW5kaW5nU2NyaXB0cygpKQogICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hv
dCgwKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZChUaW1lcjxBc3lu
Y1NjcmlwdFJ1bm5lcj4qIHRpbWVyKQordm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoVGlt
ZXI8U2NyaXB0UnVubmVyPiogdGltZXIpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGlt
ZXIgPT0gJm1fdGltZXIpOwogCiAgICAgUmVmUHRyPERvY3VtZW50PiBwcm90ZWN0KG1fZG9jdW1l
bnQpOwotICAgIAotICAgIFZlY3RvcjxwYWlyPFNjcmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTY3JpcHQ+ID4gPiBzY3JpcHRzOworCisgICAgVmVjdG9yPFBlbmRpbmdT
Y3JpcHQ+IHNjcmlwdHM7CiAgICAgc2NyaXB0cy5zd2FwKG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24p
OworCisgICAgc2l6ZV90IG51bUluT3JkZXJTY3JpcHRzVG9FeGVjdXRlID0gMDsKKyAgICBmb3Ig
KDsgbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUgPCBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVy
LnNpemUoKSAmJiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyW251bUluT3JkZXJTY3JpcHRzVG9F
eGVjdXRlXS5jYWNoZWRTY3JpcHQtPmlzTG9hZGVkKCk7ICsrbnVtSW5PcmRlclNjcmlwdHNUb0V4
ZWN1dGUpCisgICAgICAgIHNjcmlwdHMuYXBwZW5kKG1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXJb
bnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGVdKTsKKyAgICBpZiAobnVtSW5PcmRlclNjcmlwdHNU
b0V4ZWN1dGUpCisgICAgICAgIG1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIucmVtb3ZlKDAsIG51
bUluT3JkZXJTY3JpcHRzVG9FeGVjdXRlKTsKKwogICAgIHNpemVfdCBzaXplID0gc2NyaXB0cy5z
aXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAg
c2NyaXB0c1tpXS5maXJzdC0+ZXhlY3V0ZShzY3JpcHRzW2ldLnNlY29uZC5nZXQoKSk7Ci0gICAg
ICAgIHNjcmlwdHNbaV0uZmlyc3QtPmVsZW1lbnQoKS0+ZGVyZWYoKTsgLy8gQmFsYW5jZXMgcmVm
KCkgaW4gZXhlY3V0ZVNjcmlwdFNvb24oKS4KKyAgICAgICAgc2NyaXB0c1tpXS5zY3JpcHRFbGVt
ZW50LT5leGVjdXRlKHNjcmlwdHNbaV0uY2FjaGVkU2NyaXB0LmdldCgpKTsKICAgICAgICAgbV9k
b2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIH0KIH0KIAorU2Ny
aXB0UnVubmVyOjpQZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KFNjcmlwdEVsZW1lbnQqIHNj
cmlwdEVsZW1lbnQsIFJlZlB0cjxFbGVtZW50PiByZWZlZEVsZW1lbnQsIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0KQorICAgIDogc2NyaXB0RWxlbWVudChz
Y3JpcHRFbGVtZW50KQorICAgICwgcmVmZWRFbGVtZW50KHJlZmVkRWxlbWVudCkKKyAgICAsIGNh
Y2hlZFNjcmlwdChjYWNoZWRTY3JpcHQpCit7Cit9CisKK1NjcmlwdFJ1bm5lcjo6UGVuZGluZ1Nj
cmlwdDo6flBlbmRpbmdTY3JpcHQoKQoreworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9Bc3luY1NjcmlwdFJ1bm5lci5oIGIvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKc2ltaWxh
cml0eSBpbmRleCA2NiUKcmVuYW1lIGZyb20gV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIu
aApyZW5hbWUgdG8gV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKaW5kZXggMWEwNTFhOC4uZGY5
MWMzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaAorKysgYi9X
ZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApAQCAtMjMsOCArMjMsOCBAQAogICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCiAgKi8KIAotI2lmbmRlZiBBc3luY1NjcmlwdFJ1bm5lcl9oCi0jZGVmaW5lIEFzeW5jU2Ny
aXB0UnVubmVyX2gKKyNpZm5kZWYgU2NyaXB0UnVubmVyX2gKKyNkZWZpbmUgU2NyaXB0UnVubmVy
X2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiVGltZXIu
aCIKQEAgLTM2LDI2ICszNiwzOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hl
ZFNjcmlwdDsKIGNsYXNzIERvY3VtZW50OworY2xhc3MgRWxlbWVudDsKIGNsYXNzIFNjcmlwdEVs
ZW1lbnQ7Ci0gICAgCi1jbGFzcyBBc3luY1NjcmlwdFJ1bm5lciA6IHB1YmxpYyBOb25jb3B5YWJs
ZSB7CisKK2NsYXNzIFNjcmlwdFJ1bm5lciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8QXN5bmNTY3JpcHRSdW5uZXI+IGNyZWF0ZShEb2N1bWVu
dCogZG9jdW1lbnQpIHsgcmV0dXJuIG5ldyBBc3luY1NjcmlwdFJ1bm5lcihkb2N1bWVudCk7IH0K
LSAgICB+QXN5bmNTY3JpcHRSdW5uZXIoKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxTY3JpcHRS
dW5uZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIG5ldyBTY3JpcHRSdW5u
ZXIoZG9jdW1lbnQpOyB9CisgICAgflNjcmlwdFJ1bm5lcigpOwogCiAgICAgdm9pZCBleGVjdXRl
U2NyaXB0U29vbihTY3JpcHRFbGVtZW50KiwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2Ny
aXB0Pik7Ci0gICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFtX3Nj
cmlwdHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKTsgfQorICAgIHZvaWQgcXVldWVTY3JpcHRGb3JJ
bk9yZGVyRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRTY3JpcHQ+KTsKKyAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4g
IW1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4ZWN1dGVJ
bk9yZGVyLmlzRW1wdHkoKTsgfQogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1l
KCk7CiAKIHByaXZhdGU6Ci0gICAgQXN5bmNTY3JpcHRSdW5uZXIoRG9jdW1lbnQqKTsKKyAgICBT
Y3JpcHRSdW5uZXIoRG9jdW1lbnQqKTsKKworICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxTY3Jp
cHRSdW5uZXI+Kik7CisKKyAgICBzdHJ1Y3QgUGVuZGluZ1NjcmlwdCB7CisgICAgICAgIFBlbmRp
bmdTY3JpcHQoU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgUmVmUHRyPEVsZW1lbnQ+IHJl
ZmVkRWxlbWVudCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3Jp
cHQpOworICAgICAgICB+UGVuZGluZ1NjcmlwdCgpOwogCi0gICAgdm9pZCB0aW1lckZpcmVkKFRp
bWVyPEFzeW5jU2NyaXB0UnVubmVyPiopOworICAgICAgICBTY3JpcHRFbGVtZW50KiBzY3JpcHRF
bGVtZW50OworICAgICAgICBSZWZQdHI8RWxlbWVudD4gcmVmZWRFbGVtZW50OworICAgICAgICBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdDsKKyAgICB9Owog
CiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7Ci0gICAgVmVjdG9yPHN0ZDo6cGFpcjxTY3JpcHRF
bGVtZW50KiwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiA+ID4gbV9zY3JpcHRz
VG9FeGVjdXRlU29vbjsKLSAgICBUaW1lcjxBc3luY1NjcmlwdFJ1bm5lcj4gbV90aW1lcjsKKyAg
ICBWZWN0b3I8UGVuZGluZ1NjcmlwdD4gbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlcjsKKyAgICBW
ZWN0b3I8UGVuZGluZ1NjcmlwdD4gbV9zY3JpcHRzVG9FeGVjdXRlU29vbjsKKyAgICBUaW1lcjxT
Y3JpcHRSdW5uZXI+IG1fdGltZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNw
cAppbmRleCBlMjI5YmI4Li5kODlmM2E3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAK
QEAgLTM4LDYgKzM4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIGlubGluZSBIVE1M
U2NyaXB0RWxlbWVudDo6SFRNTFNjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wg
d2FzQWxyZWFkeVN0YXJ0ZWQpCiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkK
ICAgICAsIFNjcmlwdEVsZW1lbnQodGhpcywgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgd2FzQWxyZWFk
eVN0YXJ0ZWQpCisgICAgLCBtX2ZvcmNlQXN5bmMoIXdhc0luc2VydGVkQnlQYXJzZXIpCiB7CiAg
ICAgQVNTRVJUKGhhc1RhZ05hbWUoc2NyaXB0VGFnKSk7CiB9CkBAIC01OCw2ICs1OSwxMyBAQCB2
b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJz
ZXIsIE5vZGUqIGJlZm9yZUNoYW5nZQogICAgIEhUTUxFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQo
Y2hhbmdlZEJ5UGFyc2VyLCBiZWZvcmVDaGFuZ2UsIGFmdGVyQ2hhbmdlLCBjaGlsZENvdW50RGVs
dGEpOwogfQogCit2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKEF0dHJp
YnV0ZSogYXR0ciwgYm9vbCBwcmVzZXJ2ZURlY2xzKQoreworICAgIGlmIChhdHRyLT5uYW1lKCkg
PT0gYXN5bmNBdHRyKQorICAgICAgICBtX2ZvcmNlQXN5bmMgPSBmYWxzZTsKKyAgICBIVE1MRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChhdHRyLCBwcmVzZXJ2ZURlY2xzKTsKK30KKwogdm9pZCBI
VE1MU2NyaXB0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQog
ewogICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lID0gYXR0ci0+bmFtZSgpOwpAQCAt
NzgsNiArODYsOCBAQCB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRy
ZW4oKQogewogICAgIFNjcmlwdEVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbihzb3VyY2VB
dHRyaWJ1dGVWYWx1ZSgpKTsKICAgICBIVE1MRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVu
KCk7CisgICAgaWYgKHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkuaXNFbXB0eSgpICYmIHNjcmlwdENv
bnRlbnQoKS5pc0VtcHR5KCkpCisgICAgICAgIG1fZm9yY2VBc3luYyA9ICFoYXNBdHRyaWJ1dGUo
YXN5bmNBdHRyKTsKIH0KIAogdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9j
dW1lbnQoKQpAQCAtMTUyLDcgKzE2Miw3IEBAIFN0cmluZyBIVE1MU2NyaXB0RWxlbWVudDo6ZXZl
bnRBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0CiAKIGJvb2wgSFRNTFNjcmlwdEVsZW1lbnQ6OmFzeW5j
QXR0cmlidXRlVmFsdWUoKSBjb25zdAogewotICAgIHJldHVybiAhZ2V0QXR0cmlidXRlKGFzeW5j
QXR0cikuaXNOdWxsKCk7CisgICAgcmV0dXJuIGFzeW5jKCk7CiB9CiAKIGJvb2wgSFRNTFNjcmlw
dEVsZW1lbnQ6OmRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdApAQCAtMTYwLDYgKzE3MCwxNyBA
QCBib29sIEhUTUxTY3JpcHRFbGVtZW50OjpkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3QKICAg
ICByZXR1cm4gIWdldEF0dHJpYnV0ZShkZWZlckF0dHIpLmlzTnVsbCgpOwogfQogCit2b2lkIEhU
TUxTY3JpcHRFbGVtZW50OjpzZXRBc3luYyhib29sIGFzeW5jKQoreworICAgIHNldEJvb2xlYW5B
dHRyaWJ1dGUoYXN5bmNBdHRyLCBhc3luYyk7CisgICAgbV9mb3JjZUFzeW5jID0gZmFsc2U7Cit9
CisKK2Jvb2wgSFRNTFNjcmlwdEVsZW1lbnQ6OmFzeW5jKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9mb3JjZUFzeW5jIHx8ICFnZXRBdHRyaWJ1dGUoYXN5bmNBdHRyKS5pc051bGwoKTsKK30KKwog
dm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6ZGlzcGF0Y2hMb2FkRXZlbnQoKQogewogICAgIEFTU0VS
VCghaGF2ZUZpcmVkTG9hZEV2ZW50KCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCAw
OTc3M2M1Li40ZTVkMDdjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuaAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtMzgsNiArMzgs
OSBAQCBwdWJsaWM6CiAKICAgICBLVVJMIHNyYygpIGNvbnN0OwogCisgICAgdm9pZCBzZXRBc3lu
Yyhib29sKTsKKyAgICBib29sIGFzeW5jKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSFRNTFNj
cmlwdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCB3YXNJbnNl
cnRlZEJ5UGFyc2VyLCBib29sIHdhc0FscmVhZHlTdGFydGVkKTsKIApAQCAtNDUsNiArNDgsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURvY3VtZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGNo
aWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVD
aGFuZ2UgPSAwLCBOb2RlKiBhZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAw
KTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqLCBib29sIHBy
ZXNlcnZlRGVjbHMgPSBmYWxzZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUo
QXR0cmlidXRlKikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJl
bigpOwpAQCAtNjQsNiArNjgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aEVycm9yRXZlbnQoKTsKIAogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0
aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJlbigpIGNvbnN0OworCisgICAgYm9vbCBtX2ZvcmNlQXN5
bmM7CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbAppbmRl
eCAyMGI3MzMxLi5mYTc5OWNiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwKQEAgLTI0
LDcgKzI0LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Zm9y
XSBET01TdHJpbmcgaHRtbEZvcjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgZXZlbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNoYXJzZXQ7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhc3luYzsKKyAgICAgICAgYXR0
cmlidXRlIGJvb2xlYW4gYXN5bmM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVh
biBkZWZlcjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBzcmM7
CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHR5cGU7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCBiL1dlYkNvcmUvcGFnZS9Q
YWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCmluZGV4IDk4YTQ3MjAuLmQzYjBmMDkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCisrKyBiL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCkBAIC0yMSwxMCArMjEsMTAgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCIKIAotI2lu
Y2x1ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVy
LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDgsNyArNDgsNyBAQCBQYWdlR3JvdXBMb2FkRGVmZXJyZXI6OlBhZ2VHcm91cExvYWREZWZlcnJl
cihQYWdlKiBwYWdlLCBib29sIGRlZmVyU2VsZikKICAgICAgICAgICAgICAgICAvLyB0aGUgY29u
c3RydWN0b3Igd2lsbCBuZWVkIHRvIHRha2UgYSBBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1
c3BlbnNpb24uCiAgICAgICAgICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBvdGhlclBhZ2Ut
Pm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQo
KSkgewogICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c3VzcGVuZEFjdGl2
ZURPTU9iamVjdHMoQWN0aXZlRE9NT2JqZWN0OjpXaWxsU2hvd0RpYWxvZyk7Ci0gICAgICAgICAg
ICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5hc3luY1NjcmlwdFJ1bm5lcigpLT5zdXNwZW5k
KCk7CisgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIo
KS0+c3VzcGVuZCgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
fQpAQCAtNjgsNyArNjgsNyBAQCBQYWdlR3JvdXBMb2FkRGVmZXJyZXI6On5QYWdlR3JvdXBMb2Fk
RGVmZXJyZXIoKQogCiAgICAgICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5G
cmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewog
ICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5yZXN1bWVBY3RpdmVET01PYmplY3Rz
KCk7Ci0gICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPmFzeW5jU2NyaXB0UnVubmVy
KCktPnJlc3VtZSgpOworICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRS
dW5uZXIoKS0+cmVzdW1lKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76717</attachid>
            <date>2010-12-15 17:37:43 -0800</date>
            <delta_ts>2010-12-15 18:05:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>40783</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NWJhYzdlLi5lZTQ0YzJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMTIt
MTUgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2
aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNj
cmlwdHMKKworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGggYXN5bmM9ZmFs
c2Ugd2lsbCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4KKyAgICAgICAg
U2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9u
X09yZGVyCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTE1CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5
bmMtYXR0ci1leHBlY3RlZC50eHQ6IEFkZGVkIHRlc3QgY2FzZXMgZm9yIGZvcmNlQXN5bmMuCisg
ICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRt
bDogRGl0dG8uCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFz
eW5jLWF0dHItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVt
ZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3Nj
cmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRl
ci5odG1sOiBBZGRlZC4KKwogMjAxMC0xMi0xNSAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gTWFyayBhIGZhaWxlZCB0ZXN0IGluIGNocm9taXVt
IHRlc3QgZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQu
dHh0CmluZGV4IDdiOGJmNGQuLmU4NjdmNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0
ci1leHBlY3RlZC50eHQKQEAgLTgsOCArOCwxNCBAQCBQQVNTIGlzQXN5bmMoJ3MxJykgaXMgdHJ1
ZQogUEFTUyBpc0FzeW5jKCdzMicpIGlzIHRydWUKIFBBU1MgaXNBc3luYygnczMnKSBpcyB0cnVl
CiBQQVNTIGlzQXN5bmMoJ3M0JykgaXMgdHJ1ZQorUEFTUyBpc0FzeW5jKCdzNScpIGlzIHRydWUK
K1BBU1MgaXNBc3luYygnczYnKSBpcyB0cnVlCitQQVNTIGlzQXN5bmMoJ3M3JykgaXMgdHJ1ZQor
UEFTUyBpc0FzeW5jKCdzOCcpIGlzIGZhbHNlCiBQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNj
cmlwdEFzeW5jKHRydWUpIGlzIHRydWUKIFBBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0
QXN5bmMoZmFsc2UpIGlzIGZhbHNlCitQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFz
eW5jKCJhc3luYyIpIGlzIHRydWUKK1BBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5
bmMobnVsbCkgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxl
bWVudC9zY3JpcHQtYXN5bmMtYXR0ci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRtbAppbmRleCA0YTNmM2FmLi5iMGU0MDZh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3Jp
cHQtYXN5bmMtYXR0ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWwKQEAgLTEyLDExICsxMiwxNSBAQAogPHNjcmlw
dCBpZD0iczIiIHNyYz0iaWdub3JlZC5qcyIgYXN5bmM9ImFzeW5jIj48L3NjcmlwdD4KIDxzY3Jp
cHQgaWQ9InMzIiBzcmM9Imlnbm9yZWQuanMiIGFzeW5jPSJBU1lOQyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IGlkPSJzNCIgc3JjPSJpZ25vcmVkLmpzIiBhc3luYz0idHJ1ZSI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IGlkPSJzNSIgc3JjPSJpZ25vcmVkLmpzIiBhc3luYz0iZmFsc2UiPjwvc2NyaXB0PgorPHNj
cmlwdCBpZD0iczYiPjwvc2NyaXB0PgorPHNjcmlwdCBpZD0iczciIGFzeW5jPjwvc2NyaXB0Pgor
PHNjcmlwdCBpZD0iczgiIGFzeW5jPjwvc2NyaXB0PgogCiA8c2NyaXB0PgogZGVzY3JpcHRpb24o
J1RoaXMgdGVzdCBjaGVja3MgZm9yIHByb3BlciBwYXJzaW5nIG9mIHRoZSBhc3luYyBhdHRyaWJ1
dGUgb24gSFRNTCBzY3JpcHQgdGFncy4nKTsKIAotdmFyIG5leHRTY3JpcHRJRCA9IDA7Cit2YXIg
bmV4dFNjcmlwdElEID0gOTsKIAogZnVuY3Rpb24gaXNBc3luYyhpZCkKIHsKQEAgLTI5LDE5ICsz
MywyNyBAQCBmdW5jdGlvbiBpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyhhc3luYykK
ICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAg
c2NyaXB0LmlkID0gaWQ7CiAgICAgc2NyaXB0LnNyYyA9ICJyZXNvdXJjZXMvc2NyaXB0LWxvYWQu
anMiOwotICAgIGlmIChhc3luYykKLSAgICAgICAgc2NyaXB0LmFzeW5jID0gImFzeW5jIjsKKyAg
ICBpZiAoYXN5bmMgIT0gbnVsbCkKKyAgICAgICAgc2NyaXB0LmFzeW5jID0gYXN5bmM7CiAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChzY3Jp
cHQpOwogICAgIHJldHVybiBpc0FzeW5jKGlkKTsKIH0KIAorZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInM4IikucmVtb3ZlQXR0cmlidXRlKCJhc3luYyIpOworCiBzaG91bGRCZUZhbHNlKCJpc0Fz
eW5jKCdzMCcpIik7CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3MxJykiKTsKIHNob3VsZEJlVHJ1
ZSgiaXNBc3luYygnczInKSIpOwogc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzMycpIik7CiBzaG91
bGRCZVRydWUoImlzQXN5bmMoJ3M0JykiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNBc3luYygnczUnKSIp
Oworc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzNicpIik7CitzaG91bGRCZVRydWUoImlzQXN5bmMo
J3M3JykiKTsKK3Nob3VsZEJlRmFsc2UoImlzQXN5bmMoJ3M4JykiKTsKIHNob3VsZEJlVHJ1ZSgi
aXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmModHJ1ZSkiKTsKIHNob3VsZEJlRmFsc2Uo
ImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKGZhbHNlKSIpOworc2hvdWxkQmVUcnVl
KCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyhcImFzeW5jXCIpIik7CitzaG91bGRC
ZVRydWUoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKG51bGwpIik7CiAKIHZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxv
YWQtZXhlY3V0ZS1pbi1vcmRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uM2M4ZDE4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDggQEAKK0F0dGVtcHRzIHRvIGNoZWNrIHRoYXQgYXN5bmM9ZmFsc2UgZW5m
b3JjZXMgZXhlY3V0aW9uIG9yZGVyIGR5bmFtaWNhbGx5IGluc2VydGVkIHNjcmlwdHMuIFNlZTog
aHR0cDovL3dpa2kud2hhdHdnLm9yZy93aWtpL0R5bmFtaWNfU2NyaXB0X0V4ZWN1dGlvbl9PcmRl
cgorc2xvd0FzeW5jCithc3luYworbG9hZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3NzNmZDAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhl
Y3V0ZS1pbi1vcmRlci5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzLXRlc3RzLXJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkZWJ1ZygnbG9hZCcpO2ZpbmlzaEpT
VGVzdCgpOyI+CitBdHRlbXB0cyB0byBjaGVjayB0aGF0IGFzeW5jPWZhbHNlIGVuZm9yY2VzIGV4
ZWN1dGlvbiBvcmRlciBkeW5hbWljYWxseSBpbnNlcnRlZCBzY3JpcHRzLgorU2VlOiBodHRwOi8v
d2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9uX09yZGVyCis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7
CisKK3Nsb3dseV9sb2FkZWRfc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0
Iik7CitzbG93bHlfbG9hZGVkX3NjcmlwdC5hc3luYyA9IGZhbHNlOworc2xvd2x5X2xvYWRlZF9z
Y3JpcHQuc3JjID0gInJlc291cmNlcy9zbG93LWFzeW5jLXNjcmlwdC5jZ2kiOworZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChzbG93bHlfbG9hZGVk
X3NjcmlwdCk7CisKK3F1aWNrbHlfbG9hZGVkX3NjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNjcmlwdCIpOworcXVpY2tseV9sb2FkZWRfc2NyaXB0LmFzeW5jID0gZmFsc2U7CitxdWlj
a2x5X2xvYWRlZF9zY3JpcHQuc3JjID0gInJlc291cmNlcy9hc3luYy1zY3JpcHQuanMiOworZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChxdWlja2x5
X2xvYWRlZF9zY3JpcHQpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJv
aWQubWsgYi9XZWJDb3JlL0FuZHJvaWQubWsKaW5kZXggMTFmZWRmYi4uMGNhMGY5MyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtOTQs
NyArOTQsNiBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAljc3Mv
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKIAlcCiAJZG9tL0FjdGl2ZURPTU9iamVjdC5j
cHAgXAotCWRvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAgXAogCWRvbS9BdHRyLmNwcCBcCiAJZG9t
L0F0dHJpYnV0ZS5jcHAgXAogCWRvbS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgXApAQCAt
MTcwLDYgKzE2OSw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAog
CWRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwIFwKIAlkb20vU2NyaXB0RWxlbWVudC5j
cHAgXAogCWRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBcCisJZG9tL1NjcmlwdFJ1bm5l
ci5jcHAgXAogCWRvbS9TZWxlY3RFbGVtZW50LmNwcCBcCiAJZG9tL1NlbGVjdG9yTm9kZUxpc3Qu
Y3BwIFwKIAlkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMzM0ZDU2YS4uZTdk
MGU5YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC04MDcsNyArODA3LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAg
IGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmpl
Y3QuY3BwCi0gICAgZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcAogICAgIGRvbS9BdHRyLmNwcAog
ICAgIGRvbS9BdHRyaWJ1dGUuY3BwCiAgICAgZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNw
cApAQCAtODg4LDYgKzg4Nyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vU2NyaXB0
YWJsZURvY3VtZW50UGFyc2VyLmNwcAogICAgIGRvbS9TY3JpcHRFbGVtZW50LmNwcAogICAgIGRv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwCiAg
ICAgZG9tL1NlbGVjdEVsZW1lbnQuY3BwCiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwCiAg
ICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYzYWM3OWEuLjRmODgzMDMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAg
QEAKKzIwMTAtMTItMTUgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlm
ZmVyZW50IGJlaGF2aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2Fs
bHkgbG9hZGVkIHNjcmlwdHMKKworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdp
dGggYXN5bmM9ZmFsc2Ugd2lsbCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRl
ci4KKyAgICAgICAgU2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3Jp
cHRfRXhlY3V0aW9uX09yZGVyCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUwMTE1CisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRNTFNjcmlwdEVs
ZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwKKworICAgICAgICAqIEFuZHJv
aWQubWs6IFJlbmFtZSBBc3luY1NjcmlwdFJ1bm5lciAtPiBTY3JpcHRSdW5uZXIuCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0
by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJv
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8u
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAg
ICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOiBEaXR0by4KKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KTogRGl0dG8uCisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2NyaXB0UnVubmVy
KTogRGl0dG8uCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0RWxlbWVudDo6U2NyaXB0RWxlbWVudCk6IFRyYWNrIGhvdyBzY3JpcHQgc2hv
dWxkIGV4ZWN1dGUuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjppbnNlcnRlZElu
dG9Eb2N1bWVudCk6IFF1ZXVlIGluIG9yZGVyIGlmIGFzeW5jPWZhbHNlLgorICAgICAgICAoV2Vi
Q29yZTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UpOiBGaXggd2hpdGVzcGFjZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKTogRXhlY3V0ZSBp
bi1vcmRlciBvciBhc3luYyBzY3JpcHQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50
OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0KTogRml4IHdoaXRlc3BhY2UuCisgICAgICAgICog
ZG9tL1NjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0UnVubmVyLmNwcDogUmVu
YW1lZCBmcm9tIFdlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcC4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFJ1bm5lcjo6U2NyaXB0UnVubmVyKTogQWRkIGluLW9yZGVyIHNjcmlwdCBx
dWV1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5lcik6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbik6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4
ZWN1dGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpzdXNwZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6cmVzdW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6IFJ1biBpbi1vcmRlciBzY3JpcHRzIHRo
YXQgaGF2ZSBsb2FkZWQgdG9vLgorICAgICAgICAqIGRvbS9TY3JpcHRSdW5uZXIuaDogUmVuYW1l
ZCBmcm9tIFdlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmguCisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRSdW5uZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6
Omhhc1BlbmRpbmdTY3JpcHRzKTogQ2hlY2sgZm9yIGluLW9yZGVyIHNjcmlwdHMgdG9vLgorICAg
ICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNjcmlwdEVsZW1lbnQ6OkhUTUxTY3JpcHRFbGVtZW50KTogQWRkIG1fZm9yY2VBc3luYyB0byB0
cmFjayBpZiB1c2VyIGV4cGxpY2l0bHkgcmVxdWVzdGVkIGFzeW5jLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQpOiBVbnNldCBtX2ZvcmNlQXN5
bmMgb24gYXN5bmMgY2hhbmdlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6
OmZpbmlzaFBhcnNpbmdDaGlsZHJlbik6IFNldCBtX2ZvcmNlQXN5bmMgaWYgc2NyaXB0IGJlY29t
ZXMgZHluYW1pYyAobm8gc3JjIGFuZCBubyBjb250ZW50KS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxTY3JpcHRFbGVtZW50Ojphc3luY0F0dHJpYnV0ZVZhbHVlKTogQWxpYXMgZm9yIGFzeW5jKCku
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6c2V0QXN5bmMpOiBBZGRlZC4g
SWYgY2FsbGVkLCB1bnNldCBtX2ZvcmNlQXN5bmMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Ny
aXB0RWxlbWVudDo6YXN5bmMpOiBBZGRlZC4gUmV0dXJuIG1fZm9yY2VBc3luYyBpZiBpdCdzIHNl
dC4KKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5pZGw6IFJlbW92ZWQgUmVmbGVjdCBmcm9tIGFzeW5jIGZvciBjdXN0
b20gYmVoYXZpb3IuCisgICAgICAgICogcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVm
ZXJyZXIpOiBSZW5hbWUgQXN5bmNTY3JpcHRSdW5uZXIgLT4gU2NyaXB0UnVubmVyLgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9hZERlZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVy
KTogRGl0dG8uCisKIDIwMTAtMTItMTUgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5v
a2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXgg
Y2IzNmUzMS4uZDFhYWZhMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysg
Yi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMDk5LDggKzEwOTksNiBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVdlYkNvcmUvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAogCVdl
YkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAogCVdlYkNvcmUvZG9tL0FjdGl2ZURPTU9i
amVjdC5oIFwKLQlXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAgXAotCVdlYkNvcmUv
ZG9tL0FzeW5jU2NyaXB0UnVubmVyLmggXAogCVdlYkNvcmUvZG9tL0F0dHIuY3BwIFwKIAlXZWJD
b3JlL2RvbS9BdHRyLmggXAogCVdlYkNvcmUvZG9tL0F0dHJpYnV0ZS5jcHAgXApAQCAtMTI4OSw2
ICsxMjg3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmggXAogCVdlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIFwKIAlXZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggXAorCVdlYkNvcmUvZG9tL1NjcmlwdFJ1
bm5lci5jcHAgXAorCVdlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oIFwKIAlXZWJDb3JlL2RvbS9T
ZWxlY3RFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5oIFwKIAlXZWJD
b3JlL2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGRmN2JlMDkuLmIzYWY0MmQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0xMTQxLDggKzExNDEsNiBAQAogICAgICAgICAgICAgJ2RvbS9kZWZhdWx0L1BsYXRmb3Jt
TWVzc2FnZVBvcnRDaGFubmVsLmgnLAogICAgICAgICAgICAgJ2RvbS9BY3RpdmVET01PYmplY3Qu
Y3BwJywKICAgICAgICAgICAgICdkb20vQWN0aXZlRE9NT2JqZWN0LmgnLAotICAgICAgICAgICAg
J2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAnLAotICAgICAgICAgICAgJ2RvbS9Bc3luY1Njcmlw
dFJ1bm5lci5oJywKICAgICAgICAgICAgICdkb20vQXR0ci5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9BdHRyLmgnLAogICAgICAgICAgICAgJ2RvbS9BdHRyaWJ1dGUuY3BwJywKQEAgLTEzMjksNiAr
MTMyNyw4IEBACiAgICAgICAgICAgICAnZG9tL1NjcmlwdEVsZW1lbnQuaCcsCiAgICAgICAgICAg
ICAnZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwJywKICAgICAgICAgICAgICdkb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oJywKKyAgICAgICAgICAgICdkb20vU2NyaXB0UnVubmVyLmNw
cCcsCisgICAgICAgICAgICAnZG9tL1NjcmlwdFJ1bm5lci5oJywKICAgICAgICAgICAgICdkb20v
U2VsZWN0RWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TZWxlY3RFbGVtZW50LmgnLAog
ICAgICAgICAgICAgJ2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCcsCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBkYzJmZTY1Li40YjJm
N2JiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KQEAgLTY4NCw3ICs2ODQsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvV2ViS2l0Q1NT
TWF0cml4LmNwcCBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAgICAg
ZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAotICAgIGRvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAg
XAogICAgIGRvbS9BdHRyLmNwcCBcCiAgICAgZG9tL0F0dHJpYnV0ZS5jcHAgXAogICAgIGRvbS9C
ZWZvcmVQcm9jZXNzRXZlbnQuY3BwIFwKQEAgLTc2OCw2ICs3NjcsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBcCiAgICAgZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwIFwKICAgICBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgXAorICAgIGRv
bS9TY3JpcHRSdW5uZXIuY3BwIFwKICAgICBkb20vU2VsZWN0RWxlbWVudC5jcHAgXAogICAgIGRv
bS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDMyM2U1MjYuLjA0ZDkzM2Yg
MTAwNzU1Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDEwNzAsNjIgKzQxMDcw
LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXEFzeW5jU2NyaXB0UnVubmVyLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJ
CQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4K
LQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlO
YW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25m
aWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4K
LQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cQXN5bmNTY3JpcHRSdW5uZXIuaCIK
LQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEF0
b21pY1N0cmluZ0xpc3QuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC00NTU5OCw2ICs0NTU0Miw2
MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxk
b21cU2NyaXB0UnVubmVyLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2NyaXB0UnVubmVyLmgiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTZWxlY3RFbGVtZW50
LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZjZjMwMDkuLmYwZTMyZDQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjcwLDggKzI2NzAsOCBAQAog
CQk4OUQwOERBMTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUQwOEQ5RTEy
MjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi87IH07CiAJCThB
MTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBMTJFMzVDMTFGQTMzMjgwMDI1
ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGlu
Z0xldmVsSW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDhBMzA5QzlFMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1l
bnRlci5oICovOyB9OwotCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRS
dW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhB
NDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCThBNDEzQUUxMTIwN0JCQTUw
MDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuY3BwICovOyB9OworCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2Ny
aXB0UnVubmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOEE0MTNBRTExMjA3QkJBNTAw
ODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVy
LmNwcCAqLzsgfTsKIAkJOEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBN0NDOTZB
MTIwNzZENzMwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE3Q0M5NzAxMjA3NkY4QTAwMUQ0NTg4IC8q
IFBlbmRpbmdTY3JpcHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOEE3Q0M5NkYxMjA3NkY4QTAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuY3BwICov
OyB9OwogCQk4QTgxQkY4NTExRENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VMb2FkVGltaW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTgxQkY4NDEx
RENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VMb2FkVGltaW5nLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTkwMDYsOCArOTAwNiw4IEBACiAJCTg5
RDA4RDlFMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAv
KiBEb2N1bWVudExvYWRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RG9jdW1lbnRMb2FkVGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBMzA5
QzlFMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oOyBwYXRo
ID0gcGFyc2VyL05lc3RpbmdMZXZlbEluY3JlbWVudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5lci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyog
QXN5bmNTY3JpcHRSdW5uZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQXN5bmNTY3JpcHRSdW5uZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFJ1bm5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdFJ1bm5lci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBN0NDOTZBMTIwNzZENzMwMDFENDU4OCAvKiBQZW5k
aW5nU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlbmRpbmdTY3Jp
cHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE3Q0M5NkYxMjA3NkY4QTAwMUQ0
NTg4IC8qIFBlbmRpbmdTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUGVuZGluZ1NjcmlwdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThB
ODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkVGltaW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xODY4MCw4ICsxODY4MCw2IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQlFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmNwcCAqLywK
IAkJCQlFMUM0REU2ODBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmggKi8sCi0J
CQkJOEE0MTNBREYxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLywK
LQkJCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuaCAqLywK
IAkJCQlBOEM0QTdGQzA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5jcHAgKi8sCiAJCQkJQThDNEE3
RkIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuaCAqLywKIAkJCQk5M0VFQzFFNTA5QzI4Nzc3MDBD
NTE1RDEgLyogQXR0ci5pZGwgKi8sCkBAIC0xODkxOCw2ICsxODkxNiw4IEBACiAJCQkJMDhBNDg0
NzYwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuaCAqLywKIAkJCQlFMTFDOURBRjBF
QjM2OTk1MDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgKi8sCiAJCQkJRTEx
QzlEOUEwRUIzNjgxMjAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCAqLywKKwkJ
CQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCAqLywKKwkJCQk4
QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi8sCiAJCQkJMDg0QUVC
RTIwRkI1MDVGQTAwMzg0ODNFIC8qIFNlbGVjdEVsZW1lbnQuY3BwICovLAogCQkJCTA4NEFFQkUz
MEZCNTA1RkEwMDM4NDgzRSAvKiBTZWxlY3RFbGVtZW50LmggKi8sCiAJCQkJQkM3RkE2ODAwRDFG
MTY3OTAwREIyMkE5IC8qIFNlbGVjdG9yTm9kZUxpc3QuY3BwICovLApAQCAtMTkyOTEsNyArMTky
OTEsNiBAQAogCQkJCTk3NkQ2Qzc3MTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVXcml0ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3NkQ2QzkzMTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0Zp
bGVXcml0ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIwMTQ5RTdFMTFBNEIyMTUwMDE5
NkE3QiAvKiBBc3luY0ltYWdlUmVzaXplci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOEE0MTNBRTAx
MjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzN0M2MUYwMTEyMDk1Qzg3MDA3QTNDNjcgLyogQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNEE4MEQwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuaCBp
biBIZWFkZXJzICovLAogCQkJCUE4QzRBODBCMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyaWJ1dGUu
aCBpbiBIZWFkZXJzICovLApAQCAtMjE1NDQsNiArMjE1NDMsNyBAQAogCQkJCTlGNzIzMDRGMTEx
ODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5RkEz
N0VFNDExNzJGQzgwMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTlGNzIzMDUxMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOEE0MTNBRTAxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0Q0MxMEEwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNv
dXJjZUNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNTRGRDM4MTAxNkQ5QTYwMDhCNDRDOCAv
KiBTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFDNzYwQjEwRURF
MDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTIyNTY3LDcg
KzIyNTY3LDYgQEAKIAkJCQk0OUVFQ0RERjEwNTAzQzI0MDAwOTlGQUIgLyogQXJyYXlCdWZmZXJW
aWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5RDA4RDlGMTIyMjg0NTEwMDEyNDFERiAvKiBB
c3luY0ZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjAxNDlFN0QxMUE0QjIxNTAw
MTk2QTdCIC8qIEFzeW5jSW1hZ2VSZXNpemVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCThBNDEz
QUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEM0QTgwRTA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEM0QTgwQzA5RDU2MzI3MDAwM0FDOEQgLyogQXR0cmlidXRlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzNEY3MTM4MEQ1QTZFRkYwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNDMxOSw2ICsyNDMxOCw3IEBACiAJ
CQkJNDFGMDY2RTUwRjY0QkNGNjAwQTA3RUFDIC8qIFNjcmlwdE9iamVjdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGMzNGMDI4MjEyMDk0N0YyMDBFNTc0M0EgLyogU2NyaXB0UHJvZmlsZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5RjcyMzA1MDExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJv
ZmlsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOEE0MTNBRTExMjA3QkJBNTAwODIwMTZFIC8q
IFNjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTI3RDUzNzBGOEFBQjFEMDBF
NDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM0Q0MwRTEwRUQz
OUQ2RjAwQTY1OEYyIC8qIFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNBM0JG
NjdDMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcAppbmRleCBhZWZjMjdhLi4zNjcyMjZjIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBA
IC0yNiw3ICsyNiw2IEBACiAvLyBUaGlzIGFsbC1pbi1vbmUgY3BwIGZpbGUgY3V0cyBkb3duIG9u
IHRlbXBsYXRlIGJsb2F0IHRvIGFsbG93IHVzIHRvIGJ1aWxkIG91ciBXaW5kb3dzIHJlbGVhc2Ug
YnVpbGQuCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuY3BwIgotI2luY2x1ZGUgIkFzeW5j
U2NyaXB0UnVubmVyLmNwcCIKICNpbmNsdWRlICJBdHRyLmNwcCIKICNpbmNsdWRlICJBdHRyaWJ1
dGUuY3BwIgogI2luY2x1ZGUgIkJlZm9yZVByb2Nlc3NFdmVudC5jcHAiCkBAIC0xMDQsNiArMTAz
LDcgQEAKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmNwcCIKICNpbmNsdWRlICJTY3JpcHRF
bGVtZW50LmNwcCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCIKKyNpbmNs
dWRlICJTY3JpcHRSdW5uZXIuY3BwIgogI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNl
ci5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JO
b2RlTGlzdC5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggODdhNDBkNi4uOTljOTM5MCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5oIgog
I2luY2x1ZGUgIkF0dHIuaCIKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJDREFU
QVNlY3Rpb24uaCIKQEAgLTEyMiw2ICsxMjEsNyBAQAogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRM
aXN0ZW5lci5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU2VsZWN0
aW9uQ29udHJvbGxlci5oIgpAQCAtMzgwLDcgKzM4MCw3IEBAIERvY3VtZW50OjpEb2N1bWVudChG
cmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCwg
Y29uCiAgICAgLCBtX3N0YXJ0VGltZShjdXJyZW50VGltZSgpKQogICAgICwgbV9vdmVyTWluaW11
bUxheW91dFRocmVzaG9sZChmYWxzZSkKICAgICAsIG1fZXh0cmFMYXlvdXREZWxheSgwKQotICAg
ICwgbV9hc3luY1NjcmlwdFJ1bm5lcihBc3luY1NjcmlwdFJ1bm5lcjo6Y3JlYXRlKHRoaXMpKQor
ICAgICwgbV9zY3JpcHRSdW5uZXIoU2NyaXB0UnVubmVyOjpjcmVhdGUodGhpcykpCiAgICAgLCBt
X3htbFZlcnNpb24oIjEuMCIpCiAgICAgLCBtX3htbFN0YW5kYWxvbmUoZmFsc2UpCiAgICAgLCBt
X3NhdmVkUmVuZGVyZXIoMCkKQEAgLTU0OCw3ICs1NDgsNyBAQCBEb2N1bWVudDo6fkRvY3VtZW50
KCkKICAgICBBU1NFUlQobV9yYW5nZXMuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQoIW1fc3R5bGVS
ZWNhbGNUaW1lci5pc0FjdGl2ZSgpKTsKIAotICAgIG1fYXN5bmNTY3JpcHRSdW5uZXIuY2xlYXIo
KTsKKyAgICBtX3NjcmlwdFJ1bm5lci5jbGVhcigpOwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0
ZW5lcnMoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKaW5kZXggN2RmMGY4ZS4uZGZiMTI1YSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01MCw3ICs1
MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXN5bmNTY3JpcHRSdW5uZXI7
CiBjbGFzcyBBdHRyOwogY2xhc3MgQVhPYmplY3RDYWNoZTsKIGNsYXNzIENEQVRBU2VjdGlvbjsK
QEAgLTExMSw2ICsxMTAsNyBAQCBjbGFzcyBSZW5kZXJBcmVuYTsKIGNsYXNzIFJlbmRlclZpZXc7
CiBjbGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBTY3JpcHRFbGVtZW50RGF0
YTsKK2NsYXNzIFNjcmlwdFJ1bm5lcjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogY2xhc3MgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU2VnbWVudGVkU3RyaW5nOwpAQCAtODcyLDcgKzg3
Miw3IEBAIHB1YmxpYzoKIAogICAgIGludCBkb2NJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jSUQ7
IH0KICAgICAKLSAgICBBc3luY1NjcmlwdFJ1bm5lciogYXN5bmNTY3JpcHRSdW5uZXIoKSB7IHJl
dHVybiBtX2FzeW5jU2NyaXB0UnVubmVyLmdldCgpOyB9CisgICAgU2NyaXB0UnVubmVyKiBzY3Jp
cHRSdW5uZXIoKSB7IHJldHVybiBtX3NjcmlwdFJ1bm5lci5nZXQoKTsgfQogCiAjaWYgRU5BQkxF
KFhTTFQpCiAgICAgdm9pZCBhcHBseVhTTFRyYW5zZm9ybShQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24q
IHBpKTsKQEAgLTEyNzYsNyArMTI3Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gcG9pbnRzIGR1cmlu
ZyB0aGUgbGlmZXRpbWUgb2YgdGhlIERvY3VtZW50LgogICAgIGludCBtX2V4dHJhTGF5b3V0RGVs
YXk7CiAgICAgCi0gICAgT3duUHRyPEFzeW5jU2NyaXB0UnVubmVyPiBtX2FzeW5jU2NyaXB0UnVu
bmVyOworICAgIE93blB0cjxTY3JpcHRSdW5uZXI+IG1fc2NyaXB0UnVubmVyOwogCiAjaWYgRU5B
QkxFKFhTTFQpCiAgICAgT3duUHRyPFRyYW5zZm9ybVNvdXJjZT4gbV90cmFuc2Zvcm1Tb3VyY2U7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDc0ZjI1ODAuLjEwZjFhMWMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RWxlbWVudC5oIgogCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKICNpbmNs
dWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zNyw2ICszNiw3IEBACiAjaW5jbHVkZSAiTUlNRVR5
cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNl
Q29kZS5oIgogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
QEAgLTU4LDYgKzU4LDcgQEAgU2NyaXB0RWxlbWVudDo6U2NyaXB0RWxlbWVudChFbGVtZW50KiBl
bGVtZW50LCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgd2EKICAgICAsIG1faXNFeHRl
cm5hbFNjcmlwdChmYWxzZSkKICAgICAsIG1fd2FzQWxyZWFkeVN0YXJ0ZWQod2FzQWxyZWFkeVN0
YXJ0ZWQpCiAgICAgLCBtX2hhdmVGaXJlZExvYWQoZmFsc2UpCisgICAgLCBtX3dpbGxFeGVjdXRl
SW5PcmRlcihmYWxzZSkKIHsKICAgICBBU1NFUlQobV9lbGVtZW50KTsKIH0KQEAgLTc2LDYgKzc3
LDEwIEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiBzb3VyY2VVcmwpCiAKICAgICBpZiAoIXNvdXJjZVVybC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgcmVxdWVzdFNjcmlwdChzb3VyY2VVcmwpOworICAgICAgICBpZiAoIWlzQXN5bmNocm9ub3Vz
KCkgJiYgbV9jYWNoZWRTY3JpcHQpIHsKKyAgICAgICAgICAgIG1fd2lsbEV4ZWN1dGVJbk9yZGVy
ID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVy
KCktPnF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4ZWN1dGlvbih0aGlzLCBtX2NhY2hlZFNjcmlwdCk7
CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTM3LDcgKzE0Miw3IEBA
IHN0YXRpYyBib29sIGlzU3VwcG9ydGVkSmF2YVNjcmlwdExhbmd1YWdlKGNvbnN0IFN0cmluZyYg
bGFuZ3VhZ2UpCiAgICAgICAgIGxhbmd1YWdlcy5hZGQoImphdmFzY3JpcHQxLjciKTsKICAgICAg
ICAgbGFuZ3VhZ2VzLmFkZCgibGl2ZXNjcmlwdCIpOwogICAgICAgICBsYW5ndWFnZXMuYWRkKCJl
Y21hc2NyaXB0Iik7Ci0gICAgICAgIGxhbmd1YWdlcy5hZGQoImpzY3JpcHQiKTsgICAgICAgICAg
ICAgICAgCisgICAgICAgIGxhbmd1YWdlcy5hZGQoImpzY3JpcHQiKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gbGFuZ3VhZ2VzLmNvbnRhaW5zKGxhbmd1YWdlKTsKQEAgLTIzOCw3ICsyNDMsMTAgQEAg
dm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQog
dm9pZCBTY3JpcHRFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogbykKIHsK
ICAgICBBU1NFUlRfVU5VU0VEKG8sIG8gPT0gbV9jYWNoZWRTY3JpcHQpOwotICAgIG1fZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+YXN5bmNTY3JpcHRSdW5uZXIoKS0+ZXhlY3V0ZVNjcmlwdFNvb24odGhp
cywgbV9jYWNoZWRTY3JpcHQpOworICAgIGlmIChtX3dpbGxFeGVjdXRlSW5PcmRlcikKKyAgICAg
ICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+cmVzdW1lKCk7CisgICAg
ZWxzZQorICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNjcmlwdFJ1bm5lcigpLT5leGVj
dXRlU2NyaXB0U29vbih0aGlzLCBtX2NhY2hlZFNjcmlwdCk7CiAgICAgbV9jYWNoZWRTY3JpcHQg
PSAwOwogfQogCkBAIC0yNTUsNyArMjYzLDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpzaG91bGRF
eGVjdXRlQXNKYXZhU2NyaXB0KCkgY29uc3QKICAgICAgICAgIFdpbklFIDcgYWNjZXB0cyBlY21h
c2NyaXB0IGFuZCBqc2NyaXB0LCBidXQgTW96aWxsYSAxLjggZG9lc24ndC4KICAgICAgICAgIE5l
aXRoZXIgTW96aWxsYSAxLjggbm9yIFdpbklFIDcgYWNjZXB0IGxlYWRpbmcgb3IgdHJhaWxpbmcg
d2hpdGVzcGFjZS4KICAgICAgICAgIFdlIHdhbnQgdG8gYWNjZXB0IGFsbCB0aGUgdmFsdWVzIHRo
YXQgZWl0aGVyIG9mIHRoZXNlIGJyb3dzZXJzIGFjY2VwdCwgYnV0IG5vdCBvdGhlciB2YWx1ZXMu
Ci0gICAgIAorCiAgICAgICAgICBGSVhNRTogSXMgdGhpcyBIVE1MNSBjb21wbGlhbnQ/CiAgICAg
ICovCiAgICAgU3RyaW5nIHR5cGUgPSB0eXBlQXR0cmlidXRlVmFsdWUoKTsKQEAgLTI2Niw3ICsy
NzQsNyBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnNob3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSBj
b25zdAogICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBsYW5ndWFnZUF0dHJpYnV0ZVZhbHVlKCk7
CiAgICAgICAgIGlmICghbGFuZ3VhZ2UuaXNFbXB0eSgpICYmICFpc1N1cHBvcnRlZEphdmFTY3Jp
cHRMYW5ndWFnZShsYW5ndWFnZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSAg
ICAKKyAgICB9CiAKICAgICAvLyBObyB0eXBlIG9yIGxhbmd1YWdlIGlzIHNwZWNpZmllZCwgc28g
d2UgYXNzdW1lIHRoZSBzY3JpcHQgdG8gYmUgSmF2YVNjcmlwdC4KIApAQCAtMjc2LDEyICsyODQs
MTIgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0KCkgY29u
c3QKICAgICAgICAgZm9yQXR0cmlidXRlID0gZm9yQXR0cmlidXRlLnN0cmlwV2hpdGVTcGFjZSgp
OwogICAgICAgICBpZiAoIWVxdWFsSWdub3JpbmdDYXNlKGZvckF0dHJpYnV0ZSwgIndpbmRvdyIp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgCisKICAgICAgICAgZXZl
bnRBdHRyaWJ1dGUgPSBldmVudEF0dHJpYnV0ZS5zdHJpcFdoaXRlU3BhY2UoKTsKICAgICAgICAg
aWYgKCFlcXVhbElnbm9yaW5nQ2FzZShldmVudEF0dHJpYnV0ZSwgIm9ubG9hZCIpICYmICFlcXVh
bElnbm9yaW5nQ2FzZShldmVudEF0dHJpYnV0ZSwgIm9ubG9hZCgpIikpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1dlYkNvcmUvZG9tL1NjcmlwdEVs
ZW1lbnQuaAppbmRleCAwN2M1OWRiLi41MGE3YmZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC05MCw2
ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRXh0ZXJuYWxTY3JpcHQ7CiAgICAgYm9v
bCBtX3dhc0FscmVhZHlTdGFydGVkOwogICAgIGJvb2wgbV9oYXZlRmlyZWRMb2FkOworICAgIGJv
b2wgbV93aWxsRXhlY3V0ZUluT3JkZXI7CiB9OwogCiBTY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVs
ZW1lbnQoRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5u
ZXIuY3BwIGIvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcApzaW1pbGFyaXR5IGluZGV4IDU0
JQpyZW5hbWUgZnJvbSBXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKcmVuYW1lIHRv
IFdlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKaW5kZXggN2Y1ZjFiNi4uNTNkOWQzZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwCisrKyBiL1dlYkNvcmUv
ZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKKyNpbmNsdWRlICJTY3Jp
cHRSdW5uZXIuaCIKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCkBAIC0zMywyMiArMzMsMjIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Bc3lu
Y1NjcmlwdFJ1bm5lcjo6QXN5bmNTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50KQorU2Ny
aXB0UnVubmVyOjpTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogbV9kb2N1
bWVudChkb2N1bWVudCkKLSAgICAsIG1fdGltZXIodGhpcywgJkFzeW5jU2NyaXB0UnVubmVyOjp0
aW1lckZpcmVkKQorICAgICwgbV90aW1lcih0aGlzLCAmU2NyaXB0UnVubmVyOjp0aW1lckZpcmVk
KQogewogICAgIEFTU0VSVChkb2N1bWVudCk7CiB9CiAKLUFzeW5jU2NyaXB0UnVubmVyOjp+QXN5
bmNTY3JpcHRSdW5uZXIoKQorU2NyaXB0UnVubmVyOjp+U2NyaXB0UnVubmVyKCkKIHsKLSAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgbV9zY3JpcHRzVG9FeGVjdXRlU29vbltpXS5maXJzdC0+ZWxlbWVudCgpLT5k
ZXJlZigpOyAvLyBCYWxhbmNlcyByZWYoKSBpbiBleGVjdXRlU2NyaXB0U29vbigpLgorICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5zaXplKCk7ICsraSkK
KyAgICAgICAgbV9kb2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5zaXplKCk7
ICsraSkKICAgICAgICAgbV9kb2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgp
OwotICAgIH0KIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24o
U2NyaXB0RWxlbWVudCogZGF0YSwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBj
YWNoZWRTY3JpcHQpCit2b2lkIFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0
RWxlbWVudCogZGF0YSwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRT
Y3JpcHQpCiB7CiAgICAgQVNTRVJUX0FSRyhkYXRhLCBkYXRhKTsKIApAQCAtNTcsMzcgKzU3LDY1
IEBAIHZvaWQgQXN5bmNTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRTb29uKFNjcmlwdEVsZW1l
bnQqIGRhdGEsIENhY2hlZFJlc291cmNlSGFuCiAgICAgQVNTRVJUKGVsZW1lbnQtPmluRG9jdW1l
bnQoKSk7CiAKICAgICBtX2RvY3VtZW50LT5pbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7
Ci0gICAgbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5hcHBlbmQobWFrZV9wYWlyKGRhdGEsIGNhY2hl
ZFNjcmlwdCkpOwotICAgIGVsZW1lbnQtPnJlZigpOyAvLyBCYWxhbmNlZCBieSBkZXJlZigpcyBp
biB0aW1lckZpcmVkKCkgYW5kIGR0b3IuCisgICAgbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5hcHBl
bmQoUGVuZGluZ1NjcmlwdChkYXRhLCBlbGVtZW50LCBjYWNoZWRTY3JpcHQpKTsKICAgICBpZiAo
IW1fdGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7CiB9
CiAKLXZvaWQgQXN5bmNTY3JpcHRSdW5uZXI6OnN1c3BlbmQoKQordm9pZCBTY3JpcHRSdW5uZXI6
OnF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBkYXRhLCBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCkKK3sKKyAgICBBU1NF
UlRfQVJHKGRhdGEsIGRhdGEpOworCisgICAgRWxlbWVudCogZWxlbWVudCA9IGRhdGEtPmVsZW1l
bnQoKTsKKyAgICBBU1NFUlQoZWxlbWVudCk7CisgICAgQVNTRVJUKGVsZW1lbnQtPmluRG9jdW1l
bnQoKSk7CisKKyAgICBtX2RvY3VtZW50LT5pbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7
CisgICAgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5hcHBlbmQoUGVuZGluZ1NjcmlwdChkYXRh
LCBlbGVtZW50LCBjYWNoZWRTY3JpcHQpKTsKK30KKwordm9pZCBTY3JpcHRSdW5uZXI6OnN1c3Bl
bmQoKQogewogICAgIG1fdGltZXIuc3RvcCgpOwogfQogCi12b2lkIEFzeW5jU2NyaXB0UnVubmVy
OjpyZXN1bWUoKQordm9pZCBTY3JpcHRSdW5uZXI6OnJlc3VtZSgpCiB7CiAgICAgaWYgKGhhc1Bl
bmRpbmdTY3JpcHRzKCkpCiAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCi12
b2lkIEFzeW5jU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKFRpbWVyPEFzeW5jU2NyaXB0UnVubmVy
PiogdGltZXIpCit2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZChUaW1lcjxTY3JpcHRSdW5u
ZXI+KiB0aW1lcikKIHsKICAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV90aW1l
cik7CiAKICAgICBSZWZQdHI8RG9jdW1lbnQ+IHByb3RlY3QobV9kb2N1bWVudCk7Ci0gICAgCi0g
ICAgVmVjdG9yPHBhaXI8U2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFNjcmlwdD4gPiA+IHNjcmlwdHM7CisKKyAgICBWZWN0b3I8UGVuZGluZ1NjcmlwdD4gc2NyaXB0
czsKICAgICBzY3JpcHRzLnN3YXAobV9zY3JpcHRzVG9FeGVjdXRlU29vbik7CisKKyAgICBzaXpl
X3QgbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUgPSAwOworICAgIGZvciAoOyBudW1Jbk9yZGVy
U2NyaXB0c1RvRXhlY3V0ZSA8IG1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuc2l6ZSgpICYmIG1f
c2NyaXB0c1RvRXhlY3V0ZUluT3JkZXJbbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGVdLmNhY2hl
ZFNjcmlwdC0+aXNMb2FkZWQoKTsgKytudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZSkKKyAgICAg
ICAgc2NyaXB0cy5hcHBlbmQobV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlcltudW1Jbk9yZGVyU2Ny
aXB0c1RvRXhlY3V0ZV0pOworICAgIGlmIChudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZSkKKyAg
ICAgICAgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5yZW1vdmUoMCwgbnVtSW5PcmRlclNjcmlw
dHNUb0V4ZWN1dGUpOworCiAgICAgc2l6ZV90IHNpemUgPSBzY3JpcHRzLnNpemUoKTsKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBzY3JpcHRzW2ldLmZp
cnN0LT5leGVjdXRlKHNjcmlwdHNbaV0uc2Vjb25kLmdldCgpKTsKLSAgICAgICAgc2NyaXB0c1tp
XS5maXJzdC0+ZWxlbWVudCgpLT5kZXJlZigpOyAvLyBCYWxhbmNlcyByZWYoKSBpbiBleGVjdXRl
U2NyaXB0U29vbigpLgorICAgICAgICBzY3JpcHRzW2ldLnNjcmlwdEVsZW1lbnQtPmV4ZWN1dGUo
c2NyaXB0c1tpXS5jYWNoZWRTY3JpcHQuZ2V0KCkpOwogICAgICAgICBtX2RvY3VtZW50LT5kZWNy
ZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAgICAgfQogfQogCitTY3JpcHRSdW5uZXI6OlBl
bmRpbmdTY3JpcHQ6OlBlbmRpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwg
UmVmUHRyPEVsZW1lbnQ+IHJlZmVkRWxlbWVudCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
U2NyaXB0PiBjYWNoZWRTY3JpcHQpCisgICAgOiBzY3JpcHRFbGVtZW50KHNjcmlwdEVsZW1lbnQp
CisgICAgLCByZWZlZEVsZW1lbnQocmVmZWRFbGVtZW50KQorICAgICwgY2FjaGVkU2NyaXB0KGNh
Y2hlZFNjcmlwdCkKK3sKK30KKworU2NyaXB0UnVubmVyOjpQZW5kaW5nU2NyaXB0Ojp+UGVuZGlu
Z1NjcmlwdCgpCit7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0
UnVubmVyLmggYi9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApzaW1pbGFyaXR5IGluZGV4IDY2
JQpyZW5hbWUgZnJvbSBXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oCnJlbmFtZSB0byBX
ZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAppbmRleCAxYTA1MWE4Li5kZjkxYzMxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oCisrKyBiL1dlYkNvcmUvZG9tL1Nj
cmlwdFJ1bm5lci5oCkBAIC0yMyw4ICsyMyw4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0j
aWZuZGVmIEFzeW5jU2NyaXB0UnVubmVyX2gKLSNkZWZpbmUgQXN5bmNTY3JpcHRSdW5uZXJfaAor
I2lmbmRlZiBTY3JpcHRSdW5uZXJfaAorI2RlZmluZSBTY3JpcHRSdW5uZXJfaAogCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtMzYsMjYg
KzM2LDM4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xh
c3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50OwogY2xhc3MgU2NyaXB0RWxlbWVudDsKLSAgICAK
LWNsYXNzIEFzeW5jU2NyaXB0UnVubmVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKKworY2xhc3Mg
U2NyaXB0UnVubmVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc093blB0cjxBc3luY1NjcmlwdFJ1bm5lcj4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkg
eyByZXR1cm4gbmV3IEFzeW5jU2NyaXB0UnVubmVyKGRvY3VtZW50KTsgfQotICAgIH5Bc3luY1Nj
cmlwdFJ1bm5lcigpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFNjcmlwdFJ1bm5lcj4gY3JlYXRl
KERvY3VtZW50KiBkb2N1bWVudCkgeyByZXR1cm4gbmV3IFNjcmlwdFJ1bm5lcihkb2N1bWVudCk7
IH0KKyAgICB+U2NyaXB0UnVubmVyKCk7CiAKICAgICB2b2lkIGV4ZWN1dGVTY3JpcHRTb29uKFNj
cmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+KTsKLSAgICBi
b29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gIW1fc2NyaXB0c1RvRXhlY3V0
ZVNvb24uaXNFbXB0eSgpOyB9CisgICAgdm9pZCBxdWV1ZVNjcmlwdEZvckluT3JkZXJFeGVjdXRp
b24oU2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4pOwor
ICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9F
eGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0
eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1bWUoKTsKIAogcHJpdmF0
ZToKLSAgICBBc3luY1NjcmlwdFJ1bm5lcihEb2N1bWVudCopOworICAgIFNjcmlwdFJ1bm5lcihE
b2N1bWVudCopOworCisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPFNjcmlwdFJ1bm5lcj4qKTsK
KworICAgIHN0cnVjdCBQZW5kaW5nU2NyaXB0IHsKKyAgICAgICAgUGVuZGluZ1NjcmlwdChTY3Jp
cHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBSZWZQdHI8RWxlbWVudD4gcmVmZWRFbGVtZW50LCBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCk7CisgICAgICAg
IH5QZW5kaW5nU2NyaXB0KCk7CiAKLSAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8QXN5bmNTY3Jp
cHRSdW5uZXI+Kik7CisgICAgICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQ7CisgICAg
ICAgIFJlZlB0cjxFbGVtZW50PiByZWZlZEVsZW1lbnQ7CisgICAgICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0OworICAgIH07CiAKICAgICBEb2N1bWVu
dCogbV9kb2N1bWVudDsKLSAgICBWZWN0b3I8c3RkOjpwYWlyPFNjcmlwdEVsZW1lbnQqLCBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+ID4gPiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29u
OwotICAgIFRpbWVyPEFzeW5jU2NyaXB0UnVubmVyPiBtX3RpbWVyOworICAgIFZlY3RvcjxQZW5k
aW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyOworICAgIFZlY3RvcjxQZW5kaW5n
U2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uOworICAgIFRpbWVyPFNjcmlwdFJ1bm5lcj4g
bV90aW1lcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDYwM2Iy
YTguLjRkZGZlMjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcApAQCAtMzgsNiArMzgs
NyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogaW5saW5lIEhUTUxTY3JpcHRFbGVtZW50
OjpIVE1MU2NyaXB0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCogZG9jdW1lbnQsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCB3YXNBbHJlYWR5U3Rh
cnRlZCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgU2NyaXB0
RWxlbWVudCh0aGlzLCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCB3YXNBbHJlYWR5U3RhcnRlZCkKKyAg
ICAsIG1fZm9yY2VBc3luYyghd2FzSW5zZXJ0ZWRCeVBhcnNlcikKIHsKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShzY3JpcHRUYWcpKTsKIH0KQEAgLTU4LDYgKzU5LDEzIEBAIHZvaWQgSFRNTFNjcmlw
dEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVm
b3JlQ2hhbmdlCiAgICAgSFRNTEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjaGFuZ2VkQnlQYXJz
ZXIsIGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7CiB9CiAKK3Zv
aWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoQXR0cmlidXRlKiBhdHRyLCBi
b29sIHByZXNlcnZlRGVjbHMpCit7CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBhc3luY0F0dHIp
CisgICAgICAgIG1fZm9yY2VBc3luYyA9IGZhbHNlOworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKGF0dHIsIHByZXNlcnZlRGVjbHMpOworfQorCiB2b2lkIEhUTUxTY3JpcHRFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUgPSBhdHRyLT5uYW1lKCk7CkBAIC03OCw2ICs4Niw4IEBA
IHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCiB7CiAgICAg
U2NyaXB0RWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKHNvdXJjZUF0dHJpYnV0ZVZhbHVl
KCkpOwogICAgIEhUTUxFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKKyAgICBpZiAo
c291cmNlQXR0cmlidXRlVmFsdWUoKS5pc0VtcHR5KCkgJiYgc2NyaXB0Q29udGVudCgpLmlzRW1w
dHkoKSkKKyAgICAgICAgbV9mb3JjZUFzeW5jID0gIWhhc0F0dHJpYnV0ZShhc3luY0F0dHIpOwog
fQogCiB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCkBAIC0x
NTIsNyArMTYyLDcgQEAgU3RyaW5nIEhUTUxTY3JpcHRFbGVtZW50OjpldmVudEF0dHJpYnV0ZVZh
bHVlKCkgY29uc3QKIAogYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6YXN5bmNBdHRyaWJ1dGVWYWx1
ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZhc3RIYXNBdHRyaWJ1dGUoYXN5bmNBdHRyKTsKKyAg
ICByZXR1cm4gYXN5bmMoKTsKIH0KIAogYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6ZGVmZXJBdHRy
aWJ1dGVWYWx1ZSgpIGNvbnN0CkBAIC0xNjAsNiArMTcwLDI4IEBAIGJvb2wgSFRNTFNjcmlwdEVs
ZW1lbnQ6OmRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBmYXN0SGFzQXR0
cmlidXRlKGRlZmVyQXR0cik7CiB9CiAKK3ZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnNldEFzeW5j
KGJvb2wgYXN5bmMpCit7CisgICAgc2V0Qm9vbGVhbkF0dHJpYnV0ZShhc3luY0F0dHIsIGFzeW5j
KTsKKyAgICBtX2ZvcmNlQXN5bmMgPSBmYWxzZTsKK30KKworYm9vbCBIVE1MU2NyaXB0RWxlbWVu
dDo6YXN5bmMoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZvcmNlQXN5bmMgfHwgZmFzdEhhc0F0
dHJpYnV0ZShhc3luY0F0dHIpOworfQorCit2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpzZXRBc3lu
Yyhib29sIGFzeW5jKQoreworICAgIHNldEJvb2xlYW5BdHRyaWJ1dGUoYXN5bmNBdHRyLCBhc3lu
Yyk7CisgICAgbV9mb3JjZUFzeW5jID0gZmFsc2U7Cit9CisKK2Jvb2wgSFRNTFNjcmlwdEVsZW1l
bnQ6OmFzeW5jKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mb3JjZUFzeW5jIHx8ICFnZXRBdHRy
aWJ1dGUoYXN5bmNBdHRyKS5pc051bGwoKTsKK30KKwogdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6
ZGlzcGF0Y2hMb2FkRXZlbnQoKQogewogICAgIEFTU0VSVCghaGF2ZUZpcmVkTG9hZEV2ZW50KCkp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCAwOTc3M2M1Li40ZTVkMDdjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuaApAQCAtMzgsNiArMzgsOSBAQCBwdWJsaWM6CiAKICAgICBLVVJM
IHNyYygpIGNvbnN0OwogCisgICAgdm9pZCBzZXRBc3luYyhib29sKTsKKyAgICBib29sIGFzeW5j
KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSFRNTFNjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIHdhc0Fs
cmVhZHlTdGFydGVkKTsKIApAQCAtNDUsNiArNDgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJv
bURvY3VtZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5n
ZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2UgPSAwLCBOb2RlKiBhZnRlckNo
YW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAwKTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqLCBib29sIHByZXNlcnZlRGVjbHMgPSBmYWxzZSk7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOwpAQCAtNjQsNiArNjgsOCBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEVycm9yRXZlbnQoKTsKIAogICAgIFBh
c3NSZWZQdHI8RWxlbWVudD4gY2xvbmVFbGVtZW50V2l0aG91dEF0dHJpYnV0ZXNBbmRDaGlsZHJl
bigpIGNvbnN0OworCisgICAgYm9vbCBtX2ZvcmNlQXN5bmM7CiB9OwogCiB9IC8vbmFtZXNwYWNl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsIGIvV2ViQ29y
ZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbAppbmRleCAyMGI3MzMxLi5mYTc5OWNiIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwKQEAgLTI0LDcgKzI0LDcgQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Zm9yXSBET01TdHJpbmcgaHRtbEZvcjsKICAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZXZlbnQ7CiAgICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNoYXJzZXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gYm9vbGVhbiBhc3luYzsKKyAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gYXN5bmM7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBkZWZlcjsKICAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBzcmM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIHR5cGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3Vw
TG9hZERlZmVycmVyLmNwcCBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3Bw
CmluZGV4IDk4YTQ3MjAuLmQzYjBmMDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QYWdlR3Jv
dXBMb2FkRGVmZXJyZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJy
ZXIuY3BwCkBAIC0yMSwxMCArMjEsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCIKIAotI2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVubmVy
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFn
ZUdyb3VwLmgiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsNyArNDgsNyBAQCBQYWdlR3JvdXBM
b2FkRGVmZXJyZXI6OlBhZ2VHcm91cExvYWREZWZlcnJlcihQYWdlKiBwYWdlLCBib29sIGRlZmVy
U2VsZikKICAgICAgICAgICAgICAgICAvLyB0aGUgY29uc3RydWN0b3Igd2lsbCBuZWVkIHRvIHRh
a2UgYSBBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1c3BlbnNpb24uCiAgICAgICAgICAgICAg
ICAgZm9yIChGcmFtZSogZnJhbWUgPSBvdGhlclBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICAgICAgICAgICAg
ICBmcmFtZS0+ZG9jdW1lbnQoKS0+c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMoQWN0aXZlRE9NT2Jq
ZWN0OjpXaWxsU2hvd0RpYWxvZyk7Ci0gICAgICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVu
dCgpLT5hc3luY1NjcmlwdFJ1bm5lcigpLT5zdXNwZW5kKCk7CisgICAgICAgICAgICAgICAgICAg
IGZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+c3VzcGVuZCgpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNjgsNyArNjgsNyBAQCBQYWdl
R3JvdXBMb2FkRGVmZXJyZXI6On5QYWdlR3JvdXBMb2FkRGVmZXJyZXIoKQogCiAgICAgICAgICAg
ICBmb3IgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICAgICAgICAgIGZyYW1lLT5k
b2N1bWVudCgpLT5yZXN1bWVBY3RpdmVET01PYmplY3RzKCk7Ci0gICAgICAgICAgICAgICAgZnJh
bWUtPmRvY3VtZW50KCktPmFzeW5jU2NyaXB0UnVubmVyKCktPnJlc3VtZSgpOworICAgICAgICAg
ICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+cmVzdW1lKCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76721</attachid>
            <date>2010-12-15 18:05:48 -0800</date>
            <delta_ts>2011-02-08 13:32:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>40548</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NWJhYzdlLi5lZTQ0YzJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMTIt
MTUgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2
aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNj
cmlwdHMKKworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGggYXN5bmM9ZmFs
c2Ugd2lsbCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4KKyAgICAgICAg
U2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9u
X09yZGVyCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTE1CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5
bmMtYXR0ci1leHBlY3RlZC50eHQ6IEFkZGVkIHRlc3QgY2FzZXMgZm9yIGZvcmNlQXN5bmMuCisg
ICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRt
bDogRGl0dG8uCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFz
eW5jLWF0dHItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVt
ZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3Nj
cmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRl
ci5odG1sOiBBZGRlZC4KKwogMjAxMC0xMi0xNSAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gTWFyayBhIGZhaWxlZCB0ZXN0IGluIGNocm9taXVt
IHRlc3QgZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQu
dHh0CmluZGV4IDdiOGJmNGQuLmU4NjdmNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0
ci1leHBlY3RlZC50eHQKQEAgLTgsOCArOCwxNCBAQCBQQVNTIGlzQXN5bmMoJ3MxJykgaXMgdHJ1
ZQogUEFTUyBpc0FzeW5jKCdzMicpIGlzIHRydWUKIFBBU1MgaXNBc3luYygnczMnKSBpcyB0cnVl
CiBQQVNTIGlzQXN5bmMoJ3M0JykgaXMgdHJ1ZQorUEFTUyBpc0FzeW5jKCdzNScpIGlzIHRydWUK
K1BBU1MgaXNBc3luYygnczYnKSBpcyB0cnVlCitQQVNTIGlzQXN5bmMoJ3M3JykgaXMgdHJ1ZQor
UEFTUyBpc0FzeW5jKCdzOCcpIGlzIGZhbHNlCiBQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNj
cmlwdEFzeW5jKHRydWUpIGlzIHRydWUKIFBBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0
QXN5bmMoZmFsc2UpIGlzIGZhbHNlCitQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFz
eW5jKCJhc3luYyIpIGlzIHRydWUKK1BBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5
bmMobnVsbCkgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNU
IENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxl
bWVudC9zY3JpcHQtYXN5bmMtYXR0ci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRtbAppbmRleCA0YTNmM2FmLi5iMGU0MDZh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3Jp
cHQtYXN5bmMtYXR0ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWwKQEAgLTEyLDExICsxMiwxNSBAQAogPHNjcmlw
dCBpZD0iczIiIHNyYz0iaWdub3JlZC5qcyIgYXN5bmM9ImFzeW5jIj48L3NjcmlwdD4KIDxzY3Jp
cHQgaWQ9InMzIiBzcmM9Imlnbm9yZWQuanMiIGFzeW5jPSJBU1lOQyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IGlkPSJzNCIgc3JjPSJpZ25vcmVkLmpzIiBhc3luYz0idHJ1ZSI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IGlkPSJzNSIgc3JjPSJpZ25vcmVkLmpzIiBhc3luYz0iZmFsc2UiPjwvc2NyaXB0PgorPHNj
cmlwdCBpZD0iczYiPjwvc2NyaXB0PgorPHNjcmlwdCBpZD0iczciIGFzeW5jPjwvc2NyaXB0Pgor
PHNjcmlwdCBpZD0iczgiIGFzeW5jPjwvc2NyaXB0PgogCiA8c2NyaXB0PgogZGVzY3JpcHRpb24o
J1RoaXMgdGVzdCBjaGVja3MgZm9yIHByb3BlciBwYXJzaW5nIG9mIHRoZSBhc3luYyBhdHRyaWJ1
dGUgb24gSFRNTCBzY3JpcHQgdGFncy4nKTsKIAotdmFyIG5leHRTY3JpcHRJRCA9IDA7Cit2YXIg
bmV4dFNjcmlwdElEID0gOTsKIAogZnVuY3Rpb24gaXNBc3luYyhpZCkKIHsKQEAgLTI5LDE5ICsz
MywyNyBAQCBmdW5jdGlvbiBpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyhhc3luYykK
ICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAg
c2NyaXB0LmlkID0gaWQ7CiAgICAgc2NyaXB0LnNyYyA9ICJyZXNvdXJjZXMvc2NyaXB0LWxvYWQu
anMiOwotICAgIGlmIChhc3luYykKLSAgICAgICAgc2NyaXB0LmFzeW5jID0gImFzeW5jIjsKKyAg
ICBpZiAoYXN5bmMgIT0gbnVsbCkKKyAgICAgICAgc2NyaXB0LmFzeW5jID0gYXN5bmM7CiAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChzY3Jp
cHQpOwogICAgIHJldHVybiBpc0FzeW5jKGlkKTsKIH0KIAorZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInM4IikucmVtb3ZlQXR0cmlidXRlKCJhc3luYyIpOworCiBzaG91bGRCZUZhbHNlKCJpc0Fz
eW5jKCdzMCcpIik7CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3MxJykiKTsKIHNob3VsZEJlVHJ1
ZSgiaXNBc3luYygnczInKSIpOwogc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzMycpIik7CiBzaG91
bGRCZVRydWUoImlzQXN5bmMoJ3M0JykiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNBc3luYygnczUnKSIp
Oworc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzNicpIik7CitzaG91bGRCZVRydWUoImlzQXN5bmMo
J3M3JykiKTsKK3Nob3VsZEJlRmFsc2UoImlzQXN5bmMoJ3M4JykiKTsKIHNob3VsZEJlVHJ1ZSgi
aXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmModHJ1ZSkiKTsKIHNob3VsZEJlRmFsc2Uo
ImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKGZhbHNlKSIpOworc2hvdWxkQmVUcnVl
KCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyhcImFzeW5jXCIpIik7CitzaG91bGRC
ZVRydWUoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKG51bGwpIik7CiAKIHZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxv
YWQtZXhlY3V0ZS1pbi1vcmRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uM2M4ZDE4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDggQEAKK0F0dGVtcHRzIHRvIGNoZWNrIHRoYXQgYXN5bmM9ZmFsc2UgZW5m
b3JjZXMgZXhlY3V0aW9uIG9yZGVyIGR5bmFtaWNhbGx5IGluc2VydGVkIHNjcmlwdHMuIFNlZTog
aHR0cDovL3dpa2kud2hhdHdnLm9yZy93aWtpL0R5bmFtaWNfU2NyaXB0X0V4ZWN1dGlvbl9PcmRl
cgorc2xvd0FzeW5jCithc3luYworbG9hZAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3NzNmZDAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhl
Y3V0ZS1pbi1vcmRlci5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzLXRlc3RzLXJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkZWJ1ZygnbG9hZCcpO2ZpbmlzaEpT
VGVzdCgpOyI+CitBdHRlbXB0cyB0byBjaGVjayB0aGF0IGFzeW5jPWZhbHNlIGVuZm9yY2VzIGV4
ZWN1dGlvbiBvcmRlciBkeW5hbWljYWxseSBpbnNlcnRlZCBzY3JpcHRzLgorU2VlOiBodHRwOi8v
d2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9uX09yZGVyCis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7
CisKK3Nsb3dseV9sb2FkZWRfc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0
Iik7CitzbG93bHlfbG9hZGVkX3NjcmlwdC5hc3luYyA9IGZhbHNlOworc2xvd2x5X2xvYWRlZF9z
Y3JpcHQuc3JjID0gInJlc291cmNlcy9zbG93LWFzeW5jLXNjcmlwdC5jZ2kiOworZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChzbG93bHlfbG9hZGVk
X3NjcmlwdCk7CisKK3F1aWNrbHlfbG9hZGVkX3NjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNjcmlwdCIpOworcXVpY2tseV9sb2FkZWRfc2NyaXB0LmFzeW5jID0gZmFsc2U7CitxdWlj
a2x5X2xvYWRlZF9zY3JpcHQuc3JjID0gInJlc291cmNlcy9hc3luYy1zY3JpcHQuanMiOworZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChxdWlja2x5
X2xvYWRlZF9zY3JpcHQpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJv
aWQubWsgYi9XZWJDb3JlL0FuZHJvaWQubWsKaW5kZXggMTFmZWRmYi4uMGNhMGY5MyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBiL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtOTQs
NyArOTQsNiBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAljc3Mv
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKIAlcCiAJZG9tL0FjdGl2ZURPTU9iamVjdC5j
cHAgXAotCWRvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAgXAogCWRvbS9BdHRyLmNwcCBcCiAJZG9t
L0F0dHJpYnV0ZS5jcHAgXAogCWRvbS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgXApAQCAt
MTcwLDYgKzE2OSw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAog
CWRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwIFwKIAlkb20vU2NyaXB0RWxlbWVudC5j
cHAgXAogCWRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBcCisJZG9tL1NjcmlwdFJ1bm5l
ci5jcHAgXAogCWRvbS9TZWxlY3RFbGVtZW50LmNwcCBcCiAJZG9tL1NlbGVjdG9yTm9kZUxpc3Qu
Y3BwIFwKIAlkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMzM0ZDU2YS4uZTdk
MGU5YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC04MDcsNyArODA3LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAg
IGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmpl
Y3QuY3BwCi0gICAgZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcAogICAgIGRvbS9BdHRyLmNwcAog
ICAgIGRvbS9BdHRyaWJ1dGUuY3BwCiAgICAgZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNw
cApAQCAtODg4LDYgKzg4Nyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vU2NyaXB0
YWJsZURvY3VtZW50UGFyc2VyLmNwcAogICAgIGRvbS9TY3JpcHRFbGVtZW50LmNwcAogICAgIGRv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwCiAg
ICAgZG9tL1NlbGVjdEVsZW1lbnQuY3BwCiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwCiAg
ICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYzYWM3OWEuLjRmODgzMDMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAg
QEAKKzIwMTAtMTItMTUgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlm
ZmVyZW50IGJlaGF2aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2Fs
bHkgbG9hZGVkIHNjcmlwdHMKKworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdp
dGggYXN5bmM9ZmFsc2Ugd2lsbCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRl
ci4KKyAgICAgICAgU2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3Jp
cHRfRXhlY3V0aW9uX09yZGVyCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUwMTE1CisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRNTFNjcmlwdEVs
ZW1lbnQvYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwKKworICAgICAgICAqIEFuZHJv
aWQubWs6IFJlbmFtZSBBc3luY1NjcmlwdFJ1bm5lciAtPiBTY3JpcHRSdW5uZXIuCisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0
by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJv
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8u
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAg
ICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOiBEaXR0by4KKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KTogRGl0dG8uCisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2NyaXB0UnVubmVy
KTogRGl0dG8uCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0RWxlbWVudDo6U2NyaXB0RWxlbWVudCk6IFRyYWNrIGhvdyBzY3JpcHQgc2hv
dWxkIGV4ZWN1dGUuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjppbnNlcnRlZElu
dG9Eb2N1bWVudCk6IFF1ZXVlIGluIG9yZGVyIGlmIGFzeW5jPWZhbHNlLgorICAgICAgICAoV2Vi
Q29yZTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UpOiBGaXggd2hpdGVzcGFjZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKTogRXhlY3V0ZSBp
bi1vcmRlciBvciBhc3luYyBzY3JpcHQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50
OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0KTogRml4IHdoaXRlc3BhY2UuCisgICAgICAgICog
ZG9tL1NjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0UnVubmVyLmNwcDogUmVu
YW1lZCBmcm9tIFdlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcC4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFJ1bm5lcjo6U2NyaXB0UnVubmVyKTogQWRkIGluLW9yZGVyIHNjcmlwdCBx
dWV1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5lcik6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbik6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4
ZWN1dGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpzdXNwZW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6cmVzdW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6IFJ1biBpbi1vcmRlciBzY3JpcHRzIHRo
YXQgaGF2ZSBsb2FkZWQgdG9vLgorICAgICAgICAqIGRvbS9TY3JpcHRSdW5uZXIuaDogUmVuYW1l
ZCBmcm9tIFdlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmguCisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRSdW5uZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6
Omhhc1BlbmRpbmdTY3JpcHRzKTogQ2hlY2sgZm9yIGluLW9yZGVyIHNjcmlwdHMgdG9vLgorICAg
ICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNjcmlwdEVsZW1lbnQ6OkhUTUxTY3JpcHRFbGVtZW50KTogQWRkIG1fZm9yY2VBc3luYyB0byB0
cmFjayBpZiB1c2VyIGV4cGxpY2l0bHkgcmVxdWVzdGVkIGFzeW5jLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQpOiBVbnNldCBtX2ZvcmNlQXN5
bmMgb24gYXN5bmMgY2hhbmdlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6
OmZpbmlzaFBhcnNpbmdDaGlsZHJlbik6IFNldCBtX2ZvcmNlQXN5bmMgaWYgc2NyaXB0IGJlY29t
ZXMgZHluYW1pYyAobm8gc3JjIGFuZCBubyBjb250ZW50KS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxTY3JpcHRFbGVtZW50Ojphc3luY0F0dHJpYnV0ZVZhbHVlKTogQWxpYXMgZm9yIGFzeW5jKCku
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6c2V0QXN5bmMpOiBBZGRlZC4g
SWYgY2FsbGVkLCB1bnNldCBtX2ZvcmNlQXN5bmMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2Ny
aXB0RWxlbWVudDo6YXN5bmMpOiBBZGRlZC4gUmV0dXJuIG1fZm9yY2VBc3luYyBpZiBpdCdzIHNl
dC4KKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5pZGw6IFJlbW92ZWQgUmVmbGVjdCBmcm9tIGFzeW5jIGZvciBjdXN0
b20gYmVoYXZpb3IuCisgICAgICAgICogcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVm
ZXJyZXIpOiBSZW5hbWUgQXN5bmNTY3JpcHRSdW5uZXIgLT4gU2NyaXB0UnVubmVyLgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUdyb3VwTG9hZERlZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVy
KTogRGl0dG8uCisKIDIwMTAtMTItMTUgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5v
a2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXgg
Y2IzNmUzMS4uZDFhYWZhMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysg
Yi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMDk5LDggKzEwOTksNiBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVdlYkNvcmUvY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAogCVdl
YkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAogCVdlYkNvcmUvZG9tL0FjdGl2ZURPTU9i
amVjdC5oIFwKLQlXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAgXAotCVdlYkNvcmUv
ZG9tL0FzeW5jU2NyaXB0UnVubmVyLmggXAogCVdlYkNvcmUvZG9tL0F0dHIuY3BwIFwKIAlXZWJD
b3JlL2RvbS9BdHRyLmggXAogCVdlYkNvcmUvZG9tL0F0dHJpYnV0ZS5jcHAgXApAQCAtMTI4OSw2
ICsxMjg3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmggXAogCVdlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIFwKIAlXZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggXAorCVdlYkNvcmUvZG9tL1NjcmlwdFJ1
bm5lci5jcHAgXAorCVdlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oIFwKIAlXZWJDb3JlL2RvbS9T
ZWxlY3RFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5oIFwKIAlXZWJD
b3JlL2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGRmN2JlMDkuLmIzYWY0MmQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0xMTQxLDggKzExNDEsNiBAQAogICAgICAgICAgICAgJ2RvbS9kZWZhdWx0L1BsYXRmb3Jt
TWVzc2FnZVBvcnRDaGFubmVsLmgnLAogICAgICAgICAgICAgJ2RvbS9BY3RpdmVET01PYmplY3Qu
Y3BwJywKICAgICAgICAgICAgICdkb20vQWN0aXZlRE9NT2JqZWN0LmgnLAotICAgICAgICAgICAg
J2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAnLAotICAgICAgICAgICAgJ2RvbS9Bc3luY1Njcmlw
dFJ1bm5lci5oJywKICAgICAgICAgICAgICdkb20vQXR0ci5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9BdHRyLmgnLAogICAgICAgICAgICAgJ2RvbS9BdHRyaWJ1dGUuY3BwJywKQEAgLTEzMjksNiAr
MTMyNyw4IEBACiAgICAgICAgICAgICAnZG9tL1NjcmlwdEVsZW1lbnQuaCcsCiAgICAgICAgICAg
ICAnZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwJywKICAgICAgICAgICAgICdkb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oJywKKyAgICAgICAgICAgICdkb20vU2NyaXB0UnVubmVyLmNw
cCcsCisgICAgICAgICAgICAnZG9tL1NjcmlwdFJ1bm5lci5oJywKICAgICAgICAgICAgICdkb20v
U2VsZWN0RWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TZWxlY3RFbGVtZW50LmgnLAog
ICAgICAgICAgICAgJ2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCcsCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBkYzJmZTY1Li40YjJm
N2JiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KQEAgLTY4NCw3ICs2ODQsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvV2ViS2l0Q1NT
TWF0cml4LmNwcCBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAgICAg
ZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAotICAgIGRvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAg
XAogICAgIGRvbS9BdHRyLmNwcCBcCiAgICAgZG9tL0F0dHJpYnV0ZS5jcHAgXAogICAgIGRvbS9C
ZWZvcmVQcm9jZXNzRXZlbnQuY3BwIFwKQEAgLTc2OCw2ICs3NjcsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBcCiAgICAgZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwIFwKICAgICBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgXAorICAgIGRv
bS9TY3JpcHRSdW5uZXIuY3BwIFwKICAgICBkb20vU2VsZWN0RWxlbWVudC5jcHAgXAogICAgIGRv
bS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDMyM2U1MjYuLjA0ZDkzM2Yg
MTAwNzU1Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDEwNzAsNjIgKzQxMDcw
LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXEFzeW5jU2NyaXB0UnVubmVyLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJ
CQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4K
LQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlO
YW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgot
CQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9u
Ci0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25m
aWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4K
LQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cQXN5bmNTY3JpcHRSdW5uZXIuaCIK
LQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEF0
b21pY1N0cmluZ0xpc3QuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC00NTU5OCw2ICs0NTU0Miw2
MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxk
b21cU2NyaXB0UnVubmVyLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2NyaXB0UnVubmVyLmgiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTZWxlY3RFbGVtZW50
LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZjZjMwMDkuLmYwZTMyZDQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjcwLDggKzI2NzAsOCBAQAog
CQk4OUQwOERBMTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUQwOEQ5RTEy
MjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi87IH07CiAJCThB
MTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBMTJFMzVDMTFGQTMzMjgwMDI1
ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGlu
Z0xldmVsSW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDhBMzA5QzlFMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1l
bnRlci5oICovOyB9OwotCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRS
dW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhB
NDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCThBNDEzQUUxMTIwN0JCQTUw
MDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuY3BwICovOyB9OworCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2Ny
aXB0UnVubmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOEE0MTNBRTExMjA3QkJBNTAw
ODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVy
LmNwcCAqLzsgfTsKIAkJOEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBN0NDOTZB
MTIwNzZENzMwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE3Q0M5NzAxMjA3NkY4QTAwMUQ0NTg4IC8q
IFBlbmRpbmdTY3JpcHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOEE3Q0M5NkYxMjA3NkY4QTAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuY3BwICov
OyB9OwogCQk4QTgxQkY4NTExRENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VMb2FkVGltaW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTgxQkY4NDEx
RENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VMb2FkVGltaW5nLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTkwMDYsOCArOTAwNiw4IEBACiAJCTg5
RDA4RDlFMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAv
KiBEb2N1bWVudExvYWRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RG9jdW1lbnRMb2FkVGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBMzA5
QzlFMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oOyBwYXRo
ID0gcGFyc2VyL05lc3RpbmdMZXZlbEluY3JlbWVudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5lci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyog
QXN5bmNTY3JpcHRSdW5uZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQXN5bmNTY3JpcHRSdW5uZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4
QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFJ1bm5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdFJ1bm5lci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBN0NDOTZBMTIwNzZENzMwMDFENDU4OCAvKiBQZW5k
aW5nU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlbmRpbmdTY3Jp
cHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE3Q0M5NkYxMjA3NkY4QTAwMUQ0
NTg4IC8qIFBlbmRpbmdTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUGVuZGluZ1NjcmlwdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThB
ODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkVGltaW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xODY4MCw4ICsxODY4MCw2IEBACiAJCQljaGlsZHJlbiA9ICgK
IAkJCQlFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmNwcCAqLywK
IAkJCQlFMUM0REU2ODBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmggKi8sCi0J
CQkJOEE0MTNBREYxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLywK
LQkJCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuaCAqLywK
IAkJCQlBOEM0QTdGQzA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5jcHAgKi8sCiAJCQkJQThDNEE3
RkIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuaCAqLywKIAkJCQk5M0VFQzFFNTA5QzI4Nzc3MDBD
NTE1RDEgLyogQXR0ci5pZGwgKi8sCkBAIC0xODkxOCw2ICsxODkxNiw4IEBACiAJCQkJMDhBNDg0
NzYwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuaCAqLywKIAkJCQlFMTFDOURBRjBF
QjM2OTk1MDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgKi8sCiAJCQkJRTEx
QzlEOUEwRUIzNjgxMjAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCAqLywKKwkJ
CQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCAqLywKKwkJCQk4
QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi8sCiAJCQkJMDg0QUVC
RTIwRkI1MDVGQTAwMzg0ODNFIC8qIFNlbGVjdEVsZW1lbnQuY3BwICovLAogCQkJCTA4NEFFQkUz
MEZCNTA1RkEwMDM4NDgzRSAvKiBTZWxlY3RFbGVtZW50LmggKi8sCiAJCQkJQkM3RkE2ODAwRDFG
MTY3OTAwREIyMkE5IC8qIFNlbGVjdG9yTm9kZUxpc3QuY3BwICovLApAQCAtMTkyOTEsNyArMTky
OTEsNiBAQAogCQkJCTk3NkQ2Qzc3MTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVXcml0ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3NkQ2QzkzMTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0Zp
bGVXcml0ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIwMTQ5RTdFMTFBNEIyMTUwMDE5
NkE3QiAvKiBBc3luY0ltYWdlUmVzaXplci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOEE0MTNBRTAx
MjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzN0M2MUYwMTEyMDk1Qzg3MDA3QTNDNjcgLyogQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNEE4MEQwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuaCBp
biBIZWFkZXJzICovLAogCQkJCUE4QzRBODBCMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyaWJ1dGUu
aCBpbiBIZWFkZXJzICovLApAQCAtMjE1NDQsNiArMjE1NDMsNyBAQAogCQkJCTlGNzIzMDRGMTEx
ODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5RkEz
N0VFNDExNzJGQzgwMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTlGNzIzMDUxMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOEE0MTNBRTAxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0Q0MxMEEwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNv
dXJjZUNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNTRGRDM4MTAxNkQ5QTYwMDhCNDRDOCAv
KiBTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFDNzYwQjEwRURF
MDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTIyNTY3LDcg
KzIyNTY3LDYgQEAKIAkJCQk0OUVFQ0RERjEwNTAzQzI0MDAwOTlGQUIgLyogQXJyYXlCdWZmZXJW
aWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5RDA4RDlGMTIyMjg0NTEwMDEyNDFERiAvKiBB
c3luY0ZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjAxNDlFN0QxMUE0QjIxNTAw
MTk2QTdCIC8qIEFzeW5jSW1hZ2VSZXNpemVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCThBNDEz
QUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEM0QTgwRTA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEM0QTgwQzA5RDU2MzI3MDAwM0FDOEQgLyogQXR0cmlidXRlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzNEY3MTM4MEQ1QTZFRkYwMDAxOEQ2OSAvKiBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNDMxOSw2ICsyNDMxOCw3IEBACiAJ
CQkJNDFGMDY2RTUwRjY0QkNGNjAwQTA3RUFDIC8qIFNjcmlwdE9iamVjdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlGMzNGMDI4MjEyMDk0N0YyMDBFNTc0M0EgLyogU2NyaXB0UHJvZmlsZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5RjcyMzA1MDExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJv
ZmlsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOEE0MTNBRTExMjA3QkJBNTAwODIwMTZFIC8q
IFNjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTI3RDUzNzBGOEFBQjFEMDBF
NDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM0Q0MwRTEwRUQz
OUQ2RjAwQTY1OEYyIC8qIFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNBM0JG
NjdDMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcAppbmRleCBhZWZjMjdhLi4zNjcyMjZjIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBA
IC0yNiw3ICsyNiw2IEBACiAvLyBUaGlzIGFsbC1pbi1vbmUgY3BwIGZpbGUgY3V0cyBkb3duIG9u
IHRlbXBsYXRlIGJsb2F0IHRvIGFsbG93IHVzIHRvIGJ1aWxkIG91ciBXaW5kb3dzIHJlbGVhc2Ug
YnVpbGQuCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuY3BwIgotI2luY2x1ZGUgIkFzeW5j
U2NyaXB0UnVubmVyLmNwcCIKICNpbmNsdWRlICJBdHRyLmNwcCIKICNpbmNsdWRlICJBdHRyaWJ1
dGUuY3BwIgogI2luY2x1ZGUgIkJlZm9yZVByb2Nlc3NFdmVudC5jcHAiCkBAIC0xMDQsNiArMTAz
LDcgQEAKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmNwcCIKICNpbmNsdWRlICJTY3JpcHRF
bGVtZW50LmNwcCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCIKKyNpbmNs
dWRlICJTY3JpcHRSdW5uZXIuY3BwIgogI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNl
ci5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JO
b2RlTGlzdC5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggODdhNDBkNi4uOTljOTM5MCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
IkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5oIgog
I2luY2x1ZGUgIkF0dHIuaCIKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJDREFU
QVNlY3Rpb24uaCIKQEAgLTEyMiw2ICsxMjEsNyBAQAogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRM
aXN0ZW5lci5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU2VsZWN0
aW9uQ29udHJvbGxlci5oIgpAQCAtMzgwLDcgKzM4MCw3IEBAIERvY3VtZW50OjpEb2N1bWVudChG
cmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCwg
Y29uCiAgICAgLCBtX3N0YXJ0VGltZShjdXJyZW50VGltZSgpKQogICAgICwgbV9vdmVyTWluaW11
bUxheW91dFRocmVzaG9sZChmYWxzZSkKICAgICAsIG1fZXh0cmFMYXlvdXREZWxheSgwKQotICAg
ICwgbV9hc3luY1NjcmlwdFJ1bm5lcihBc3luY1NjcmlwdFJ1bm5lcjo6Y3JlYXRlKHRoaXMpKQor
ICAgICwgbV9zY3JpcHRSdW5uZXIoU2NyaXB0UnVubmVyOjpjcmVhdGUodGhpcykpCiAgICAgLCBt
X3htbFZlcnNpb24oIjEuMCIpCiAgICAgLCBtX3htbFN0YW5kYWxvbmUoZmFsc2UpCiAgICAgLCBt
X3NhdmVkUmVuZGVyZXIoMCkKQEAgLTU0OCw3ICs1NDgsNyBAQCBEb2N1bWVudDo6fkRvY3VtZW50
KCkKICAgICBBU1NFUlQobV9yYW5nZXMuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQoIW1fc3R5bGVS
ZWNhbGNUaW1lci5pc0FjdGl2ZSgpKTsKIAotICAgIG1fYXN5bmNTY3JpcHRSdW5uZXIuY2xlYXIo
KTsKKyAgICBtX3NjcmlwdFJ1bm5lci5jbGVhcigpOwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0
ZW5lcnMoKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKaW5kZXggN2RmMGY4ZS4uZGZiMTI1YSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC01MCw3ICs1
MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXN5bmNTY3JpcHRSdW5uZXI7
CiBjbGFzcyBBdHRyOwogY2xhc3MgQVhPYmplY3RDYWNoZTsKIGNsYXNzIENEQVRBU2VjdGlvbjsK
QEAgLTExMSw2ICsxMTAsNyBAQCBjbGFzcyBSZW5kZXJBcmVuYTsKIGNsYXNzIFJlbmRlclZpZXc7
CiBjbGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBTY3JpcHRFbGVtZW50RGF0
YTsKK2NsYXNzIFNjcmlwdFJ1bm5lcjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogY2xhc3MgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU2VnbWVudGVkU3RyaW5nOwpAQCAtODcyLDcgKzg3
Miw3IEBAIHB1YmxpYzoKIAogICAgIGludCBkb2NJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jSUQ7
IH0KICAgICAKLSAgICBBc3luY1NjcmlwdFJ1bm5lciogYXN5bmNTY3JpcHRSdW5uZXIoKSB7IHJl
dHVybiBtX2FzeW5jU2NyaXB0UnVubmVyLmdldCgpOyB9CisgICAgU2NyaXB0UnVubmVyKiBzY3Jp
cHRSdW5uZXIoKSB7IHJldHVybiBtX3NjcmlwdFJ1bm5lci5nZXQoKTsgfQogCiAjaWYgRU5BQkxF
KFhTTFQpCiAgICAgdm9pZCBhcHBseVhTTFRyYW5zZm9ybShQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24q
IHBpKTsKQEAgLTEyNzYsNyArMTI3Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gcG9pbnRzIGR1cmlu
ZyB0aGUgbGlmZXRpbWUgb2YgdGhlIERvY3VtZW50LgogICAgIGludCBtX2V4dHJhTGF5b3V0RGVs
YXk7CiAgICAgCi0gICAgT3duUHRyPEFzeW5jU2NyaXB0UnVubmVyPiBtX2FzeW5jU2NyaXB0UnVu
bmVyOworICAgIE93blB0cjxTY3JpcHRSdW5uZXI+IG1fc2NyaXB0UnVubmVyOwogCiAjaWYgRU5B
QkxFKFhTTFQpCiAgICAgT3duUHRyPFRyYW5zZm9ybVNvdXJjZT4gbV90cmFuc2Zvcm1Tb3VyY2U7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDc0ZjI1ODAuLjEwZjFhMWMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuY3BwCkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RWxlbWVudC5oIgogCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKICNpbmNs
dWRlICJDYWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zNyw2ICszNiw3IEBACiAjaW5jbHVkZSAiTUlNRVR5
cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNl
Q29kZS5oIgogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
QEAgLTU4LDYgKzU4LDcgQEAgU2NyaXB0RWxlbWVudDo6U2NyaXB0RWxlbWVudChFbGVtZW50KiBl
bGVtZW50LCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgd2EKICAgICAsIG1faXNFeHRl
cm5hbFNjcmlwdChmYWxzZSkKICAgICAsIG1fd2FzQWxyZWFkeVN0YXJ0ZWQod2FzQWxyZWFkeVN0
YXJ0ZWQpCiAgICAgLCBtX2hhdmVGaXJlZExvYWQoZmFsc2UpCisgICAgLCBtX3dpbGxFeGVjdXRl
SW5PcmRlcihmYWxzZSkKIHsKICAgICBBU1NFUlQobV9lbGVtZW50KTsKIH0KQEAgLTc2LDYgKzc3
LDEwIEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiBzb3VyY2VVcmwpCiAKICAgICBpZiAoIXNvdXJjZVVybC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgcmVxdWVzdFNjcmlwdChzb3VyY2VVcmwpOworICAgICAgICBpZiAoIWlzQXN5bmNocm9ub3Vz
KCkgJiYgbV9jYWNoZWRTY3JpcHQpIHsKKyAgICAgICAgICAgIG1fd2lsbEV4ZWN1dGVJbk9yZGVy
ID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVy
KCktPnF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4ZWN1dGlvbih0aGlzLCBtX2NhY2hlZFNjcmlwdCk7
CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTM3LDcgKzE0Miw3IEBA
IHN0YXRpYyBib29sIGlzU3VwcG9ydGVkSmF2YVNjcmlwdExhbmd1YWdlKGNvbnN0IFN0cmluZyYg
bGFuZ3VhZ2UpCiAgICAgICAgIGxhbmd1YWdlcy5hZGQoImphdmFzY3JpcHQxLjciKTsKICAgICAg
ICAgbGFuZ3VhZ2VzLmFkZCgibGl2ZXNjcmlwdCIpOwogICAgICAgICBsYW5ndWFnZXMuYWRkKCJl
Y21hc2NyaXB0Iik7Ci0gICAgICAgIGxhbmd1YWdlcy5hZGQoImpzY3JpcHQiKTsgICAgICAgICAg
ICAgICAgCisgICAgICAgIGxhbmd1YWdlcy5hZGQoImpzY3JpcHQiKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gbGFuZ3VhZ2VzLmNvbnRhaW5zKGxhbmd1YWdlKTsKQEAgLTIzOCw3ICsyNDMsMTAgQEAg
dm9pZCBTY3JpcHRFbGVtZW50OjpleGVjdXRlKENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQog
dm9pZCBTY3JpcHRFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogbykKIHsK
ICAgICBBU1NFUlRfVU5VU0VEKG8sIG8gPT0gbV9jYWNoZWRTY3JpcHQpOwotICAgIG1fZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+YXN5bmNTY3JpcHRSdW5uZXIoKS0+ZXhlY3V0ZVNjcmlwdFNvb24odGhp
cywgbV9jYWNoZWRTY3JpcHQpOworICAgIGlmIChtX3dpbGxFeGVjdXRlSW5PcmRlcikKKyAgICAg
ICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+cmVzdW1lKCk7CisgICAg
ZWxzZQorICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNjcmlwdFJ1bm5lcigpLT5leGVj
dXRlU2NyaXB0U29vbih0aGlzLCBtX2NhY2hlZFNjcmlwdCk7CiAgICAgbV9jYWNoZWRTY3JpcHQg
PSAwOwogfQogCkBAIC0yNTUsNyArMjYzLDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpzaG91bGRF
eGVjdXRlQXNKYXZhU2NyaXB0KCkgY29uc3QKICAgICAgICAgIFdpbklFIDcgYWNjZXB0cyBlY21h
c2NyaXB0IGFuZCBqc2NyaXB0LCBidXQgTW96aWxsYSAxLjggZG9lc24ndC4KICAgICAgICAgIE5l
aXRoZXIgTW96aWxsYSAxLjggbm9yIFdpbklFIDcgYWNjZXB0IGxlYWRpbmcgb3IgdHJhaWxpbmcg
d2hpdGVzcGFjZS4KICAgICAgICAgIFdlIHdhbnQgdG8gYWNjZXB0IGFsbCB0aGUgdmFsdWVzIHRo
YXQgZWl0aGVyIG9mIHRoZXNlIGJyb3dzZXJzIGFjY2VwdCwgYnV0IG5vdCBvdGhlciB2YWx1ZXMu
Ci0gICAgIAorCiAgICAgICAgICBGSVhNRTogSXMgdGhpcyBIVE1MNSBjb21wbGlhbnQ/CiAgICAg
ICovCiAgICAgU3RyaW5nIHR5cGUgPSB0eXBlQXR0cmlidXRlVmFsdWUoKTsKQEAgLTI2Niw3ICsy
NzQsNyBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnNob3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSBj
b25zdAogICAgICAgICBTdHJpbmcgbGFuZ3VhZ2UgPSBsYW5ndWFnZUF0dHJpYnV0ZVZhbHVlKCk7
CiAgICAgICAgIGlmICghbGFuZ3VhZ2UuaXNFbXB0eSgpICYmICFpc1N1cHBvcnRlZEphdmFTY3Jp
cHRMYW5ndWFnZShsYW5ndWFnZSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfSAg
ICAKKyAgICB9CiAKICAgICAvLyBObyB0eXBlIG9yIGxhbmd1YWdlIGlzIHNwZWNpZmllZCwgc28g
d2UgYXNzdW1lIHRoZSBzY3JpcHQgdG8gYmUgSmF2YVNjcmlwdC4KIApAQCAtMjc2LDEyICsyODQs
MTIgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpzaG91bGRFeGVjdXRlQXNKYXZhU2NyaXB0KCkgY29u
c3QKICAgICAgICAgZm9yQXR0cmlidXRlID0gZm9yQXR0cmlidXRlLnN0cmlwV2hpdGVTcGFjZSgp
OwogICAgICAgICBpZiAoIWVxdWFsSWdub3JpbmdDYXNlKGZvckF0dHJpYnV0ZSwgIndpbmRvdyIp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgCisKICAgICAgICAgZXZl
bnRBdHRyaWJ1dGUgPSBldmVudEF0dHJpYnV0ZS5zdHJpcFdoaXRlU3BhY2UoKTsKICAgICAgICAg
aWYgKCFlcXVhbElnbm9yaW5nQ2FzZShldmVudEF0dHJpYnV0ZSwgIm9ubG9hZCIpICYmICFlcXVh
bElnbm9yaW5nQ2FzZShldmVudEF0dHJpYnV0ZSwgIm9ubG9hZCgpIikpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIAorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1dlYkNvcmUvZG9tL1NjcmlwdEVs
ZW1lbnQuaAppbmRleCAwN2M1OWRiLi41MGE3YmZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC05MCw2
ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzRXh0ZXJuYWxTY3JpcHQ7CiAgICAgYm9v
bCBtX3dhc0FscmVhZHlTdGFydGVkOwogICAgIGJvb2wgbV9oYXZlRmlyZWRMb2FkOworICAgIGJv
b2wgbV93aWxsRXhlY3V0ZUluT3JkZXI7CiB9OwogCiBTY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVs
ZW1lbnQoRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5u
ZXIuY3BwIGIvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcApzaW1pbGFyaXR5IGluZGV4IDU0
JQpyZW5hbWUgZnJvbSBXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKcmVuYW1lIHRv
IFdlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKaW5kZXggN2Y1ZjFiNi4uNTNkOWQzZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwCisrKyBiL1dlYkNvcmUv
ZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKKyNpbmNsdWRlICJTY3Jp
cHRSdW5uZXIuaCIKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCkBAIC0zMywyMiArMzMsMjIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Bc3lu
Y1NjcmlwdFJ1bm5lcjo6QXN5bmNTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50KQorU2Ny
aXB0UnVubmVyOjpTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogbV9kb2N1
bWVudChkb2N1bWVudCkKLSAgICAsIG1fdGltZXIodGhpcywgJkFzeW5jU2NyaXB0UnVubmVyOjp0
aW1lckZpcmVkKQorICAgICwgbV90aW1lcih0aGlzLCAmU2NyaXB0UnVubmVyOjp0aW1lckZpcmVk
KQogewogICAgIEFTU0VSVChkb2N1bWVudCk7CiB9CiAKLUFzeW5jU2NyaXB0UnVubmVyOjp+QXN5
bmNTY3JpcHRSdW5uZXIoKQorU2NyaXB0UnVubmVyOjp+U2NyaXB0UnVubmVyKCkKIHsKLSAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgbV9zY3JpcHRzVG9FeGVjdXRlU29vbltpXS5maXJzdC0+ZWxlbWVudCgpLT5k
ZXJlZigpOyAvLyBCYWxhbmNlcyByZWYoKSBpbiBleGVjdXRlU2NyaXB0U29vbigpLgorICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5zaXplKCk7ICsraSkK
KyAgICAgICAgbV9kb2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5zaXplKCk7
ICsraSkKICAgICAgICAgbV9kb2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgp
OwotICAgIH0KIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24o
U2NyaXB0RWxlbWVudCogZGF0YSwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBj
YWNoZWRTY3JpcHQpCit2b2lkIFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0
RWxlbWVudCogZGF0YSwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRT
Y3JpcHQpCiB7CiAgICAgQVNTRVJUX0FSRyhkYXRhLCBkYXRhKTsKIApAQCAtNTcsMzcgKzU3LDY1
IEBAIHZvaWQgQXN5bmNTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRTb29uKFNjcmlwdEVsZW1l
bnQqIGRhdGEsIENhY2hlZFJlc291cmNlSGFuCiAgICAgQVNTRVJUKGVsZW1lbnQtPmluRG9jdW1l
bnQoKSk7CiAKICAgICBtX2RvY3VtZW50LT5pbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7
Ci0gICAgbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5hcHBlbmQobWFrZV9wYWlyKGRhdGEsIGNhY2hl
ZFNjcmlwdCkpOwotICAgIGVsZW1lbnQtPnJlZigpOyAvLyBCYWxhbmNlZCBieSBkZXJlZigpcyBp
biB0aW1lckZpcmVkKCkgYW5kIGR0b3IuCisgICAgbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5hcHBl
bmQoUGVuZGluZ1NjcmlwdChkYXRhLCBlbGVtZW50LCBjYWNoZWRTY3JpcHQpKTsKICAgICBpZiAo
IW1fdGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7CiB9
CiAKLXZvaWQgQXN5bmNTY3JpcHRSdW5uZXI6OnN1c3BlbmQoKQordm9pZCBTY3JpcHRSdW5uZXI6
OnF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4ZWN1dGlvbihTY3JpcHRFbGVtZW50KiBkYXRhLCBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCkKK3sKKyAgICBBU1NF
UlRfQVJHKGRhdGEsIGRhdGEpOworCisgICAgRWxlbWVudCogZWxlbWVudCA9IGRhdGEtPmVsZW1l
bnQoKTsKKyAgICBBU1NFUlQoZWxlbWVudCk7CisgICAgQVNTRVJUKGVsZW1lbnQtPmluRG9jdW1l
bnQoKSk7CisKKyAgICBtX2RvY3VtZW50LT5pbmNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7
CisgICAgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5hcHBlbmQoUGVuZGluZ1NjcmlwdChkYXRh
LCBlbGVtZW50LCBjYWNoZWRTY3JpcHQpKTsKK30KKwordm9pZCBTY3JpcHRSdW5uZXI6OnN1c3Bl
bmQoKQogewogICAgIG1fdGltZXIuc3RvcCgpOwogfQogCi12b2lkIEFzeW5jU2NyaXB0UnVubmVy
OjpyZXN1bWUoKQordm9pZCBTY3JpcHRSdW5uZXI6OnJlc3VtZSgpCiB7CiAgICAgaWYgKGhhc1Bl
bmRpbmdTY3JpcHRzKCkpCiAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCi12
b2lkIEFzeW5jU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKFRpbWVyPEFzeW5jU2NyaXB0UnVubmVy
PiogdGltZXIpCit2b2lkIFNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZChUaW1lcjxTY3JpcHRSdW5u
ZXI+KiB0aW1lcikKIHsKICAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9PSAmbV90aW1l
cik7CiAKICAgICBSZWZQdHI8RG9jdW1lbnQ+IHByb3RlY3QobV9kb2N1bWVudCk7Ci0gICAgCi0g
ICAgVmVjdG9yPHBhaXI8U2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFNjcmlwdD4gPiA+IHNjcmlwdHM7CisKKyAgICBWZWN0b3I8UGVuZGluZ1NjcmlwdD4gc2NyaXB0
czsKICAgICBzY3JpcHRzLnN3YXAobV9zY3JpcHRzVG9FeGVjdXRlU29vbik7CisKKyAgICBzaXpl
X3QgbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUgPSAwOworICAgIGZvciAoOyBudW1Jbk9yZGVy
U2NyaXB0c1RvRXhlY3V0ZSA8IG1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuc2l6ZSgpICYmIG1f
c2NyaXB0c1RvRXhlY3V0ZUluT3JkZXJbbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGVdLmNhY2hl
ZFNjcmlwdC0+aXNMb2FkZWQoKTsgKytudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZSkKKyAgICAg
ICAgc2NyaXB0cy5hcHBlbmQobV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlcltudW1Jbk9yZGVyU2Ny
aXB0c1RvRXhlY3V0ZV0pOworICAgIGlmIChudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZSkKKyAg
ICAgICAgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5yZW1vdmUoMCwgbnVtSW5PcmRlclNjcmlw
dHNUb0V4ZWN1dGUpOworCiAgICAgc2l6ZV90IHNpemUgPSBzY3JpcHRzLnNpemUoKTsKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBzY3JpcHRzW2ldLmZp
cnN0LT5leGVjdXRlKHNjcmlwdHNbaV0uc2Vjb25kLmdldCgpKTsKLSAgICAgICAgc2NyaXB0c1tp
XS5maXJzdC0+ZWxlbWVudCgpLT5kZXJlZigpOyAvLyBCYWxhbmNlcyByZWYoKSBpbiBleGVjdXRl
U2NyaXB0U29vbigpLgorICAgICAgICBzY3JpcHRzW2ldLnNjcmlwdEVsZW1lbnQtPmV4ZWN1dGUo
c2NyaXB0c1tpXS5jYWNoZWRTY3JpcHQuZ2V0KCkpOwogICAgICAgICBtX2RvY3VtZW50LT5kZWNy
ZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAgICAgfQogfQogCitTY3JpcHRSdW5uZXI6OlBl
bmRpbmdTY3JpcHQ6OlBlbmRpbmdTY3JpcHQoU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwg
UmVmUHRyPEVsZW1lbnQ+IHJlZmVkRWxlbWVudCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
U2NyaXB0PiBjYWNoZWRTY3JpcHQpCisgICAgOiBzY3JpcHRFbGVtZW50KHNjcmlwdEVsZW1lbnQp
CisgICAgLCByZWZlZEVsZW1lbnQocmVmZWRFbGVtZW50KQorICAgICwgY2FjaGVkU2NyaXB0KGNh
Y2hlZFNjcmlwdCkKK3sKK30KKworU2NyaXB0UnVubmVyOjpQZW5kaW5nU2NyaXB0Ojp+UGVuZGlu
Z1NjcmlwdCgpCit7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0
UnVubmVyLmggYi9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApzaW1pbGFyaXR5IGluZGV4IDY2
JQpyZW5hbWUgZnJvbSBXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oCnJlbmFtZSB0byBX
ZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAppbmRleCAxYTA1MWE4Li5kZjkxYzMxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oCisrKyBiL1dlYkNvcmUvZG9tL1Nj
cmlwdFJ1bm5lci5oCkBAIC0yMyw4ICsyMyw4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCi0j
aWZuZGVmIEFzeW5jU2NyaXB0UnVubmVyX2gKLSNkZWZpbmUgQXN5bmNTY3JpcHRSdW5uZXJfaAor
I2lmbmRlZiBTY3JpcHRSdW5uZXJfaAorI2RlZmluZSBTY3JpcHRSdW5uZXJfaAogCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtMzYsMjYg
KzM2LDM4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xh
c3MgRG9jdW1lbnQ7CitjbGFzcyBFbGVtZW50OwogY2xhc3MgU2NyaXB0RWxlbWVudDsKLSAgICAK
LWNsYXNzIEFzeW5jU2NyaXB0UnVubmVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKKworY2xhc3Mg
U2NyaXB0UnVubmVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc093blB0cjxBc3luY1NjcmlwdFJ1bm5lcj4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkg
eyByZXR1cm4gbmV3IEFzeW5jU2NyaXB0UnVubmVyKGRvY3VtZW50KTsgfQotICAgIH5Bc3luY1Nj
cmlwdFJ1bm5lcigpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFNjcmlwdFJ1bm5lcj4gY3JlYXRl
KERvY3VtZW50KiBkb2N1bWVudCkgeyByZXR1cm4gbmV3IFNjcmlwdFJ1bm5lcihkb2N1bWVudCk7
IH0KKyAgICB+U2NyaXB0UnVubmVyKCk7CiAKICAgICB2b2lkIGV4ZWN1dGVTY3JpcHRTb29uKFNj
cmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+KTsKLSAgICBi
b29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gIW1fc2NyaXB0c1RvRXhlY3V0
ZVNvb24uaXNFbXB0eSgpOyB9CisgICAgdm9pZCBxdWV1ZVNjcmlwdEZvckluT3JkZXJFeGVjdXRp
b24oU2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4pOwor
ICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9F
eGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0
eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCByZXN1bWUoKTsKIAogcHJpdmF0
ZToKLSAgICBBc3luY1NjcmlwdFJ1bm5lcihEb2N1bWVudCopOworICAgIFNjcmlwdFJ1bm5lcihE
b2N1bWVudCopOworCisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPFNjcmlwdFJ1bm5lcj4qKTsK
KworICAgIHN0cnVjdCBQZW5kaW5nU2NyaXB0IHsKKyAgICAgICAgUGVuZGluZ1NjcmlwdChTY3Jp
cHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBSZWZQdHI8RWxlbWVudD4gcmVmZWRFbGVtZW50LCBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCk7CisgICAgICAg
IH5QZW5kaW5nU2NyaXB0KCk7CiAKLSAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8QXN5bmNTY3Jp
cHRSdW5uZXI+Kik7CisgICAgICAgIFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQ7CisgICAg
ICAgIFJlZlB0cjxFbGVtZW50PiByZWZlZEVsZW1lbnQ7CisgICAgICAgIENhY2hlZFJlc291cmNl
SGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0OworICAgIH07CiAKICAgICBEb2N1bWVu
dCogbV9kb2N1bWVudDsKLSAgICBWZWN0b3I8c3RkOjpwYWlyPFNjcmlwdEVsZW1lbnQqLCBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+ID4gPiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29u
OwotICAgIFRpbWVyPEFzeW5jU2NyaXB0UnVubmVyPiBtX3RpbWVyOworICAgIFZlY3RvcjxQZW5k
aW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyOworICAgIFZlY3RvcjxQZW5kaW5n
U2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uOworICAgIFRpbWVyPFNjcmlwdFJ1bm5lcj4g
bV90aW1lcjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDYwM2Iy
YTguLjRjYmM1YWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcApAQCAtMzgsNiArMzgs
NyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogaW5saW5lIEhUTUxTY3JpcHRFbGVtZW50
OjpIVE1MU2NyaXB0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCogZG9jdW1lbnQsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCB3YXNBbHJlYWR5U3Rh
cnRlZCkKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAgICwgU2NyaXB0
RWxlbWVudCh0aGlzLCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCB3YXNBbHJlYWR5U3RhcnRlZCkKKyAg
ICAsIG1fZm9yY2VBc3luYyghd2FzSW5zZXJ0ZWRCeVBhcnNlcikKIHsKICAgICBBU1NFUlQoaGFz
VGFnTmFtZShzY3JpcHRUYWcpKTsKIH0KQEAgLTU4LDYgKzU5LDEzIEBAIHZvaWQgSFRNTFNjcmlw
dEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVm
b3JlQ2hhbmdlCiAgICAgSFRNTEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjaGFuZ2VkQnlQYXJz
ZXIsIGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7CiB9CiAKK3Zv
aWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoQXR0cmlidXRlKiBhdHRyLCBi
b29sIHByZXNlcnZlRGVjbHMpCit7CisgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBhc3luY0F0dHIp
CisgICAgICAgIG1fZm9yY2VBc3luYyA9IGZhbHNlOworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKGF0dHIsIHByZXNlcnZlRGVjbHMpOworfQorCiB2b2lkIEhUTUxTY3JpcHRFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUgPSBhdHRyLT5uYW1lKCk7CkBAIC03OCw2ICs4Niw4IEBA
IHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCiB7CiAgICAg
U2NyaXB0RWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKHNvdXJjZUF0dHJpYnV0ZVZhbHVl
KCkpOwogICAgIEhUTUxFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKKyAgICBpZiAo
c291cmNlQXR0cmlidXRlVmFsdWUoKS5pc0VtcHR5KCkgJiYgc2NyaXB0Q29udGVudCgpLmlzRW1w
dHkoKSkKKyAgICAgICAgbV9mb3JjZUFzeW5jID0gIWhhc0F0dHJpYnV0ZShhc3luY0F0dHIpOwog
fQogCiB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCkBAIC0x
NTIsNyArMTYyLDcgQEAgU3RyaW5nIEhUTUxTY3JpcHRFbGVtZW50OjpldmVudEF0dHJpYnV0ZVZh
bHVlKCkgY29uc3QKIAogYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6YXN5bmNBdHRyaWJ1dGVWYWx1
ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZhc3RIYXNBdHRyaWJ1dGUoYXN5bmNBdHRyKTsKKyAg
ICByZXR1cm4gYXN5bmMoKTsKIH0KIAogYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6ZGVmZXJBdHRy
aWJ1dGVWYWx1ZSgpIGNvbnN0CkBAIC0xNjAsNiArMTcwLDE3IEBAIGJvb2wgSFRNTFNjcmlwdEVs
ZW1lbnQ6OmRlZmVyQXR0cmlidXRlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBmYXN0SGFzQXR0
cmlidXRlKGRlZmVyQXR0cik7CiB9CiAKK3ZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnNldEFzeW5j
KGJvb2wgYXN5bmMpCit7CisgICAgc2V0Qm9vbGVhbkF0dHJpYnV0ZShhc3luY0F0dHIsIGFzeW5j
KTsKKyAgICBtX2ZvcmNlQXN5bmMgPSBmYWxzZTsKK30KKworYm9vbCBIVE1MU2NyaXB0RWxlbWVu
dDo6YXN5bmMoKSBjb25zdAoreworICAgIHJldHVybiBtX2ZvcmNlQXN5bmMgfHwgZmFzdEhhc0F0
dHJpYnV0ZShhc3luY0F0dHIpOworfQorCiB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpkaXNwYXRj
aExvYWRFdmVudCgpCiB7CiAgICAgQVNTRVJUKCFoYXZlRmlyZWRMb2FkRXZlbnQoKSk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9I
VE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDA5NzczYzUuLjRlNWQwN2MgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MU2Ny
aXB0RWxlbWVudC5oCkBAIC0zOCw2ICszOCw5IEBAIHB1YmxpYzoKIAogICAgIEtVUkwgc3JjKCkg
Y29uc3Q7CiAKKyAgICB2b2lkIHNldEFzeW5jKGJvb2wpOworICAgIGJvb2wgYXN5bmMoKSBjb25z
dDsKKwogcHJpdmF0ZToKICAgICBIVE1MU2NyaXB0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgd2FzQWxyZWFkeVN0
YXJ0ZWQpOwogCkBAIC00NSw2ICs0OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGlu
c2VydGVkSW50b0RvY3VtZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9jdW1l
bnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFy
c2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0g
MCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOworICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKEF0dHJpYnV0ZSosIGJvb2wgcHJlc2VydmVEZWNscyA9IGZhbHNlKTsKIAogICAgIHZp
cnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCk7CkBAIC02NCw2ICs2OCw4IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRXJyb3JFdmVudCgpOwogCiAgICAgUGFzc1JlZlB0
cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkgY29u
c3Q7CisKKyAgICBib29sIG1fZm9yY2VBc3luYzsKIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuaWRsCmluZGV4IDIwYjczMzEuLmZhNzk5Y2IgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hU
TUxTY3JpcHRFbGVtZW50LmlkbApAQCAtMjQsNyArMjQsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1mb3JdIERPTVN0cmluZyBodG1sRm9yOwogICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBldmVudDsKICAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBET01TdHJpbmcgY2hhcnNldDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBi
b29sZWFuIGFzeW5jOworICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBhc3luYzsKICAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGRlZmVyOwogICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3QsIFVSTF0gRE9NU3RyaW5nIHNyYzsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBE
T01TdHJpbmcgdHlwZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVm
ZXJyZXIuY3BwIGIvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKaW5kZXgg
OThhNDcyMC4uZDNiMGYwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWRE
ZWZlcnJlci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAK
QEAgLTIxLDEwICsyMSwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBhZ2VH
cm91cExvYWREZWZlcnJlci5oIgogCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAu
aCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OCw3ICs0OCw3IEBAIFBhZ2VHcm91cExvYWREZWZl
cnJlcjo6UGFnZUdyb3VwTG9hZERlZmVycmVyKFBhZ2UqIHBhZ2UsIGJvb2wgZGVmZXJTZWxmKQog
ICAgICAgICAgICAgICAgIC8vIHRoZSBjb25zdHJ1Y3RvciB3aWxsIG5lZWQgdG8gdGFrZSBhIEFj
dGl2ZURPTU9iamVjdDo6UmVhc29uRm9yU3VzcGVuc2lvbi4KICAgICAgICAgICAgICAgICBmb3Ig
KEZyYW1lKiBmcmFtZSA9IG90aGVyUGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZy
YW1lLT50cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGZyYW1l
LT5kb2N1bWVudCgpLT5zdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyhBY3RpdmVET01PYmplY3Q6Oldp
bGxTaG93RGlhbG9nKTsKLSAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPmFz
eW5jU2NyaXB0UnVubmVyKCktPnN1c3BlbmQoKTsKKyAgICAgICAgICAgICAgICAgICAgZnJhbWUt
PmRvY3VtZW50KCktPnNjcmlwdFJ1bm5lcigpLT5zdXNwZW5kKCk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC02OCw3ICs2OCw3IEBAIFBhZ2VHcm91cExv
YWREZWZlcnJlcjo6flBhZ2VHcm91cExvYWREZWZlcnJlcigpCiAKICAgICAgICAgICAgIGZvciAo
RnJhbWUqIGZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50
cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50
KCktPnJlc3VtZUFjdGl2ZURPTU9iamVjdHMoKTsKLSAgICAgICAgICAgICAgICBmcmFtZS0+ZG9j
dW1lbnQoKS0+YXN5bmNTY3JpcHRSdW5uZXIoKS0+cmVzdW1lKCk7CisgICAgICAgICAgICAgICAg
ZnJhbWUtPmRvY3VtZW50KCktPnNjcmlwdFJ1bm5lcigpLT5yZXN1bWUoKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0K
</data>
<flag name="review"
          id="67718"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81682</attachid>
            <date>2011-02-08 13:32:29 -0800</date>
            <delta_ts>2011-02-08 21:56:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>async.patch</filename>
            <type>text/plain</type>
            <size>40116</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MTc2NWE2Li5iNWVmYjM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDIt
MDEgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2
aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNj
cmlwdHMKKworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGggYXN5bmM9ZmFs
c2Ugd2lsbCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4KKyAgICAgICAg
U2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhlY3V0aW9u
X09yZGVyCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMTE1CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5
bmMtYXR0ci1leHBlY3RlZC50eHQ6IEFkZGVkIHRlc3QgY2FzZXMgZm9yIGZvcmNlQXN5bmMuCisg
ICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRt
bDogRGl0dG8uCisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFz
eW5jLWF0dHItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVt
ZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3Nj
cmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRl
ci5odG1sOiBBZGRlZC4KKwogMjAxMS0wMi0wOCAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHRlc3QgZXhwZWN0YXRpb25zIHVwZGF0ZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3lu
Yy1hdHRyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVt
ZW50L3NjcmlwdC1hc3luYy1hdHRyLWV4cGVjdGVkLnR4dAppbmRleCA3YjhiZjRkLi5lODY3ZjQw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3Jp
cHQtYXN5bmMtYXR0ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0CkBAIC04LDggKzgs
MTQgQEAgUEFTUyBpc0FzeW5jKCdzMScpIGlzIHRydWUKIFBBU1MgaXNBc3luYygnczInKSBpcyB0
cnVlCiBQQVNTIGlzQXN5bmMoJ3MzJykgaXMgdHJ1ZQogUEFTUyBpc0FzeW5jKCdzNCcpIGlzIHRy
dWUKK1BBU1MgaXNBc3luYygnczUnKSBpcyB0cnVlCitQQVNTIGlzQXN5bmMoJ3M2JykgaXMgdHJ1
ZQorUEFTUyBpc0FzeW5jKCdzNycpIGlzIHRydWUKK1BBU1MgaXNBc3luYygnczgnKSBpcyBmYWxz
ZQogUEFTUyBpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyh0cnVlKSBpcyB0cnVlCiBQ
QVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKGZhbHNlKSBpcyBmYWxzZQorUEFT
UyBpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYygiYXN5bmMiKSBpcyB0cnVlCitQQVNT
IGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKG51bGwpIGlzIHRydWUKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1h
dHRyLmh0bWwKaW5kZXggNGEzZjNhZi4uYjBlNDA2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci5o
dG1sCkBAIC0xMiwxMSArMTIsMTUgQEAKIDxzY3JpcHQgaWQ9InMyIiBzcmM9Imlnbm9yZWQuanMi
IGFzeW5jPSJhc3luYyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJzMyIgc3JjPSJpZ25vcmVkLmpz
IiBhc3luYz0iQVNZTkMiPjwvc2NyaXB0PgogPHNjcmlwdCBpZD0iczQiIHNyYz0iaWdub3JlZC5q
cyIgYXN5bmM9InRydWUiPjwvc2NyaXB0PgorPHNjcmlwdCBpZD0iczUiIHNyYz0iaWdub3JlZC5q
cyIgYXN5bmM9ImZhbHNlIj48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM2Ij48L3NjcmlwdD4KKzxz
Y3JpcHQgaWQ9InM3IiBhc3luYz48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM4IiBhc3luYz48L3Nj
cmlwdD4KIAogPHNjcmlwdD4KIGRlc2NyaXB0aW9uKCdUaGlzIHRlc3QgY2hlY2tzIGZvciBwcm9w
ZXIgcGFyc2luZyBvZiB0aGUgYXN5bmMgYXR0cmlidXRlIG9uIEhUTUwgc2NyaXB0IHRhZ3MuJyk7
CiAKLXZhciBuZXh0U2NyaXB0SUQgPSAwOwordmFyIG5leHRTY3JpcHRJRCA9IDk7CiAKIGZ1bmN0
aW9uIGlzQXN5bmMoaWQpCiB7CkBAIC0yOSwxOSArMzMsMjcgQEAgZnVuY3Rpb24gaXNEeW5hbWlj
YWxseUluc2VydGVkU2NyaXB0QXN5bmMoYXN5bmMpCiAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwogICAgIHNjcmlwdC5pZCA9IGlkOwogICAgIHNjcmlw
dC5zcmMgPSAicmVzb3VyY2VzL3NjcmlwdC1sb2FkLmpzIjsKLSAgICBpZiAoYXN5bmMpCi0gICAg
ICAgIHNjcmlwdC5hc3luYyA9ICJhc3luYyI7CisgICAgaWYgKGFzeW5jICE9IG51bGwpCisgICAg
ICAgIHNjcmlwdC5hc3luYyA9IGFzeW5jOwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoc2NyaXB0KTsKICAgICByZXR1cm4gaXNBc3luYyhp
ZCk7CiB9CiAKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzOCIpLnJlbW92ZUF0dHJpYnV0ZSgi
YXN5bmMiKTsKKwogc2hvdWxkQmVGYWxzZSgiaXNBc3luYygnczAnKSIpOwogc2hvdWxkQmVUcnVl
KCJpc0FzeW5jKCdzMScpIik7CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3MyJykiKTsKIHNob3Vs
ZEJlVHJ1ZSgiaXNBc3luYygnczMnKSIpOwogc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzNCcpIik7
CitzaG91bGRCZVRydWUoImlzQXN5bmMoJ3M1JykiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNBc3luYygn
czYnKSIpOworc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzNycpIik7CitzaG91bGRCZUZhbHNlKCJp
c0FzeW5jKCdzOCcpIik7CiBzaG91bGRCZVRydWUoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlw
dEFzeW5jKHRydWUpIik7CiBzaG91bGRCZUZhbHNlKCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3Jp
cHRBc3luYyhmYWxzZSkiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNEeW5hbWljYWxseUluc2VydGVkU2Ny
aXB0QXN5bmMoXCJhc3luY1wiKSIpOworc2hvdWxkQmVUcnVlKCJpc0R5bmFtaWNhbGx5SW5zZXJ0
ZWRTY3JpcHRBc3luYyhudWxsKSIpOwogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Njcmlw
dC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjOGQxODAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxv
YWQtZXhlY3V0ZS1pbi1vcmRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitBdHRlbXB0
cyB0byBjaGVjayB0aGF0IGFzeW5jPWZhbHNlIGVuZm9yY2VzIGV4ZWN1dGlvbiBvcmRlciBkeW5h
bWljYWxseSBpbnNlcnRlZCBzY3JpcHRzLiBTZWU6IGh0dHA6Ly93aWtpLndoYXR3Zy5vcmcvd2lr
aS9EeW5hbWljX1NjcmlwdF9FeGVjdXRpb25fT3JkZXIKK3Nsb3dBc3luYworYXN5bmMKK2xvYWQK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhl
Y3V0ZS1pbi1vcmRlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1h
c3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi43NzczZmQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIuaHRtbApAQCAtMCww
ICsxLDI4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy10
ZXN0cy1yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
LXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0iZGVidWcoJ2xvYWQnKTtmaW5pc2hKU1Rlc3QoKTsiPgorQXR0ZW1wdHMgdG8gY2hl
Y2sgdGhhdCBhc3luYz1mYWxzZSBlbmZvcmNlcyBleGVjdXRpb24gb3JkZXIgZHluYW1pY2FsbHkg
aW5zZXJ0ZWQgc2NyaXB0cy4KK1NlZTogaHR0cDovL3dpa2kud2hhdHdnLm9yZy93aWtpL0R5bmFt
aWNfU2NyaXB0X0V4ZWN1dGlvbl9PcmRlcgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0PgordmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCitzbG93bHlfbG9hZGVkX3NjcmlwdCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworc2xvd2x5X2xvYWRlZF9zY3JpcHQu
YXN5bmMgPSBmYWxzZTsKK3Nsb3dseV9sb2FkZWRfc2NyaXB0LnNyYyA9ICJyZXNvdXJjZXMvc2xv
dy1hc3luYy1zY3JpcHQuY2dpIjsKK2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFk
IilbMF0uYXBwZW5kQ2hpbGQoc2xvd2x5X2xvYWRlZF9zY3JpcHQpOworCitxdWlja2x5X2xvYWRl
ZF9zY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKK3F1aWNrbHlfbG9h
ZGVkX3NjcmlwdC5hc3luYyA9IGZhbHNlOworcXVpY2tseV9sb2FkZWRfc2NyaXB0LnNyYyA9ICJy
ZXNvdXJjZXMvYXN5bmMtc2NyaXB0LmpzIjsKK2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQocXVpY2tseV9sb2FkZWRfc2NyaXB0KTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tayBiL1NvdXJjZS9XZWJD
b3JlL0FuZHJvaWQubWsKaW5kZXggM2NkODc0NS4uZGRjMWQyZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC05
NCw3ICs5NCw2IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCWNz
cy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAogCVwKIAlkb20vQWN0aXZlRE9NT2JqZWN0
LmNwcCBcCi0JZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcCBcCiAJZG9tL0F0dHIuY3BwIFwKIAlk
b20vQXR0cmlidXRlLmNwcCBcCiAJZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcCBcCkBA
IC0xNzAsNiArMTY5LDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBc
CiAJZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAgXAogCWRvbS9TY3JpcHRFbGVtZW50
LmNwcCBcCiAJZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIFwKKwlkb20vU2NyaXB0UnVu
bmVyLmNwcCBcCiAJZG9tL1NlbGVjdEVsZW1lbnQuY3BwIFwKIAlkb20vU2VsZWN0b3JOb2RlTGlz
dC5jcHAgXAogCWRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGY3MWQ5ZjYuLmE0NWNjNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02NjgsNyArNjY4
LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwCi0gICAgZG9tL0FzeW5jU2NyaXB0
UnVubmVyLmNwcAogICAgIGRvbS9BdHRyLmNwcAogICAgIGRvbS9BdHRyaWJ1dGUuY3BwCiAgICAg
ZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcApAQCAtNzQ5LDYgKzc0OCw3IEBAIFNFVChX
ZWJDb3JlX1NPVVJDRVMKICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcAogICAg
IGRvbS9TY3JpcHRFbGVtZW50LmNwcAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cAorICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuY3BwCiAg
ICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNDYzNzgxNy4uNDA5NDQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYw
IEBACisyMDExLTAyLTAxICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGRp
ZmZlcmVudCBiZWhhdmlvciBmb3IgZW5zdXJpbmcgZXhlY3V0aW9uIG9yZGVyIG9mIGR5bmFtaWNh
bGx5IGxvYWRlZCBzY3JpcHRzCisKKyAgICAgICAgRHluYW1pY2FsbHkgYWRkZWQgc2NyaXB0cyB3
aXRoIGFzeW5jPWZhbHNlIHdpbGwgbG9hZCBpbiBwYXJhbGxlbCwgYnV0IGV4ZWN1dGUgaW4gb3Jk
ZXIuCisgICAgICAgIFNlZTogaHR0cDovL3dpa2kud2hhdHdnLm9yZy93aWtpL0R5bmFtaWNfU2Ny
aXB0X0V4ZWN1dGlvbl9PcmRlcgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MDExNQorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L2FzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci5odG1sCisKKyAgICAgICAgKiBBbmRy
b2lkLm1rOiBSZW5hbWUgQXN5bmNTY3JpcHRSdW5uZXIgLT4gU2NyaXB0UnVubmVyLgorICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OiBEaXR0by4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogRGl0
dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnBy
bzogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRv
LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisg
ICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDogRGl0dG8uCisgICAgICAgICogZG9tL0RvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6IERpdHRvLgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNjcmlwdFJ1bm5l
cik6IERpdHRvLgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEVsZW1lbnQ6OlNjcmlwdEVsZW1lbnQpOiBUcmFjayBob3cgc2NyaXB0IHNo
b3VsZCBleGVjdXRlLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aW5zZXJ0ZWRJ
bnRvRG9jdW1lbnQpOiBRdWV1ZSBpbiBvcmRlciBpZiBhc3luYz1mYWxzZS4KKyAgICAgICAgKFdl
YkNvcmU6OmlzU3VwcG9ydGVkSmF2YVNjcmlwdExhbmd1YWdlKTogRml4IHdoaXRlc3BhY2UuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojpub3RpZnlGaW5pc2hlZCk6IEV4ZWN1dGUg
aW4tb3JkZXIgb3IgYXN5bmMgc2NyaXB0LgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVu
dDo6c2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCk6IEZpeCB3aGl0ZXNwYWNlLgorICAgICAgICAq
IGRvbS9TY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5jcHA6IFJl
bmFtZWQgZnJvbSBXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAuCisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRSdW5uZXI6OlNjcmlwdFJ1bm5lcik6IEFkZCBpbi1vcmRlciBzY3JpcHQg
cXVldWUuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24p
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckluT3JkZXJF
eGVjdXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6c3VzcGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnJlc3VtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQpOiBSdW4gaW4tb3JkZXIgc2NyaXB0cyB0
aGF0IGhhdmUgbG9hZGVkIHRvby4KKyAgICAgICAgKiBkb20vU2NyaXB0UnVubmVyLmg6IFJlbmFt
ZWQgZnJvbSBXZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oLgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0UnVubmVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVy
OjpoYXNQZW5kaW5nU2NyaXB0cyk6IENoZWNrIGZvciBpbi1vcmRlciBzY3JpcHRzIHRvby4KKyAg
ICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxTY3JpcHRFbGVtZW50OjpIVE1MU2NyaXB0RWxlbWVudCk6IEFkZCBtX2ZvcmNlQXN5bmMgdG8g
dHJhY2sgaWYgdXNlciBleHBsaWNpdGx5IHJlcXVlc3RlZCBhc3luYy4KKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxTY3JpcHRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKTogVW5zZXQgbV9mb3JjZUFz
eW5jIG9uIGFzeW5jIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50
OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4pOiBTZXQgbV9mb3JjZUFzeW5jIGlmIHNjcmlwdCBiZWNv
bWVzIGR5bmFtaWMgKG5vIHNyYyBhbmQgbm8gY29udGVudCkuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2NyaXB0RWxlbWVudDo6YXN5bmNBdHRyaWJ1dGVWYWx1ZSk6IEFsaWFzIGZvciBhc3luYygp
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OnNldEFzeW5jKTogQWRkZWQu
IElmIGNhbGxlZCwgdW5zZXQgbV9mb3JjZUFzeW5jLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNj
cmlwdEVsZW1lbnQ6OmFzeW5jKTogQWRkZWQuIFJldHVybiBtX2ZvcmNlQXN5bmMgaWYgaXQncyBz
ZXQuCisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuaWRsOiBSZW1vdmVkIFJlZmxlY3QgZnJvbSBhc3luYyBmb3IgY3Vz
dG9tIGJlaGF2aW9yLgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cExvYWREZWZlcnJlcjo6UGFnZUdyb3VwTG9hZERl
ZmVycmVyKTogUmVuYW1lIEFzeW5jU2NyaXB0UnVubmVyIC0+IFNjcmlwdFJ1bm5lci4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VHcm91cExvYWREZWZlcnJlcjo6flBhZ2VHcm91cExvYWREZWZlcnJl
cik6IERpdHRvLgorCiAyMDExLTAyLTA4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IDE0NzkzZTcuLmE0MDZkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMDk1LDggKzEw
OTUsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oIFwKLQlTb3VyY2Uv
V2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20v
QXN5bmNTY3JpcHRSdW5uZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vQXR0ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQXR0cmlidXRl
LmNwcCBcCkBAIC0xMjg2LDYgKzEyODQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L1NlbGVjdEVsZW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IDM3NDExZTAuLjk0MTMxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTExNDQsOCAr
MTE0NCw2IEBACiAgICAgICAgICAgICAnZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENo
YW5uZWwuaCcsCiAgICAgICAgICAgICAnZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAnLAogICAgICAg
ICAgICAgJ2RvbS9BY3RpdmVET01PYmplY3QuaCcsCi0gICAgICAgICAgICAnZG9tL0FzeW5jU2Ny
aXB0UnVubmVyLmNwcCcsCi0gICAgICAgICAgICAnZG9tL0FzeW5jU2NyaXB0UnVubmVyLmgnLAog
ICAgICAgICAgICAgJ2RvbS9BdHRyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0F0dHIuaCcsCiAg
ICAgICAgICAgICAnZG9tL0F0dHJpYnV0ZS5jcHAnLApAQCAtMTMzNCw2ICsxMzMyLDggQEAKICAg
ICAgICAgICAgICdkb20vU2NyaXB0RWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgnLAorICAgICAgICAgICAgJ2RvbS9TY3JpcHRSdW5uZXIuY3BwJywKKyAgICAgICAg
ICAgICdkb20vU2NyaXB0UnVubmVyLmgnLAogICAgICAgICAgICAgJ2RvbS9TZWxlY3RFbGVtZW50
LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1NlbGVjdEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAn
ZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZjA1MTJhYS4uYTMx
MzEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTcwMSw3ICs3MDEsNiBAQCBTT1VSQ0VTICs9IFwKICAg
ICBjc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmNwcCBcCiAgICAgZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAotICAgIGRvbS9Bc3luY1Nj
cmlwdFJ1bm5lci5jcHAgXAogICAgIGRvbS9BdHRyLmNwcCBcCiAgICAgZG9tL0F0dHJpYnV0ZS5j
cHAgXAogICAgIGRvbS9CZWZvcmVQcm9jZXNzRXZlbnQuY3BwIFwKQEAgLTc4NSw2ICs3ODQsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBcCiAg
ICAgZG9tL1NjcmlwdEVsZW1lbnQuY3BwIFwKICAgICBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcHAgXAorICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwIFwKICAgICBkb20vU2VsZWN0RWxlbWVu
dC5jcHAgXAogICAgIGRvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAgICAgZG9tL1NwYWNlU3Bs
aXRTdHJpbmcuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggNWM5NzJjNy4uM2M0OGYxNiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQxMzIyLDYyICs0MTMyMiw2IEBACiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxBc3luY1Njcmlw
dFJ1bm5lci5jcHAiCi0JCQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJ
PFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRv
b2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fp
cm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgot
CQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJS
ZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
Ci0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJ
CS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJ
CQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJ
CQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXEFzeW5jU2NyaXB0UnVubmVyLmgiCi0JCQkJPgotCQkJPC9G
aWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxBdG9taWNTdHJpbmdMaXN0
LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtNDU4NzAsNiArNDU4MTQsNjIgQEAKIAkJCQk+CiAJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNjcmlwdFJ1bm5l
ci5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNl
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZG9tXFNjcmlwdFJ1bm5lci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2VsZWN0RWxlbWVudC5jcHAiCiAJCQkJPgog
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJiMjQ0OTUuLjcxZWI0ZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3MjYs
OCArMjcyNiw4IEBACiAJCTg5RDA4REExMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0
ZW1DYWxsYmFja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg5RDA4RDlFMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3Mu
aCAqLzsgfTsKIAkJOEExMkUzNUQxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWlu
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEExMkUz
NUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBMzA5QzlGMTIzOTUwQkUwMENC
OTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEEzMDlDOUUxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3Rp
bmdMZXZlbEluY3JlbWVudGVyLmggKi87IH07Ci0JCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAv
KiBBc3luY1NjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOEE0
MTNBRTExMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURGMTIwN0JCQTUwMDgy
MDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgKi87IH07CisJCThBNDEzQUUwMTIwN0JCQTUw
MDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDhBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4QTQx
M0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAv
KiBTY3JpcHRSdW5uZXIuY3BwICovOyB9OwogCQk4QTdDQzk2QjEyMDc2RDczMDAxRDQ1ODggLyog
UGVuZGluZ1NjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOEE3Q0M5NkExMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4QTdDQzk3MDEyMDc2
RjhBMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTdDQzk2RjEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGlu
Z1NjcmlwdC5jcHAgKi87IH07CiAJCThBODFCRjg1MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJj
ZUxvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhBODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTExOCw4ICs5
MTE4LDggQEAKIAkJODlEMDhEOUUxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNh
bGxiYWNrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY0ZpbGVTeXN0
ZW1DYWxsYmFja3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEExMkUzNUMxMUZB
MzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBEb2N1bWVudExvYWRUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOEEzMDlDOUUxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVu
dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5lc3RpbmdMZXZlbEluY3Jl
bWVudGVyLmg7IHBhdGggPSBwYXJzZXIvTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5j
U2NyaXB0UnVubmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jU2Ny
aXB0UnVubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCThBNDEzQURGMTIwN0JC
QTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0UnVubmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRS
dW5uZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0UnVu
bmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE3Q0M5NkExMjA3NkQ3MzAw
MUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGVuZGluZ1NjcmlwdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTdDQzk2
RjEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQZW5kaW5nU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOEE4MUJGODQxMURDRkQ5MDAwREEyQjk4IC8qIFJlc291cmNlTG9hZFRpbWlu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRUaW1pbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4ODgwLDggKzE4ODgwLDYgQEAKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCUUxQzRERTZEMEVBNzVDNjUwMDIzQ0NENiAvKiBBY3RpdmVET01P
YmplY3QuY3BwICovLAogCQkJCUUxQzRERTY4MEVBNzVDMUUwMDIzQ0NENiAvKiBBY3RpdmVET01P
YmplY3QuaCAqLywKLQkJCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRS
dW5uZXIuY3BwICovLAotCQkJCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1Njcmlw
dFJ1bm5lci5oICovLAogCQkJCUE4QzRBN0ZDMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmNwcCAq
LywKIAkJCQlBOEM0QTdGQjA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5oICovLAogCQkJCTkzRUVD
MUU1MDlDMjg3NzcwMEM1MTVEMSAvKiBBdHRyLmlkbCAqLywKQEAgLTE5MTE5LDYgKzE5MTE3LDgg
QEAKIAkJCQkwOEE0ODQ3NjBFNTI3MkM1MDBDM0ZFNzYgLyogU2NyaXB0RWxlbWVudC5oICovLAog
CQkJCUUxMUM5REFGMEVCMzY5OTUwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cCAqLywKIAkJCQlFMTFDOUQ5QTBFQjM2ODEyMDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oICovLAorCQkJCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIu
Y3BwICovLAorCQkJCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCAq
LywKIAkJCQkwODRBRUJFMjBGQjUwNUZBMDAzODQ4M0UgLyogU2VsZWN0RWxlbWVudC5jcHAgKi8s
CiAJCQkJMDg0QUVCRTMwRkI1MDVGQTAwMzg0ODNFIC8qIFNlbGVjdEVsZW1lbnQuaCAqLywKIAkJ
CQlCQzdGQTY4MDBEMUYxNjc5MDBEQjIyQTkgLyogU2VsZWN0b3JOb2RlTGlzdC5jcHAgKi8sCkBA
IC0xOTQ3NCw3ICsxOTQ3NCw2IEBACiAJCQkJOTc2RDZDNzcxMjJCOEEzRDAwMUZEMUY3IC8qIEFz
eW5jRmlsZVdyaXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc2RDZDOTMxMjJCOEEzRDAwMUZE
MUY3IC8qIEFzeW5jRmlsZVdyaXRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjAxNDlF
N0UxMUE0QjIxNTAwMTk2QTdCIC8qIEFzeW5jSW1hZ2VSZXNpemVyLmggaW4gSGVhZGVycyAqLywK
LQkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTM3QzYxRjAxMTIwOTVDODcwMDdBM0M2NyAvKiBBdG9taWNTdHJpbmdL
ZXllZE1SVUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEM0QTgwRDA5RDU2MzI3MDAwM0FD
OEQgLyogQXR0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNEE4MEIwOUQ1NjMyNzAwMDNBQzhE
IC8qIEF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTg0Nyw2ICsyMTg0Niw3IEBACiAJ
CQkJOUY3MjMwNEYxMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTlGQTM3RUU0MTE3MkZDODAwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOUY3MjMwNTExMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFBy
b2ZpbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyog
U2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4
RjIgLyogU2NyaXB0U291cmNlQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U1NEZEMzgxMDE2
RDlBNjAwOEI0NEM4IC8qIFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MUM3NjBCMTBFREUwM0QzMDBDMTY1NUYgLyogU2NyaXB0U3RhdGUuaCBpbiBIZWFkZXJzICov
LApAQCAtMjI3NzIsNyArMjI3NzIsNiBAQAogCQkJCTQ5RUVDRERGMTA1MDNDMjQwMDA5OUZBQiAv
KiBBcnJheUJ1ZmZlclZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODlEMDhEOUYxMjIyODQ1
MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMDE0
OUU3RDExQTRCMjE1MDAxOTZBN0IgLyogQXN5bmNJbWFnZVJlc2l6ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJOEE0MTNBRTExMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzRBODBFMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzRBODBDMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyaWJ1
dGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTVGRjYxMkIwMjY3NjAwQzFBMzU5IC8qIEF1
ZGlvQmFzaWNQcm9jZXNzb3JOb2RlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQ2MzMsNiArMjQ2
MzIsNyBAQAogCQkJCTQxRjA2NkU1MEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRPYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRjMzRjAyODIxMjA5NDdGMjAwRTU3NDNBIC8qIFNjcmlwdFBy
b2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUY3MjMwNTAxMTE4NEI0MTAwQUQwMTI2IC8q
IFNjcmlwdFByb2ZpbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCThBNDEzQUUxMTIwN0JCQTUw
MDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEyN0Q1Mzcw
RjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlwdFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
NENDMEUxMEVEMzlENkYwMEE2NThGMiAvKiBTY3JpcHRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzhBRTM0RTEyRUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCBjODhhZWNmLi4wOGE3
NjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKIC8v
IFRoaXMgYWxsLWluLW9uZSBjcHAgZmlsZSBjdXRzIGRvd24gb24gdGVtcGxhdGUgYmxvYXQgdG8g
YWxsb3cgdXMgdG8gYnVpbGQgb3VyIFdpbmRvd3MgcmVsZWFzZSBidWlsZC4KIAogI2luY2x1ZGUg
IkFjdGl2ZURPTU9iamVjdC5jcHAiCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuY3BwIgog
I2luY2x1ZGUgIkF0dHIuY3BwIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5jcHAiCiAjaW5jbHVkZSAi
QmVmb3JlUHJvY2Vzc0V2ZW50LmNwcCIKQEAgLTEwNCw2ICsxMDMsNyBAQAogI2luY2x1ZGUgIlNj
b3BlZEV2ZW50UXVldWUuY3BwIgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuY3BwIgogI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5j
cHAiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCIKICNpbmNsdWRlICJT
ZWxlY3RFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTZWxlY3Rvck5vZGVMaXN0LmNwcCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDEwNzkyZmMuLjM3ZjlmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgog
I2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1
bm5lci5oIgogI2luY2x1ZGUgIkF0dHIuaCIKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNs
dWRlICJDREFUQVNlY3Rpb24uaCIKQEAgLTEyNCw2ICsxMjMsNyBAQAogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2Ny
aXB0RXZlbnRMaXN0ZW5lci5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVk
ZSAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgpAQCAtMzg2LDcgKzM4Niw3IEBAIERvY3VtZW50OjpE
b2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29s
IGlzSFRNTCwgY29uCiAgICAgLCBtX3N0YXJ0VGltZShjdXJyZW50VGltZSgpKQogICAgICwgbV9v
dmVyTWluaW11bUxheW91dFRocmVzaG9sZChmYWxzZSkKICAgICAsIG1fZXh0cmFMYXlvdXREZWxh
eSgwKQotICAgICwgbV9hc3luY1NjcmlwdFJ1bm5lcihBc3luY1NjcmlwdFJ1bm5lcjo6Y3JlYXRl
KHRoaXMpKQorICAgICwgbV9zY3JpcHRSdW5uZXIoU2NyaXB0UnVubmVyOjpjcmVhdGUodGhpcykp
CiAgICAgLCBtX3htbFZlcnNpb24oIjEuMCIpCiAgICAgLCBtX3htbFN0YW5kYWxvbmUoZmFsc2Up
CiAgICAgLCBtX3NhdmVkUmVuZGVyZXIoMCkKQEAgLTU2MCw3ICs1NjAsNyBAQCBEb2N1bWVudDo6
fkRvY3VtZW50KCkKICAgICBBU1NFUlQobV9yYW5nZXMuaXNFbXB0eSgpKTsKICAgICBBU1NFUlQo
IW1fc3R5bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpKTsKIAotICAgIG1fYXN5bmNTY3JpcHRSdW5u
ZXIuY2xlYXIoKTsKKyAgICBtX3NjcmlwdFJ1bm5lci5jbGVhcigpOwogCiAgICAgcmVtb3ZlQWxs
RXZlbnRMaXN0ZW5lcnMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA5NDZlNTdhLi5lM2Zl
MmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNTEsNyArNTEsNiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIEFzeW5jU2NyaXB0UnVubmVyOwogY2xhc3MgQXR0cjsKIGNsYXNz
IEFYT2JqZWN0Q2FjaGU7CiBjbGFzcyBDREFUQVNlY3Rpb247CkBAIC0xMTMsNiArMTEyLDcgQEAg
Y2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFJlbmRlckZ1bGxTY3JlZW47CiBjbGFzcyBTY3JpcHRh
YmxlRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBTY3JpcHRFbGVtZW50RGF0YTsKK2NsYXNzIFNjcmlw
dFJ1bm5lcjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZh
bHVlOwogY2xhc3MgU2VnbWVudGVkU3RyaW5nOwpAQCAtODc4LDcgKzg3OCw3IEBAIHB1YmxpYzoK
IAogICAgIGludCBkb2NJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jSUQ7IH0KICAgICAKLSAgICBB
c3luY1NjcmlwdFJ1bm5lciogYXN5bmNTY3JpcHRSdW5uZXIoKSB7IHJldHVybiBtX2FzeW5jU2Ny
aXB0UnVubmVyLmdldCgpOyB9CisgICAgU2NyaXB0UnVubmVyKiBzY3JpcHRSdW5uZXIoKSB7IHJl
dHVybiBtX3NjcmlwdFJ1bm5lci5nZXQoKTsgfQogCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgdm9p
ZCBhcHBseVhTTFRyYW5zZm9ybShQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qIHBpKTsKQEAgLTEyNzgs
NyArMTI3OCw3IEBAIHByaXZhdGU6CiAgICAgLy8gcG9pbnRzIGR1cmluZyB0aGUgbGlmZXRpbWUg
b2YgdGhlIERvY3VtZW50LgogICAgIGludCBtX2V4dHJhTGF5b3V0RGVsYXk7CiAgICAgCi0gICAg
T3duUHRyPEFzeW5jU2NyaXB0UnVubmVyPiBtX2FzeW5jU2NyaXB0UnVubmVyOworICAgIE93blB0
cjxTY3JpcHRSdW5uZXI+IG1fc2NyaXB0UnVubmVyOwogCiAjaWYgRU5BQkxFKFhTTFQpCiAgICAg
T3duUHRyPFRyYW5zZm9ybVNvdXJjZT4gbV90cmFuc2Zvcm1Tb3VyY2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RWxlbWVudC5jcHAKaW5kZXggMTkzOWEwOC4uYzI2YjcyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIAotI2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVu
bmVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMzcsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
U2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUg
IlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCkBAIC01OCw2ICs1OCw3IEBAIFNjcmlwdEVsZW1lbnQ6OlNjcmlwdEVsZW1l
bnQoRWxlbWVudCogZWxlbWVudCwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIHdhCiAg
ICAgLCBtX2lzRXh0ZXJuYWxTY3JpcHQoZmFsc2UpCiAgICAgLCBtX3dhc0FscmVhZHlTdGFydGVk
KHdhc0FscmVhZHlTdGFydGVkKQogICAgICwgbV9oYXZlRmlyZWRMb2FkKGZhbHNlKQorICAgICwg
bV93aWxsRXhlY3V0ZUluT3JkZXIoZmFsc2UpCiB7CiAgICAgQVNTRVJUKG1fZWxlbWVudCk7CiB9
CkBAIC03Niw2ICs3NywxMCBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3Vt
ZW50KGNvbnN0IFN0cmluZyYgc291cmNlVXJsKQogCiAgICAgaWYgKCFzb3VyY2VVcmwuaXNFbXB0
eSgpKSB7CiAgICAgICAgIHJlcXVlc3RTY3JpcHQoc291cmNlVXJsKTsKKyAgICAgICAgaWYgKCFp
c0FzeW5jaHJvbm91cygpICYmIG1fY2FjaGVkU2NyaXB0KSB7CisgICAgICAgICAgICBtX3dpbGxF
eGVjdXRlSW5PcmRlciA9IHRydWU7CisgICAgICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCkt
PnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckluT3JkZXJFeGVjdXRpb24odGhpcywgbV9j
YWNoZWRTY3JpcHQpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEz
Nyw3ICsxNDIsNyBAQCBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZShj
b25zdCBTdHJpbmcmIGxhbmd1YWdlKQogICAgICAgICBsYW5ndWFnZXMuYWRkKCJqYXZhc2NyaXB0
MS43Iik7CiAgICAgICAgIGxhbmd1YWdlcy5hZGQoImxpdmVzY3JpcHQiKTsKICAgICAgICAgbGFu
Z3VhZ2VzLmFkZCgiZWNtYXNjcmlwdCIpOwotICAgICAgICBsYW5ndWFnZXMuYWRkKCJqc2NyaXB0
Iik7ICAgICAgICAgICAgICAgIAorICAgICAgICBsYW5ndWFnZXMuYWRkKCJqc2NyaXB0Iik7CiAg
ICAgfQogCiAgICAgcmV0dXJuIGxhbmd1YWdlcy5jb250YWlucyhsYW5ndWFnZSk7CkBAIC0yMzks
NyArMjQ0LDEwIEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZShDYWNoZWRTY3JpcHQqIGNh
Y2hlZFNjcmlwdCkKIHZvaWQgU2NyaXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVz
b3VyY2UqIG8pCiB7CiAgICAgQVNTRVJUX1VOVVNFRChvLCBvID09IG1fY2FjaGVkU2NyaXB0KTsK
LSAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmFzeW5jU2NyaXB0UnVubmVyKCktPmV4ZWN1dGVT
Y3JpcHRTb29uKHRoaXMsIG1fY2FjaGVkU2NyaXB0KTsKKyAgICBpZiAobV93aWxsRXhlY3V0ZUlu
T3JkZXIpCisgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCktPnJl
c3VtZSgpOworICAgIGVsc2UKKyAgICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zY3JpcHRS
dW5uZXIoKS0+ZXhlY3V0ZVNjcmlwdFNvb24odGhpcywgbV9jYWNoZWRTY3JpcHQpOwogICAgIG1f
Y2FjaGVkU2NyaXB0ID0gMDsKIH0KIApAQCAtMjU2LDcgKzI2NCw3IEBAIGJvb2wgU2NyaXB0RWxl
bWVudDo6c2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlwdCgpIGNvbnN0CiAgICAgICAgICBXaW5JRSA3
IGFjY2VwdHMgZWNtYXNjcmlwdCBhbmQganNjcmlwdCwgYnV0IE1vemlsbGEgMS44IGRvZXNuJ3Qu
CiAgICAgICAgICBOZWl0aGVyIE1vemlsbGEgMS44IG5vciBXaW5JRSA3IGFjY2VwdCBsZWFkaW5n
IG9yIHRyYWlsaW5nIHdoaXRlc3BhY2UuCiAgICAgICAgICBXZSB3YW50IHRvIGFjY2VwdCBhbGwg
dGhlIHZhbHVlcyB0aGF0IGVpdGhlciBvZiB0aGVzZSBicm93c2VycyBhY2NlcHQsIGJ1dCBub3Qg
b3RoZXIgdmFsdWVzLgotICAgICAKKwogICAgICAgICAgRklYTUU6IElzIHRoaXMgSFRNTDUgY29t
cGxpYW50PwogICAgICAqLwogICAgIFN0cmluZyB0eXBlID0gdHlwZUF0dHJpYnV0ZVZhbHVlKCk7
CkBAIC0yNjcsNyArMjc1LDcgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpzaG91bGRFeGVjdXRlQXNK
YXZhU2NyaXB0KCkgY29uc3QKICAgICAgICAgU3RyaW5nIGxhbmd1YWdlID0gbGFuZ3VhZ2VBdHRy
aWJ1dGVWYWx1ZSgpOwogICAgICAgICBpZiAoIWxhbmd1YWdlLmlzRW1wdHkoKSAmJiAhaXNTdXBw
b3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UobGFuZ3VhZ2UpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0gICAgCisgICAgfQogCiAgICAgLy8gTm8gdHlwZSBvciBsYW5ndWFnZSBpcyBz
cGVjaWZpZWQsIHNvIHdlIGFzc3VtZSB0aGUgc2NyaXB0IHRvIGJlIEphdmFTY3JpcHQuCiAKQEAg
LTI3NywxMiArMjg1LDEyIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6c2hvdWxkRXhlY3V0ZUFzSmF2
YVNjcmlwdCgpIGNvbnN0CiAgICAgICAgIGZvckF0dHJpYnV0ZSA9IGZvckF0dHJpYnV0ZS5zdHJp
cFdoaXRlU3BhY2UoKTsKICAgICAgICAgaWYgKCFlcXVhbElnbm9yaW5nQ2FzZShmb3JBdHRyaWJ1
dGUsICJ3aW5kb3ciKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIAor
CiAgICAgICAgIGV2ZW50QXR0cmlidXRlID0gZXZlbnRBdHRyaWJ1dGUuc3RyaXBXaGl0ZVNwYWNl
KCk7CiAgICAgICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2UoZXZlbnRBdHRyaWJ1dGUsICJvbmxv
YWQiKSAmJiAhZXF1YWxJZ25vcmluZ0Nhc2UoZXZlbnRBdHRyaWJ1dGUsICJvbmxvYWQoKSIpKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICAKKwogICAgIHJldHVybiB0cnVl
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAppbmRleCA1MjUwZjNlLi4zMzI5OTRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKQEAgLTkxLDYgKzkxLDcgQEAgcHJpdmF0
ZToKICAgICBib29sIG1faXNFeHRlcm5hbFNjcmlwdDsKICAgICBib29sIG1fd2FzQWxyZWFkeVN0
YXJ0ZWQ7CiAgICAgYm9vbCBtX2hhdmVGaXJlZExvYWQ7CisgICAgYm9vbCBtX3dpbGxFeGVjdXRl
SW5PcmRlcjsKIH07CiAKIFNjcmlwdEVsZW1lbnQqIHRvU2NyaXB0RWxlbWVudChFbGVtZW50Kik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKc2ltaWxhcml0eSBpbmRleCA2NiUK
cmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcApyZW5h
bWUgdG8gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKaW5kZXggMjhiMWIzMS4u
ZTEwNzc1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5l
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI0LDcg
KzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQXN5bmNTY3Jp
cHRSdW5uZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKIAogI2luY2x1ZGUgIkNhY2hl
ZFNjcmlwdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zNCwyMCArMzQsMjIgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1Bc3luY1NjcmlwdFJ1bm5lcjo6QXN5bmNTY3JpcHRSdW5u
ZXIoRG9jdW1lbnQqIGRvY3VtZW50KQorU2NyaXB0UnVubmVyOjpTY3JpcHRSdW5uZXIoRG9jdW1l
bnQqIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKLSAgICAsIG1fdGltZXIo
dGhpcywgJkFzeW5jU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKQorICAgICwgbV90aW1lcih0aGlz
LCAmU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKQogewogICAgIEFTU0VSVChkb2N1bWVudCk7CiB9
CiAKLUFzeW5jU2NyaXB0UnVubmVyOjp+QXN5bmNTY3JpcHRSdW5uZXIoKQorU2NyaXB0UnVubmVy
Ojp+U2NyaXB0UnVubmVyKCkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0
c1RvRXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kpCiAgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVu
dExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2Ny
aXB0c1RvRXhlY3V0ZUluT3JkZXIuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQtPmRl
Y3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5l
cjo6ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCit2b2lkIFNjcmlwdFJ1
bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCiB7CiAgICAgQVNT
RVJUX0FSRyhzY3JpcHRFbGVtZW50LCBzY3JpcHRFbGVtZW50KTsKIApAQCAtNjEsMjUgKzYzLDQ0
IEBAIHZvaWQgQXN5bmNTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRTb29uKFNjcmlwdEVsZW1l
bnQqIHNjcmlwdEVsZW1lbnQsIENhY2hlZFJlCiAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90
KDApOwogfQogCi12b2lkIEFzeW5jU2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKK3ZvaWQgU2NyaXB0
UnVubmVyOjpxdWV1ZVNjcmlwdEZvckluT3JkZXJFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2Ny
aXB0RWxlbWVudCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3Jp
cHQpCit7CisgICAgQVNTRVJUX0FSRyhzY3JpcHRFbGVtZW50LCBzY3JpcHRFbGVtZW50KTsKKwor
ICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBzY3JpcHRFbGVtZW50LT5lbGVtZW50KCk7CisgICAgQVNT
RVJUKGVsZW1lbnQpOworICAgIEFTU0VSVChlbGVtZW50LT5pbkRvY3VtZW50KCkpOworCisgICAg
bV9kb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIG1fc2NyaXB0
c1RvRXhlY3V0ZUluT3JkZXIuYXBwZW5kKFBlbmRpbmdTY3JpcHQoZWxlbWVudCwgY2FjaGVkU2Ny
aXB0LmdldCgpKSk7Cit9CisKK3ZvaWQgU2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKIHsKICAgICBt
X3RpbWVyLnN0b3AoKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6cmVzdW1lKCkKK3Zv
aWQgU2NyaXB0UnVubmVyOjpyZXN1bWUoKQogewogICAgIGlmIChoYXNQZW5kaW5nU2NyaXB0cygp
KQogICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotdm9pZCBBc3luY1Njcmlw
dFJ1bm5lcjo6dGltZXJGaXJlZChUaW1lcjxBc3luY1NjcmlwdFJ1bm5lcj4qIHRpbWVyKQordm9p
ZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoVGltZXI8U2NyaXB0UnVubmVyPiogdGltZXIpCiB7
CiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGltZXIpOwogCiAgICAgUmVm
UHRyPERvY3VtZW50PiBwcm90ZWN0KG1fZG9jdW1lbnQpOwotICAgIAorCiAgICAgVmVjdG9yPFBl
bmRpbmdTY3JpcHQ+IHNjcmlwdHM7CiAgICAgc2NyaXB0cy5zd2FwKG1fc2NyaXB0c1RvRXhlY3V0
ZVNvb24pOworCisgICAgc2l6ZV90IG51bUluT3JkZXJTY3JpcHRzVG9FeGVjdXRlID0gMDsKKyAg
ICBmb3IgKDsgbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUgPCBtX3NjcmlwdHNUb0V4ZWN1dGVJ
bk9yZGVyLnNpemUoKSAmJiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyW251bUluT3JkZXJTY3Jp
cHRzVG9FeGVjdXRlXS5jYWNoZWRTY3JpcHQoKS0+aXNMb2FkZWQoKTsgKytudW1Jbk9yZGVyU2Ny
aXB0c1RvRXhlY3V0ZSkKKyAgICAgICAgc2NyaXB0cy5hcHBlbmQobV9zY3JpcHRzVG9FeGVjdXRl
SW5PcmRlcltudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZV0pOworICAgIGlmIChudW1Jbk9yZGVy
U2NyaXB0c1RvRXhlY3V0ZSkKKyAgICAgICAgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5yZW1v
dmUoMCwgbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUpOworCiAgICAgc2l6ZV90IHNpemUgPSBz
Y3JpcHRzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewog
ICAgICAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCA9IHNjcmlwdHNbaV0uY2FjaGVkU2Ny
aXB0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApzaW1pbGFyaXR5IGluZGV4IDc3
JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaApyZW5h
bWUgdG8gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCmluZGV4IDZhNzUzMjMuLjFi
MDlhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApAQCAtMjMsOCArMjMsOCBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBBc3luY1NjcmlwdFJ1bm5lcl9oCi0j
ZGVmaW5lIEFzeW5jU2NyaXB0UnVubmVyX2gKKyNpZm5kZWYgU2NyaXB0UnVubmVyX2gKKyNkZWZp
bmUgU2NyaXB0UnVubmVyX2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAj
aW5jbHVkZSAiVGltZXIuaCIKQEAgLTM4LDI2ICszOCwyOCBAQCBjbGFzcyBDYWNoZWRTY3JpcHQ7
CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFBlbmRpbmdTY3JpcHQ7CiBjbGFzcyBTY3JpcHRFbGVt
ZW50OwotICAgIAotY2xhc3MgQXN5bmNTY3JpcHRSdW5uZXIgewotICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKEFzeW5jU2NyaXB0UnVubmVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisKK2Ns
YXNzIFNjcmlwdFJ1bm5lciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NyaXB0UnVubmVy
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8QXN5bmNTY3JpcHRSdW5uZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJu
IG5ldyBBc3luY1NjcmlwdFJ1bm5lcihkb2N1bWVudCk7IH0KLSAgICB+QXN5bmNTY3JpcHRSdW5u
ZXIoKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxTY3JpcHRSdW5uZXI+IGNyZWF0ZShEb2N1bWVu
dCogZG9jdW1lbnQpIHsgcmV0dXJuIG5ldyBTY3JpcHRSdW5uZXIoZG9jdW1lbnQpOyB9CisgICAg
flNjcmlwdFJ1bm5lcigpOwogCiAgICAgdm9pZCBleGVjdXRlU2NyaXB0U29vbihTY3JpcHRFbGVt
ZW50KiwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0Pik7Ci0gICAgYm9vbCBoYXNQ
ZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlz
RW1wdHkoKTsgfQorICAgIHZvaWQgcXVldWVTY3JpcHRGb3JJbk9yZGVyRXhlY3V0aW9uKFNjcmlw
dEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+KTsKKyAgICBib29s
IGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gIW1fc2NyaXB0c1RvRXhlY3V0ZVNv
b24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKTsgfQog
ICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CiAKIHByaXZhdGU6Ci0gICAg
QXN5bmNTY3JpcHRSdW5uZXIoRG9jdW1lbnQqKTsKKyAgICBTY3JpcHRSdW5uZXIoRG9jdW1lbnQq
KTsKIAotICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxBc3luY1NjcmlwdFJ1bm5lcj4qKTsKKyAg
ICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8U2NyaXB0UnVubmVyPiopOwogCiAgICAgRG9jdW1lbnQq
IG1fZG9jdW1lbnQ7CisgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1fc2NyaXB0c1RvRXhlY3V0
ZUluT3JkZXI7CiAgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1fc2NyaXB0c1RvRXhlY3V0ZVNv
b247IC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsv
I3NldC1vZi1zY3JpcHRzLXRoYXQtd2lsbC1leGVjdXRlLWFzLXNvb24tYXMtcG9zc2libGUKLSAg
ICBUaW1lcjxBc3luY1NjcmlwdFJ1bm5lcj4gbV90aW1lcjsKKyAgICBUaW1lcjxTY3JpcHRSdW5u
ZXI+IG1fdGltZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuY3BwCmluZGV4IDYwM2IyYTguLjRjYmM1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNjcmlwdEVsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CiBpbmxpbmUgSFRNTFNjcmlwdEVsZW1lbnQ6OkhUTUxTY3JpcHRFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCB3YXNJbnNl
cnRlZEJ5UGFyc2VyLCBib29sIHdhc0FscmVhZHlTdGFydGVkKQogICAgIDogSFRNTEVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBTY3JpcHRFbGVtZW50KHRoaXMsIHdhc0luc2VydGVk
QnlQYXJzZXIsIHdhc0FscmVhZHlTdGFydGVkKQorICAgICwgbV9mb3JjZUFzeW5jKCF3YXNJbnNl
cnRlZEJ5UGFyc2VyKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKHNjcmlwdFRhZykpOwogfQpA
QCAtNTgsNiArNTksMTMgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2Vk
KGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UKICAgICBIVE1MRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRlckNo
YW5nZSwgY2hpbGRDb3VudERlbHRhKTsKIH0KIAordm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqIGF0dHIsIGJvb2wgcHJlc2VydmVEZWNscykKK3sKKyAg
ICBpZiAoYXR0ci0+bmFtZSgpID09IGFzeW5jQXR0cikKKyAgICAgICAgbV9mb3JjZUFzeW5jID0g
ZmFsc2U7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoYXR0ciwgcHJlc2VydmVE
ZWNscyk7Cit9CisKIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KEF0dHJpYnV0ZSogYXR0cikKIHsKICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSA9
IGF0dHItPm5hbWUoKTsKQEAgLTc4LDYgKzg2LDggQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6
ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKIHsKICAgICBTY3JpcHRFbGVtZW50OjpmaW5pc2hQYXJz
aW5nQ2hpbGRyZW4oc291cmNlQXR0cmlidXRlVmFsdWUoKSk7CiAgICAgSFRNTEVsZW1lbnQ6OmZp
bmlzaFBhcnNpbmdDaGlsZHJlbigpOworICAgIGlmIChzb3VyY2VBdHRyaWJ1dGVWYWx1ZSgpLmlz
RW1wdHkoKSAmJiBzY3JpcHRDb250ZW50KCkuaXNFbXB0eSgpKQorICAgICAgICBtX2ZvcmNlQXN5
bmMgPSAhaGFzQXR0cmlidXRlKGFzeW5jQXR0cik7CiB9CiAKIHZvaWQgSFRNTFNjcmlwdEVsZW1l
bnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKQEAgLTE1Miw3ICsxNjIsNyBAQCBTdHJpbmcgSFRN
TFNjcmlwdEVsZW1lbnQ6OmV2ZW50QXR0cmlidXRlVmFsdWUoKSBjb25zdAogCiBib29sIEhUTUxT
Y3JpcHRFbGVtZW50Ojphc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
ZmFzdEhhc0F0dHJpYnV0ZShhc3luY0F0dHIpOworICAgIHJldHVybiBhc3luYygpOwogfQogCiBi
b29sIEhUTUxTY3JpcHRFbGVtZW50OjpkZWZlckF0dHJpYnV0ZVZhbHVlKCkgY29uc3QKQEAgLTE2
MCw2ICsxNzAsMTcgQEAgYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6ZGVmZXJBdHRyaWJ1dGVWYWx1
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhc3RIYXNBdHRyaWJ1dGUoZGVmZXJBdHRyKTsKIH0KIAor
dm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6c2V0QXN5bmMoYm9vbCBhc3luYykKK3sKKyAgICBzZXRC
b29sZWFuQXR0cmlidXRlKGFzeW5jQXR0ciwgYXN5bmMpOworICAgIG1fZm9yY2VBc3luYyA9IGZh
bHNlOworfQorCitib29sIEhUTUxTY3JpcHRFbGVtZW50Ojphc3luYygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fZm9yY2VBc3luYyB8fCBmYXN0SGFzQXR0cmlidXRlKGFzeW5jQXR0cik7Cit9CisK
IHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmRpc3BhdGNoTG9hZEV2ZW50KCkKIHsKICAgICBBU1NF
UlQoIWhhdmVGaXJlZExvYWRFdmVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuaAppbmRleCAwOTc3M2M1Li40ZTVkMDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5oCkBAIC0zOCw2ICszOCw5IEBAIHB1YmxpYzoKIAogICAgIEtVUkwgc3Jj
KCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldEFzeW5jKGJvb2wpOworICAgIGJvb2wgYXN5bmMoKSBj
b25zdDsKKwogcHJpdmF0ZToKICAgICBIVE1MU2NyaXB0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgd2FzQWxyZWFk
eVN0YXJ0ZWQpOwogCkBAIC00NSw2ICs0OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lk
IGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9j
dW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5
UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdl
ID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOworICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKEF0dHJpYnV0ZSosIGJvb2wgcHJlc2VydmVEZWNscyA9IGZhbHNlKTsKIAogICAg
IHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKICAgICB2aXJ0
dWFsIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCk7CkBAIC02NCw2ICs2OCw4IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRXJyb3JFdmVudCgpOwogCiAgICAgUGFzc1Jl
ZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRlc0FuZENoaWxkcmVuKCkg
Y29uc3Q7CisKKyAgICBib29sIG1fZm9yY2VBc3luYzsKIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwKaW5kZXggMjBiNzMzMS4uZmE3
OTljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwKQEAgLTI0
LDcgKzI0LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3Q9Zm9y
XSBET01TdHJpbmcgaHRtbEZvcjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJp
bmcgZXZlbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGNoYXJzZXQ7
Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhc3luYzsKKyAgICAgICAgYXR0
cmlidXRlIGJvb2xlYW4gYXN5bmM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVh
biBkZWZlcjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxdIERPTVN0cmluZyBzcmM7
CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHR5cGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKaW5kZXggNzgxYmMzNC4uNjkz
NzY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJy
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNw
cApAQCAtMjEsMTEgKzIxLDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGFn
ZUdyb3VwTG9hZERlZmVycmVyLmgiCiAKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5oIgog
I2luY2x1ZGUgIkRvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVy
LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDksNyArNDksNyBAQCBQYWdlR3JvdXBMb2FkRGVmZXJyZXI6OlBhZ2VHcm91cExvYWREZWZlcnJl
cihQYWdlKiBwYWdlLCBib29sIGRlZmVyU2VsZikKICAgICAgICAgICAgICAgICAvLyB0aGUgY29u
c3RydWN0b3Igd2lsbCBuZWVkIHRvIHRha2UgYSBBY3RpdmVET01PYmplY3Q6OlJlYXNvbkZvclN1
c3BlbnNpb24uCiAgICAgICAgICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBvdGhlclBhZ2Ut
Pm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQo
KSkgewogICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c3VzcGVuZEFjdGl2
ZURPTU9iamVjdHMoQWN0aXZlRE9NT2JqZWN0OjpXaWxsU2hvd0RpYWxvZyk7Ci0gICAgICAgICAg
ICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5hc3luY1NjcmlwdFJ1bm5lcigpLT5zdXNwZW5k
KCk7CisgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIo
KS0+c3VzcGVuZCgpOwogICAgICAgICAgICAgICAgICAgICBpZiAoRG9jdW1lbnRQYXJzZXIqIHBh
cnNlciA9IGZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZXIoKSkKICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhcnNlci0+c3VzcGVuZFNjaGVkdWxlZFRhc2tzKCk7CiAgICAgICAgICAgICAgICAgfQpA
QCAtNzEsNyArNzEsNyBAQCBQYWdlR3JvdXBMb2FkRGVmZXJyZXI6On5QYWdlR3JvdXBMb2FkRGVm
ZXJyZXIoKQogCiAgICAgICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFt
ZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAg
ICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5yZXN1bWVBY3RpdmVET01PYmplY3RzKCk7
Ci0gICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPmFzeW5jU2NyaXB0UnVubmVyKCkt
PnJlc3VtZSgpOworICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRSdW5u
ZXIoKS0+cmVzdW1lKCk7CiAgICAgICAgICAgICAgICAgaWYgKERvY3VtZW50UGFyc2VyKiBwYXJz
ZXIgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2VyKCkpCiAgICAgICAgICAgICAgICAgICAgIHBh
cnNlci0+cmVzdW1lU2NoZWR1bGVkVGFza3MoKTsKICAgICAgICAgICAgIH0K
</data>
<flag name="review"
          id="73287"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81749</attachid>
            <date>2011-02-08 21:56:48 -0800</date>
            <delta_ts>2011-02-22 18:30:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>async2.patch</filename>
            <type>text/plain</type>
            <size>40188</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MTc2NWE2Li41ZDU4NzY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDIt
MDggIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgTmVlZCBkaWZmZXJlbnQgYmVoYXZpb3Ig
Zm9yIGVuc3VyaW5nIGV4ZWN1dGlvbiBvcmRlciBvZiBkeW5hbWljYWxseSBsb2FkZWQgc2NyaXB0
cworCisgICAgICAgIER5bmFtaWNhbGx5IGFkZGVkIHNjcmlwdHMgd2l0aCBhc3luYz1mYWxzZSB3
aWxsIGxvYWQgaW4gcGFyYWxsZWwsIGJ1dCBleGVjdXRlIGluIG9yZGVyLgorICAgICAgICBTZWU6
IGh0dHA6Ly93aWtpLndoYXR3Zy5vcmcvd2lraS9EeW5hbWljX1NjcmlwdF9FeGVjdXRpb25fT3Jk
ZXIKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAx
MTUKKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1h
dHRyLWV4cGVjdGVkLnR4dDogQWRkZWQgdGVzdCBjYXNlcyBmb3IgZm9yY2VBc3luYy4KKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci5odG1sOiBE
aXR0by4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMt
YXR0ci1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
c2NyaXB0LWFzeW5jLWF0dHIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2Mvc2NyaXB0
LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0
bWw6IEFkZGVkLgorCiAyMDExLTAyLTA4ICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgdGVzdCBleHBlY3RhdGlvbnMgdXBkYXRlLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0
dHItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
c2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0CmluZGV4IDdiOGJmNGQuLmU4NjdmNDAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1h
c3luYy1hdHRyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2Ny
aXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci1leHBlY3RlZC50eHQKQEAgLTgsOCArOCwxNCBA
QCBQQVNTIGlzQXN5bmMoJ3MxJykgaXMgdHJ1ZQogUEFTUyBpc0FzeW5jKCdzMicpIGlzIHRydWUK
IFBBU1MgaXNBc3luYygnczMnKSBpcyB0cnVlCiBQQVNTIGlzQXN5bmMoJ3M0JykgaXMgdHJ1ZQor
UEFTUyBpc0FzeW5jKCdzNScpIGlzIHRydWUKK1BBU1MgaXNBc3luYygnczYnKSBpcyB0cnVlCitQ
QVNTIGlzQXN5bmMoJ3M3JykgaXMgdHJ1ZQorUEFTUyBpc0FzeW5jKCdzOCcpIGlzIGZhbHNlCiBQ
QVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKHRydWUpIGlzIHRydWUKIFBBU1Mg
aXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMoZmFsc2UpIGlzIGZhbHNlCitQQVNTIGlz
RHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKCJhc3luYyIpIGlzIHRydWUKK1BBU1MgaXNE
eW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMobnVsbCkgaXMgdHJ1ZQogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIu
aHRtbAppbmRleCA0YTNmM2FmLi5iMGU0MDZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWwK
QEAgLTEyLDExICsxMiwxNSBAQAogPHNjcmlwdCBpZD0iczIiIHNyYz0iaWdub3JlZC5qcyIgYXN5
bmM9ImFzeW5jIj48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InMzIiBzcmM9Imlnbm9yZWQuanMiIGFz
eW5jPSJBU1lOQyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJzNCIgc3JjPSJpZ25vcmVkLmpzIiBh
c3luYz0idHJ1ZSI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJzNSIgc3JjPSJpZ25vcmVkLmpzIiBh
c3luYz0iZmFsc2UiPjwvc2NyaXB0PgorPHNjcmlwdCBpZD0iczYiPjwvc2NyaXB0PgorPHNjcmlw
dCBpZD0iczciIGFzeW5jPjwvc2NyaXB0PgorPHNjcmlwdCBpZD0iczgiIGFzeW5jPjwvc2NyaXB0
PgogCiA8c2NyaXB0PgogZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCBjaGVja3MgZm9yIHByb3BlciBw
YXJzaW5nIG9mIHRoZSBhc3luYyBhdHRyaWJ1dGUgb24gSFRNTCBzY3JpcHQgdGFncy4nKTsKIAot
dmFyIG5leHRTY3JpcHRJRCA9IDA7Cit2YXIgbmV4dFNjcmlwdElEID0gOTsKIAogZnVuY3Rpb24g
aXNBc3luYyhpZCkKIHsKQEAgLTI5LDE5ICszMywyNyBAQCBmdW5jdGlvbiBpc0R5bmFtaWNhbGx5
SW5zZXJ0ZWRTY3JpcHRBc3luYyhhc3luYykKICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgc2NyaXB0LmlkID0gaWQ7CiAgICAgc2NyaXB0LnNy
YyA9ICJyZXNvdXJjZXMvc2NyaXB0LWxvYWQuanMiOwotICAgIGlmIChhc3luYykKLSAgICAgICAg
c2NyaXB0LmFzeW5jID0gImFzeW5jIjsKKyAgICBpZiAoYXN5bmMgIT0gbnVsbCkKKyAgICAgICAg
c2NyaXB0LmFzeW5jID0gYXN5bmM7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImhlYWQiKVswXS5hcHBlbmRDaGlsZChzY3JpcHQpOwogICAgIHJldHVybiBpc0FzeW5jKGlkKTsK
IH0KIAorZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInM4IikucmVtb3ZlQXR0cmlidXRlKCJhc3lu
YyIpOworCiBzaG91bGRCZUZhbHNlKCJpc0FzeW5jKCdzMCcpIik7CiBzaG91bGRCZVRydWUoImlz
QXN5bmMoJ3MxJykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNBc3luYygnczInKSIpOwogc2hvdWxkQmVU
cnVlKCJpc0FzeW5jKCdzMycpIik7CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3M0JykiKTsKK3No
b3VsZEJlVHJ1ZSgiaXNBc3luYygnczUnKSIpOworc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzNicp
Iik7CitzaG91bGRCZVRydWUoImlzQXN5bmMoJ3M3JykiKTsKK3Nob3VsZEJlRmFsc2UoImlzQXN5
bmMoJ3M4JykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5
bmModHJ1ZSkiKTsKIHNob3VsZEJlRmFsc2UoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFz
eW5jKGZhbHNlKSIpOworc2hvdWxkQmVUcnVlKCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRB
c3luYyhcImFzeW5jXCIpIik7CitzaG91bGRCZVRydWUoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNj
cmlwdEFzeW5jKG51bGwpIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFz
eW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M4ZDE4MAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1l
eGVjdXRlLWluLW9yZGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK0F0dGVtcHRzIHRv
IGNoZWNrIHRoYXQgYXN5bmM9ZmFsc2UgZW5mb3JjZXMgZXhlY3V0aW9uIG9yZGVyIGR5bmFtaWNh
bGx5IGluc2VydGVkIHNjcmlwdHMuIFNlZTogaHR0cDovL3dpa2kud2hhdHdnLm9yZy93aWtpL0R5
bmFtaWNfU2NyaXB0X0V4ZWN1dGlvbl9PcmRlcgorc2xvd0FzeW5jCithc3luYworbG9hZAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRl
LWluLW9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5j
LWxvYWQtZXhlY3V0ZS1pbi1vcmRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjc3NzNmZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci5odG1sCkBAIC0wLDAgKzEs
MjggQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzLXRlc3Rz
LXJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJkZWJ1ZygnbG9hZCcpO2ZpbmlzaEpTVGVzdCgpOyI+CitBdHRlbXB0cyB0byBjaGVjayB0
aGF0IGFzeW5jPWZhbHNlIGVuZm9yY2VzIGV4ZWN1dGlvbiBvcmRlciBkeW5hbWljYWxseSBpbnNl
cnRlZCBzY3JpcHRzLgorU2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19T
Y3JpcHRfRXhlY3V0aW9uX09yZGVyCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+
Cit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKK3Nsb3dseV9sb2FkZWRfc2NyaXB0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CitzbG93bHlfbG9hZGVkX3NjcmlwdC5hc3lu
YyA9IGZhbHNlOworc2xvd2x5X2xvYWRlZF9zY3JpcHQuc3JjID0gInJlc291cmNlcy9zbG93LWFz
eW5jLXNjcmlwdC5jZ2kiOworZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVsw
XS5hcHBlbmRDaGlsZChzbG93bHlfbG9hZGVkX3NjcmlwdCk7CisKK3F1aWNrbHlfbG9hZGVkX3Nj
cmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworcXVpY2tseV9sb2FkZWRf
c2NyaXB0LmFzeW5jID0gZmFsc2U7CitxdWlja2x5X2xvYWRlZF9zY3JpcHQuc3JjID0gInJlc291
cmNlcy9hc3luYy1zY3JpcHQuanMiOworZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhl
YWQiKVswXS5hcHBlbmRDaGlsZChxdWlja2x5X2xvYWRlZF9zY3JpcHQpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rIGIvU291cmNlL1dlYkNvcmUv
QW5kcm9pZC5tawppbmRleCAzY2Q4NzQ1Li5kZGMxZDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9BbmRyb2lkLm1rCisrKyBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTk0LDcg
Kzk0LDYgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJY3NzL1dl
YktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAJXAogCWRvbS9BY3RpdmVET01PYmplY3QuY3Bw
IFwKLQlkb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwIFwKIAlkb20vQXR0ci5jcHAgXAogCWRvbS9B
dHRyaWJ1dGUuY3BwIFwKIAlkb20vQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwIFwKQEAgLTE3
MCw2ICsxNjksNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlk
b20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBcCiAJZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
IFwKIAlkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgXAorCWRvbS9TY3JpcHRSdW5uZXIu
Y3BwIFwKIAlkb20vU2VsZWN0RWxlbWVudC5jcHAgXAogCWRvbS9TZWxlY3Rvck5vZGVMaXN0LmNw
cCBcCiAJZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
ZjcxZDlmNi4uYTQ1Y2M0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTY2OCw3ICs2NjgsNiBA
QCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNw
cAogCiAgICAgZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAKLSAgICBkb20vQXN5bmNTY3JpcHRSdW5u
ZXIuY3BwCiAgICAgZG9tL0F0dHIuY3BwCiAgICAgZG9tL0F0dHJpYnV0ZS5jcHAKICAgICBkb20v
QmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwCkBAIC03NDksNiArNzQ4LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCiAgICAgZG9t
L1NjcmlwdEVsZW1lbnQuY3BwCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisg
ICAgZG9tL1NjcmlwdFJ1bm5lci5jcHAKICAgICBkb20vU2VsZWN0RWxlbWVudC5jcHAKICAgICBk
b20vU2VsZWN0b3JOb2RlTGlzdC5jcHAKICAgICBkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA0NjM3ODE3Li4yYWJmMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAK
KzIwMTEtMDItMDggIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgTmVlZCBkaWZmZXJlbnQg
YmVoYXZpb3IgZm9yIGVuc3VyaW5nIGV4ZWN1dGlvbiBvcmRlciBvZiBkeW5hbWljYWxseSBsb2Fk
ZWQgc2NyaXB0cworCisgICAgICAgIER5bmFtaWNhbGx5IGFkZGVkIHNjcmlwdHMgd2l0aCBhc3lu
Yz1mYWxzZSB3aWxsIGxvYWQgaW4gcGFyYWxsZWwsIGJ1dCBleGVjdXRlIGluIG9yZGVyLgorICAg
ICAgICBTZWU6IGh0dHA6Ly93aWtpLndoYXR3Zy5vcmcvd2lraS9EeW5hbWljX1NjcmlwdF9FeGVj
dXRpb25fT3JkZXIKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTAxMTUKKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9h
c3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIuaHRtbAorCisgICAgICAgICogQW5kcm9pZC5tazog
UmVuYW1lIEFzeW5jU2NyaXB0UnVubmVyIC0+IFNjcmlwdFJ1bm5lci4KKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDogRGl0dG8uCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IERpdHRvLgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRv
LgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAq
IGRvbS9ET01BbGxJbk9uZS5jcHA6IERpdHRvLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOiBEaXR0by4KKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY3JpcHRSdW5uZXIpOiBEaXR0
by4KKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRFbGVtZW50OjpTY3JpcHRFbGVtZW50KTogVHJhY2sgaG93IHNjcmlwdCBzaG91bGQgZXhl
Y3V0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3Vt
ZW50KTogUXVldWUgaW4gb3JkZXIgaWYgYXN5bmM9ZmFsc2UuCisgICAgICAgIChXZWJDb3JlOjpp
c1N1cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZSk6IEZpeCB3aGl0ZXNwYWNlLgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQpOiBFeGVjdXRlIGluLW9yZGVy
IG9yIGFzeW5jIHNjcmlwdC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnNob3Vs
ZEV4ZWN1dGVBc0phdmFTY3JpcHQpOiBGaXggd2hpdGVzcGFjZS4KKyAgICAgICAgKiBkb20vU2Ny
aXB0RWxlbWVudC5oOgorICAgICAgICAqIGRvbS9TY3JpcHRSdW5uZXIuY3BwOiBSZW5hbWVkIGZy
b20gV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwLgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0UnVubmVyOjpTY3JpcHRSdW5uZXIpOiBBZGQgaW4tb3JkZXIgc2NyaXB0IHF1ZXVlLgor
ICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjp+U2NyaXB0UnVubmVyKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRTb29uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JJbk9yZGVyRXhlY3V0aW9u
KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnN1c3BlbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKTogUnVuIGluLW9yZGVyIHNjcmlwdHMgdGhhdCBoYXZl
IGxvYWRlZCB0b28uCisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5oOiBSZW5hbWVkIGZyb20g
V2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dFJ1bm5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6aGFzUGVu
ZGluZ1NjcmlwdHMpOiBDaGVjayBmb3IgaW4tb3JkZXIgc2NyaXB0cyB0b28uCisgICAgICAgICog
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0
RWxlbWVudDo6SFRNTFNjcmlwdEVsZW1lbnQpOiBBZGQgbV9mb3JjZUFzeW5jIHRvIHRyYWNrIGlm
IHVzZXIgZXhwbGljaXRseSByZXF1ZXN0ZWQgYXN5bmMuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
U2NyaXB0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZCk6IFVuc2V0IG1fZm9yY2VBc3luYyBvbiBh
c3luYyBjaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6ZmluaXNo
UGFyc2luZ0NoaWxkcmVuKTogU2V0IG1fZm9yY2VBc3luYyBpZiBzY3JpcHQgYmVjb21lcyBkeW5h
bWljIChubyBzcmMgYW5kIG5vIGNvbnRlbnQpLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlw
dEVsZW1lbnQ6OmFzeW5jQXR0cmlidXRlVmFsdWUpOiBBbGlhcyBmb3IgYXN5bmMoKS4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50OjpzZXRBc3luYyk6IEFkZGVkLiBJZiBjYWxs
ZWQsIHVuc2V0IG1fZm9yY2VBc3luYy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVt
ZW50Ojphc3luYyk6IEFkZGVkLiBSZXR1cm4gbV9mb3JjZUFzeW5jIGlmIGl0J3Mgc2V0LgorICAg
ICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTY3Jp
cHRFbGVtZW50LmlkbDogUmVtb3ZlZCBSZWZsZWN0IGZyb20gYXN5bmMgZm9yIGN1c3RvbSBiZWhh
dmlvci4KKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXI6OlBhZ2VHcm91cExvYWREZWZlcnJlcik6
IFJlbmFtZSBBc3luY1NjcmlwdFJ1bm5lciAtPiBTY3JpcHRSdW5uZXIuCisgICAgICAgIChXZWJD
b3JlOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXI6On5QYWdlR3JvdXBMb2FkRGVmZXJyZXIpOiBEaXR0
by4KKwogMjAxMS0wMi0wOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAxNDc5
M2U3Li5hNDA2ZGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTA5NSw4ICsxMDk1LDYgQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaCBcCi0JU291cmNlL1dlYkNvcmUv
ZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL0FzeW5jU2Ny
aXB0UnVubmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL0F0dHIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0F0dHJpYnV0ZS5jcHAgXApA
QCAtMTI4Niw2ICsxMjg0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RWxlbWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RF
bGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuaCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCAzNzQxMWUwLi45NDEzMTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMTQ0LDggKzExNDQsNiBA
QAogICAgICAgICAgICAgJ2RvbS9kZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgn
LAogICAgICAgICAgICAgJ2RvbS9BY3RpdmVET01PYmplY3QuY3BwJywKICAgICAgICAgICAgICdk
b20vQWN0aXZlRE9NT2JqZWN0LmgnLAotICAgICAgICAgICAgJ2RvbS9Bc3luY1NjcmlwdFJ1bm5l
ci5jcHAnLAotICAgICAgICAgICAgJ2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oJywKICAgICAgICAg
ICAgICdkb20vQXR0ci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9BdHRyLmgnLAogICAgICAgICAg
ICAgJ2RvbS9BdHRyaWJ1dGUuY3BwJywKQEAgLTEzMzQsNiArMTMzMiw4IEBACiAgICAgICAgICAg
ICAnZG9tL1NjcmlwdEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuY3BwJywKICAgICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
JywKKyAgICAgICAgICAgICdkb20vU2NyaXB0UnVubmVyLmNwcCcsCisgICAgICAgICAgICAnZG9t
L1NjcmlwdFJ1bm5lci5oJywKICAgICAgICAgICAgICdkb20vU2VsZWN0RWxlbWVudC5jcHAnLAog
ICAgICAgICAgICAgJ2RvbS9TZWxlY3RFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9TZWxl
Y3Rvck5vZGVMaXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
byBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGYwNTEyYWEuLmEzMTMxMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUucHJvCkBAIC03MDEsNyArNzAxLDYgQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL1dl
YktpdENTU01hdHJpeC5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAg
XAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKLSAgICBkb20vQXN5bmNTY3JpcHRSdW5u
ZXIuY3BwIFwKICAgICBkb20vQXR0ci5jcHAgXAogICAgIGRvbS9BdHRyaWJ1dGUuY3BwIFwKICAg
ICBkb20vQmVmb3JlUHJvY2Vzc0V2ZW50LmNwcCBcCkBAIC03ODUsNiArNzg0LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAgXAogICAgIGRvbS9T
Y3JpcHRFbGVtZW50LmNwcCBcCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIFwK
KyAgICBkb20vU2NyaXB0UnVubmVyLmNwcCBcCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuY3BwIFwK
ICAgICBkb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAgXAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5n
LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmlu
ZGV4IDVjOTcyYzcuLjNjNDhmMTYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC00MTMyMiw2MiArNDEzMjIsNiBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cQXN5bmNTY3JpcHRSdW5uZXIu
Y3BwIgotCQkJCT4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0J
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIi
Ci0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRv
b2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9D
YWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+
Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9
IkRlYnVnX0FsbHxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4K
LQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0i
UmVsZWFzZV9MVENHfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJ
PgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGRvbVxBc3luY1NjcmlwdFJ1bm5lci5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cQXRvbWljU3RyaW5nTGlzdC5oIgogCQkJ
CT4KIAkJCTwvRmlsZT4KQEAgLTQ1ODcwLDYgKzQ1ODE0LDYyIEBACiAJCQkJPgogCQkJPC9GaWxl
PgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTY3JpcHRSdW5uZXIuY3BwIgor
CQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19D
RkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFz
ZV9MVENHfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGRvbVxTY3JpcHRSdW5uZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNlbGVjdEVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyYjI0NDk1Li43MWViNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzI2LDggKzI3MjYs
OCBAQAogCQk4OUQwOERBMTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUQw
OEQ5RTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi87IH07
CiAJCThBMTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBMTJFMzVDMTFGQTMz
MjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyog
TmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDhBMzA5QzlFMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJ
bmNyZW1lbnRlci5oICovOyB9OwotCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDhBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCThBNDEzQUUxMTIw
N0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyog
QXN5bmNTY3JpcHRSdW5uZXIuY3BwICovOyB9OworCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUg
LyogU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOEE0MTNBRTExMjA3
QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0
UnVubmVyLmNwcCAqLzsgfTsKIAkJOEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdT
Y3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhB
N0NDOTZBMTIwNzZENzMwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEE3Q0M5NzAxMjA3NkY4QTAwMUQ0
NTg4IC8qIFBlbmRpbmdTY3JpcHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOEE3Q0M5NkYxMjA3NkY4QTAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQu
Y3BwICovOyB9OwogCQk4QTgxQkY4NTExRENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VMb2FkVGlt
aW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTgx
QkY4NDExRENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VMb2FkVGltaW5nLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTkxMTgsOCArOTExOCw4IEBA
CiAJCTg5RDA4RDlFMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNGaWxlU3lzdGVtQ2FsbGJh
Y2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBMTJFMzVDMTFGQTMzMjgwMDI1
ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRG9jdW1lbnRMb2FkVGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CThBMzA5QzlFMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5o
OyBwYXRoID0gcGFyc2VyL05lc3RpbmdMZXZlbEluY3JlbWVudGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1
bm5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5l
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAx
NkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQXN5bmNTY3JpcHRSdW5uZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFJ1bm5lci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdFJ1bm5lci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBN0NDOTZBMTIwNzZENzMwMDFENDU4OCAv
KiBQZW5kaW5nU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlbmRp
bmdTY3JpcHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE3Q0M5NkYxMjA3NkY4
QTAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUGVuZGluZ1NjcmlwdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCThBODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkVGltaW5nLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODg4MCw4ICsxODg4MCw2IEBACiAJCQljaGlsZHJl
biA9ICgKIAkJCQlFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmNw
cCAqLywKIAkJCQlFMUM0REU2ODBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0Lmgg
Ki8sCi0JCQkJOEE0MTNBREYxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNw
cCAqLywKLQkJCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIu
aCAqLywKIAkJCQlBOEM0QTdGQzA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5jcHAgKi8sCiAJCQkJ
QThDNEE3RkIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuaCAqLywKIAkJCQk5M0VFQzFFNTA5QzI4
Nzc3MDBDNTE1RDEgLyogQXR0ci5pZGwgKi8sCkBAIC0xOTExOSw2ICsxOTExNyw4IEBACiAJCQkJ
MDhBNDg0NzYwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuaCAqLywKIAkJCQlFMTFD
OURBRjBFQjM2OTk1MDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgKi8sCiAJ
CQkJRTExQzlEOUEwRUIzNjgxMjAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCAq
LywKKwkJCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCAqLywK
KwkJCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi8sCiAJCQkJ
MDg0QUVCRTIwRkI1MDVGQTAwMzg0ODNFIC8qIFNlbGVjdEVsZW1lbnQuY3BwICovLAogCQkJCTA4
NEFFQkUzMEZCNTA1RkEwMDM4NDgzRSAvKiBTZWxlY3RFbGVtZW50LmggKi8sCiAJCQkJQkM3RkE2
ODAwRDFGMTY3OTAwREIyMkE5IC8qIFNlbGVjdG9yTm9kZUxpc3QuY3BwICovLApAQCAtMTk0NzQs
NyArMTk0NzQsNiBAQAogCQkJCTk3NkQ2Qzc3MTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVX
cml0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NkQ2QzkzMTIyQjhBM0QwMDFGRDFGNyAvKiBB
c3luY0ZpbGVXcml0ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIwMTQ5RTdFMTFBNEIy
MTUwMDE5NkE3QiAvKiBBc3luY0ltYWdlUmVzaXplci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOEE0
MTNBRTAxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzN0M2MUYwMTEyMDk1Qzg3MDA3QTNDNjcgLyogQXRvbWljU3RyaW5nS2V5ZWRNUlVD
YWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThDNEE4MEQwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0
dHIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzRBODBCMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRy
aWJ1dGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjE4NDcsNiArMjE4NDYsNyBAQAogCQkJCTlGNzIz
MDRGMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5RkEzN0VFNDExNzJGQzgwMDBDNENENTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTlGNzIzMDUxMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOEE0MTNBRTAxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1
bm5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0Q0MxMEEwRURCMjIzOTAwQTY1OEYyIC8qIFNj
cmlwdFNvdXJjZUNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFNTRGRDM4MTAxNkQ5QTYwMDhC
NDRDOCAvKiBTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFDNzYw
QjEwRURFMDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTIy
NzcyLDcgKzIyNzcyLDYgQEAKIAkJCQk0OUVFQ0RERjEwNTAzQzI0MDAwOTlGQUIgLyogQXJyYXlC
dWZmZXJWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5RDA4RDlGMTIyMjg0NTEwMDEyNDFE
RiAvKiBBc3luY0ZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjAxNDlFN0QxMUE0
QjIxNTAwMTk2QTdCIC8qIEFzeW5jSW1hZ2VSZXNpemVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CThBNDEzQUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEM0QTgwRTA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEM0QTgwQzA5RDU2MzI3MDAwM0FDOEQgLyogQXR0cmlidXRlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZEMzE1RkY2MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0Jhc2lj
UHJvY2Vzc29yTm9kZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI0NjMzLDYgKzI0NjMyLDcgQEAK
IAkJCQk0MUYwNjZFNTBGNjRCQ0Y2MDBBMDdFQUMgLyogU2NyaXB0T2JqZWN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUYzM0YwMjgyMTIwOTQ3RjIwMEU1NzQzQSAvKiBTY3JpcHRQcm9maWxlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTlGNzIzMDUwMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQ
cm9maWxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUg
LyogU2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjdENTM3MEY4QUFCMUQw
MEU0MjRGNSAvKiBTY3JpcHRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzRDQzBFMTBF
RDM5RDZGMDBBNjU4RjIgLyogU2NyaXB0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4
QUUzNEUxMkVBMDk2QTAwRUIzQUU2IC8qIFNjcm9sbGFibGVBcmVhLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggYzg4YWVjZi4uMDhhNzY4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAvLyBUaGlzIGFs
bC1pbi1vbmUgY3BwIGZpbGUgY3V0cyBkb3duIG9uIHRlbXBsYXRlIGJsb2F0IHRvIGFsbG93IHVz
IHRvIGJ1aWxkIG91ciBXaW5kb3dzIHJlbGVhc2UgYnVpbGQuCiAKICNpbmNsdWRlICJBY3RpdmVE
T01PYmplY3QuY3BwIgotI2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmNwcCIKICNpbmNsdWRl
ICJBdHRyLmNwcCIKICNpbmNsdWRlICJBdHRyaWJ1dGUuY3BwIgogI2luY2x1ZGUgIkJlZm9yZVBy
b2Nlc3NFdmVudC5jcHAiCkBAIC0xMDQsNiArMTAzLDcgQEAKICNpbmNsdWRlICJTY29wZWRFdmVu
dFF1ZXVlLmNwcCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmNwcCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuY3BwIgogI2lu
Y2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0RWxl
bWVudC5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0b3JOb2RlTGlzdC5jcHAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCAxMDc5MmZjLi4zN2Y5ZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRl
ICJBbmltYXRpb25Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIK
ICNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQ0RB
VEFTZWN0aW9uLmgiCkBAIC0xMjQsNiArMTIzLDcgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50
TGlzdGVuZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNlbGVj
dGlvbkNvbnRyb2xsZXIuaCIKQEAgLTM4Niw3ICszODYsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQo
RnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUws
IGNvbgogICAgICwgbV9zdGFydFRpbWUoY3VycmVudFRpbWUoKSkKICAgICAsIG1fb3Zlck1pbmlt
dW1MYXlvdXRUaHJlc2hvbGQoZmFsc2UpCiAgICAgLCBtX2V4dHJhTGF5b3V0RGVsYXkoMCkKLSAg
ICAsIG1fYXN5bmNTY3JpcHRSdW5uZXIoQXN5bmNTY3JpcHRSdW5uZXI6OmNyZWF0ZSh0aGlzKSkK
KyAgICAsIG1fc2NyaXB0UnVubmVyKFNjcmlwdFJ1bm5lcjo6Y3JlYXRlKHRoaXMpKQogICAgICwg
bV94bWxWZXJzaW9uKCIxLjAiKQogICAgICwgbV94bWxTdGFuZGFsb25lKGZhbHNlKQogICAgICwg
bV9zYXZlZFJlbmRlcmVyKDApCkBAIC01NjAsNyArNTYwLDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVu
dCgpCiAgICAgQVNTRVJUKG1fcmFuZ2VzLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKCFtX3N0eWxl
UmVjYWxjVGltZXIuaXNBY3RpdmUoKSk7CiAKLSAgICBtX2FzeW5jU2NyaXB0UnVubmVyLmNsZWFy
KCk7CisgICAgbV9zY3JpcHRSdW5uZXIuY2xlYXIoKTsKIAogICAgIHJlbW92ZUFsbEV2ZW50TGlz
dGVuZXJzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggOTQ2ZTU3YS4uZTNmZTJiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKQEAgLTUxLDcgKzUxLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBBc3luY1NjcmlwdFJ1bm5lcjsKIGNsYXNzIEF0dHI7CiBjbGFzcyBBWE9iamVj
dENhY2hlOwogY2xhc3MgQ0RBVEFTZWN0aW9uOwpAQCAtMTEzLDYgKzExMiw3IEBAIGNsYXNzIFJl
bmRlclZpZXc7CiBjbGFzcyBSZW5kZXJGdWxsU2NyZWVuOwogY2xhc3MgU2NyaXB0YWJsZURvY3Vt
ZW50UGFyc2VyOwogY2xhc3MgU2NyaXB0RWxlbWVudERhdGE7CitjbGFzcyBTY3JpcHRSdW5uZXI7
CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNs
YXNzIFNlZ21lbnRlZFN0cmluZzsKQEAgLTg3OCw3ICs4NzgsNyBAQCBwdWJsaWM6CiAKICAgICBp
bnQgZG9jSUQoKSBjb25zdCB7IHJldHVybiBtX2RvY0lEOyB9CiAgICAgCi0gICAgQXN5bmNTY3Jp
cHRSdW5uZXIqIGFzeW5jU2NyaXB0UnVubmVyKCkgeyByZXR1cm4gbV9hc3luY1NjcmlwdFJ1bm5l
ci5nZXQoKTsgfQorICAgIFNjcmlwdFJ1bm5lciogc2NyaXB0UnVubmVyKCkgeyByZXR1cm4gbV9z
Y3JpcHRSdW5uZXIuZ2V0KCk7IH0KIAogI2lmIEVOQUJMRShYU0xUKQogICAgIHZvaWQgYXBwbHlY
U0xUcmFuc2Zvcm0oUHJvY2Vzc2luZ0luc3RydWN0aW9uKiBwaSk7CkBAIC0xMjc4LDcgKzEyNzgs
NyBAQCBwcml2YXRlOgogICAgIC8vIHBvaW50cyBkdXJpbmcgdGhlIGxpZmV0aW1lIG9mIHRoZSBE
b2N1bWVudC4KICAgICBpbnQgbV9leHRyYUxheW91dERlbGF5OwogICAgIAotICAgIE93blB0cjxB
c3luY1NjcmlwdFJ1bm5lcj4gbV9hc3luY1NjcmlwdFJ1bm5lcjsKKyAgICBPd25QdHI8U2NyaXB0
UnVubmVyPiBtX3NjcmlwdFJ1bm5lcjsKIAogI2lmIEVOQUJMRShYU0xUKQogICAgIE93blB0cjxU
cmFuc2Zvcm1Tb3VyY2U+IG1fdHJhbnNmb3JtU291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwCmluZGV4IDE5MzlhMDguLmMyNmI3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKQEAgLTI0LDcgKzI0LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJTY3JpcHRFbGVtZW50LmgiCiAKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5oIgog
I2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVy
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTM3LDYgKzM2LDcgQEAKICNpbmNsdWRlICJN
SU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdENv
bnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJTY3JpcHRT
b3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgpAQCAtNTgsNiArNTgsNyBAQCBTY3JpcHRFbGVtZW50OjpTY3JpcHRFbGVtZW50KEVsZW1l
bnQqIGVsZW1lbnQsIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCB3YQogICAgICwgbV9p
c0V4dGVybmFsU2NyaXB0KGZhbHNlKQogICAgICwgbV93YXNBbHJlYWR5U3RhcnRlZCh3YXNBbHJl
YWR5U3RhcnRlZCkKICAgICAsIG1faGF2ZUZpcmVkTG9hZChmYWxzZSkKKyAgICAsIG1fd2lsbEV4
ZWN1dGVJbk9yZGVyKGZhbHNlKQogewogICAgIEFTU0VSVChtX2VsZW1lbnQpOwogfQpAQCAtNzYs
NiArNzcsMTAgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudChjb25z
dCBTdHJpbmcmIHNvdXJjZVVybCkKIAogICAgIGlmICghc291cmNlVXJsLmlzRW1wdHkoKSkgewog
ICAgICAgICByZXF1ZXN0U2NyaXB0KHNvdXJjZVVybCk7CisgICAgICAgIGlmICghaXNBc3luY2hy
b25vdXMoKSAmJiBtX2NhY2hlZFNjcmlwdCkgeworICAgICAgICAgICAgbV93aWxsRXhlY3V0ZUlu
T3JkZXIgPSB0cnVlOworICAgICAgICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zY3JpcHRS
dW5uZXIoKS0+cXVldWVTY3JpcHRGb3JJbk9yZGVyRXhlY3V0aW9uKHRoaXMsIG1fY2FjaGVkU2Ny
aXB0KTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMzcsNyArMTQy
LDcgQEAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UoY29uc3QgU3Ry
aW5nJiBsYW5ndWFnZSkKICAgICAgICAgbGFuZ3VhZ2VzLmFkZCgiamF2YXNjcmlwdDEuNyIpOwog
ICAgICAgICBsYW5ndWFnZXMuYWRkKCJsaXZlc2NyaXB0Iik7CiAgICAgICAgIGxhbmd1YWdlcy5h
ZGQoImVjbWFzY3JpcHQiKTsKLSAgICAgICAgbGFuZ3VhZ2VzLmFkZCgianNjcmlwdCIpOyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgbGFuZ3VhZ2VzLmFkZCgianNjcmlwdCIpOwogICAgIH0KIAog
ICAgIHJldHVybiBsYW5ndWFnZXMuY29udGFpbnMobGFuZ3VhZ2UpOwpAQCAtMjM5LDcgKzI0NCwx
MCBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGUoQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3Jp
cHQpCiB2b2lkIFNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiBv
KQogewogICAgIEFTU0VSVF9VTlVTRUQobywgbyA9PSBtX2NhY2hlZFNjcmlwdCk7Ci0gICAgbV9l
bGVtZW50LT5kb2N1bWVudCgpLT5hc3luY1NjcmlwdFJ1bm5lcigpLT5leGVjdXRlU2NyaXB0U29v
bih0aGlzLCBtX2NhY2hlZFNjcmlwdCk7CisgICAgaWYgKG1fd2lsbEV4ZWN1dGVJbk9yZGVyKQor
ICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNjcmlwdFJ1bm5lcigpLT5yZXN1bWUoKTsK
KyAgICBlbHNlCisgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCkt
PmV4ZWN1dGVTY3JpcHRTb29uKHRoaXMsIG1fY2FjaGVkU2NyaXB0KTsKICAgICBtX2NhY2hlZFNj
cmlwdCA9IDA7CiB9CiAKQEAgLTI1Niw3ICsyNjQsNyBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnNo
b3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQoKSBjb25zdAogICAgICAgICAgV2luSUUgNyBhY2NlcHRz
IGVjbWFzY3JpcHQgYW5kIGpzY3JpcHQsIGJ1dCBNb3ppbGxhIDEuOCBkb2Vzbid0LgogICAgICAg
ICAgTmVpdGhlciBNb3ppbGxhIDEuOCBub3IgV2luSUUgNyBhY2NlcHQgbGVhZGluZyBvciB0cmFp
bGluZyB3aGl0ZXNwYWNlLgogICAgICAgICAgV2Ugd2FudCB0byBhY2NlcHQgYWxsIHRoZSB2YWx1
ZXMgdGhhdCBlaXRoZXIgb2YgdGhlc2UgYnJvd3NlcnMgYWNjZXB0LCBidXQgbm90IG90aGVyIHZh
bHVlcy4KLSAgICAgCisKICAgICAgICAgIEZJWE1FOiBJcyB0aGlzIEhUTUw1IGNvbXBsaWFudD8K
ICAgICAgKi8KICAgICBTdHJpbmcgdHlwZSA9IHR5cGVBdHRyaWJ1dGVWYWx1ZSgpOwpAQCAtMjY3
LDcgKzI3NSw3IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6c2hvdWxkRXhlY3V0ZUFzSmF2YVNjcmlw
dCgpIGNvbnN0CiAgICAgICAgIFN0cmluZyBsYW5ndWFnZSA9IGxhbmd1YWdlQXR0cmlidXRlVmFs
dWUoKTsKICAgICAgICAgaWYgKCFsYW5ndWFnZS5pc0VtcHR5KCkgJiYgIWlzU3VwcG9ydGVkSmF2
YVNjcmlwdExhbmd1YWdlKGxhbmd1YWdlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9ICAgIAorICAgIH0KIAogICAgIC8vIE5vIHR5cGUgb3IgbGFuZ3VhZ2UgaXMgc3BlY2lmaWVk
LCBzbyB3ZSBhc3N1bWUgdGhlIHNjcmlwdCB0byBiZSBKYXZhU2NyaXB0LgogCkBAIC0yNzcsMTIg
KzI4NSwxMiBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnNob3VsZEV4ZWN1dGVBc0phdmFTY3JpcHQo
KSBjb25zdAogICAgICAgICBmb3JBdHRyaWJ1dGUgPSBmb3JBdHRyaWJ1dGUuc3RyaXBXaGl0ZVNw
YWNlKCk7CiAgICAgICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2UoZm9yQXR0cmlidXRlLCAid2lu
ZG93IikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAKKwogICAgICAg
ICBldmVudEF0dHJpYnV0ZSA9IGV2ZW50QXR0cmlidXRlLnN0cmlwV2hpdGVTcGFjZSgpOwogICAg
ICAgICBpZiAoIWVxdWFsSWdub3JpbmdDYXNlKGV2ZW50QXR0cmlidXRlLCAib25sb2FkIikgJiYg
IWVxdWFsSWdub3JpbmdDYXNlKGV2ZW50QXR0cmlidXRlLCAib25sb2FkKCkiKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgCisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggNTI1MGYzZS4uMzMyOTk0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC05MSw2ICs5MSw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2lzRXh0ZXJuYWxTY3JpcHQ7CiAgICAgYm9vbCBtX3dhc0FscmVhZHlTdGFydGVkOwog
ICAgIGJvb2wgbV9oYXZlRmlyZWRMb2FkOworICAgIGJvb2wgbV93aWxsRXhlY3V0ZUluT3JkZXI7
CiB9OwogCiBTY3JpcHRFbGVtZW50KiB0b1NjcmlwdEVsZW1lbnQoRWxlbWVudCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCnNpbWlsYXJpdHkgaW5kZXggNjUlCnJlbmFtZSBm
cm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKcmVuYW1lIHRvIFNv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCmluZGV4IDI4YjFiMzEuLjcwNDgyNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI0LDcgKzI0LDcgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIu
aCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zNCwyMiArMzQsMjQgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1Bc3luY1NjcmlwdFJ1bm5lcjo6QXN5bmNTY3JpcHRSdW5uZXIoRG9jdW1l
bnQqIGRvY3VtZW50KQorU2NyaXB0UnVubmVyOjpTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3Vt
ZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKLSAgICAsIG1fdGltZXIodGhpcywgJkFz
eW5jU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKQorICAgICwgbV90aW1lcih0aGlzLCAmU2NyaXB0
UnVubmVyOjp0aW1lckZpcmVkKQogewogICAgIEFTU0VSVChkb2N1bWVudCk7CiB9CiAKLUFzeW5j
U2NyaXB0UnVubmVyOjp+QXN5bmNTY3JpcHRSdW5uZXIoKQorU2NyaXB0UnVubmVyOjp+U2NyaXB0
UnVubmVyKCkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1RvRXhlY3V0
ZVNvb24uc2l6ZSgpOyArK2kpCiAgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExvYWRFdmVu
dERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1RvRXhl
Y3V0ZUluT3JkZXIuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExv
YWRFdmVudERlbGF5Q291bnQoKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6ZXhlY3V0
ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCit2b2lkIFNjcmlwdFJ1bm5lcjo6ZXhl
Y3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCiB7Ci0gICAgQVNTRVJUX0FSRyhz
Y3JpcHRFbGVtZW50LCBzY3JpcHRFbGVtZW50KTsKKyAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7
CiAKICAgICBFbGVtZW50KiBlbGVtZW50ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpOwogICAg
IEFTU0VSVChlbGVtZW50KTsKQEAgLTYxLDI1ICs2Myw0NCBAQCB2b2lkIEFzeW5jU2NyaXB0UnVu
bmVyOjpleGVjdXRlU2NyaXB0U29vbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBDYWNo
ZWRSZQogICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotdm9pZCBBc3luY1Nj
cmlwdFJ1bm5lcjo6c3VzcGVuZCgpCit2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JJ
bk9yZGVyRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0KQoreworICAgIEFTU0VSVChzY3Jp
cHRFbGVtZW50KTsKKworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBzY3JpcHRFbGVtZW50LT5lbGVt
ZW50KCk7CisgICAgQVNTRVJUKGVsZW1lbnQpOworICAgIEFTU0VSVChlbGVtZW50LT5pbkRvY3Vt
ZW50KCkpOworCisgICAgbV9kb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgp
OworICAgIG1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuYXBwZW5kKFBlbmRpbmdTY3JpcHQoZWxl
bWVudCwgY2FjaGVkU2NyaXB0LmdldCgpKSk7Cit9CisKK3ZvaWQgU2NyaXB0UnVubmVyOjpzdXNw
ZW5kKCkKIHsKICAgICBtX3RpbWVyLnN0b3AoKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5l
cjo6cmVzdW1lKCkKK3ZvaWQgU2NyaXB0UnVubmVyOjpyZXN1bWUoKQogewogICAgIGlmIChoYXNQ
ZW5kaW5nU2NyaXB0cygpKQogICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAot
dm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZChUaW1lcjxBc3luY1NjcmlwdFJ1bm5l
cj4qIHRpbWVyKQordm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoVGltZXI8U2NyaXB0UnVu
bmVyPiogdGltZXIpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGlt
ZXIpOwogCiAgICAgUmVmUHRyPERvY3VtZW50PiBwcm90ZWN0KG1fZG9jdW1lbnQpOwotICAgIAor
CiAgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IHNjcmlwdHM7CiAgICAgc2NyaXB0cy5zd2FwKG1f
c2NyaXB0c1RvRXhlY3V0ZVNvb24pOworCisgICAgc2l6ZV90IG51bUluT3JkZXJTY3JpcHRzVG9F
eGVjdXRlID0gMDsKKyAgICBmb3IgKDsgbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUgPCBtX3Nj
cmlwdHNUb0V4ZWN1dGVJbk9yZGVyLnNpemUoKSAmJiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVy
W251bUluT3JkZXJTY3JpcHRzVG9FeGVjdXRlXS5jYWNoZWRTY3JpcHQoKS0+aXNMb2FkZWQoKTsg
KytudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZSkKKyAgICAgICAgc2NyaXB0cy5hcHBlbmQobV9z
Y3JpcHRzVG9FeGVjdXRlSW5PcmRlcltudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZV0pOworICAg
IGlmIChudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZSkKKyAgICAgICAgbV9zY3JpcHRzVG9FeGVj
dXRlSW5PcmRlci5yZW1vdmUoMCwgbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUpOworCiAgICAg
c2l6ZV90IHNpemUgPSBzY3JpcHRzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHNpemU7ICsraSkgewogICAgICAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCA9IHNjcmlw
dHNbaV0uY2FjaGVkU2NyaXB0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXN5
bmNTY3JpcHRSdW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApzaW1p
bGFyaXR5IGluZGV4IDc3JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQXN5bmNTY3Jp
cHRSdW5uZXIuaApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCmlu
ZGV4IDZhNzUzMjMuLjFiMDlhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Bc3lu
Y1NjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApA
QCAtMjMsOCArMjMsOCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBBc3luY1Nj
cmlwdFJ1bm5lcl9oCi0jZGVmaW5lIEFzeW5jU2NyaXB0UnVubmVyX2gKKyNpZm5kZWYgU2NyaXB0
UnVubmVyX2gKKyNkZWZpbmUgU2NyaXB0UnVubmVyX2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTM4LDI2ICszOCwyOCBAQCBjbGFz
cyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFBlbmRpbmdTY3JpcHQ7CiBj
bGFzcyBTY3JpcHRFbGVtZW50OwotICAgIAotY2xhc3MgQXN5bmNTY3JpcHRSdW5uZXIgewotICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEFzeW5jU2NyaXB0UnVubmVyKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CisKK2NsYXNzIFNjcmlwdFJ1bm5lciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoU2NyaXB0UnVubmVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NPd25QdHI8QXN5bmNTY3JpcHRSdW5uZXI+IGNyZWF0ZShEb2N1bWVudCogZG9j
dW1lbnQpIHsgcmV0dXJuIG5ldyBBc3luY1NjcmlwdFJ1bm5lcihkb2N1bWVudCk7IH0KLSAgICB+
QXN5bmNTY3JpcHRSdW5uZXIoKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxTY3JpcHRSdW5uZXI+
IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIG5ldyBTY3JpcHRSdW5uZXIoZG9j
dW1lbnQpOyB9CisgICAgflNjcmlwdFJ1bm5lcigpOwogCiAgICAgdm9pZCBleGVjdXRlU2NyaXB0
U29vbihTY3JpcHRFbGVtZW50KiwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0Pik7
Ci0gICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFtX3NjcmlwdHNU
b0V4ZWN1dGVTb29uLmlzRW1wdHkoKTsgfQorICAgIHZvaWQgcXVldWVTY3JpcHRGb3JJbk9yZGVy
RXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3Jp
cHQ+KTsKKyAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gIW1fc2Ny
aXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVy
LmlzRW1wdHkoKTsgfQogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CiAK
IHByaXZhdGU6Ci0gICAgQXN5bmNTY3JpcHRSdW5uZXIoRG9jdW1lbnQqKTsKKyAgICBTY3JpcHRS
dW5uZXIoRG9jdW1lbnQqKTsKIAotICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxBc3luY1Njcmlw
dFJ1bm5lcj4qKTsKKyAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8U2NyaXB0UnVubmVyPiopOwog
CiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1f
c2NyaXB0c1RvRXhlY3V0ZUluT3JkZXI7CiAgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1fc2Ny
aXB0c1RvRXhlY3V0ZVNvb247IC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBw
cy9jdXJyZW50LXdvcmsvI3NldC1vZi1zY3JpcHRzLXRoYXQtd2lsbC1leGVjdXRlLWFzLXNvb24t
YXMtcG9zc2libGUKLSAgICBUaW1lcjxBc3luY1NjcmlwdFJ1bm5lcj4gbV90aW1lcjsKKyAgICBU
aW1lcjxTY3JpcHRSdW5uZXI+IG1fdGltZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDYwM2IyYTguLjRjYmM1YWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBpbmxpbmUgSFRNTFNjcmlwdEVsZW1lbnQ6OkhUTUxTY3Jp
cHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIHdhc0FscmVhZHlTdGFydGVkKQogICAg
IDogSFRNTEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiAgICAgLCBTY3JpcHRFbGVtZW50KHRo
aXMsIHdhc0luc2VydGVkQnlQYXJzZXIsIHdhc0FscmVhZHlTdGFydGVkKQorICAgICwgbV9mb3Jj
ZUFzeW5jKCF3YXNJbnNlcnRlZEJ5UGFyc2VyKQogewogICAgIEFTU0VSVChoYXNUYWdOYW1lKHNj
cmlwdFRhZykpOwogfQpAQCAtNTgsNiArNTksMTMgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6
Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UK
ICAgICBIVE1MRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3Jl
Q2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3VudERlbHRhKTsKIH0KIAordm9pZCBIVE1MU2Ny
aXB0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqIGF0dHIsIGJvb2wgcHJlc2Vy
dmVEZWNscykKK3sKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IGFzeW5jQXR0cikKKyAgICAgICAg
bV9mb3JjZUFzeW5jID0gZmFsc2U7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQo
YXR0ciwgcHJlc2VydmVEZWNscyk7Cit9CisKIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKIHsKICAgICBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSA9IGF0dHItPm5hbWUoKTsKQEAgLTc4LDYgKzg2LDggQEAgdm9pZCBIVE1M
U2NyaXB0RWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKIHsKICAgICBTY3JpcHRFbGVt
ZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oc291cmNlQXR0cmlidXRlVmFsdWUoKSk7CiAgICAg
SFRNTEVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpOworICAgIGlmIChzb3VyY2VBdHRy
aWJ1dGVWYWx1ZSgpLmlzRW1wdHkoKSAmJiBzY3JpcHRDb250ZW50KCkuaXNFbXB0eSgpKQorICAg
ICAgICBtX2ZvcmNlQXN5bmMgPSAhaGFzQXR0cmlidXRlKGFzeW5jQXR0cik7CiB9CiAKIHZvaWQg
SFRNTFNjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKQEAgLTE1Miw3ICsxNjIs
NyBAQCBTdHJpbmcgSFRNTFNjcmlwdEVsZW1lbnQ6OmV2ZW50QXR0cmlidXRlVmFsdWUoKSBjb25z
dAogCiBib29sIEhUTUxTY3JpcHRFbGVtZW50Ojphc3luY0F0dHJpYnV0ZVZhbHVlKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gZmFzdEhhc0F0dHJpYnV0ZShhc3luY0F0dHIpOworICAgIHJldHVybiBh
c3luYygpOwogfQogCiBib29sIEhUTUxTY3JpcHRFbGVtZW50OjpkZWZlckF0dHJpYnV0ZVZhbHVl
KCkgY29uc3QKQEAgLTE2MCw2ICsxNzAsMTcgQEAgYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6ZGVm
ZXJBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhc3RIYXNBdHRyaWJ1dGUoZGVm
ZXJBdHRyKTsKIH0KIAordm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6c2V0QXN5bmMoYm9vbCBhc3lu
YykKK3sKKyAgICBzZXRCb29sZWFuQXR0cmlidXRlKGFzeW5jQXR0ciwgYXN5bmMpOworICAgIG1f
Zm9yY2VBc3luYyA9IGZhbHNlOworfQorCitib29sIEhUTUxTY3JpcHRFbGVtZW50Ojphc3luYygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZm9yY2VBc3luYyB8fCBmYXN0SGFzQXR0cmlidXRlKGFz
eW5jQXR0cik7Cit9CisKIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmRpc3BhdGNoTG9hZEV2ZW50
KCkKIHsKICAgICBBU1NFUlQoIWhhdmVGaXJlZExvYWRFdmVudCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCAwOTc3M2M1Li40ZTVkMDdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC0zOCw2ICszOCw5IEBAIHB1YmxpYzoK
IAogICAgIEtVUkwgc3JjKCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldEFzeW5jKGJvb2wpOworICAg
IGJvb2wgYXN5bmMoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBIVE1MU2NyaXB0RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIs
IGJvb2wgd2FzQWxyZWFkeVN0YXJ0ZWQpOwogCkBAIC00NSw2ICs0OCw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAgICAgdmlydHVhbCB2b2lk
IHJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2Vk
KGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5v
ZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOworICAgIHZpcnR1
YWwgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKEF0dHJpYnV0ZSosIGJvb2wgcHJlc2VydmVEZWNscyA9
IGZhbHNlKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBj
b25zdDsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCk7CkBAIC02NCw2
ICs2OCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRXJyb3JFdmVudCgp
OwogCiAgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBjbG9uZUVsZW1lbnRXaXRob3V0QXR0cmlidXRl
c0FuZENoaWxkcmVuKCkgY29uc3Q7CisKKyAgICBib29sIG1fZm9yY2VBc3luYzsKIH07CiAKIH0g
Ly9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVs
ZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwKaW5k
ZXggMjBiNzMzMS4uZmE3OTljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2NyaXB0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxl
bWVudC5pZGwKQEAgLTI0LDcgKzI0LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3Q9Zm9yXSBET01TdHJpbmcgaHRtbEZvcjsKICAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0XSBET01TdHJpbmcgZXZlbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIGNoYXJzZXQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhc3lu
YzsKKyAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gYXN5bmM7CiAgICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gYm9vbGVhbiBkZWZlcjsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0LCBVUkxd
IERPTVN0cmluZyBzcmM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHR5
cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKaW5k
ZXggNzgxYmMzNC4uNjkzNzY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
R3JvdXBMb2FkRGVmZXJyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3Vw
TG9hZERlZmVycmVyLmNwcApAQCAtMjEsMTEgKzIxLDExIEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiUGFnZUdyb3VwTG9hZERlZmVycmVyLmgiCiAKLSNpbmNsdWRlICJBc3luY1Nj
cmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgIkRvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCisjaW5jbHVk
ZSAiU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDksNyArNDksNyBAQCBQYWdlR3JvdXBMb2FkRGVmZXJyZXI6OlBhZ2VH
cm91cExvYWREZWZlcnJlcihQYWdlKiBwYWdlLCBib29sIGRlZmVyU2VsZikKICAgICAgICAgICAg
ICAgICAvLyB0aGUgY29uc3RydWN0b3Igd2lsbCBuZWVkIHRvIHRha2UgYSBBY3RpdmVET01PYmpl
Y3Q6OlJlYXNvbkZvclN1c3BlbnNpb24uCiAgICAgICAgICAgICAgICAgZm9yIChGcmFtZSogZnJh
bWUgPSBvdGhlclBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQo
KS0+c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMoQWN0aXZlRE9NT2JqZWN0OjpXaWxsU2hvd0RpYWxv
Zyk7Ci0gICAgICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5hc3luY1NjcmlwdFJ1
bm5lcigpLT5zdXNwZW5kKCk7CisgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgp
LT5zY3JpcHRSdW5uZXIoKS0+c3VzcGVuZCgpOwogICAgICAgICAgICAgICAgICAgICBpZiAoRG9j
dW1lbnRQYXJzZXIqIHBhcnNlciA9IGZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZXIoKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhcnNlci0+c3VzcGVuZFNjaGVkdWxlZFRhc2tzKCk7CiAgICAg
ICAgICAgICAgICAgfQpAQCAtNzEsNyArNzEsNyBAQCBQYWdlR3JvdXBMb2FkRGVmZXJyZXI6On5Q
YWdlR3JvdXBMb2FkRGVmZXJyZXIoKQogCiAgICAgICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9
IHBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJz
ZU5leHQoKSkgewogICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5yZXN1bWVBY3Rp
dmVET01PYmplY3RzKCk7Ci0gICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPmFzeW5j
U2NyaXB0UnVubmVyKCktPnJlc3VtZSgpOworICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVu
dCgpLT5zY3JpcHRSdW5uZXIoKS0+cmVzdW1lKCk7CiAgICAgICAgICAgICAgICAgaWYgKERvY3Vt
ZW50UGFyc2VyKiBwYXJzZXIgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2VyKCkpCiAgICAgICAg
ICAgICAgICAgICAgIHBhcnNlci0+cmVzdW1lU2NoZWR1bGVkVGFza3MoKTsKICAgICAgICAgICAg
IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83424</attachid>
            <date>2011-02-22 18:30:31 -0800</date>
            <delta_ts>2011-03-01 18:20:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>async3.patch</filename>
            <type>text/plain</type>
            <size>39428</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZGQ0MmVjLi5kNmY0NzJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDIt
MjIgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2
aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNj
cmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUw
MTE1CisKKyAgICAgICAgRHluYW1pY2FsbHkgYWRkZWQgc2NyaXB0cyB3aXRoIGFzeW5jPWZhbHNl
IHdpbGwgbG9hZCBpbiBwYXJhbGxlbCwgYnV0IGV4ZWN1dGUgaW4gb3JkZXIuCisgICAgICAgIFNl
ZTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0
aXBhZ2Uvc2NyaXB0aW5nLTEuaHRtbCNmb3JjZS1hc3luYworCisgICAgICAgICogZmFzdC9kb20v
SFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0OiBBZGRlZCB0
ZXN0IGNhc2VzIGZvciBmb3JjZUFzeW5jLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWw6IERpdHRvLgorICAgICAgICAqIGh0dHAvdGVz
dHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1
dGUtaW4tb3JkZXIuaHRtbDogQWRkZWQuCisKIDIwMTEtMDItMjIgIEFkYW0gUm9iZW4gIDxhcm9i
ZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBXaW5kb3dzIGV4cGVjdGVkIGZhaWx1cmUgcmVz
dWx0cyBmb3IgbmV3IHRlc3RzIGZyb20gcjc5MzE4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0
ci1leHBlY3RlZC50eHQKaW5kZXggN2I4YmY0ZC4uZTg2N2Y0MCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3Njcmlw
dC1hc3luYy1hdHRyLWV4cGVjdGVkLnR4dApAQCAtOCw4ICs4LDE0IEBAIFBBU1MgaXNBc3luYygn
czEnKSBpcyB0cnVlCiBQQVNTIGlzQXN5bmMoJ3MyJykgaXMgdHJ1ZQogUEFTUyBpc0FzeW5jKCdz
MycpIGlzIHRydWUKIFBBU1MgaXNBc3luYygnczQnKSBpcyB0cnVlCitQQVNTIGlzQXN5bmMoJ3M1
JykgaXMgdHJ1ZQorUEFTUyBpc0FzeW5jKCdzNicpIGlzIHRydWUKK1BBU1MgaXNBc3luYygnczcn
KSBpcyB0cnVlCitQQVNTIGlzQXN5bmMoJ3M4JykgaXMgZmFsc2UKIFBBU1MgaXNEeW5hbWljYWxs
eUluc2VydGVkU2NyaXB0QXN5bmModHJ1ZSkgaXMgdHJ1ZQogUEFTUyBpc0R5bmFtaWNhbGx5SW5z
ZXJ0ZWRTY3JpcHRBc3luYyhmYWxzZSkgaXMgZmFsc2UKK1BBU1MgaXNEeW5hbWljYWxseUluc2Vy
dGVkU2NyaXB0QXN5bmMoImFzeW5jIikgaXMgdHJ1ZQorUEFTUyBpc0R5bmFtaWNhbGx5SW5zZXJ0
ZWRTY3JpcHRBc3luYyhudWxsKSBpcyB0cnVlCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci5odG1sCmluZGV4IDRhM2Yz
YWYuLmIwZTQwNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRtbApAQCAtMTIsMTEgKzEyLDE1
IEBACiA8c2NyaXB0IGlkPSJzMiIgc3JjPSJpZ25vcmVkLmpzIiBhc3luYz0iYXN5bmMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBpZD0iczMiIHNyYz0iaWdub3JlZC5qcyIgYXN5bmM9IkFTWU5DIj48L3Nj
cmlwdD4KIDxzY3JpcHQgaWQ9InM0IiBzcmM9Imlnbm9yZWQuanMiIGFzeW5jPSJ0cnVlIj48L3Nj
cmlwdD4KKzxzY3JpcHQgaWQ9InM1IiBzcmM9Imlnbm9yZWQuanMiIGFzeW5jPSJmYWxzZSI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IGlkPSJzNiI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJzNyIgYXN5bmM+
PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJzOCIgYXN5bmM+PC9zY3JpcHQ+CiAKIDxzY3JpcHQ+CiBk
ZXNjcmlwdGlvbignVGhpcyB0ZXN0IGNoZWNrcyBmb3IgcHJvcGVyIHBhcnNpbmcgb2YgdGhlIGFz
eW5jIGF0dHJpYnV0ZSBvbiBIVE1MIHNjcmlwdCB0YWdzLicpOwogCi12YXIgbmV4dFNjcmlwdElE
ID0gMDsKK3ZhciBuZXh0U2NyaXB0SUQgPSA5OwogCiBmdW5jdGlvbiBpc0FzeW5jKGlkKQogewpA
QCAtMjksMTkgKzMzLDI3IEBAIGZ1bmN0aW9uIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFz
eW5jKGFzeW5jKQogICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3Jp
cHQiKTsKICAgICBzY3JpcHQuaWQgPSBpZDsKICAgICBzY3JpcHQuc3JjID0gInJlc291cmNlcy9z
Y3JpcHQtbG9hZC5qcyI7Ci0gICAgaWYgKGFzeW5jKQotICAgICAgICBzY3JpcHQuYXN5bmMgPSAi
YXN5bmMiOworICAgIGlmIChhc3luYyAhPSBudWxsKQorICAgICAgICBzY3JpcHQuYXN5bmMgPSBh
c3luYzsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVu
ZENoaWxkKHNjcmlwdCk7CiAgICAgcmV0dXJuIGlzQXN5bmMoaWQpOwogfQogCitkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiczgiKS5yZW1vdmVBdHRyaWJ1dGUoImFzeW5jIik7CisKIHNob3VsZEJl
RmFsc2UoImlzQXN5bmMoJ3MwJykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNBc3luYygnczEnKSIpOwog
c2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzMicpIik7CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3Mz
JykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNBc3luYygnczQnKSIpOworc2hvdWxkQmVUcnVlKCJpc0Fz
eW5jKCdzNScpIik7CitzaG91bGRCZVRydWUoImlzQXN5bmMoJ3M2JykiKTsKK3Nob3VsZEJlVHJ1
ZSgiaXNBc3luYygnczcnKSIpOworc2hvdWxkQmVGYWxzZSgiaXNBc3luYygnczgnKSIpOwogc2hv
dWxkQmVUcnVlKCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyh0cnVlKSIpOwogc2hv
dWxkQmVGYWxzZSgiaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMoZmFsc2UpIik7Citz
aG91bGRCZVRydWUoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKFwiYXN5bmNcIiki
KTsKK3Nob3VsZEJlVHJ1ZSgiaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMobnVsbCki
KTsKIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRl
LWluLW9yZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zY3Jp
cHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzhkMTgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQXR0ZW1wdHMgdG8gY2hlY2sgdGhhdCBhc3lu
Yz1mYWxzZSBlbmZvcmNlcyBleGVjdXRpb24gb3JkZXIgZHluYW1pY2FsbHkgaW5zZXJ0ZWQgc2Ny
aXB0cy4gU2VlOiBodHRwOi8vd2lraS53aGF0d2cub3JnL3dpa2kvRHluYW1pY19TY3JpcHRfRXhl
Y3V0aW9uX09yZGVyCitzbG93QXN5bmMKK2FzeW5jCitsb2FkCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRlLWlu
LW9yZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzc3M2ZkMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5
bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMtdGVzdHMtcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImRlYnVnKCdsb2Fk
Jyk7ZmluaXNoSlNUZXN0KCk7Ij4KK0F0dGVtcHRzIHRvIGNoZWNrIHRoYXQgYXN5bmM9ZmFsc2Ug
ZW5mb3JjZXMgZXhlY3V0aW9uIG9yZGVyIGR5bmFtaWNhbGx5IGluc2VydGVkIHNjcmlwdHMuCitT
ZWU6IGh0dHA6Ly93aWtpLndoYXR3Zy5vcmcvd2lraS9EeW5hbWljX1NjcmlwdF9FeGVjdXRpb25f
T3JkZXIKKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworc2xvd2x5X2xvYWRlZF9zY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzY3JpcHQiKTsKK3Nsb3dseV9sb2FkZWRfc2NyaXB0LmFzeW5jID0gZmFsc2U7CitzbG93
bHlfbG9hZGVkX3NjcmlwdC5zcmMgPSAicmVzb3VyY2VzL3Nsb3ctYXN5bmMtc2NyaXB0LmNnaSI7
Citkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHNs
b3dseV9sb2FkZWRfc2NyaXB0KTsKKworcXVpY2tseV9sb2FkZWRfc2NyaXB0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CitxdWlja2x5X2xvYWRlZF9zY3JpcHQuYXN5bmMgPSBm
YWxzZTsKK3F1aWNrbHlfbG9hZGVkX3NjcmlwdC5zcmMgPSAicmVzb3VyY2VzL2FzeW5jLXNjcmlw
dC5qcyI7Citkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENo
aWxkKHF1aWNrbHlfbG9hZGVkX3NjcmlwdCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0FuZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4
IDljZDMwMjIuLjUxNmM5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsK
KysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtOTQsNyArOTQsNiBAQCBMT0NBTF9T
UkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAljc3MvV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuY3BwIFwKIAlcCiAJZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAotCWRvbS9Bc3luY1Nj
cmlwdFJ1bm5lci5jcHAgXAogCWRvbS9BdHRyLmNwcCBcCiAJZG9tL0F0dHJpYnV0ZS5jcHAgXAog
CWRvbS9CZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5jcHAgXApAQCAtMTcwLDYgKzE2OSw3IEBAIExP
Q0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCWRvbS9TY3JpcHRhYmxlRG9j
dW1lbnRQYXJzZXIuY3BwIFwKIAlkb20vU2NyaXB0RWxlbWVudC5jcHAgXAogCWRvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcCBcCisJZG9tL1NjcmlwdFJ1bm5lci5jcHAgXAogCWRvbS9TZWxl
Y3RFbGVtZW50LmNwcCBcCiAJZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwIFwKIAlkb20vU3BhY2VT
cGxpdFN0cmluZy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAwMjEzMWZlLi5jNjJhZGJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjc5LDcgKzY3OSw2IEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKICAgICBjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwCiAKICAgICBkb20vQWN0
aXZlRE9NT2JqZWN0LmNwcAotICAgIGRvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKICAgICBkb20v
QXR0ci5jcHAKICAgICBkb20vQXR0cmlidXRlLmNwcAogICAgIGRvbS9CZWZvcmVUZXh0SW5zZXJ0
ZWRFdmVudC5jcHAKQEAgLTc2MCw2ICs3NTksNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAg
ZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAKICAgICBkb20vU2NyaXB0RWxlbWVudC5j
cHAKICAgICBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKyAgICBkb20vU2NyaXB0UnVu
bmVyLmNwcAogICAgIGRvbS9TZWxlY3RFbGVtZW50LmNwcAogICAgIGRvbS9TZWxlY3Rvck5vZGVM
aXN0LmNwcAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI1NzQ4
NjUuLjhlNGU4YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxMS0wMi0yMiAgSmFt
ZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCBkaWZmZXJlbnQgYmVoYXZpb3IgZm9y
IGVuc3VyaW5nIGV4ZWN1dGlvbiBvcmRlciBvZiBkeW5hbWljYWxseSBsb2FkZWQgc2NyaXB0cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAxMTUKKwor
ICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRzIHdpdGggYXN5bmM9ZmFsc2Ugd2lsbCBs
b2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBvcmRlci4KKyAgICAgICAgU2VlOiBodHRw
Oi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9z
Y3JpcHRpbmctMS5odG1sI2ZvcmNlLWFzeW5jCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hU
TUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwKKwor
ICAgICAgICAqIEFuZHJvaWQubWs6IFJlbmFtZSBBc3luY1NjcmlwdFJ1bm5lciAtPiBTY3JpcHRS
dW5uZXIuCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IERpdHRvLgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAg
ICAqIFdlYkNvcmUucHJvOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOiBEaXR0by4KKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOiBEaXR0by4KKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3Vt
ZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KTogRGl0
dG8uCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6c2NyaXB0UnVubmVyKTogRGl0dG8uCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6U2NyaXB0RWxlbWVudCk6IEFkZGVk
IGZvcmNlQXN5bmMgYW5kIHdpbGxFeGVjdXRlSW5PcmRlci4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdEVsZW1lbnQ6OmhhbmRsZUFzeW5jQXR0cmlidXRlKTogQ2FsbGVkIGJ5IEhUTUxTY3JpcHRF
bGVtZW50IHdoZW4gYXN5bmMgYXR0cmlidXRlIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KTogQWRkZWQgc3VwcG9ydCBmb3IgZm9yY2VBc3lu
Yy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKTogVGVs
bCBTY3JpcHRSdW5uZXIgdG8gZXhlY3V0ZSBpbiBvcmRlciBpZiBuZWVkZWQuCisgICAgICAgICog
ZG9tL1NjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmZv
cmNlQXN5bmMpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vU2NyaXB0UnVubmVyLmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAuCisgICAgICAg
IChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OlNjcmlwdFJ1bm5lcik6IEFkZGVkIGluLW9yZGVyIHNj
cmlwdCBxdWV1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5l
cik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0
U29vbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnF1ZXVlU2NyaXB0Rm9ySW5P
cmRlckV4ZWN1dGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpz
dXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6cmVzdW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZCk6IEV4ZWN1dGUgaW4tb3JkZXIg
c2NyaXB0cyBpZiByZWFkeS4KKyAgICAgICAgKiBkb20vU2NyaXB0UnVubmVyLmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaC4KKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdFJ1bm5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1
bm5lcjo6aGFzUGVuZGluZ1NjcmlwdHMpOiBDaGVjayBmb3IgaW4tb3JkZXIgc2NyaXB0cyB0b28u
CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU2NyaXB0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZCk6IE5vdGlmeSBTY3JpcHRFbGVt
ZW50IHdoZW4gYXN5bmMgY2hhbmdlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVt
ZW50OjpzZXRBc3luYyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1l
bnQ6OmFzeW5jKTogSW5jbHVkZSBmb3JjZUFzeW5jIGluIGNhbGN1bGF0aW9uLgorICAgICAgICAq
IGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVt
ZW50LmlkbDogUmVtb3ZlZCBSZWZsZWN0IGZyb20gYXN5bmMgZm9yIGN1c3RvbSBiZWhhdmlvci4K
KyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXI6OlBhZ2VHcm91cExvYWREZWZlcnJlcik6IFJlbmFt
ZSBBc3luY1NjcmlwdFJ1bm5lciAtPiBTY3JpcHRSdW5uZXIuCisgICAgICAgIChXZWJDb3JlOjpQ
YWdlR3JvdXBMb2FkRGVmZXJyZXI6On5QYWdlR3JvdXBMb2FkRGVmZXJyZXIpOiBEaXR0by4KKwog
MjAxMS0wMi0yMiAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5k
ZXggZDBiMzcxYS4uMTMzMTAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTExMDIsOCArMTEw
Miw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U1RyYW5zZm9ybVZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3Qu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmggXAotCVNvdXJjZS9X
ZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9B
c3luY1NjcmlwdFJ1bm5lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQXR0ci5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9BdHRyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9BdHRyaWJ1dGUu
Y3BwIFwKQEAgLTEyOTMsNiArMTI5MSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
U2VsZWN0RWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggNGEwN2I4MS4uMjdhZjUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTE0Nyw4ICsx
MTQ3LDYgQEAKICAgICAgICAgICAgICdkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hh
bm5lbC5oJywKICAgICAgICAgICAgICdkb20vQWN0aXZlRE9NT2JqZWN0LmNwcCcsCiAgICAgICAg
ICAgICAnZG9tL0FjdGl2ZURPTU9iamVjdC5oJywKLSAgICAgICAgICAgICdkb20vQXN5bmNTY3Jp
cHRSdW5uZXIuY3BwJywKLSAgICAgICAgICAgICdkb20vQXN5bmNTY3JpcHRSdW5uZXIuaCcsCiAg
ICAgICAgICAgICAnZG9tL0F0dHIuY3BwJywKICAgICAgICAgICAgICdkb20vQXR0ci5oJywKICAg
ICAgICAgICAgICdkb20vQXR0cmlidXRlLmNwcCcsCkBAIC0xMzM5LDYgKzEzMzcsOCBAQAogICAg
ICAgICAgICAgJ2RvbS9TY3JpcHRFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCcsCisgICAgICAgICAgICAnZG9tL1NjcmlwdFJ1bm5lci5jcHAnLAorICAgICAgICAg
ICAgJ2RvbS9TY3JpcHRSdW5uZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1NlbGVjdEVsZW1lbnQu
Y3BwJywKICAgICAgICAgICAgICdkb20vU2VsZWN0RWxlbWVudC5oJywKICAgICAgICAgICAgICdk
b20vU2VsZWN0b3JOb2RlTGlzdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA0MzU2YWYxLi5hZjQ1
YzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNDQwLDcgKzQ0MCw2IEBAIFNPVVJDRVMgKz0gXAogICAg
IGNzcy9XZWJLaXRDU1NNYXRyaXguY3BwIFwKICAgICBjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFs
dWUuY3BwIFwKICAgICBkb20vQWN0aXZlRE9NT2JqZWN0LmNwcCBcCi0gICAgZG9tL0FzeW5jU2Ny
aXB0UnVubmVyLmNwcCBcCiAgICAgZG9tL0F0dHIuY3BwIFwKICAgICBkb20vQXR0cmlidXRlLmNw
cCBcCiAgICAgZG9tL0JlZm9yZVByb2Nlc3NFdmVudC5jcHAgXApAQCAtNTI0LDYgKzUyMyw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIGRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwIFwKICAg
ICBkb20vU2NyaXB0RWxlbWVudC5jcHAgXAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmNwcCBcCisgICAgZG9tL1NjcmlwdFJ1bm5lci5jcHAgXAogICAgIGRvbS9TZWxlY3RFbGVtZW50
LmNwcCBcCiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwIFwKICAgICBkb20vU3BhY2VTcGxp
dFN0cmluZy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCA1OGUyMjExLi45YjMzNTlhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDEyOTAsNjIgKzQxMjkwLDYgQEAKIAkJCQk+CiAJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEFzeW5jU2NyaXB0
UnVubmVyLmNwcCIKLQkJCQk+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNl
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b19DRkxpdGV8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0J
CQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJl
bGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
LQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJ
Lz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgot
CQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkv
PgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJ
CU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
Ci0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJ
CS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCi0JCQkJ
UmVsYXRpdmVQYXRoPSIuLlxkb21cQXN5bmNTY3JpcHRSdW5uZXIuaCIKLQkJCQk+Ci0JCQk8L0Zp
bGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEF0b21pY1N0cmluZ0xpc3Qu
aCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC00NTgzOCw2ICs0NTc4Miw2MiBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2NyaXB0UnVubmVy
LmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxp
dGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2Vf
Q2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxkb21cU2NyaXB0UnVubmVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTZWxlY3RFbGVtZW50LmNwcCIKIAkJCQk+CiAJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTViNTUwNi4uNTlhMTEwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjY4OCw4
ICsyNjg4LDggQEAKIAkJODlEMDhEQTExMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODlEMDhEOUUxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5o
ICovOyB9OwogCQk4QTEyRTM1RDExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5n
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTEyRTM1
QzExRkEzMzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOEEzMDlDOUYxMjM5NTBCRTAwQ0I5
MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTMwOUM5RTEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGlu
Z0xldmVsSW5jcmVtZW50ZXIuaCAqLzsgfTsKLQkJOEE0MTNBRTAxMjA3QkJBNTAwODIwMTZFIC8q
IEFzeW5jU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4QTQx
M0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREYxMjA3QkJBNTAwODIw
MTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLzsgfTsKKwkJOEE0MTNBRTAxMjA3QkJBNTAw
ODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCThBNDEz
QUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREYxMjA3QkJBNTAwODIwMTZFIC8q
IFNjcmlwdFJ1bm5lci5jcHAgKi87IH07CiAJCThBN0NDOTZCMTIwNzZENzMwMDFENDU4OCAvKiBQ
ZW5kaW5nU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4QTdDQzk2QTEyMDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCThBN0NDOTcwMTIwNzZG
OEEwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBN0NDOTZGMTIwNzZGOEEwMDFENDU4OCAvKiBQZW5kaW5n
U2NyaXB0LmNwcCAqLzsgfTsKIAkJOEE4MUJGODUxMURDRkQ5MDAwREEyQjk4IC8qIFJlc291cmNl
TG9hZFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOEE4MUJGODQxMURDRkQ5MDAwREEyQjk4IC8qIFJlc291cmNlTG9hZFRpbWluZy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05MDk1LDggKzkw
OTUsOCBAQAogCQk4OUQwOEQ5RTEyMjI4NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2Fs
bGJhY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jRmlsZVN5c3Rl
bUNhbGxiYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTEyRTM1QzExRkEz
MzI4MDAyNTgzNkEgLyogRG9jdW1lbnRMb2FkVGltaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERvY3VtZW50TG9hZFRpbWluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4QTMwOUM5RTEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVsSW5jcmVtZW50
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmVzdGluZ0xldmVsSW5jcmVt
ZW50ZXIuaDsgcGF0aCA9IHBhcnNlci9OZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk4QTQxM0FERTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNT
Y3JpcHRSdW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXN5bmNTY3Jp
cHRSdW5uZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOEE0MTNBREYxMjA3QkJB
NTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFzeW5jU2NyaXB0UnVubmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRSdW5uZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEE0MTNBREYxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1
bm5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRSdW5u
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTdDQzk2QTEyMDc2RDczMDAx
RDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBQZW5kaW5nU2NyaXB0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBN0NDOTZG
MTIwNzZGOEEwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBlbmRpbmdTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4QTgxQkY4NDExRENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VMb2FkVGltaW5n
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlc291cmNlTG9hZFRpbWluZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg4NzEsOCArMTg4NzEsNiBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJRTFDNERFNkQwRUE3NUM2NTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9i
amVjdC5jcHAgKi8sCiAJCQkJRTFDNERFNjgwRUE3NUMxRTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9i
amVjdC5oICovLAotCQkJCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1
bm5lci5jcHAgKi8sCi0JCQkJOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0
UnVubmVyLmggKi8sCiAJCQkJQThDNEE3RkMwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuY3BwICov
LAogCQkJCUE4QzRBN0ZCMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmggKi8sCiAJCQkJOTNFRUMx
RTUwOUMyODc3NzAwQzUxNUQxIC8qIEF0dHIuaWRsICovLApAQCAtMTkxMTAsNiArMTkxMDgsOCBA
QAogCQkJCTA4QTQ4NDc2MEU1MjcyQzUwMEMzRkU3NiAvKiBTY3JpcHRFbGVtZW50LmggKi8sCiAJ
CQkJRTExQzlEQUYwRUIzNjk5NTAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
ICovLAogCQkJCUUxMUM5RDlBMEVCMzY4MTIwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmggKi8sCisJCQkJOEE0MTNBREYxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5j
cHAgKi8sCisJCQkJOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5oICov
LAogCQkJCTA4NEFFQkUyMEZCNTA1RkEwMDM4NDgzRSAvKiBTZWxlY3RFbGVtZW50LmNwcCAqLywK
IAkJCQkwODRBRUJFMzBGQjUwNUZBMDAzODQ4M0UgLyogU2VsZWN0RWxlbWVudC5oICovLAogCQkJ
CUJDN0ZBNjgwMEQxRjE2NzkwMERCMjJBOSAvKiBTZWxlY3Rvck5vZGVMaXN0LmNwcCAqLywKQEAg
LTE5NDY1LDcgKzE5NDY1LDYgQEAKIAkJCQk5NzZENkM3NzEyMkI4QTNEMDAxRkQxRjcgLyogQXN5
bmNGaWxlV3JpdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzZENkM5MzEyMkI4QTNEMDAxRkQx
RjcgLyogQXN5bmNGaWxlV3JpdGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMDE0OUU3
RTExQTRCMjE1MDAxOTZBN0IgLyogQXN5bmNJbWFnZVJlc2l6ZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzdDNjFGMDExMjA5NUM4NzAwN0EzQzY3IC8qIEF0b21pY1N0cmluZ0tl
eWVkTVJVQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QzRBODBEMDlENTYzMjcwMDAzQUM4
RCAvKiBBdHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEM0QTgwQjA5RDU2MzI3MDAwM0FDOEQg
LyogQXR0cmlidXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTIxODM5LDYgKzIxODM4LDcgQEAKIAkJ
CQk5RjcyMzA0RjExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOUZBMzdFRTQxMTcyRkM4MDAwQzRDRDU1IC8qIFNjcmlwdFByb2ZpbGVOb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5RjcyMzA1MTExMTg0QjQxMDBBRDAxMjYgLyogU2NyaXB0UHJv
ZmlsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBT
Y3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNENDMTBBMEVEQjIyMzkwMEE2NThG
MiAvKiBTY3JpcHRTb3VyY2VDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTU0RkQzODEwMTZE
OUE2MDA4QjQ0QzggLyogU2NyaXB0U291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxQzc2MEIxMEVERTAzRDMwMEMxNjU1RiAvKiBTY3JpcHRTdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMjc3MCw3ICsyMjc3MCw2IEBACiAJCQkJNDlFRUNEREYxMDUwM0MyNDAwMDk5RkFCIC8q
IEFycmF5QnVmZmVyVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OUQwOEQ5RjEyMjI4NDUx
MDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIwMTQ5
RTdEMTFBNEIyMTUwMDE5NkE3QiAvKiBBc3luY0ltYWdlUmVzaXplci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MEUwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQThDNEE4MEMwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHJpYnV0
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNUZGNjEyQjAyNjc2MDBDMUEzNTkgLyogQXVk
aW9CYXNpY1Byb2Nlc3Nvck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNDYwNiw2ICsyNDYw
NSw3IEBACiAJCQkJNDFGMDY2RTUwRjY0QkNGNjAwQTA3RUFDIC8qIFNjcmlwdE9iamVjdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGMzNGMDI4MjEyMDk0N0YyMDBFNTc0M0EgLyogU2NyaXB0UHJv
ZmlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RjcyMzA1MDExMTg0QjQxMDBBRDAxMjYgLyog
U2NyaXB0UHJvZmlsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOEE0MTNBRTExMjA3QkJBNTAw
ODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTI3RDUzNzBG
OEFBQjFEMDBFNDI0RjUgLyogU2NyaXB0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM0
Q0MwRTEwRUQzOUQ2RjAwQTY1OEYyIC8qIFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDOEFFMzRFMTJFQTA5NkEwMEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IGM4OGFlY2YuLjA4YTc2
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtMjYsNyArMjYsNiBAQAogLy8g
VGhpcyBhbGwtaW4tb25lIGNwcCBmaWxlIGN1dHMgZG93biBvbiB0ZW1wbGF0ZSBibG9hdCB0byBh
bGxvdyB1cyB0byBidWlsZCBvdXIgV2luZG93cyByZWxlYXNlIGJ1aWxkLgogCiAjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmNwcCIKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5jcHAiCiAj
aW5jbHVkZSAiQXR0ci5jcHAiCiAjaW5jbHVkZSAiQXR0cmlidXRlLmNwcCIKICNpbmNsdWRlICJC
ZWZvcmVQcm9jZXNzRXZlbnQuY3BwIgpAQCAtMTA0LDYgKzEwMyw3IEBACiAjaW5jbHVkZSAiU2Nv
cGVkRXZlbnRRdWV1ZS5jcHAiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5jcHAiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmNw
cCIKICNpbmNsdWRlICJTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwIgogI2luY2x1ZGUgIlNl
bGVjdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNlbGVjdG9yTm9kZUxpc3QuY3BwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggNjQzZTZhMy4uYjVhODk0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAj
aW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVu
bmVyLmgiCiAjaW5jbHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgogI2luY2x1
ZGUgIkNEQVRBU2VjdGlvbi5oIgpAQCAtMTI1LDYgKzEyNCw3IEBACiAjaW5jbHVkZSAiU2NyaXB0
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJTY3Jp
cHRFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKICNpbmNsdWRl
ICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCkBAIC0zODgsNyArMzg4LDcgQEAgRG9jdW1lbnQ6OkRv
Y3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJvb2wg
aXNIVE1MKQogICAgICwgbV9zdGFydFRpbWUoY3VycmVudFRpbWUoKSkKICAgICAsIG1fb3Zlck1p
bmltdW1MYXlvdXRUaHJlc2hvbGQoZmFsc2UpCiAgICAgLCBtX2V4dHJhTGF5b3V0RGVsYXkoMCkK
LSAgICAsIG1fYXN5bmNTY3JpcHRSdW5uZXIoQXN5bmNTY3JpcHRSdW5uZXI6OmNyZWF0ZSh0aGlz
KSkKKyAgICAsIG1fc2NyaXB0UnVubmVyKFNjcmlwdFJ1bm5lcjo6Y3JlYXRlKHRoaXMpKQogICAg
ICwgbV94bWxWZXJzaW9uKCIxLjAiKQogICAgICwgbV94bWxTdGFuZGFsb25lKGZhbHNlKQogICAg
ICwgbV9zYXZlZFJlbmRlcmVyKDApCkBAIC01NTYsNyArNTU2LDcgQEAgRG9jdW1lbnQ6On5Eb2N1
bWVudCgpCiAgICAgQVNTRVJUKG1fcmFuZ2VzLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKCFtX3N0
eWxlUmVjYWxjVGltZXIuaXNBY3RpdmUoKSk7CiAKLSAgICBtX2FzeW5jU2NyaXB0UnVubmVyLmNs
ZWFyKCk7CisgICAgbV9zY3JpcHRSdW5uZXIuY2xlYXIoKTsKIAogICAgIHJlbW92ZUFsbEV2ZW50
TGlzdGVuZXJzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNWExYmUwYS4uZDBmNjA4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTUxLDcgKzUxLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBBc3luY1NjcmlwdFJ1bm5lcjsKIGNsYXNzIEF0dHI7CiBjbGFzcyBBWE9i
amVjdENhY2hlOwogY2xhc3MgQ0RBVEFTZWN0aW9uOwpAQCAtMTE0LDYgKzExMyw3IEBAIGNsYXNz
IFJlbmRlclZpZXc7CiBjbGFzcyBSZW5kZXJGdWxsU2NyZWVuOwogY2xhc3MgU2NyaXB0YWJsZURv
Y3VtZW50UGFyc2VyOwogY2xhc3MgU2NyaXB0RWxlbWVudERhdGE7CitjbGFzcyBTY3JpcHRSdW5u
ZXI7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsK
IGNsYXNzIFNlZ21lbnRlZFN0cmluZzsKQEAgLTg5Myw3ICs4OTMsNyBAQCBwdWJsaWM6CiAKICAg
ICBpbnQgZG9jSUQoKSBjb25zdCB7IHJldHVybiBtX2RvY0lEOyB9CiAgICAgCi0gICAgQXN5bmNT
Y3JpcHRSdW5uZXIqIGFzeW5jU2NyaXB0UnVubmVyKCkgeyByZXR1cm4gbV9hc3luY1NjcmlwdFJ1
bm5lci5nZXQoKTsgfQorICAgIFNjcmlwdFJ1bm5lciogc2NyaXB0UnVubmVyKCkgeyByZXR1cm4g
bV9zY3JpcHRSdW5uZXIuZ2V0KCk7IH0KIAogI2lmIEVOQUJMRShYU0xUKQogICAgIHZvaWQgYXBw
bHlYU0xUcmFuc2Zvcm0oUHJvY2Vzc2luZ0luc3RydWN0aW9uKiBwaSk7CkBAIC0xMzAxLDcgKzEz
MDEsNyBAQCBwcml2YXRlOgogICAgIC8vIHBvaW50cyBkdXJpbmcgdGhlIGxpZmV0aW1lIG9mIHRo
ZSBEb2N1bWVudC4KICAgICBpbnQgbV9leHRyYUxheW91dERlbGF5OwogICAgIAotICAgIE93blB0
cjxBc3luY1NjcmlwdFJ1bm5lcj4gbV9hc3luY1NjcmlwdFJ1bm5lcjsKKyAgICBPd25QdHI8U2Ny
aXB0UnVubmVyPiBtX3NjcmlwdFJ1bm5lcjsKIAogI2lmIEVOQUJMRShYU0xUKQogICAgIE93blB0
cjxUcmFuc2Zvcm1Tb3VyY2U+IG1fdHJhbnNmb3JtU291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuY3BwCmluZGV4IDNiYmE5YTAuLjgxZDQ2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAKQEAgLTI0LDcgKzI0LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5o
IgogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTM3LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJTY3Jp
cHRTb3VyY2VDb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgpAQCAtNjEsNiArNjEsOCBAQCBTY3JpcHRFbGVtZW50OjpTY3JpcHRFbGVtZW50KEVs
ZW1lbnQqIGVsZW1lbnQsIGJvb2wgcGFyc2VySW5zZXJ0ZWQsIGJvb2wgYWxyZWFkeQogICAgICwg
bV93aWxsQmVQYXJzZXJFeGVjdXRlZChmYWxzZSkKICAgICAsIG1fcmVhZHlUb0JlUGFyc2VyRXhl
Y3V0ZWQoZmFsc2UpCiAgICAgLCBtX3dpbGxFeGVjdXRlV2hlbkRvY3VtZW50RmluaXNoZWRQYXJz
aW5nKGZhbHNlKQorICAgICwgbV9mb3JjZUFzeW5jKCFwYXJzZXJJbnNlcnRlZCkKKyAgICAsIG1f
d2lsbEV4ZWN1dGVJbk9yZGVyKGZhbHNlKQogewogICAgIEFTU0VSVChtX2VsZW1lbnQpOwogfQpA
QCAtOTYsNiArOTgsMTAgQEAgdm9pZCBTY3JpcHRFbGVtZW50OjpoYW5kbGVTb3VyY2VBdHRyaWJ1
dGUoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpCiAgICAgcHJlcGFyZVNjcmlwdCgpOyAvLyBGSVhN
RTogUHJvdmlkZSBhIHJlYWwgc3RhcnRpbmcgbGluZSBudW1iZXIgaGVyZS4KIH0KIAordm9pZCBT
Y3JpcHRFbGVtZW50OjpoYW5kbGVBc3luY0F0dHJpYnV0ZSgpIHsKKyAgICBtX2ZvcmNlQXN5bmMg
PSBmYWxzZTsKK30KKwogLy8gSGVscGVyIGZ1bmN0aW9uCiBzdGF0aWMgYm9vbCBpc0xlZ2FjeVN1
cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZShjb25zdCBTdHJpbmcmIGxhbmd1YWdlKQogewpAQCAt
MTU5LDcgKzE2NSw4IEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBU
ZXh0UG9zaXRpb24xJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhCiAgICAgfSBlbHNlCiAgICAg
ICAgIHdhc1BhcnNlckluc2VydGVkID0gZmFsc2U7CiAKLSAgICAvLyBGSVhNRTogSFRNTDUgc3Bl
YyBzYXlzIHdlIHNob3VsZCBzZXQgZm9yY2VBc3luYy4KKyAgICBpZiAod2FzUGFyc2VySW5zZXJ0
ZWQgJiYgIWFzeW5jQXR0cmlidXRlVmFsdWUoKSkKKyAgICAgICAgbV9mb3JjZUFzeW5jID0gdHJ1
ZTsKIAogICAgIC8vIEZJWE1FOiBIVE1MNSBzcGVjIHNheXMgd2Ugc2hvdWxkIGNoZWNrIHRoYXQg
YWxsIGNoaWxkcmVuIGFyZSBlaXRoZXIgY29tbWVudHMgb3IgZW1wdHkgdGV4dCBub2Rlcy4KICAg
ICBpZiAoIWhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmICFtX2VsZW1lbnQtPmZpcnN0Q2hpbGQoKSkK
QEAgLTE3MSw4ICsxNzgsMTAgQEAgYm9vbCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNv
bnN0IFRleHRQb3NpdGlvbjEmIHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2EKICAgICBpZiAoIWlz
U2NyaXB0VHlwZVN1cHBvcnRlZChzdXBwb3J0TGVnYWN5VHlwZXMpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBpZiAod2FzUGFyc2VySW5zZXJ0ZWQpCisgICAgaWYgKHdhc1BhcnNlcklu
c2VydGVkKSB7CiAgICAgICAgIG1fcGFyc2VySW5zZXJ0ZWQgPSB0cnVlOworICAgICAgICBtX2Zv
cmNlQXN5bmMgPSBmYWxzZTsKKyAgICB9CiAKICAgICBtX2FscmVhZHlTdGFydGVkID0gdHJ1ZTsK
IApAQCAtMjA3LDYgKzIxNiwxMCBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQo
Y29uc3QgVGV4dFBvc2l0aW9uMSYgc2NyaXB0U3RhcnRQb3NpdGlvbiwgTGVnYQogICAgIGVsc2Ug
aWYgKCFoYXNTb3VyY2VBdHRyaWJ1dGUoKSAmJiBtX3BhcnNlckluc2VydGVkICYmICFtX2VsZW1l
bnQtPmRvY3VtZW50KCktPmhhdmVTdHlsZXNoZWV0c0xvYWRlZCgpKSB7CiAgICAgICAgIG1fd2ls
bEJlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwogICAgICAgICBtX3JlYWR5VG9CZVBhcnNlckV4ZWN1
dGVkID0gdHJ1ZTsKKyAgICB9IGVsc2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmICFhc3lu
Y0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9yY2VBc3luYykgeworICAgICAgICBtX2VsZW1lbnQt
PmRvY3VtZW50KCktPnNjcmlwdFJ1bm5lcigpLT5xdWV1ZVNjcmlwdEZvckluT3JkZXJFeGVjdXRp
b24odGhpcywgbV9jYWNoZWRTY3JpcHQpOworICAgICAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xp
ZW50KHRoaXMpOworICAgICAgICBtX3dpbGxFeGVjdXRlSW5PcmRlciA9IHRydWU7CiAgICAgfSBl
bHNlIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUoKSkKICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPmFk
ZENsaWVudCh0aGlzKTsKICAgICBlbHNlCkBAIC0yODYsNyArMjk5LDEwIEBAIHZvaWQgU2NyaXB0
RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIG8pCiB7CiAgICAgQVNTRVJU
KCFtX3dpbGxCZVBhcnNlckV4ZWN1dGVkKTsKICAgICBBU1NFUlRfVU5VU0VEKG8sIG8gPT0gbV9j
YWNoZWRTY3JpcHQpOwotICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+YXN5bmNTY3JpcHRSdW5u
ZXIoKS0+ZXhlY3V0ZVNjcmlwdFNvb24odGhpcywgbV9jYWNoZWRTY3JpcHQpOworICAgIGlmICht
X3dpbGxFeGVjdXRlSW5PcmRlcikKKyAgICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zY3Jp
cHRSdW5uZXIoKS0+cmVzdW1lKCk7CisgICAgZWxzZQorICAgICAgICBtX2VsZW1lbnQtPmRvY3Vt
ZW50KCktPnNjcmlwdFJ1bm5lcigpLT5leGVjdXRlU2NyaXB0U29vbih0aGlzLCBtX2NhY2hlZFNj
cmlwdCk7CiAgICAgbV9jYWNoZWRTY3JpcHQgPSAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVs
ZW1lbnQuaAppbmRleCA3OWRmZjMzLi45Y2U2NmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmgKQEAgLTYzLDEyICs2MywxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRIYXZlRmly
ZWRMb2FkRXZlbnQoYm9vbCBoYXZlRmlyZWRMb2FkKSB7IG1faGF2ZUZpcmVkTG9hZCA9IGhhdmVG
aXJlZExvYWQ7IH0KICAgICBib29sIGlzUGFyc2VySW5zZXJ0ZWQoKSBjb25zdCB7IHJldHVybiBt
X3BhcnNlckluc2VydGVkOyB9CiAgICAgYm9vbCBhbHJlYWR5U3RhcnRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fYWxyZWFkeVN0YXJ0ZWQ7IH0KKyAgICBib29sIGZvcmNlQXN5bmMoKSBjb25zdCB7IHJl
dHVybiBtX2ZvcmNlQXN5bmM7IH0KIAogICAgIC8vIEhlbHBlciBmdW5jdGlvbnMgdXNlZCBieSBv
dXIgcGFyZW50IGNsYXNzZXMuCiAgICAgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAg
IHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKCk7
CiAgICAgdm9pZCBoYW5kbGVTb3VyY2VBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwp
OworICAgIHZvaWQgaGFuZGxlQXN5bmNBdHRyaWJ1dGUoKTsKIAogcHJpdmF0ZToKICAgICBib29s
IGlnbm9yZXNMb2FkUmVxdWVzdCgpIGNvbnN0OwpAQCAtOTgsNiArMTAwLDggQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgOiAxOyAvLyBTYW1lIGFzICJUaGUgcGFy
c2VyIHdpbGwgaGFuZGxlIGV4ZWN1dGluZyB0aGUgc2NyaXB0LiIKICAgICBib29sIG1fcmVhZHlU
b0JlUGFyc2VyRXhlY3V0ZWQgOiAxOwogICAgIGJvb2wgbV93aWxsRXhlY3V0ZVdoZW5Eb2N1bWVu
dEZpbmlzaGVkUGFyc2luZyA6IDE7CisgICAgYm9vbCBtX2ZvcmNlQXN5bmMgOiAxOworICAgIGJv
b2wgbV93aWxsRXhlY3V0ZUluT3JkZXIgOiAxOwogICAgIFN0cmluZyBtX2NoYXJhY3RlckVuY29k
aW5nOwogICAgIFN0cmluZyBtX2ZhbGxiYWNrQ2hhcmFjdGVyRW5jb2Rpbmc7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCnNpbWlsYXJpdHkgaW5kZXggNjUlCnJlbmFtZSBm
cm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKcmVuYW1lIHRvIFNv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCmluZGV4IDI4YjFiMzEuLjcwNDgyNDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI0LDcgKzI0LDcgQEAK
ICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIu
aCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zNCwyMiArMzQsMjQgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1Bc3luY1NjcmlwdFJ1bm5lcjo6QXN5bmNTY3JpcHRSdW5uZXIoRG9jdW1l
bnQqIGRvY3VtZW50KQorU2NyaXB0UnVubmVyOjpTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3Vt
ZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKLSAgICAsIG1fdGltZXIodGhpcywgJkFz
eW5jU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKQorICAgICwgbV90aW1lcih0aGlzLCAmU2NyaXB0
UnVubmVyOjp0aW1lckZpcmVkKQogewogICAgIEFTU0VSVChkb2N1bWVudCk7CiB9CiAKLUFzeW5j
U2NyaXB0UnVubmVyOjp+QXN5bmNTY3JpcHRSdW5uZXIoKQorU2NyaXB0UnVubmVyOjp+U2NyaXB0
UnVubmVyKCkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1RvRXhlY3V0
ZVNvb24uc2l6ZSgpOyArK2kpCiAgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExvYWRFdmVu
dERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1RvRXhl
Y3V0ZUluT3JkZXIuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExv
YWRFdmVudERlbGF5Q291bnQoKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6ZXhlY3V0
ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2FjaGVkUmVzb3VyY2VI
YW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCit2b2lkIFNjcmlwdFJ1bm5lcjo6ZXhl
Y3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCiB7Ci0gICAgQVNTRVJUX0FSRyhz
Y3JpcHRFbGVtZW50LCBzY3JpcHRFbGVtZW50KTsKKyAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7
CiAKICAgICBFbGVtZW50KiBlbGVtZW50ID0gc2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpOwogICAg
IEFTU0VSVChlbGVtZW50KTsKQEAgLTYxLDI1ICs2Myw0NCBAQCB2b2lkIEFzeW5jU2NyaXB0UnVu
bmVyOjpleGVjdXRlU2NyaXB0U29vbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBDYWNo
ZWRSZQogICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotdm9pZCBBc3luY1Nj
cmlwdFJ1bm5lcjo6c3VzcGVuZCgpCit2b2lkIFNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JJ
bk9yZGVyRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqIHNjcmlwdEVsZW1lbnQsIENhY2hlZFJlc291
cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gY2FjaGVkU2NyaXB0KQoreworICAgIEFTU0VSVChzY3Jp
cHRFbGVtZW50KTsKKworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBzY3JpcHRFbGVtZW50LT5lbGVt
ZW50KCk7CisgICAgQVNTRVJUKGVsZW1lbnQpOworICAgIEFTU0VSVChlbGVtZW50LT5pbkRvY3Vt
ZW50KCkpOworCisgICAgbV9kb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgp
OworICAgIG1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuYXBwZW5kKFBlbmRpbmdTY3JpcHQoZWxl
bWVudCwgY2FjaGVkU2NyaXB0LmdldCgpKSk7Cit9CisKK3ZvaWQgU2NyaXB0UnVubmVyOjpzdXNw
ZW5kKCkKIHsKICAgICBtX3RpbWVyLnN0b3AoKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5l
cjo6cmVzdW1lKCkKK3ZvaWQgU2NyaXB0UnVubmVyOjpyZXN1bWUoKQogewogICAgIGlmIChoYXNQ
ZW5kaW5nU2NyaXB0cygpKQogICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAot
dm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6dGltZXJGaXJlZChUaW1lcjxBc3luY1NjcmlwdFJ1bm5l
cj4qIHRpbWVyKQordm9pZCBTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoVGltZXI8U2NyaXB0UnVu
bmVyPiogdGltZXIpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGlt
ZXIpOwogCiAgICAgUmVmUHRyPERvY3VtZW50PiBwcm90ZWN0KG1fZG9jdW1lbnQpOwotICAgIAor
CiAgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IHNjcmlwdHM7CiAgICAgc2NyaXB0cy5zd2FwKG1f
c2NyaXB0c1RvRXhlY3V0ZVNvb24pOworCisgICAgc2l6ZV90IG51bUluT3JkZXJTY3JpcHRzVG9F
eGVjdXRlID0gMDsKKyAgICBmb3IgKDsgbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUgPCBtX3Nj
cmlwdHNUb0V4ZWN1dGVJbk9yZGVyLnNpemUoKSAmJiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVy
W251bUluT3JkZXJTY3JpcHRzVG9FeGVjdXRlXS5jYWNoZWRTY3JpcHQoKS0+aXNMb2FkZWQoKTsg
KytudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZSkKKyAgICAgICAgc2NyaXB0cy5hcHBlbmQobV9z
Y3JpcHRzVG9FeGVjdXRlSW5PcmRlcltudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZV0pOworICAg
IGlmIChudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZSkKKyAgICAgICAgbV9zY3JpcHRzVG9FeGVj
dXRlSW5PcmRlci5yZW1vdmUoMCwgbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUpOworCiAgICAg
c2l6ZV90IHNpemUgPSBzY3JpcHRzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHNpemU7ICsraSkgewogICAgICAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCA9IHNjcmlw
dHNbaV0uY2FjaGVkU2NyaXB0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXN5
bmNTY3JpcHRSdW5uZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApzaW1p
bGFyaXR5IGluZGV4IDc3JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQXN5bmNTY3Jp
cHRSdW5uZXIuaApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCmlu
ZGV4IDZhNzUzMjMuLjFiMDlhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Bc3lu
Y1NjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApA
QCAtMjMsOCArMjMsOCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBBc3luY1Nj
cmlwdFJ1bm5lcl9oCi0jZGVmaW5lIEFzeW5jU2NyaXB0UnVubmVyX2gKKyNpZm5kZWYgU2NyaXB0
UnVubmVyX2gKKyNkZWZpbmUgU2NyaXB0UnVubmVyX2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTM4LDI2ICszOCwyOCBAQCBjbGFz
cyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFBlbmRpbmdTY3JpcHQ7CiBj
bGFzcyBTY3JpcHRFbGVtZW50OwotICAgIAotY2xhc3MgQXN5bmNTY3JpcHRSdW5uZXIgewotICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEFzeW5jU2NyaXB0UnVubmVyKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CisKK2NsYXNzIFNjcmlwdFJ1bm5lciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoU2NyaXB0UnVubmVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NPd25QdHI8QXN5bmNTY3JpcHRSdW5uZXI+IGNyZWF0ZShEb2N1bWVudCogZG9j
dW1lbnQpIHsgcmV0dXJuIG5ldyBBc3luY1NjcmlwdFJ1bm5lcihkb2N1bWVudCk7IH0KLSAgICB+
QXN5bmNTY3JpcHRSdW5uZXIoKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxTY3JpcHRSdW5uZXI+
IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIG5ldyBTY3JpcHRSdW5uZXIoZG9j
dW1lbnQpOyB9CisgICAgflNjcmlwdFJ1bm5lcigpOwogCiAgICAgdm9pZCBleGVjdXRlU2NyaXB0
U29vbihTY3JpcHRFbGVtZW50KiwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0Pik7
Ci0gICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0cygpIGNvbnN0IHsgcmV0dXJuICFtX3NjcmlwdHNU
b0V4ZWN1dGVTb29uLmlzRW1wdHkoKTsgfQorICAgIHZvaWQgcXVldWVTY3JpcHRGb3JJbk9yZGVy
RXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3Jp
cHQ+KTsKKyAgICBib29sIGhhc1BlbmRpbmdTY3JpcHRzKCkgY29uc3QgeyByZXR1cm4gIW1fc2Ny
aXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgpIHx8ICFtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVy
LmlzRW1wdHkoKTsgfQogICAgIHZvaWQgc3VzcGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CiAK
IHByaXZhdGU6Ci0gICAgQXN5bmNTY3JpcHRSdW5uZXIoRG9jdW1lbnQqKTsKKyAgICBTY3JpcHRS
dW5uZXIoRG9jdW1lbnQqKTsKIAotICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxBc3luY1Njcmlw
dFJ1bm5lcj4qKTsKKyAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8U2NyaXB0UnVubmVyPiopOwog
CiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1f
c2NyaXB0c1RvRXhlY3V0ZUluT3JkZXI7CiAgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1fc2Ny
aXB0c1RvRXhlY3V0ZVNvb247IC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBw
cy9jdXJyZW50LXdvcmsvI3NldC1vZi1zY3JpcHRzLXRoYXQtd2lsbC1leGVjdXRlLWFzLXNvb24t
YXMtcG9zc2libGUKLSAgICBUaW1lcjxBc3luY1NjcmlwdFJ1bm5lcj4gbV90aW1lcjsKKyAgICBU
aW1lcjxTY3JpcHRSdW5uZXI+IG1fdGltZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDhlNzA4ZDEuLmI1NmIzNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCkBAIC01OCw2ICs1OCwxMyBAQCB2b2lk
IEhUTUxTY3JpcHRFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIs
IE5vZGUqIGJlZm9yZUNoYW5nZQogICAgIEhUTUxFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY2hh
bmdlZEJ5UGFyc2VyLCBiZWZvcmVDaGFuZ2UsIGFmdGVyQ2hhbmdlLCBjaGlsZENvdW50RGVsdGEp
OwogfQogCit2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKEF0dHJpYnV0
ZSogYXR0ciwgYm9vbCBwcmVzZXJ2ZURlY2xzKQoreworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0g
YXN5bmNBdHRyKQorICAgICAgICBoYW5kbGVBc3luY0F0dHJpYnV0ZSgpOworICAgIEhUTUxFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGF0dHIsIHByZXNlcnZlRGVjbHMpOworfQorCiB2b2lkIEhU
TUxTY3JpcHRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7
CiAgICAgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUgPSBhdHRyLT5uYW1lKCk7CkBAIC0x
MDIsNiArMTA5LDE3IEBAIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnNldFRleHQoY29uc3QgU3Ry
aW5nICZ2YWx1ZSkKICAgICBhcHBlbmRDaGlsZChkb2N1bWVudCgpLT5jcmVhdGVUZXh0Tm9kZSh2
YWx1ZS5pbXBsKCkpLCBlYyk7CiB9CiAKK3ZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnNldEFzeW5j
KGJvb2wgYXN5bmMpCit7CisgICAgc2V0Qm9vbGVhbkF0dHJpYnV0ZShhc3luY0F0dHIsIGFzeW5j
KTsKKyAgICBoYW5kbGVBc3luY0F0dHJpYnV0ZSgpOworfQorCitib29sIEhUTUxTY3JpcHRFbGVt
ZW50Ojphc3luYygpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhc3RIYXNBdHRyaWJ1dGUoYXN5bmNB
dHRyKSB8fCBmb3JjZUFzeW5jKCk7Cit9CisKIEtVUkwgSFRNTFNjcmlwdEVsZW1lbnQ6OnNyYygp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZUF0dHJp
YnV0ZVZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4
IGVmZTZhNmEuLmNiZTcyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50
LmgKQEAgLTM4LDYgKzM4LDkgQEAgcHVibGljOgogCiAgICAgS1VSTCBzcmMoKSBjb25zdDsKIAor
ICAgIHZvaWQgc2V0QXN5bmMoYm9vbCk7CisgICAgYm9vbCBhc3luYygpIGNvbnN0OworCiBwcml2
YXRlOgogICAgIEhUTUxTY3JpcHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCosIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNlciwgYm9vbCBhbHJlYWR5U3RhcnRlZCk7CiAKQEAg
LTQ1LDYgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9j
dW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogICAgIHZp
cnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwg
Tm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRD
b3VudERlbHRhID0gMCk7CisgICAgdmlydHVhbCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoQXR0cmli
dXRlKiwgYm9vbCBwcmVzZXJ2ZURlY2xzID0gZmFsc2UpOwogCiAgICAgdmlydHVhbCBib29sIGlz
VVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNjcmlwdEVsZW1lbnQuaWRsCmluZGV4IDIwYjczMzEuLmZhNzk5Y2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCkBAIC0yNCw3ICsyNCw3IEBAIG1vZHVsZSBo
dG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0PWZvcl0gRE9NU3RyaW5nIGh0bWxGb3I7
CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGV2ZW50OwogICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBjaGFyc2V0OwotICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIGJvb2xlYW4gYXN5bmM7CisgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGFzeW5j
OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGVmZXI7CiAgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01TdHJpbmcgc3JjOwogICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyB0eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3Jv
dXBMb2FkRGVmZXJyZXIuY3BwCmluZGV4IGRlYTJjZDcuLmRmYmIyNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKQEAgLTIxLDExICsyMSwxMSBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cExvYWREZWZlcnJlci5o
IgogCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFBh
cnNlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUwLDcgKzUwLDcgQEAgUGFnZUdy
b3VwTG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXIoUGFnZSogcGFnZSwgYm9vbCBk
ZWZlclNlbGYpCiAgICAgICAgICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBvdGhlclBhZ2Ut
Pm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQo
KSkgewogICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c3VzcGVuZFNjcmlw
dGVkQW5pbWF0aW9uQ29udHJvbGxlckNhbGxiYWNrcygpOwogICAgICAgICAgICAgICAgICAgICBm
cmFtZS0+ZG9jdW1lbnQoKS0+c3VzcGVuZEFjdGl2ZURPTU9iamVjdHMoQWN0aXZlRE9NT2JqZWN0
OjpXaWxsU2hvd0RpYWxvZyk7Ci0gICAgICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgp
LT5hc3luY1NjcmlwdFJ1bm5lcigpLT5zdXNwZW5kKCk7CisgICAgICAgICAgICAgICAgICAgIGZy
YW1lLT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+c3VzcGVuZCgpOwogICAgICAgICAgICAg
ICAgICAgICBpZiAoRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IGZyYW1lLT5kb2N1bWVudCgpLT5w
YXJzZXIoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlci0+c3VzcGVuZFNjaGVkdWxl
ZFRhc2tzKCk7CiAgICAgICAgICAgICAgICAgfQpAQCAtNzMsNyArNzMsNyBAQCBQYWdlR3JvdXBM
b2FkRGVmZXJyZXI6On5QYWdlR3JvdXBMb2FkRGVmZXJyZXIoKQogICAgICAgICAgICAgZm9yIChG
cmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRy
ZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQo
KS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0cygpOwogICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1
bWVudCgpLT5yZXN1bWVTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXJDYWxsYmFja3MoKTsKLSAg
ICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+YXN5bmNTY3JpcHRSdW5uZXIoKS0+cmVz
dW1lKCk7CisgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnNjcmlwdFJ1bm5lcigp
LT5yZXN1bWUoKTsKICAgICAgICAgICAgICAgICBpZiAoRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9
IGZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZXIoKSkKICAgICAgICAgICAgICAgICAgICAgcGFyc2Vy
LT5yZXN1bWVTY2hlZHVsZWRUYXNrcygpOwogICAgICAgICAgICAgfQo=
</data>
<flag name="commit-queue"
          id="75244"
          type_id="3"
          status="-"
          setter="simonjam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84344</attachid>
            <date>2011-03-01 18:20:59 -0800</date>
            <delta_ts>2011-03-04 11:01:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>async3.patch</filename>
            <type>text/plain</type>
            <size>39401</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZDE3YzE3Li4zZmUyNTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMt
MDEgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2
aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNj
cmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUw
MTE1CisKKyAgICAgICAgRHluYW1pY2FsbHkgYWRkZWQgc2NyaXB0cyB3aXRoIGFzeW5jPWZhbHNl
IHdpbGwgbG9hZCBpbiBwYXJhbGxlbCwgYnV0IGV4ZWN1dGUgaW4gb3JkZXIuCisgICAgICAgIFNl
ZTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0
aXBhZ2Uvc2NyaXB0aW5nLTEuaHRtbCNmb3JjZS1hc3luYworCisgICAgICAgICogZmFzdC9kb20v
SFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0OiBBZGRlZCB0
ZXN0IGNhc2VzIGZvciBmb3JjZUFzeW5jLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWw6IERpdHRvLgorICAgICAgICAqIGh0dHAvdGVz
dHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1
dGUtaW4tb3JkZXIuaHRtbDogQWRkZWQuCisKIDIwMTEtMDMtMDEgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hh
dHNreS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50
L3NjcmlwdC1hc3luYy1hdHRyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLWV4cGVjdGVkLnR4dAppbmRleCA3Yjhi
ZjRkLi5lODY3ZjQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0
RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0
CkBAIC04LDggKzgsMTQgQEAgUEFTUyBpc0FzeW5jKCdzMScpIGlzIHRydWUKIFBBU1MgaXNBc3lu
YygnczInKSBpcyB0cnVlCiBQQVNTIGlzQXN5bmMoJ3MzJykgaXMgdHJ1ZQogUEFTUyBpc0FzeW5j
KCdzNCcpIGlzIHRydWUKK1BBU1MgaXNBc3luYygnczUnKSBpcyB0cnVlCitQQVNTIGlzQXN5bmMo
J3M2JykgaXMgdHJ1ZQorUEFTUyBpc0FzeW5jKCdzNycpIGlzIHRydWUKK1BBU1MgaXNBc3luYygn
czgnKSBpcyBmYWxzZQogUEFTUyBpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyh0cnVl
KSBpcyB0cnVlCiBQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKGZhbHNlKSBp
cyBmYWxzZQorUEFTUyBpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYygiYXN5bmMiKSBp
cyB0cnVlCitQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKG51bGwpIGlzIHRy
dWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFz
eW5jLWF0dHIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3Nj
cmlwdC1hc3luYy1hdHRyLmh0bWwKaW5kZXggNGEzZjNhZi4uYjBlNDA2YSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQt
YXN5bmMtYXR0ci5odG1sCkBAIC0xMiwxMSArMTIsMTUgQEAKIDxzY3JpcHQgaWQ9InMyIiBzcmM9
Imlnbm9yZWQuanMiIGFzeW5jPSJhc3luYyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJzMyIgc3Jj
PSJpZ25vcmVkLmpzIiBhc3luYz0iQVNZTkMiPjwvc2NyaXB0PgogPHNjcmlwdCBpZD0iczQiIHNy
Yz0iaWdub3JlZC5qcyIgYXN5bmM9InRydWUiPjwvc2NyaXB0PgorPHNjcmlwdCBpZD0iczUiIHNy
Yz0iaWdub3JlZC5qcyIgYXN5bmM9ImZhbHNlIj48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM2Ij48
L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM3IiBhc3luYz48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM4
IiBhc3luYz48L3NjcmlwdD4KIAogPHNjcmlwdD4KIGRlc2NyaXB0aW9uKCdUaGlzIHRlc3QgY2hl
Y2tzIGZvciBwcm9wZXIgcGFyc2luZyBvZiB0aGUgYXN5bmMgYXR0cmlidXRlIG9uIEhUTUwgc2Ny
aXB0IHRhZ3MuJyk7CiAKLXZhciBuZXh0U2NyaXB0SUQgPSAwOwordmFyIG5leHRTY3JpcHRJRCA9
IDk7CiAKIGZ1bmN0aW9uIGlzQXN5bmMoaWQpCiB7CkBAIC0yOSwxOSArMzMsMjcgQEAgZnVuY3Rp
b24gaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMoYXN5bmMpCiAgICAgdmFyIHNjcmlw
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwogICAgIHNjcmlwdC5pZCA9IGlk
OwogICAgIHNjcmlwdC5zcmMgPSAicmVzb3VyY2VzL3NjcmlwdC1sb2FkLmpzIjsKLSAgICBpZiAo
YXN5bmMpCi0gICAgICAgIHNjcmlwdC5hc3luYyA9ICJhc3luYyI7CisgICAgaWYgKGFzeW5jICE9
IG51bGwpCisgICAgICAgIHNjcmlwdC5hc3luYyA9IGFzeW5jOwogICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoc2NyaXB0KTsKICAgICByZXR1
cm4gaXNBc3luYyhpZCk7CiB9CiAKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzOCIpLnJlbW92
ZUF0dHJpYnV0ZSgiYXN5bmMiKTsKKwogc2hvdWxkQmVGYWxzZSgiaXNBc3luYygnczAnKSIpOwog
c2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzMScpIik7CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3My
JykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNBc3luYygnczMnKSIpOwogc2hvdWxkQmVUcnVlKCJpc0Fz
eW5jKCdzNCcpIik7CitzaG91bGRCZVRydWUoImlzQXN5bmMoJ3M1JykiKTsKK3Nob3VsZEJlVHJ1
ZSgiaXNBc3luYygnczYnKSIpOworc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzNycpIik7CitzaG91
bGRCZUZhbHNlKCJpc0FzeW5jKCdzOCcpIik7CiBzaG91bGRCZVRydWUoImlzRHluYW1pY2FsbHlJ
bnNlcnRlZFNjcmlwdEFzeW5jKHRydWUpIik7CiBzaG91bGRCZUZhbHNlKCJpc0R5bmFtaWNhbGx5
SW5zZXJ0ZWRTY3JpcHRBc3luYyhmYWxzZSkiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNEeW5hbWljYWxs
eUluc2VydGVkU2NyaXB0QXN5bmMoXCJhc3luY1wiKSIpOworc2hvdWxkQmVUcnVlKCJpc0R5bmFt
aWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyhudWxsKSIpOwogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4t
b3JkZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNj
OGQxODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2Ny
aXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4
IEBACitBdHRlbXB0cyB0byBjaGVjayB0aGF0IGFzeW5jPWZhbHNlIGVuZm9yY2VzIGV4ZWN1dGlv
biBvcmRlciBkeW5hbWljYWxseSBpbnNlcnRlZCBzY3JpcHRzLiBTZWU6IGh0dHA6Ly93aWtpLndo
YXR3Zy5vcmcvd2lraS9EeW5hbWljX1NjcmlwdF9FeGVjdXRpb25fT3JkZXIKK3Nsb3dBc3luYwor
YXN5bmMKK2xvYWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFz
eW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi43NzczZmQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIu
aHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RU
RCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9qcy10ZXN0cy1yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0iZGVidWcoJ2xvYWQnKTtmaW5pc2hKU1Rlc3QoKTsiPgorQXR0
ZW1wdHMgdG8gY2hlY2sgdGhhdCBhc3luYz1mYWxzZSBlbmZvcmNlcyBleGVjdXRpb24gb3JkZXIg
ZHluYW1pY2FsbHkgaW5zZXJ0ZWQgc2NyaXB0cy4KK1NlZTogaHR0cDovL3dpa2kud2hhdHdnLm9y
Zy93aWtpL0R5bmFtaWNfU2NyaXB0X0V4ZWN1dGlvbl9PcmRlcgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgordmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCitzbG93bHlfbG9h
ZGVkX3NjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworc2xvd2x5X2xv
YWRlZF9zY3JpcHQuYXN5bmMgPSBmYWxzZTsKK3Nsb3dseV9sb2FkZWRfc2NyaXB0LnNyYyA9ICJy
ZXNvdXJjZXMvc2xvdy1hc3luYy1zY3JpcHQuY2dpIjsKK2RvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoc2xvd2x5X2xvYWRlZF9zY3JpcHQpOworCitx
dWlja2x5X2xvYWRlZF9zY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsK
K3F1aWNrbHlfbG9hZGVkX3NjcmlwdC5hc3luYyA9IGZhbHNlOworcXVpY2tseV9sb2FkZWRfc2Ny
aXB0LnNyYyA9ICJyZXNvdXJjZXMvYXN5bmMtc2NyaXB0LmpzIjsKK2RvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQocXVpY2tseV9sb2FkZWRfc2NyaXB0
KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tayBi
L1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKaW5kZXggODQ4ZDQzOC4uMGM1MjM1NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRy
b2lkLm1rCkBAIC05NCw3ICs5NCw2IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19G
SUxFUykgXAogCWNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAogCVwKIAlkb20vQWN0
aXZlRE9NT2JqZWN0LmNwcCBcCi0JZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcCBcCiAJZG9tL0F0
dHIuY3BwIFwKIAlkb20vQXR0cmlidXRlLmNwcCBcCiAJZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2
ZW50LmNwcCBcCkBAIC0xNzAsNiArMTY5LDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxf
U1JDX0ZJTEVTKSBcCiAJZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAgXAogCWRvbS9T
Y3JpcHRFbGVtZW50LmNwcCBcCiAJZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIFwKKwlk
b20vU2NyaXB0UnVubmVyLmNwcCBcCiAJZG9tL1NlbGVjdEVsZW1lbnQuY3BwIFwKIAlkb20vU2Vs
ZWN0b3JOb2RlTGlzdC5jcHAgXAogCWRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IGMwMjI2NWMuLmM2NDcyNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBA
IC02NzgsNyArNjc4LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9XZWJLaXRDU1NU
cmFuc2Zvcm1WYWx1ZS5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwCi0gICAgZG9t
L0FzeW5jU2NyaXB0UnVubmVyLmNwcAogICAgIGRvbS9BdHRyLmNwcAogICAgIGRvbS9BdHRyaWJ1
dGUuY3BwCiAgICAgZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcApAQCAtNzU5LDYgKzc1
OCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyLmNwcAogICAgIGRvbS9TY3JpcHRFbGVtZW50LmNwcAogICAgIGRvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcAorICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwCiAgICAgZG9tL1NlbGVjdEVs
ZW1lbnQuY3BwCiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwCiAgICAgZG9tL1NwYWNlU3Bs
aXRTdHJpbmcuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjk1NmE2NS4uMThhNDE1NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDU3IEBACisyMDExLTAzLTAxICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZWVkIGRpZmZlcmVudCBiZWhhdmlvciBmb3IgZW5zdXJpbmcgZXhlY3V0aW9uIG9yZGVy
IG9mIGR5bmFtaWNhbGx5IGxvYWRlZCBzY3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDExNQorCisgICAgICAgIER5bmFtaWNhbGx5IGFkZGVk
IHNjcmlwdHMgd2l0aCBhc3luYz1mYWxzZSB3aWxsIGxvYWQgaW4gcGFyYWxsZWwsIGJ1dCBleGVj
dXRlIGluIG9yZGVyLgorICAgICAgICBTZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93
ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3NjcmlwdGluZy0xLmh0bWwjZm9yY2UtYXN5
bmMKKworICAgICAgICBUZXN0czogZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFz
eW5jLWF0dHIuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3lu
Yy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXIuaHRtbAorCisgICAgICAgICogQW5kcm9pZC5tazogUmVu
YW1lIEFzeW5jU2NyaXB0UnVubmVyIC0+IFNjcmlwdFJ1bm5lci4KKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDogRGl0dG8uCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IERpdHRvLgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGRv
bS9ET01BbGxJbk9uZS5jcHA6IERpdHRvLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOiBEaXR0by4KKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzY3JpcHRSdW5uZXIpOiBEaXR0by4K
KyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRFbGVtZW50OjpTY3JpcHRFbGVtZW50KTogQWRkZWQgZm9yY2VBc3luYyBhbmQgd2lsbEV4ZWN1
dGVJbk9yZGVyLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6aGFuZGxlQXN5bmNB
dHRyaWJ1dGUpOiBDYWxsZWQgYnkgSFRNTFNjcmlwdEVsZW1lbnQgd2hlbiBhc3luYyBhdHRyaWJ1
dGUgY2hhbmdlcy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3Jp
cHQpOiBBZGRlZCBzdXBwb3J0IGZvciBmb3JjZUFzeW5jLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQpOiBUZWxsIFNjcmlwdFJ1bm5lciB0byBleGVjdXRl
IGluIG9yZGVyIGlmIG5lZWRlZC4KKyAgICAgICAgKiBkb20vU2NyaXB0RWxlbWVudC5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVudDo6Zm9yY2VBc3luYyk6IEFkZGVkLgorICAgICAg
ICAqIGRvbS9TY3JpcHRSdW5uZXIuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9t
L0FzeW5jU2NyaXB0UnVubmVyLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6
U2NyaXB0UnVubmVyKTogQWRkZWQgaW4tb3JkZXIgc2NyaXB0IHF1ZXVlLgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0UnVubmVyOjp+U2NyaXB0UnVubmVyKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRSdW5uZXI6OmV4ZWN1dGVTY3JpcHRTb29uKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JJbk9yZGVyRXhlY3V0aW9uKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnN1c3BlbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2NyaXB0UnVubmVyOjpyZXN1bWUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVy
Ojp0aW1lckZpcmVkKTogRXhlY3V0ZSBpbi1vcmRlciBzY3JpcHRzIGlmIHJlYWR5LgorICAgICAg
ICAqIGRvbS9TY3JpcHRSdW5uZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9B
c3luY1NjcmlwdFJ1bm5lci5oLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpoYXNQZW5kaW5nU2NyaXB0cyk6
IENoZWNrIGZvciBpbi1vcmRlciBzY3JpcHRzIHRvby4KKyAgICAgICAgKiBodG1sL0hUTUxTY3Jp
cHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKTogTm90aWZ5IFNjcmlwdEVsZW1lbnQgd2hlbiBhc3luYyBjaGFuZ2VzLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OnNldEFzeW5jKTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6YXN5bmMpOiBJbmNsdWRlIGZvcmNl
QXN5bmMgaW4gY2FsY3VsYXRpb24uCisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsOiBSZW1vdmVkIFJlZmxlY3Qg
ZnJvbSBhc3luYyBmb3IgY3VzdG9tIGJlaGF2aW9yLgorICAgICAgICAqIHBhZ2UvUGFnZUdyb3Vw
TG9hZERlZmVycmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cExvYWREZWZlcnJl
cjo6UGFnZUdyb3VwTG9hZERlZmVycmVyKTogUmVuYW1lIEFzeW5jU2NyaXB0UnVubmVyIC0+IFNj
cmlwdFJ1bm5lci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cExvYWREZWZlcnJlcjo6flBh
Z2VHcm91cExvYWREZWZlcnJlcik6IERpdHRvLgorCiAyMDExLTAzLTAxICBJbHlhIFRpa2hvbm92
c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBG
ZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA3ZWEyZTUxLi44MzA3YTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQpAQCAtMTEwMiw4ICsxMTAyLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9B
Y3RpdmVET01PYmplY3QuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVy
LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9BdHRyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuaCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0F0dHJpYnV0ZS5jcHAgXApAQCAtMTI5Myw2ICsxMjkxLDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggXAorCVNvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVu
bmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NlbGVj
dG9yTm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBlMzQwNDQ0Li42NDVmOGM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0xMTQ2LDggKzExNDYsNiBAQAogICAgICAgICAgICAgJ2RvbS9k
ZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmgnLAogICAgICAgICAgICAgJ2RvbS9B
Y3RpdmVET01PYmplY3QuY3BwJywKICAgICAgICAgICAgICdkb20vQWN0aXZlRE9NT2JqZWN0Lmgn
LAotICAgICAgICAgICAgJ2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAnLAotICAgICAgICAgICAg
J2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oJywKICAgICAgICAgICAgICdkb20vQXR0ci5jcHAnLAog
ICAgICAgICAgICAgJ2RvbS9BdHRyLmgnLAogICAgICAgICAgICAgJ2RvbS9BdHRyaWJ1dGUuY3Bw
JywKQEAgLTEzMzgsNiArMTMzNiw4IEBACiAgICAgICAgICAgICAnZG9tL1NjcmlwdEVsZW1lbnQu
aCcsCiAgICAgICAgICAgICAnZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwJywKICAgICAg
ICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKKyAgICAgICAgICAgICdkb20v
U2NyaXB0UnVubmVyLmNwcCcsCisgICAgICAgICAgICAnZG9tL1NjcmlwdFJ1bm5lci5oJywKICAg
ICAgICAgICAgICdkb20vU2VsZWN0RWxlbWVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TZWxl
Y3RFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvCmluZGV4IDQ1OGQ2YTIuLmFkNDFjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00MzQs
NyArNDM0LDYgQEAgU09VUkNFUyArPSBcCiAgICAgY3NzL1dlYktpdENTU01hdHJpeC5jcHAgXAog
ICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAogICAgIGRvbS9BY3RpdmVET01P
YmplY3QuY3BwIFwKLSAgICBkb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwIFwKICAgICBkb20vQXR0
ci5jcHAgXAogICAgIGRvbS9BdHRyaWJ1dGUuY3BwIFwKICAgICBkb20vQmVmb3JlUHJvY2Vzc0V2
ZW50LmNwcCBcCkBAIC01MTgsNiArNTE3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1Njcmlw
dGFibGVEb2N1bWVudFBhcnNlci5jcHAgXAogICAgIGRvbS9TY3JpcHRFbGVtZW50LmNwcCBcCiAg
ICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIFwKKyAgICBkb20vU2NyaXB0UnVubmVy
LmNwcCBcCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuY3BwIFwKICAgICBkb20vU2VsZWN0b3JOb2Rl
TGlzdC5jcHAgXAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDQ2Y2NjMmMuLmViYTczYjAg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00
MTIzNCw2MiArNDEyMzQsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVs
YXRpdmVQYXRoPSIuLlxkb21cQXN5bmNTY3JpcHRSdW5uZXIuY3BwIgotCQkJCT4KLQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25m
aWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1
cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0J
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKLQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
LQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxBc3luY1Nj
cmlwdFJ1bm5lci5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxkb21cQXRvbWljU3RyaW5nTGlzdC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTQ1
NzgyLDYgKzQ1NzI2LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxTY3JpcHRSdW5uZXIuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTY3JpcHRSdW5uZXIu
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9t
XFNlbGVjdEVsZW1lbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAy
YmE2OGY2Li4yOWRiMjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjk1LDggKzI2OTUsOCBAQAogCQk4OUQwOERBMTEyMjI4
NDUxMDAxMjQxREYgLyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4OUQwOEQ5RTEyMjI4NDUxMDAxMjQxREYg
LyogQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmggKi87IH07CiAJCThBMTJFMzVEMTFGQTMzMjgw
MDI1ODM2QSAvKiBEb2N1bWVudExvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVu
dExvYWRUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk4QTMwOUM5RjEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVsSW5jcmVtZW50
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBMzA5
QzlFMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oICovOyB9Owot
CQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURFMTIwN0JCQTUw
MDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCThBNDEzQUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3lu
Y1NjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3Bw
ICovOyB9OworCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTQxM0FERTEyMDdC
QkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOEE0MTNBRTExMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlw
dFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCAqLzsgfTsKIAkJ
OEE3Q0M5NkIxMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBN0NDOTZBMTIwNzZENzMwMDFENDU4
OCAvKiBQZW5kaW5nU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOEE3Q0M5NzAxMjA3NkY4QTAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE3Q0M5
NkYxMjA3NkY4QTAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuY3BwICovOyB9OwogCQk4QTgxQkY4
NTExRENGRDkwMDBEQTJCOTggLyogUmVzb3VyY2VMb2FkVGltaW5nLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QTgxQkY4NDExRENGRDkwMDBEQTJCOTgg
LyogUmVzb3VyY2VMb2FkVGltaW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTkxMjQsOCArOTEyNCw4IEBACiAJCTg5RDA4RDlFMTIyMjg0NTEw
MDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQXN5bmNGaWxlU3lzdGVtQ2FsbGJhY2tzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCThBMTJFMzVDMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRU
aW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRMb2FkVGlt
aW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBMzA5QzlFMTIzOTUwQkUwMENC
OTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oOyBwYXRoID0gcGFyc2VyL05lc3Rp
bmdMZXZlbEluY3JlbWVudGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCThBNDEz
QURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY1NjcmlwdFJ1bm5lci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5u
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXN5bmNTY3JpcHRS
dW5uZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4QTQxM0FERTEyMDdCQkE1
MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcmlwdFJ1bm5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4QTQxM0FE
RjEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdFJ1bm5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCThBN0NDOTZBMTIwNzZENzMwMDFENDU4OCAvKiBQZW5kaW5nU2NyaXB0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlbmRpbmdTY3JpcHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE3Q0M5NkYxMjA3NkY4QTAwMUQ0NTg4IC8qIFBlbmRpbmdT
Y3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVuZGluZ1Nj
cmlwdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThBODFCRjg0MTFEQ0ZEOTAw
MERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVzb3VyY2VMb2FkVGltaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xODkxNyw4ICsxODkxNyw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlFMUM0REU2RDBF
QTc1QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmNwcCAqLywKIAkJCQlFMUM0REU2ODBF
QTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmggKi8sCi0JCQkJOEE0MTNBREYxMjA3
QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCAqLywKLQkJCQk4QTQxM0FERTEy
MDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuaCAqLywKIAkJCQlBOEM0QTdGQzA5
RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5jcHAgKi8sCiAJCQkJQThDNEE3RkIwOUQ1NjMyNzAwMDNB
QzhEIC8qIEF0dHIuaCAqLywKIAkJCQk5M0VFQzFFNTA5QzI4Nzc3MDBDNTE1RDEgLyogQXR0ci5p
ZGwgKi8sCkBAIC0xOTE1Niw2ICsxOTE1NCw4IEBACiAJCQkJMDhBNDg0NzYwRTUyNzJDNTAwQzNG
RTc2IC8qIFNjcmlwdEVsZW1lbnQuaCAqLywKIAkJCQlFMTFDOURBRjBFQjM2OTk1MDBFNDA5REIg
LyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgKi8sCiAJCQkJRTExQzlEOUEwRUIzNjgxMjAw
RTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCAqLywKKwkJCQk4QTQxM0FERjEyMDdC
QkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCAqLywKKwkJCQk4QTQxM0FERTEyMDdCQkE1
MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggKi8sCiAJCQkJMDg0QUVCRTIwRkI1MDVGQTAwMzg0
ODNFIC8qIFNlbGVjdEVsZW1lbnQuY3BwICovLAogCQkJCTA4NEFFQkUzMEZCNTA1RkEwMDM4NDgz
RSAvKiBTZWxlY3RFbGVtZW50LmggKi8sCiAJCQkJQkM3RkE2ODAwRDFGMTY3OTAwREIyMkE5IC8q
IFNlbGVjdG9yTm9kZUxpc3QuY3BwICovLApAQCAtMTk1MTEsNyArMTk1MTEsNiBAQAogCQkJCTk3
NkQ2Qzc3MTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVXcml0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk3NkQ2QzkzMTIyQjhBM0QwMDFGRDFGNyAvKiBBc3luY0ZpbGVXcml0ZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIwMTQ5RTdFMTFBNEIyMTUwMDE5NkE3QiAvKiBBc3luY0lt
YWdlUmVzaXplci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOEE0MTNBRTAxMjA3QkJBNTAwODIwMTZF
IC8qIEFzeW5jU2NyaXB0UnVubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M2MUYwMTEyMDk1
Qzg3MDA3QTNDNjcgLyogQXRvbWljU3RyaW5nS2V5ZWRNUlVDYWNoZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThDNEE4MEQwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4QzRBODBCMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyaWJ1dGUuaCBpbiBIZWFkZXJzICov
LApAQCAtMjE4ODQsNiArMjE4ODMsNyBAQAogCQkJCTlGNzIzMDRGMTExODRCNDEwMEFEMDEyNiAv
KiBTY3JpcHRQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5RkEzN0VFNDExNzJGQzgwMDBD
NENENTUgLyogU2NyaXB0UHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTlGNzIzMDUx
MTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OEE0MTNBRTAxMjA3QkJBNTAwODIwMTZFIC8qIFNjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM0Q0MxMEEwRURCMjIzOTAwQTY1OEYyIC8qIFNjcmlwdFNvdXJjZUNvZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNFNTRGRDM4MTAxNkQ5QTYwMDhCNDRDOCAvKiBTY3JpcHRTb3VyY2VQ
cm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFDNzYwQjEwRURFMDNEMzAwQzE2NTVGIC8q
IFNjcmlwdFN0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTIyODE3LDcgKzIyODE3LDYgQEAKIAkJ
CQk0OUVFQ0RERjEwNTAzQzI0MDAwOTlGQUIgLyogQXJyYXlCdWZmZXJWaWV3LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg5RDA4RDlGMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW0u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjAxNDlFN0QxMUE0QjIxNTAwMTk2QTdCIC8qIEFzeW5j
SW1hZ2VSZXNpemVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCThBNDEzQUUxMTIwN0JCQTUwMDgy
MDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEM0QTgw
RTA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEM0QTgw
QzA5RDU2MzI3MDAwM0FDOEQgLyogQXR0cmlidXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZE
MzE1RkY2MTJCMDI2NzYwMEMxQTM1OSAvKiBBdWRpb0Jhc2ljUHJvY2Vzc29yTm9kZS5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTI0NjUzLDYgKzI0NjUyLDcgQEAKIAkJCQk0MUYwNjZFNTBGNjRCQ0Y2
MDBBMDdFQUMgLyogU2NyaXB0T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzM0YwMjgy
MTIwOTQ3RjIwMEU1NzQzQSAvKiBTY3JpcHRQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTlGNzIzMDUwMTExODRCNDEwMEFEMDEyNiAvKiBTY3JpcHRQcm9maWxlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTQxMjdENTM3MEY4QUFCMUQwMEU0MjRGNSAvKiBTY3JpcHRTdGF0
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzRDQzBFMTBFRDM5RDZGMDBBNjU4RjIgLyogU2Ny
aXB0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4QUUzNEUxMkVBMDk2QTAwRUIzQUU2
IC8qIFNjcm9sbGFibGVBcmVhLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJ
bk9uZS5jcHAKaW5kZXggYzg4YWVjZi4uMDhhNzY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5P
bmUuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAvLyBUaGlzIGFsbC1pbi1vbmUgY3BwIGZpbGUgY3V0
cyBkb3duIG9uIHRlbXBsYXRlIGJsb2F0IHRvIGFsbG93IHVzIHRvIGJ1aWxkIG91ciBXaW5kb3dz
IHJlbGVhc2UgYnVpbGQuCiAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuY3BwIgotI2luY2x1
ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmNwcCIKICNpbmNsdWRlICJBdHRyLmNwcCIKICNpbmNsdWRl
ICJBdHRyaWJ1dGUuY3BwIgogI2luY2x1ZGUgIkJlZm9yZVByb2Nlc3NFdmVudC5jcHAiCkBAIC0x
MDQsNiArMTAzLDcgQEAKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmNwcCIKICNpbmNsdWRl
ICJTY3JpcHRFbGVtZW50LmNwcCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuY3BwIgogI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1
bWVudFBhcnNlci5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0RWxlbWVudC5jcHAiCiAjaW5jbHVkZSAi
U2VsZWN0b3JOb2RlTGlzdC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA1Nzc3YjE1
Li41ZGJjOGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKIAog
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBbmltYXRpb25Db250cm9sbGVy
LmgiCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJBdHRyLmgiCiAj
aW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQ0RBVEFTZWN0aW9uLmgiCkBAIC0xMjUs
NiArMTI0LDcgQEAKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKKyNpbmNsdWRl
ICJTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUg
IlNlZ21lbnRlZFN0cmluZy5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKQEAg
LTM5MCw3ICszOTAsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBL
VVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgLCBtX3N0YXJ0VGltZShj
dXJyZW50VGltZSgpKQogICAgICwgbV9vdmVyTWluaW11bUxheW91dFRocmVzaG9sZChmYWxzZSkK
ICAgICAsIG1fZXh0cmFMYXlvdXREZWxheSgwKQotICAgICwgbV9hc3luY1NjcmlwdFJ1bm5lcihB
c3luY1NjcmlwdFJ1bm5lcjo6Y3JlYXRlKHRoaXMpKQorICAgICwgbV9zY3JpcHRSdW5uZXIoU2Ny
aXB0UnVubmVyOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3htbFZlcnNpb24oIjEuMCIpCiAgICAg
LCBtX3htbFN0YW5kYWxvbmUoZmFsc2UpCiAgICAgLCBtX3NhdmVkUmVuZGVyZXIoMCkKQEAgLTU2
MCw3ICs1NjAsNyBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKICAgICBBU1NFUlQobV9yYW5nZXMu
aXNFbXB0eSgpKTsKICAgICBBU1NFUlQoIW1fc3R5bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpKTsK
IAotICAgIG1fYXN5bmNTY3JpcHRSdW5uZXIuY2xlYXIoKTsKKyAgICBtX3NjcmlwdFJ1bm5lci5j
bGVhcigpOwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAppbmRleCAwODQzOGQ5Li41NzViYjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNTEs
NyArNTEsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEFzeW5jU2NyaXB0UnVu
bmVyOwogY2xhc3MgQXR0cjsKIGNsYXNzIEFYT2JqZWN0Q2FjaGU7CiBjbGFzcyBDREFUQVNlY3Rp
b247CkBAIC0xMTQsNiArMTEzLDcgQEAgY2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFJlbmRlckZ1
bGxTY3JlZW47CiBjbGFzcyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXI7CiBjbGFzcyBTY3JpcHRF
bGVtZW50RGF0YTsKK2NsYXNzIFNjcmlwdFJ1bm5lcjsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwog
Y2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU2VnbWVudGVkU3RyaW5nOwpAQCAt
OTAwLDcgKzkwMCw3IEBAIHB1YmxpYzoKIAogICAgIGludCBkb2NJRCgpIGNvbnN0IHsgcmV0dXJu
IG1fZG9jSUQ7IH0KICAgICAKLSAgICBBc3luY1NjcmlwdFJ1bm5lciogYXN5bmNTY3JpcHRSdW5u
ZXIoKSB7IHJldHVybiBtX2FzeW5jU2NyaXB0UnVubmVyLmdldCgpOyB9CisgICAgU2NyaXB0UnVu
bmVyKiBzY3JpcHRSdW5uZXIoKSB7IHJldHVybiBtX3NjcmlwdFJ1bm5lci5nZXQoKTsgfQogCiAj
aWYgRU5BQkxFKFhTTFQpCiAgICAgdm9pZCBhcHBseVhTTFRyYW5zZm9ybShQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24qIHBpKTsKQEAgLTEzMDgsNyArMTMwOCw3IEBAIHByaXZhdGU6CiAgICAgLy8gcG9p
bnRzIGR1cmluZyB0aGUgbGlmZXRpbWUgb2YgdGhlIERvY3VtZW50LgogICAgIGludCBtX2V4dHJh
TGF5b3V0RGVsYXk7CiAgICAgCi0gICAgT3duUHRyPEFzeW5jU2NyaXB0UnVubmVyPiBtX2FzeW5j
U2NyaXB0UnVubmVyOworICAgIE93blB0cjxTY3JpcHRSdW5uZXI+IG1fc2NyaXB0UnVubmVyOwog
CiAjaWYgRU5BQkxFKFhTTFQpCiAgICAgT3duUHRyPFRyYW5zZm9ybVNvdXJjZT4gbV90cmFuc2Zv
cm1Tb3VyY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggM2JiYTlhMC4u
ZTM3NTdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtMjQsNyArMjQs
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuaCIKIAot
I2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkU2NyaXB0Lmgi
CiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgpAQCAtMzcsNiArMzYsNyBAQAogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlNj
cmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJT
Y3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC02MSw2ICs2MSw4IEBAIFNj
cmlwdEVsZW1lbnQ6OlNjcmlwdEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgYm9vbCBwYXJzZXJJ
bnNlcnRlZCwgYm9vbCBhbHJlYWR5CiAgICAgLCBtX3dpbGxCZVBhcnNlckV4ZWN1dGVkKGZhbHNl
KQogICAgICwgbV9yZWFkeVRvQmVQYXJzZXJFeGVjdXRlZChmYWxzZSkKICAgICAsIG1fd2lsbEV4
ZWN1dGVXaGVuRG9jdW1lbnRGaW5pc2hlZFBhcnNpbmcoZmFsc2UpCisgICAgLCBtX2ZvcmNlQXN5
bmMoIXBhcnNlckluc2VydGVkKQorICAgICwgbV93aWxsRXhlY3V0ZUluT3JkZXIoZmFsc2UpCiB7
CiAgICAgQVNTRVJUKG1fZWxlbWVudCk7CiB9CkBAIC05Niw2ICs5OCwxMSBAQCB2b2lkIFNjcmlw
dEVsZW1lbnQ6OmhhbmRsZVNvdXJjZUF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHNvdXJjZVVybCkK
ICAgICBwcmVwYXJlU2NyaXB0KCk7IC8vIEZJWE1FOiBQcm92aWRlIGEgcmVhbCBzdGFydGluZyBs
aW5lIG51bWJlciBoZXJlLgogfQogCit2b2lkIFNjcmlwdEVsZW1lbnQ6OmhhbmRsZUFzeW5jQXR0
cmlidXRlKCkKK3sKKyAgICBtX2ZvcmNlQXN5bmMgPSBmYWxzZTsKK30KKwogLy8gSGVscGVyIGZ1
bmN0aW9uCiBzdGF0aWMgYm9vbCBpc0xlZ2FjeVN1cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZShj
b25zdCBTdHJpbmcmIGxhbmd1YWdlKQogewpAQCAtMTU5LDcgKzE2Niw4IEBAIGJvb2wgU2NyaXB0
RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24xJiBzY3JpcHRTdGFydFBv
c2l0aW9uLCBMZWdhCiAgICAgfSBlbHNlCiAgICAgICAgIHdhc1BhcnNlckluc2VydGVkID0gZmFs
c2U7CiAKLSAgICAvLyBGSVhNRTogSFRNTDUgc3BlYyBzYXlzIHdlIHNob3VsZCBzZXQgZm9yY2VB
c3luYy4KKyAgICBpZiAod2FzUGFyc2VySW5zZXJ0ZWQgJiYgIWFzeW5jQXR0cmlidXRlVmFsdWUo
KSkKKyAgICAgICAgbV9mb3JjZUFzeW5jID0gdHJ1ZTsKIAogICAgIC8vIEZJWE1FOiBIVE1MNSBz
cGVjIHNheXMgd2Ugc2hvdWxkIGNoZWNrIHRoYXQgYWxsIGNoaWxkcmVuIGFyZSBlaXRoZXIgY29t
bWVudHMgb3IgZW1wdHkgdGV4dCBub2Rlcy4KICAgICBpZiAoIWhhc1NvdXJjZUF0dHJpYnV0ZSgp
ICYmICFtX2VsZW1lbnQtPmZpcnN0Q2hpbGQoKSkKQEAgLTE3MSw4ICsxNzksMTAgQEAgYm9vbCBT
Y3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbjEmIHNjcmlwdFN0
YXJ0UG9zaXRpb24sIExlZ2EKICAgICBpZiAoIWlzU2NyaXB0VHlwZVN1cHBvcnRlZChzdXBwb3J0
TGVnYWN5VHlwZXMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAod2FzUGFyc2Vy
SW5zZXJ0ZWQpCisgICAgaWYgKHdhc1BhcnNlckluc2VydGVkKSB7CiAgICAgICAgIG1fcGFyc2Vy
SW5zZXJ0ZWQgPSB0cnVlOworICAgICAgICBtX2ZvcmNlQXN5bmMgPSBmYWxzZTsKKyAgICB9CiAK
ICAgICBtX2FscmVhZHlTdGFydGVkID0gdHJ1ZTsKIApAQCAtMjA3LDYgKzIxNywxMCBAQCBib29s
IFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uMSYgc2NyaXB0
U3RhcnRQb3NpdGlvbiwgTGVnYQogICAgIGVsc2UgaWYgKCFoYXNTb3VyY2VBdHRyaWJ1dGUoKSAm
JiBtX3BhcnNlckluc2VydGVkICYmICFtX2VsZW1lbnQtPmRvY3VtZW50KCktPmhhdmVTdHlsZXNo
ZWV0c0xvYWRlZCgpKSB7CiAgICAgICAgIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwog
ICAgICAgICBtX3JlYWR5VG9CZVBhcnNlckV4ZWN1dGVkID0gdHJ1ZTsKKyAgICB9IGVsc2UgaWYg
KGhhc1NvdXJjZUF0dHJpYnV0ZSgpICYmICFhc3luY0F0dHJpYnV0ZVZhbHVlKCkgJiYgIW1fZm9y
Y2VBc3luYykgeworICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNjcmlwdFJ1bm5lcigp
LT5xdWV1ZVNjcmlwdEZvckluT3JkZXJFeGVjdXRpb24odGhpcywgbV9jYWNoZWRTY3JpcHQpOwor
ICAgICAgICBtX2NhY2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOworICAgICAgICBtX3dpbGxF
eGVjdXRlSW5PcmRlciA9IHRydWU7CiAgICAgfSBlbHNlIGlmIChoYXNTb3VyY2VBdHRyaWJ1dGUo
KSkKICAgICAgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsKICAgICBlbHNlCkBA
IC0yODYsNyArMzAwLDEwIEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2Fj
aGVkUmVzb3VyY2UqIG8pCiB7CiAgICAgQVNTRVJUKCFtX3dpbGxCZVBhcnNlckV4ZWN1dGVkKTsK
ICAgICBBU1NFUlRfVU5VU0VEKG8sIG8gPT0gbV9jYWNoZWRTY3JpcHQpOwotICAgIG1fZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+YXN5bmNTY3JpcHRSdW5uZXIoKS0+ZXhlY3V0ZVNjcmlwdFNvb24odGhp
cywgbV9jYWNoZWRTY3JpcHQpOworICAgIGlmIChtX3dpbGxFeGVjdXRlSW5PcmRlcikKKyAgICAg
ICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+cmVzdW1lKCk7CisgICAg
ZWxzZQorICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPnNjcmlwdFJ1bm5lcigpLT5leGVj
dXRlU2NyaXB0U29vbih0aGlzLCBtX2NhY2hlZFNjcmlwdCk7CiAgICAgbV9jYWNoZWRTY3JpcHQg
PSAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAppbmRleCA3OWRmZjMzLi45Y2U2
NmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKQEAgLTYzLDEyICs2MywxNCBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRIYXZlRmlyZWRMb2FkRXZlbnQoYm9vbCBoYXZlRmlyZWRM
b2FkKSB7IG1faGF2ZUZpcmVkTG9hZCA9IGhhdmVGaXJlZExvYWQ7IH0KICAgICBib29sIGlzUGFy
c2VySW5zZXJ0ZWQoKSBjb25zdCB7IHJldHVybiBtX3BhcnNlckluc2VydGVkOyB9CiAgICAgYm9v
bCBhbHJlYWR5U3RhcnRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWxyZWFkeVN0YXJ0ZWQ7IH0KKyAg
ICBib29sIGZvcmNlQXN5bmMoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlQXN5bmM7IH0KIAogICAg
IC8vIEhlbHBlciBmdW5jdGlvbnMgdXNlZCBieSBvdXIgcGFyZW50IGNsYXNzZXMuCiAgICAgdm9p
ZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAgIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgp
OwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKCk7CiAgICAgdm9pZCBoYW5kbGVTb3VyY2VBdHRy
aWJ1dGUoY29uc3QgU3RyaW5nJiBzb3VyY2VVcmwpOworICAgIHZvaWQgaGFuZGxlQXN5bmNBdHRy
aWJ1dGUoKTsKIAogcHJpdmF0ZToKICAgICBib29sIGlnbm9yZXNMb2FkUmVxdWVzdCgpIGNvbnN0
OwpAQCAtOTgsNiArMTAwLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fd2lsbEJlUGFyc2VyRXhl
Y3V0ZWQgOiAxOyAvLyBTYW1lIGFzICJUaGUgcGFyc2VyIHdpbGwgaGFuZGxlIGV4ZWN1dGluZyB0
aGUgc2NyaXB0LiIKICAgICBib29sIG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQgOiAxOwogICAg
IGJvb2wgbV93aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZyA6IDE7CisgICAg
Ym9vbCBtX2ZvcmNlQXN5bmMgOiAxOworICAgIGJvb2wgbV93aWxsRXhlY3V0ZUluT3JkZXIgOiAx
OwogICAgIFN0cmluZyBtX2NoYXJhY3RlckVuY29kaW5nOwogICAgIFN0cmluZyBtX2ZhbGxiYWNr
Q2hhcmFjdGVyRW5jb2Rpbmc7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Fz
eW5jU2NyaXB0UnVubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3Bw
CnNpbWlsYXJpdHkgaW5kZXggNjUlCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Bc3lu
Y1NjcmlwdFJ1bm5lci5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5u
ZXIuY3BwCmluZGV4IDI4YjFiMzEuLjcwNDgyNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dFJ1bm5lci5jcHAKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIu
aCIKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBA
IC0zNCwyMiArMzQsMjQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Bc3luY1NjcmlwdFJ1
bm5lcjo6QXN5bmNTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50KQorU2NyaXB0UnVubmVy
OjpTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1
bWVudCkKLSAgICAsIG1fdGltZXIodGhpcywgJkFzeW5jU2NyaXB0UnVubmVyOjp0aW1lckZpcmVk
KQorICAgICwgbV90aW1lcih0aGlzLCAmU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKQogewogICAg
IEFTU0VSVChkb2N1bWVudCk7CiB9CiAKLUFzeW5jU2NyaXB0UnVubmVyOjp+QXN5bmNTY3JpcHRS
dW5uZXIoKQorU2NyaXB0UnVubmVyOjp+U2NyaXB0UnVubmVyKCkKIHsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kpCiAgICAgICAg
IG1fZG9jdW1lbnQtPmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuc2l6ZSgpOyArK2kpCisg
ICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKIH0KIAot
dm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCog
c2NyaXB0RWxlbWVudCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRT
Y3JpcHQpCit2b2lkIFNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVu
dCogc2NyaXB0RWxlbWVudCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNo
ZWRTY3JpcHQpCiB7Ci0gICAgQVNTRVJUX0FSRyhzY3JpcHRFbGVtZW50LCBzY3JpcHRFbGVtZW50
KTsKKyAgICBBU1NFUlQoc2NyaXB0RWxlbWVudCk7CiAKICAgICBFbGVtZW50KiBlbGVtZW50ID0g
c2NyaXB0RWxlbWVudC0+ZWxlbWVudCgpOwogICAgIEFTU0VSVChlbGVtZW50KTsKQEAgLTYxLDI1
ICs2Myw0NCBAQCB2b2lkIEFzeW5jU2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbihTY3Jp
cHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBDYWNoZWRSZQogICAgICAgICBtX3RpbWVyLnN0YXJ0
T25lU2hvdCgwKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6c3VzcGVuZCgpCit2b2lk
IFNjcmlwdFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JJbk9yZGVyRXhlY3V0aW9uKFNjcmlwdEVsZW1l
bnQqIHNjcmlwdEVsZW1lbnQsIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gY2Fj
aGVkU2NyaXB0KQoreworICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKKworICAgIEVsZW1lbnQq
IGVsZW1lbnQgPSBzY3JpcHRFbGVtZW50LT5lbGVtZW50KCk7CisgICAgQVNTRVJUKGVsZW1lbnQp
OworICAgIEFTU0VSVChlbGVtZW50LT5pbkRvY3VtZW50KCkpOworCisgICAgbV9kb2N1bWVudC0+
aW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOworICAgIG1fc2NyaXB0c1RvRXhlY3V0ZUlu
T3JkZXIuYXBwZW5kKFBlbmRpbmdTY3JpcHQoZWxlbWVudCwgY2FjaGVkU2NyaXB0LmdldCgpKSk7
Cit9CisKK3ZvaWQgU2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKIHsKICAgICBtX3RpbWVyLnN0b3Ao
KTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6cmVzdW1lKCkKK3ZvaWQgU2NyaXB0UnVu
bmVyOjpyZXN1bWUoKQogewogICAgIGlmIChoYXNQZW5kaW5nU2NyaXB0cygpKQogICAgICAgICBt
X3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6dGlt
ZXJGaXJlZChUaW1lcjxBc3luY1NjcmlwdFJ1bm5lcj4qIHRpbWVyKQordm9pZCBTY3JpcHRSdW5u
ZXI6OnRpbWVyRmlyZWQoVGltZXI8U2NyaXB0UnVubmVyPiogdGltZXIpCiB7CiAgICAgQVNTRVJU
X1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fdGltZXIpOwogCiAgICAgUmVmUHRyPERvY3VtZW50
PiBwcm90ZWN0KG1fZG9jdW1lbnQpOwotICAgIAorCiAgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+
IHNjcmlwdHM7CiAgICAgc2NyaXB0cy5zd2FwKG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24pOworCisg
ICAgc2l6ZV90IG51bUluT3JkZXJTY3JpcHRzVG9FeGVjdXRlID0gMDsKKyAgICBmb3IgKDsgbnVt
SW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUgPCBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLnNpemUo
KSAmJiBtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyW251bUluT3JkZXJTY3JpcHRzVG9FeGVjdXRl
XS5jYWNoZWRTY3JpcHQoKS0+aXNMb2FkZWQoKTsgKytudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0
ZSkKKyAgICAgICAgc2NyaXB0cy5hcHBlbmQobV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlcltudW1J
bk9yZGVyU2NyaXB0c1RvRXhlY3V0ZV0pOworICAgIGlmIChudW1Jbk9yZGVyU2NyaXB0c1RvRXhl
Y3V0ZSkKKyAgICAgICAgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5yZW1vdmUoMCwgbnVtSW5P
cmRlclNjcmlwdHNUb0V4ZWN1dGUpOworCiAgICAgc2l6ZV90IHNpemUgPSBzY3JpcHRzLnNpemUo
KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBDYWNo
ZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCA9IHNjcmlwdHNbaV0uY2FjaGVkU2NyaXB0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApzaW1pbGFyaXR5IGluZGV4IDc3JQpyZW5hbWUgZnJv
bSBTb3VyY2UvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaApyZW5hbWUgdG8gU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oCmluZGV4IDZhNzUzMjMuLjFiMDlhMzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaApAQCAtMjMsOCArMjMsOCBAQAogICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCiAgKi8KIAotI2lmbmRlZiBBc3luY1NjcmlwdFJ1bm5lcl9oCi0jZGVmaW5lIEFzeW5j
U2NyaXB0UnVubmVyX2gKKyNpZm5kZWYgU2NyaXB0UnVubmVyX2gKKyNkZWZpbmUgU2NyaXB0UnVu
bmVyX2gKIAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiVGlt
ZXIuaCIKQEAgLTM4LDI2ICszOCwyOCBAQCBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBEb2N1
bWVudDsKIGNsYXNzIFBlbmRpbmdTY3JpcHQ7CiBjbGFzcyBTY3JpcHRFbGVtZW50OwotICAgIAot
Y2xhc3MgQXN5bmNTY3JpcHRSdW5uZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFzeW5j
U2NyaXB0UnVubmVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisKK2NsYXNzIFNjcmlwdFJ1
bm5lciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NyaXB0UnVubmVyKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8QXN5bmNTY3Jp
cHRSdW5uZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIG5ldyBBc3luY1Nj
cmlwdFJ1bm5lcihkb2N1bWVudCk7IH0KLSAgICB+QXN5bmNTY3JpcHRSdW5uZXIoKTsKKyAgICBz
dGF0aWMgUGFzc093blB0cjxTY3JpcHRSdW5uZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQp
IHsgcmV0dXJuIG5ldyBTY3JpcHRSdW5uZXIoZG9jdW1lbnQpOyB9CisgICAgflNjcmlwdFJ1bm5l
cigpOwogCiAgICAgdm9pZCBleGVjdXRlU2NyaXB0U29vbihTY3JpcHRFbGVtZW50KiwgQ2FjaGVk
UmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0Pik7Ci0gICAgYm9vbCBoYXNQZW5kaW5nU2NyaXB0
cygpIGNvbnN0IHsgcmV0dXJuICFtX3NjcmlwdHNUb0V4ZWN1dGVTb29uLmlzRW1wdHkoKTsgfQor
ICAgIHZvaWQgcXVldWVTY3JpcHRGb3JJbk9yZGVyRXhlY3V0aW9uKFNjcmlwdEVsZW1lbnQqLCBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+KTsKKyAgICBib29sIGhhc1BlbmRpbmdT
Y3JpcHRzKCkgY29uc3QgeyByZXR1cm4gIW1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uaXNFbXB0eSgp
IHx8ICFtX3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKTsgfQogICAgIHZvaWQgc3Vz
cGVuZCgpOwogICAgIHZvaWQgcmVzdW1lKCk7CiAKIHByaXZhdGU6Ci0gICAgQXN5bmNTY3JpcHRS
dW5uZXIoRG9jdW1lbnQqKTsKKyAgICBTY3JpcHRSdW5uZXIoRG9jdW1lbnQqKTsKIAotICAgIHZv
aWQgdGltZXJGaXJlZChUaW1lcjxBc3luY1NjcmlwdFJ1bm5lcj4qKTsKKyAgICB2b2lkIHRpbWVy
RmlyZWQoVGltZXI8U2NyaXB0UnVubmVyPiopOwogCiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7
CisgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXI7CiAg
ICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb247IC8vIGh0dHA6
Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3NldC1vZi1zY3Jp
cHRzLXRoYXQtd2lsbC1leGVjdXRlLWFzLXNvb24tYXMtcG9zc2libGUKLSAgICBUaW1lcjxBc3lu
Y1NjcmlwdFJ1bm5lcj4gbV90aW1lcjsKKyAgICBUaW1lcjxTY3JpcHRSdW5uZXI+IG1fdGltZXI7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4
IDhlNzA4ZDEuLmI1NmIzNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuY3BwCkBAIC01OCw2ICs1OCwxMyBAQCB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpjaGlsZHJl
bkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5nZQogICAgIEhU
TUxFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlZEJ5UGFyc2VyLCBiZWZvcmVDaGFuZ2Us
IGFmdGVyQ2hhbmdlLCBjaGlsZENvdW50RGVsdGEpOwogfQogCit2b2lkIEhUTUxTY3JpcHRFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKEF0dHJpYnV0ZSogYXR0ciwgYm9vbCBwcmVzZXJ2ZURlY2xz
KQoreworICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gYXN5bmNBdHRyKQorICAgICAgICBoYW5kbGVB
c3luY0F0dHJpYnV0ZSgpOworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGF0dHIs
IHByZXNlcnZlRGVjbHMpOworfQorCiB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUgPSBhdHRyLT5uYW1lKCk7CkBAIC0xMDIsNiArMTA5LDE3IEBAIHZvaWQgSFRNTFNj
cmlwdEVsZW1lbnQ6OnNldFRleHQoY29uc3QgU3RyaW5nICZ2YWx1ZSkKICAgICBhcHBlbmRDaGls
ZChkb2N1bWVudCgpLT5jcmVhdGVUZXh0Tm9kZSh2YWx1ZS5pbXBsKCkpLCBlYyk7CiB9CiAKK3Zv
aWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnNldEFzeW5jKGJvb2wgYXN5bmMpCit7CisgICAgc2V0Qm9v
bGVhbkF0dHJpYnV0ZShhc3luY0F0dHIsIGFzeW5jKTsKKyAgICBoYW5kbGVBc3luY0F0dHJpYnV0
ZSgpOworfQorCitib29sIEhUTUxTY3JpcHRFbGVtZW50Ojphc3luYygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGZhc3RIYXNBdHRyaWJ1dGUoYXN5bmNBdHRyKSB8fCBmb3JjZUFzeW5jKCk7Cit9CisK
IEtVUkwgSFRNTFNjcmlwdEVsZW1lbnQ6OnNyYygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKHNvdXJjZUF0dHJpYnV0ZVZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IGVmZTZhNmEuLmNiZTcyNTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTM4LDYgKzM4LDkgQEAgcHVibGlj
OgogCiAgICAgS1VSTCBzcmMoKSBjb25zdDsKIAorICAgIHZvaWQgc2V0QXN5bmMoYm9vbCk7Cisg
ICAgYm9vbCBhc3luYygpIGNvbnN0OworCiBwcml2YXRlOgogICAgIEhUTUxTY3JpcHRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgd2FzSW5zZXJ0ZWRCeVBhcnNl
ciwgYm9vbCBhbHJlYWR5U3RhcnRlZCk7CiAKQEAgLTQ1LDYgKzQ4LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQo
Ym9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9k
ZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CisgICAgdmlydHVh
bCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoQXR0cmlidXRlKiwgYm9vbCBwcmVzZXJ2ZURlY2xzID0g
ZmFsc2UpOwogCiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaWRsCmluZGV4IDIw
YjczMzEuLmZhNzk5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
aWRsCkBAIC0yNCw3ICsyNCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtS
ZWZsZWN0PWZvcl0gRE9NU3RyaW5nIGh0bWxGb3I7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gRE9NU3RyaW5nIGV2ZW50OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBjaGFyc2V0OwotICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXN5bmM7Cisg
ICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGFzeW5jOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIGJvb2xlYW4gZGVmZXI7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgVVJMXSBET01T
dHJpbmcgc3JjOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB0eXBlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCmluZGV4IGRl
YTJjZDcuLmRmYmIyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3Vw
TG9hZERlZmVycmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWRE
ZWZlcnJlci5jcHAKQEAgLTIxLDExICsyMSwxMSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlBhZ2VHcm91cExvYWREZWZlcnJlci5oIgogCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRS
dW5uZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlNj
cmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTUwLDcgKzUwLDcgQEAgUGFnZUdyb3VwTG9hZERlZmVycmVyOjpQYWdlR3JvdXBM
b2FkRGVmZXJyZXIoUGFnZSogcGFnZSwgYm9vbCBkZWZlclNlbGYpCiAgICAgICAgICAgICAgICAg
Zm9yIChGcmFtZSogZnJhbWUgPSBvdGhlclBhZ2UtPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUg
PSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewogICAgICAgICAgICAgICAgICAgICBm
cmFtZS0+ZG9jdW1lbnQoKS0+c3VzcGVuZFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlckNhbGxi
YWNrcygpOwogICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+c3VzcGVuZEFj
dGl2ZURPTU9iamVjdHMoQWN0aXZlRE9NT2JqZWN0OjpXaWxsU2hvd0RpYWxvZyk7Ci0gICAgICAg
ICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5hc3luY1NjcmlwdFJ1bm5lcigpLT5zdXNw
ZW5kKCk7CisgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRSdW5u
ZXIoKS0+c3VzcGVuZCgpOwogICAgICAgICAgICAgICAgICAgICBpZiAoRG9jdW1lbnRQYXJzZXIq
IHBhcnNlciA9IGZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZXIoKSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhcnNlci0+c3VzcGVuZFNjaGVkdWxlZFRhc2tzKCk7CiAgICAgICAgICAgICAgICAg
fQpAQCAtNzMsNyArNzMsNyBAQCBQYWdlR3JvdXBMb2FkRGVmZXJyZXI6On5QYWdlR3JvdXBMb2Fk
RGVmZXJyZXIoKQogICAgICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBwYWdlLT5tYWluRnJh
bWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKICAg
ICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0cygp
OwogICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5yZXN1bWVTY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXJDYWxsYmFja3MoKTsKLSAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1l
bnQoKS0+YXN5bmNTY3JpcHRSdW5uZXIoKS0+cmVzdW1lKCk7CisgICAgICAgICAgICAgICAgZnJh
bWUtPmRvY3VtZW50KCktPnNjcmlwdFJ1bm5lcigpLT5yZXN1bWUoKTsKICAgICAgICAgICAgICAg
ICBpZiAoRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IGZyYW1lLT5kb2N1bWVudCgpLT5wYXJzZXIo
KSkKICAgICAgICAgICAgICAgICAgICAgcGFyc2VyLT5yZXN1bWVTY2hlZHVsZWRUYXNrcygpOwog
ICAgICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84783</attachid>
            <date>2011-03-04 11:01:06 -0800</date>
            <delta_ts>2011-03-10 15:55:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>async3.patch</filename>
            <type>text/plain</type>
            <size>42279</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4ZTRiYzBjLi5hYWM5OTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMt
MDEgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2
aW9yIGZvciBlbnN1cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNj
cmlwdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUw
MTE1CisKKyAgICAgICAgRHluYW1pY2FsbHkgYWRkZWQgc2NyaXB0cyB3aXRoIGFzeW5jPWZhbHNl
IHdpbGwgbG9hZCBpbiBwYXJhbGxlbCwgYnV0IGV4ZWN1dGUgaW4gb3JkZXIuCisgICAgICAgIFNl
ZTogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0
aXBhZ2Uvc2NyaXB0aW5nLTEuaHRtbCNmb3JjZS1hc3luYworCisgICAgICAgICogZmFzdC9kb20v
SFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0OiBBZGRlZCB0
ZXN0IGNhc2VzIGZvciBmb3JjZUFzeW5jLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWw6IERpdHRvLgorICAgICAgICAqIGh0dHAvdGVz
dHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1
dGUtaW4tb3JkZXIuaHRtbDogQWRkZWQuCisKIDIwMTEtMDMtMDIgIE1paGFpIFBhcnBhcml0YSAg
PG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBDaHJvbWl1bSBTbm93
IExlb3BhcmQgYmFzZWxpbmUgdXBkYXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1mYWxzZS1pbnNpZGUtYXN5bmMtZmFsc2UtbG9hZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3lu
Yy1mYWxzZS1pbnNpZGUtYXN5bmMtZmFsc2UtbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDczMzE4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLWZhbHNlLWluc2lkZS1hc3lu
Yy1mYWxzZS1sb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0NoZWNrcyB0aGF0IGFk
ZGluZyBhbiBhc3luYz1mYWxzZSBzY3JpcHQgd2hpbGUgZXhlY3V0aW5nIGFuIGFzeW5jPWZhbHNl
IHNjcmlwdCBkb2Vzbid0IG1lc3MgYW55dGhpbmcgdXAuCithc3luYy1mYWxzZQorYXN5bmMKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9hc3luYy1mYWxzZS1p
bnNpZGUtYXN5bmMtZmFsc2UtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvYXN5bmMtZmFsc2UtaW5zaWRlLWFzeW5jLWZhbHNlLWxvYWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWYyODAxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtZmFsc2UtaW5z
aWRlLWFzeW5jLWZhbHNlLWxvYWQuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSIiPgorQ2hlY2tzIHRoYXQgYWRkaW5nIGFu
IGFzeW5jPWZhbHNlIHNjcmlwdCB3aGlsZSBleGVjdXRpbmcgYW4gYXN5bmM9ZmFsc2Ugc2NyaXB0
IGRvZXNuJ3QgbWVzcyBhbnl0aGluZyB1cC4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KK3ZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZmlyc3Rfc2NyaXB0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CitmaXJzdF9zY3JpcHQuYXN5bmMgPSBmYWxzZTsK
K2ZpcnN0X3NjcmlwdC5zcmMgPSAicmVzb3VyY2VzL2FzeW5jLWZhbHNlLmpzIjsKK2RvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoZmlyc3Rfc2NyaXB0
KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRF
bGVtZW50L3Jlc291cmNlcy9hc3luYy1mYWxzZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxTY3JpcHRFbGVtZW50L3Jlc291cmNlcy9hc3luYy1mYWxzZS5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5jMjNkMjAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvcmVzb3VyY2VzL2FzeW5jLWZhbHNlLmpzCkBA
IC0wLDAgKzEsNiBAQAorZGVidWcoImFzeW5jLWZhbHNlIik7CitzZWNvbmRfc2NyaXB0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CitzZWNvbmRfc2NyaXB0LmFzeW5jID0gZmFs
c2U7CitzZWNvbmRfc2NyaXB0LnNyYyA9ICJyZXNvdXJjZXMvYXN5bmMuanMiOworc2Vjb25kX3Nj
cmlwdC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZmluaXNoSlNUZXN0LCBmYWxzZSk7Citkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHNlY29uZF9z
Y3JpcHQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1l
bnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0CmluZGV4IDdi
OGJmNGQuLmU4NjdmNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3Jp
cHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci1leHBlY3RlZC50
eHQKQEAgLTgsOCArOCwxNCBAQCBQQVNTIGlzQXN5bmMoJ3MxJykgaXMgdHJ1ZQogUEFTUyBpc0Fz
eW5jKCdzMicpIGlzIHRydWUKIFBBU1MgaXNBc3luYygnczMnKSBpcyB0cnVlCiBQQVNTIGlzQXN5
bmMoJ3M0JykgaXMgdHJ1ZQorUEFTUyBpc0FzeW5jKCdzNScpIGlzIHRydWUKK1BBU1MgaXNBc3lu
YygnczYnKSBpcyB0cnVlCitQQVNTIGlzQXN5bmMoJ3M3JykgaXMgdHJ1ZQorUEFTUyBpc0FzeW5j
KCdzOCcpIGlzIGZhbHNlCiBQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKHRy
dWUpIGlzIHRydWUKIFBBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMoZmFsc2Up
IGlzIGZhbHNlCitQQVNTIGlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKCJhc3luYyIp
IGlzIHRydWUKK1BBU1MgaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMobnVsbCkgaXMg
dHJ1ZQogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQt
YXN5bmMtYXR0ci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
c2NyaXB0LWFzeW5jLWF0dHIuaHRtbAppbmRleCA0YTNmM2FmLi5iMGU0MDZhIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3Njcmlw
dC1hc3luYy1hdHRyLmh0bWwKQEAgLTEyLDExICsxMiwxNSBAQAogPHNjcmlwdCBpZD0iczIiIHNy
Yz0iaWdub3JlZC5qcyIgYXN5bmM9ImFzeW5jIj48L3NjcmlwdD4KIDxzY3JpcHQgaWQ9InMzIiBz
cmM9Imlnbm9yZWQuanMiIGFzeW5jPSJBU1lOQyI+PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJzNCIg
c3JjPSJpZ25vcmVkLmpzIiBhc3luYz0idHJ1ZSI+PC9zY3JpcHQ+Cis8c2NyaXB0IGlkPSJzNSIg
c3JjPSJpZ25vcmVkLmpzIiBhc3luYz0iZmFsc2UiPjwvc2NyaXB0PgorPHNjcmlwdCBpZD0iczYi
Pjwvc2NyaXB0PgorPHNjcmlwdCBpZD0iczciIGFzeW5jPjwvc2NyaXB0PgorPHNjcmlwdCBpZD0i
czgiIGFzeW5jPjwvc2NyaXB0PgogCiA8c2NyaXB0PgogZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCBj
aGVja3MgZm9yIHByb3BlciBwYXJzaW5nIG9mIHRoZSBhc3luYyBhdHRyaWJ1dGUgb24gSFRNTCBz
Y3JpcHQgdGFncy4nKTsKIAotdmFyIG5leHRTY3JpcHRJRCA9IDA7Cit2YXIgbmV4dFNjcmlwdElE
ID0gOTsKIAogZnVuY3Rpb24gaXNBc3luYyhpZCkKIHsKQEAgLTI5LDE5ICszMywyNyBAQCBmdW5j
dGlvbiBpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyhhc3luYykKICAgICB2YXIgc2Ny
aXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgc2NyaXB0LmlkID0g
aWQ7CiAgICAgc2NyaXB0LnNyYyA9ICJyZXNvdXJjZXMvc2NyaXB0LWxvYWQuanMiOwotICAgIGlm
IChhc3luYykKLSAgICAgICAgc2NyaXB0LmFzeW5jID0gImFzeW5jIjsKKyAgICBpZiAoYXN5bmMg
IT0gbnVsbCkKKyAgICAgICAgc2NyaXB0LmFzeW5jID0gYXN5bmM7CiAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChzY3JpcHQpOwogICAgIHJl
dHVybiBpc0FzeW5jKGlkKTsKIH0KIAorZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInM4IikucmVt
b3ZlQXR0cmlidXRlKCJhc3luYyIpOworCiBzaG91bGRCZUZhbHNlKCJpc0FzeW5jKCdzMCcpIik7
CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3MxJykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNBc3luYygn
czInKSIpOwogc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzMycpIik7CiBzaG91bGRCZVRydWUoImlz
QXN5bmMoJ3M0JykiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNBc3luYygnczUnKSIpOworc2hvdWxkQmVU
cnVlKCJpc0FzeW5jKCdzNicpIik7CitzaG91bGRCZVRydWUoImlzQXN5bmMoJ3M3JykiKTsKK3No
b3VsZEJlRmFsc2UoImlzQXN5bmMoJ3M4JykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNEeW5hbWljYWxs
eUluc2VydGVkU2NyaXB0QXN5bmModHJ1ZSkiKTsKIHNob3VsZEJlRmFsc2UoImlzRHluYW1pY2Fs
bHlJbnNlcnRlZFNjcmlwdEFzeW5jKGZhbHNlKSIpOworc2hvdWxkQmVUcnVlKCJpc0R5bmFtaWNh
bGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyhcImFzeW5jXCIpIik7CitzaG91bGRCZVRydWUoImlzRHlu
YW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKG51bGwpIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1p
bi1vcmRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MjdjZjY5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9z
Y3JpcHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDggQEAKK0NoZWNrcyB0aGF0IGFzeW5jPWZhbHNlIGVuZm9yY2VzIGV4ZWN1dGlvbiBvcmRlciBk
eW5hbWljYWxseSBpbnNlcnRlZCBzY3JpcHRzLiBTZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3NjcmlwdGluZy0xLmh0bWwjZm9y
Y2UtYXN5bmMKK3Nsb3dBc3luYworYXN5bmMKK2xvYWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3Jk
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzkzNjc3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1s
b2FkLWV4ZWN1dGUtaW4tb3JkZXIuaHRtbApAQCAtMCwwICsxLDMwIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkZWJ1ZygnbG9hZCcpO2Zp
bmlzaEpTVGVzdCgpOyI+CitDaGVja3MgdGhhdCBhc3luYz1mYWxzZSBlbmZvcmNlcyBleGVjdXRp
b24gb3JkZXIgZHluYW1pY2FsbHkgaW5zZXJ0ZWQgc2NyaXB0cy4KK1NlZTogaHR0cDovL3d3dy53
aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2Uvc2NyaXB0aW5n
LTEuaHRtbCNmb3JjZS1hc3luYworPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
dmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCitzbG93bHlfbG9hZGVkX3NjcmlwdCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworc2xvd2x5X2xvYWRlZF9zY3JpcHQuYXN5bmMg
PSBmYWxzZTsKK3Nsb3dseV9sb2FkZWRfc2NyaXB0LnNyYyA9ICJyZXNvdXJjZXMvc2xvdy1hc3lu
Yy1zY3JpcHQuY2dpIjsKK2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0u
YXBwZW5kQ2hpbGQoc2xvd2x5X2xvYWRlZF9zY3JpcHQpOworc2xvd2x5X2xvYWRlZF9zY3JpcHQu
YXN5bmMgPSB0cnVlOyAvLyBTaG91bGQgaGF2ZSBubyBlZmZlY3QsIGJlY2F1cyBzY3JpcHQgaGFz
IGFscmVhZHkgYmVlbiByZXF1ZXN0ZWQuCisKK3F1aWNrbHlfbG9hZGVkX3NjcmlwdCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOworcXVpY2tseV9sb2FkZWRfc2NyaXB0LmFzeW5j
ID0gZmFsc2U7CitxdWlja2x5X2xvYWRlZF9zY3JpcHQuc3JjID0gInJlc291cmNlcy9hc3luYy1z
Y3JpcHQuanMiOworZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBl
bmRDaGlsZChxdWlja2x5X2xvYWRlZF9zY3JpcHQpOworcXVpY2tseV9sb2FkZWRfc2NyaXB0LmFz
eW5jID0gdHJ1ZTsgLy8gU2hvdWxkIGhhdmUgbm8gZWZmZWN0LCBiZWNhdXMgc2NyaXB0IGhhcyBh
bHJlYWR5IGJlZW4gcmVxdWVzdGVkLgorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9BbmRyb2lkLm1rIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawppbmRleCA2MjI3
ZGU5Li5kYmNjZGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTk0LDcgKzk0LDYgQEAgTE9DQUxfU1JDX0ZJ
TEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVl
LmNwcCBcCiAJXAogCWRvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKLQlkb20vQXN5bmNTY3JpcHRS
dW5uZXIuY3BwIFwKIAlkb20vQXR0ci5jcHAgXAogCWRvbS9BdHRyaWJ1dGUuY3BwIFwKIAlkb20v
QmVmb3JlVGV4dEluc2VydGVkRXZlbnQuY3BwIFwKQEAgLTE3MCw2ICsxNjksNyBAQCBMT0NBTF9T
UkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlkb20vU2NyaXB0YWJsZURvY3VtZW50
UGFyc2VyLmNwcCBcCiAJZG9tL1NjcmlwdEVsZW1lbnQuY3BwIFwKIAlkb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5jcHAgXAorCWRvbS9TY3JpcHRSdW5uZXIuY3BwIFwKIAlkb20vU2VsZWN0RWxl
bWVudC5jcHAgXAogCWRvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAJZG9tL1NwYWNlU3BsaXRT
dHJpbmcuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMzI0NDZhNi4uY2VlYjY5YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTY3OCw3ICs2NzgsNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcAogCiAgICAgZG9tL0FjdGl2ZURP
TU9iamVjdC5jcHAKLSAgICBkb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwCiAgICAgZG9tL0F0dHIu
Y3BwCiAgICAgZG9tL0F0dHJpYnV0ZS5jcHAKICAgICBkb20vQmVmb3JlVGV4dEluc2VydGVkRXZl
bnQuY3BwCkBAIC03NTksNiArNzU4LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9T
Y3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCiAgICAgZG9tL1NjcmlwdEVsZW1lbnQuY3BwCiAg
ICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisgICAgZG9tL1NjcmlwdFJ1bm5lci5j
cHAKICAgICBkb20vU2VsZWN0RWxlbWVudC5jcHAKICAgICBkb20vU2VsZWN0b3JOb2RlTGlzdC5j
cHAKICAgICBkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNWU4MzU2Li43
ZDhhMDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTEtMDMtMDEgIEphbWVzIFNp
bW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgZGlmZmVyZW50IGJlaGF2aW9yIGZvciBlbnN1
cmluZyBleGVjdXRpb24gb3JkZXIgb2YgZHluYW1pY2FsbHkgbG9hZGVkIHNjcmlwdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMTE1CisKKyAgICAg
ICAgRHluYW1pY2FsbHkgYWRkZWQgc2NyaXB0cyB3aXRoIGFzeW5jPWZhbHNlIHdpbGwgbG9hZCBp
biBwYXJhbGxlbCwgYnV0IGV4ZWN1dGUgaW4gb3JkZXIuCisgICAgICAgIFNlZTogaHR0cDovL3d3
dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2Uvc2NyaXB0
aW5nLTEuaHRtbCNmb3JjZS1hc3luYworCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9IVE1MU2Ny
aXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci5odG1sCisKKyAgICAg
ICAgKiBBbmRyb2lkLm1rOiBSZW5hbWUgQXN5bmNTY3JpcHRSdW5uZXIgLT4gU2NyaXB0UnVubmVy
LgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBEaXR0by4KKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5hbTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBX
ZWJDb3JlLnBybzogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
RGl0dG8uCisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDogRGl0dG8uCisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6IERpdHRvLgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNj
cmlwdFJ1bm5lcik6IERpdHRvLgorICAgICAgICAqIGRvbS9TY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OlNjcmlwdEVsZW1lbnQpOiBBZGRlZCBmb3Jj
ZUFzeW5jIGFuZCB3aWxsRXhlY3V0ZUluT3JkZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRF
bGVtZW50OjpoYW5kbGVBc3luY0F0dHJpYnV0ZSk6IENhbGxlZCBieSBIVE1MU2NyaXB0RWxlbWVu
dCB3aGVuIGFzeW5jIGF0dHJpYnV0ZSBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0
RWxlbWVudDo6cHJlcGFyZVNjcmlwdCk6IEFkZGVkIHN1cHBvcnQgZm9yIGZvcmNlQXN5bmMuCisg
ICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojpub3RpZnlGaW5pc2hlZCk6IFRlbGwgU2Ny
aXB0UnVubmVyIHRvIGV4ZWN1dGUgaW4gb3JkZXIgaWYgbmVlZGVkLgorICAgICAgICAqIGRvbS9T
Y3JpcHRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50Ojpmb3JjZUFz
eW5jKTogQWRkZWQuCisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5jcHA6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwLgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0UnVubmVyOjpTY3JpcHRSdW5uZXIpOiBBZGRlZCBpbi1vcmRlciBzY3JpcHQg
cXVldWUuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6On5TY3JpcHRSdW5uZXIpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24p
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0UnVubmVyOjpxdWV1ZVNjcmlwdEZvckluT3JkZXJF
eGVjdXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6c3VzcGVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnJlc3VtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQpOiBFeGVjdXRlIGluLW9yZGVyIHNjcmlw
dHMgaWYgcmVhZHkuCisgICAgICAgICogZG9tL1NjcmlwdFJ1bm5lci5oOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmguCisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRSdW5uZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6
Omhhc1BlbmRpbmdTY3JpcHRzKTogQ2hlY2sgZm9yIGluLW9yZGVyIHNjcmlwdHMgdG9vLgorICAg
ICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFNjcmlwdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQpOiBOb3RpZnkgU2NyaXB0RWxlbWVudCB3
aGVuIGFzeW5jIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6
c2V0QXN5bmMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50Ojph
c3luYyk6IEluY2x1ZGUgZm9yY2VBc3luYyBpbiBjYWxjdWxhdGlvbi4KKyAgICAgICAgKiBodG1s
L0hUTUxTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5p
ZGw6IFJlbW92ZWQgUmVmbGVjdCBmcm9tIGFzeW5jIGZvciBjdXN0b20gYmVoYXZpb3IuCisgICAg
ICAgICogcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZUdyb3VwTG9hZERlZmVycmVyOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXIpOiBSZW5hbWUgQXN5
bmNTY3JpcHRSdW5uZXIgLT4gU2NyaXB0UnVubmVyLgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdy
b3VwTG9hZERlZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVyKTogRGl0dG8uCisKIDIwMTEt
MDMtMDIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGEwMjE4MTEuLmYz
N2EwNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMTAyLDggKzExMDIsNiBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vQXN5
bmNTY3JpcHRSdW5uZXIuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5u
ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0F0dHIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vQXR0ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQXR0cmlidXRlLmNwcCBcCkBAIC0xMjkz
LDYgKzEyOTEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBc
CisJU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAgXAorCVNvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRSdW5uZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9kb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDkzY2Yw
MjYuLmEyMzYxMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTExNjUsOCArMTE2NSw2IEBACiAgICAg
ICAgICAgICAnZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaCcsCiAgICAg
ICAgICAgICAnZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9BY3Rp
dmVET01PYmplY3QuaCcsCi0gICAgICAgICAgICAnZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcCcs
Ci0gICAgICAgICAgICAnZG9tL0FzeW5jU2NyaXB0UnVubmVyLmgnLAogICAgICAgICAgICAgJ2Rv
bS9BdHRyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0F0dHIuaCcsCiAgICAgICAgICAgICAnZG9t
L0F0dHJpYnV0ZS5jcHAnLApAQCAtMTM1Nyw2ICsxMzU1LDggQEAKICAgICAgICAgICAgICdkb20v
U2NyaXB0RWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgnLAorICAg
ICAgICAgICAgJ2RvbS9TY3JpcHRSdW5uZXIuY3BwJywKKyAgICAgICAgICAgICdkb20vU2NyaXB0
UnVubmVyLmgnLAogICAgICAgICAgICAgJ2RvbS9TZWxlY3RFbGVtZW50LmNwcCcsCiAgICAgICAg
ICAgICAnZG9tL1NlbGVjdEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAnZG9tL1NlbGVjdG9yTm9k
ZUxpc3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNDZjMDliZS4uMmFhMDEzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KQEAgLTQzNCw3ICs0MzQsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvV2ViS2l0Q1NT
TWF0cml4LmNwcCBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAgICAg
ZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAotICAgIGRvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAg
XAogICAgIGRvbS9BdHRyLmNwcCBcCiAgICAgZG9tL0F0dHJpYnV0ZS5jcHAgXAogICAgIGRvbS9C
ZWZvcmVQcm9jZXNzRXZlbnQuY3BwIFwKQEAgLTUxOCw2ICs1MTcsNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBcCiAgICAgZG9tL1NjcmlwdEVs
ZW1lbnQuY3BwIFwKICAgICBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgXAorICAgIGRv
bS9TY3JpcHRSdW5uZXIuY3BwIFwKICAgICBkb20vU2VsZWN0RWxlbWVudC5jcHAgXAogICAgIGRv
bS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZjM5
OTA3Ni4uZWVlMGY2MCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKQEAgLTQxMzU4LDYyICs0MTM1OCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxBc3luY1NjcmlwdFJ1bm5lci5jcHAiCi0J
CQkJPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
LQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NG
TGl0ZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJ
PFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdf
QWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8
VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNl
X0xUQ0d8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJ
CTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXEFzeW5jU2NyaXB0UnVubmVyLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxBdG9taWNTdHJpbmdMaXN0LmgiCiAJCQkJPgogCQkJ
PC9GaWxlPgpAQCAtNDU5MDYsNiArNDU4NTAsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNjcmlwdFJ1bm5lci5jcHAiCisJCQkJPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9t
XFNjcmlwdFJ1bm5lci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxkb21cU2VsZWN0RWxlbWVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGE4YzcwZGMuLmJkNGE1MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3MDEsOCArMjcwMSw4IEBACiAJ
CTg5RDA4REExMTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlFMTIy
Mjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLzsgfTsKIAkJOEEx
MkUzNUQxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEExMkUzNUMxMUZBMzMyODAwMjU4
MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCThBMzA5QzlGMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5n
TGV2ZWxJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOEEzMDlDOUUxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVu
dGVyLmggKi87IH07Ci0JCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1
bm5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0
MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOEE0MTNBRTExMjA3QkJBNTAw
ODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1Nj
cmlwdFJ1bm5lci5jcHAgKi87IH07CisJCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3Jp
cHRSdW5uZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4QTQxM0FFMTEyMDdCQkE1MDA4
MjAxNkUgLyogU2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDhBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIu
Y3BwICovOyB9OwogCQk4QTdDQzk2QjEyMDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE3Q0M5NkEx
MjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4QTdDQzk3MDEyMDc2RjhBMDAxRDQ1ODggLyog
UGVuZGluZ1NjcmlwdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4QTdDQzk2RjEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgKi87
IH07CiAJCThBODFCRjg1MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBODFCRjg0MTFE
Q0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTEzOSw4ICs5MTM5LDggQEAKIAkJODlE
MDhEOUUxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8q
IERvY3VtZW50TG9hZFRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
b2N1bWVudExvYWRUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEEzMDlD
OUUxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmg7IHBhdGgg
PSBwYXJzZXIvTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jU2NyaXB0UnVubmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBB
c3luY1NjcmlwdFJ1bm5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBc3luY1NjcmlwdFJ1bm5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThB
NDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0UnVubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0UnVubmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE3Q0M5NkExMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRp
bmdTY3JpcHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVuZGluZ1Njcmlw
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTdDQzk2RjEyMDc2RjhBMDAxRDQ1
ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQZW5kaW5nU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE4
MUJGODQxMURDRkQ5MDAwREEyQjk4IC8qIFJlc291cmNlTG9hZFRpbWluZy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRUaW1pbmcuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE4OTQ1LDggKzE4OTQ1LDYgQEAKIAkJCWNoaWxkcmVuID0gKAog
CQkJCUUxQzRERTZEMEVBNzVDNjUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmplY3QuY3BwICovLAog
CQkJCUUxQzRERTY4MEVBNzVDMUUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmplY3QuaCAqLywKLQkJ
CQk4QTQxM0FERjEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3BwICovLAot
CQkJCThBNDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICovLAog
CQkJCUE4QzRBN0ZDMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmNwcCAqLywKIAkJCQlBOEM0QTdG
QjA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5oICovLAogCQkJCTkzRUVDMUU1MDlDMjg3NzcwMEM1
MTVEMSAvKiBBdHRyLmlkbCAqLywKQEAgLTE5MTg0LDYgKzE5MTgyLDggQEAKIAkJCQkwOEE0ODQ3
NjBFNTI3MkM1MDBDM0ZFNzYgLyogU2NyaXB0RWxlbWVudC5oICovLAogCQkJCUUxMUM5REFGMEVC
MzY5OTUwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCAqLywKIAkJCQlFMTFD
OUQ5QTBFQjM2ODEyMDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oICovLAorCQkJ
CThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovLAorCQkJCThB
NDEzQURFMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCAqLywKIAkJCQkwODRBRUJF
MjBGQjUwNUZBMDAzODQ4M0UgLyogU2VsZWN0RWxlbWVudC5jcHAgKi8sCiAJCQkJMDg0QUVCRTMw
RkI1MDVGQTAwMzg0ODNFIC8qIFNlbGVjdEVsZW1lbnQuaCAqLywKIAkJCQlCQzdGQTY4MDBEMUYx
Njc5MDBEQjIyQTkgLyogU2VsZWN0b3JOb2RlTGlzdC5jcHAgKi8sCkBAIC0xOTUzOSw3ICsxOTUz
OSw2IEBACiAJCQkJOTc2RDZDNzcxMjJCOEEzRDAwMUZEMUY3IC8qIEFzeW5jRmlsZVdyaXRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTc2RDZDOTMxMjJCOEEzRDAwMUZEMUY3IC8qIEFzeW5jRmls
ZVdyaXRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjAxNDlFN0UxMUE0QjIxNTAwMTk2
QTdCIC8qIEFzeW5jSW1hZ2VSZXNpemVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk4QTQxM0FFMDEy
MDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTM3QzYxRjAxMTIwOTVDODcwMDdBM0M2NyAvKiBBdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEM0QTgwRDA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThDNEE4MEIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHJpYnV0ZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yMTkxNCw2ICsyMTkxMyw3IEBACiAJCQkJOUY3MjMwNEYxMTE4
NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTlGQTM3
RUU0MTE3MkZDODAwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOUY3MjMwNTExMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291
cmNlQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U1NEZEMzgxMDE2RDlBNjAwOEI0NEM4IC8q
IFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUM3NjBCMTBFREUw
M0QzMDBDMTY1NUYgLyogU2NyaXB0U3RhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjI4NTEsNyAr
MjI4NTEsNiBAQAogCQkJCTQ5RUVDRERGMTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZp
ZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODlEMDhEOUYxMjIyODQ1MTAwMTI0MURGIC8qIEFz
eW5jRmlsZVN5c3RlbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMDE0OUU3RDExQTRCMjE1MDAx
OTZBN0IgLyogQXN5bmNJbWFnZVJlc2l6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOEE0MTNB
RTExMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4QzRBODBFMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4QzRBODBDMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyaWJ1dGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkQzMTVGRjYxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvQmFzaWNQcm9jZXNz
b3JOb2RlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQ2ODksNiArMjQ2ODgsNyBAQAogCQkJCTQx
RjA2NkU1MEY2NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRjMzRjAyODIxMjA5NDdGMjAwRTU3NDNBIC8qIFNjcmlwdFByb2ZpbGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOUY3MjMwNTAxMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCThBNDEzQUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3Jp
cHRSdW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEyN0Q1MzcwRjhBQUIxRDAwRTQyNEY1
IC8qIFNjcmlwdFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNENDMEUxMEVEMzlENkYw
MEE2NThGMiAvKiBTY3JpcHRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzhBRTM0RTEy
RUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCBjODhhZWNmLi4wOGE3NjgwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKIC8vIFRoaXMgYWxsLWluLW9u
ZSBjcHAgZmlsZSBjdXRzIGRvd24gb24gdGVtcGxhdGUgYmxvYXQgdG8gYWxsb3cgdXMgdG8gYnVp
bGQgb3VyIFdpbmRvd3MgcmVsZWFzZSBidWlsZC4KIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVj
dC5jcHAiCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuY3BwIgogI2luY2x1ZGUgIkF0dHIu
Y3BwIgogI2luY2x1ZGUgIkF0dHJpYnV0ZS5jcHAiCiAjaW5jbHVkZSAiQmVmb3JlUHJvY2Vzc0V2
ZW50LmNwcCIKQEAgLTEwNCw2ICsxMDMsNyBAQAogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUu
Y3BwIgogI2luY2x1ZGUgIlNjcmlwdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuY3BwIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5jcHAiCiAjaW5jbHVkZSAi
U2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCIKICNpbmNsdWRlICJTZWxlY3RFbGVtZW50LmNw
cCIKICNpbmNsdWRlICJTZWxlY3Rvck5vZGVMaXN0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IGY0NWQ2Y2YuLmU1N2UxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjks
NyArMjksNiBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkFuaW1h
dGlvbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5oIgogI2luY2x1
ZGUgIkF0dHIuaCIKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJDREFUQVNlY3Rp
b24uaCIKQEAgLTEyNSw2ICsxMjQsNyBAQAogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5l
ci5oIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uQ29u
dHJvbGxlci5oIgpAQCAtMzkwLDcgKzM5MCw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSog
ZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICAs
IG1fc3RhcnRUaW1lKGN1cnJlbnRUaW1lKCkpCiAgICAgLCBtX292ZXJNaW5pbXVtTGF5b3V0VGhy
ZXNob2xkKGZhbHNlKQogICAgICwgbV9leHRyYUxheW91dERlbGF5KDApCi0gICAgLCBtX2FzeW5j
U2NyaXB0UnVubmVyKEFzeW5jU2NyaXB0UnVubmVyOjpjcmVhdGUodGhpcykpCisgICAgLCBtX3Nj
cmlwdFJ1bm5lcihTY3JpcHRSdW5uZXI6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1feG1sVmVyc2lv
bigiMS4wIikKICAgICAsIG1feG1sU3RhbmRhbG9uZShmYWxzZSkKICAgICAsIG1fc2F2ZWRSZW5k
ZXJlcigwKQpAQCAtNTYxLDcgKzU2MSw3IEBAIERvY3VtZW50Ojp+RG9jdW1lbnQoKQogICAgIEFT
U0VSVChtX3Jhbmdlcy5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9zdHlsZVJlY2FsY1RpbWVy
LmlzQWN0aXZlKCkpOwogCi0gICAgbV9hc3luY1NjcmlwdFJ1bm5lci5jbGVhcigpOworICAgIG1f
c2NyaXB0UnVubmVyLmNsZWFyKCk7CiAKICAgICByZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGQ1NjVlM2UuLmRmYWNkZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC01MSw3ICs1MSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
QXN5bmNTY3JpcHRSdW5uZXI7CiBjbGFzcyBBdHRyOwogY2xhc3MgQVhPYmplY3RDYWNoZTsKIGNs
YXNzIENEQVRBU2VjdGlvbjsKQEAgLTExNCw2ICsxMTMsNyBAQCBjbGFzcyBSZW5kZXJWaWV3Owog
Y2xhc3MgUmVuZGVyRnVsbFNjcmVlbjsKIGNsYXNzIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjsK
IGNsYXNzIFNjcmlwdEVsZW1lbnREYXRhOworY2xhc3MgU2NyaXB0UnVubmVyOwogY2xhc3MgU2Vj
dXJpdHlPcmlnaW47CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTZWdtZW50
ZWRTdHJpbmc7CkBAIC04OTcsNyArODk3LDcgQEAgcHVibGljOgogCiAgICAgaW50IGRvY0lEKCkg
Y29uc3QgeyByZXR1cm4gbV9kb2NJRDsgfQogICAgIAotICAgIEFzeW5jU2NyaXB0UnVubmVyKiBh
c3luY1NjcmlwdFJ1bm5lcigpIHsgcmV0dXJuIG1fYXN5bmNTY3JpcHRSdW5uZXIuZ2V0KCk7IH0K
KyAgICBTY3JpcHRSdW5uZXIqIHNjcmlwdFJ1bm5lcigpIHsgcmV0dXJuIG1fc2NyaXB0UnVubmVy
LmdldCgpOyB9CiAKICNpZiBFTkFCTEUoWFNMVCkKICAgICB2b2lkIGFwcGx5WFNMVHJhbnNmb3Jt
KFByb2Nlc3NpbmdJbnN0cnVjdGlvbiogcGkpOwpAQCAtMTMxMCw3ICsxMzEwLDcgQEAgcHJpdmF0
ZToKICAgICAvLyBwb2ludHMgZHVyaW5nIHRoZSBsaWZldGltZSBvZiB0aGUgRG9jdW1lbnQuCiAg
ICAgaW50IG1fZXh0cmFMYXlvdXREZWxheTsKICAgICAKLSAgICBPd25QdHI8QXN5bmNTY3JpcHRS
dW5uZXI+IG1fYXN5bmNTY3JpcHRSdW5uZXI7CisgICAgT3duUHRyPFNjcmlwdFJ1bm5lcj4gbV9z
Y3JpcHRSdW5uZXI7CiAKICNpZiBFTkFCTEUoWFNMVCkKICAgICBPd25QdHI8VHJhbnNmb3JtU291
cmNlPiBtX3RyYW5zZm9ybVNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApp
bmRleCAzYmJhOWEwLi5iNGQzNjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
CkBAIC0yNCw3ICsyNCw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2NyaXB0
RWxlbWVudC5oIgogCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJD
YWNoZWRTY3JpcHQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCkBAIC0zNyw2ICszNiw3IEBACiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdp
c3RyeS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgi
CisjaW5jbHVkZSAiU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5o
IgogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTYx
LDYgKzYxLDggQEAgU2NyaXB0RWxlbWVudDo6U2NyaXB0RWxlbWVudChFbGVtZW50KiBlbGVtZW50
LCBib29sIHBhcnNlckluc2VydGVkLCBib29sIGFscmVhZHkKICAgICAsIG1fd2lsbEJlUGFyc2Vy
RXhlY3V0ZWQoZmFsc2UpCiAgICAgLCBtX3JlYWR5VG9CZVBhcnNlckV4ZWN1dGVkKGZhbHNlKQog
ICAgICwgbV93aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZyhmYWxzZSkKKyAg
ICAsIG1fZm9yY2VBc3luYyghcGFyc2VySW5zZXJ0ZWQpCisgICAgLCBtX3dpbGxFeGVjdXRlSW5P
cmRlcihmYWxzZSkKIHsKICAgICBBU1NFUlQobV9lbGVtZW50KTsKIH0KQEAgLTk2LDYgKzk4LDEx
IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6aGFuZGxlU291cmNlQXR0cmlidXRlKGNvbnN0IFN0cmlu
ZyYgc291cmNlVXJsKQogICAgIHByZXBhcmVTY3JpcHQoKTsgLy8gRklYTUU6IFByb3ZpZGUgYSBy
ZWFsIHN0YXJ0aW5nIGxpbmUgbnVtYmVyIGhlcmUuCiB9CiAKK3ZvaWQgU2NyaXB0RWxlbWVudDo6
aGFuZGxlQXN5bmNBdHRyaWJ1dGUoKQoreworICAgIG1fZm9yY2VBc3luYyA9IGZhbHNlOworfQor
CiAvLyBIZWxwZXIgZnVuY3Rpb24KIHN0YXRpYyBib29sIGlzTGVnYWN5U3VwcG9ydGVkSmF2YVNj
cmlwdExhbmd1YWdlKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCiB7CkBAIC0xNTksNyArMTY2LDgg
QEAgYm9vbCBTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbjEm
IHNjcmlwdFN0YXJ0UG9zaXRpb24sIExlZ2EKICAgICB9IGVsc2UKICAgICAgICAgd2FzUGFyc2Vy
SW5zZXJ0ZWQgPSBmYWxzZTsKIAotICAgIC8vIEZJWE1FOiBIVE1MNSBzcGVjIHNheXMgd2Ugc2hv
dWxkIHNldCBmb3JjZUFzeW5jLgorICAgIGlmICh3YXNQYXJzZXJJbnNlcnRlZCAmJiAhYXN5bmNB
dHRyaWJ1dGVWYWx1ZSgpKQorICAgICAgICBtX2ZvcmNlQXN5bmMgPSB0cnVlOwogCiAgICAgLy8g
RklYTUU6IEhUTUw1IHNwZWMgc2F5cyB3ZSBzaG91bGQgY2hlY2sgdGhhdCBhbGwgY2hpbGRyZW4g
YXJlIGVpdGhlciBjb21tZW50cyBvciBlbXB0eSB0ZXh0IG5vZGVzLgogICAgIGlmICghaGFzU291
cmNlQXR0cmlidXRlKCkgJiYgIW1fZWxlbWVudC0+Zmlyc3RDaGlsZCgpKQpAQCAtMTcxLDggKzE3
OSwxMCBAQCBib29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0
aW9uMSYgc2NyaXB0U3RhcnRQb3NpdGlvbiwgTGVnYQogICAgIGlmICghaXNTY3JpcHRUeXBlU3Vw
cG9ydGVkKHN1cHBvcnRMZWdhY3lUeXBlcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IGlmICh3YXNQYXJzZXJJbnNlcnRlZCkKKyAgICBpZiAod2FzUGFyc2VySW5zZXJ0ZWQpIHsKICAg
ICAgICAgbV9wYXJzZXJJbnNlcnRlZCA9IHRydWU7CisgICAgICAgIG1fZm9yY2VBc3luYyA9IGZh
bHNlOworICAgIH0KIAogICAgIG1fYWxyZWFkeVN0YXJ0ZWQgPSB0cnVlOwogCkBAIC0yMDcsNiAr
MjE3LDEwIEBAIGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9z
aXRpb24xJiBzY3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhCiAgICAgZWxzZSBpZiAoIWhhc1NvdXJj
ZUF0dHJpYnV0ZSgpICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIW1fZWxlbWVudC0+ZG9jdW1lbnQo
KS0+aGF2ZVN0eWxlc2hlZXRzTG9hZGVkKCkpIHsKICAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVj
dXRlZCA9IHRydWU7CiAgICAgICAgIG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOwor
ICAgIH0gZWxzZSBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkgJiYgIWFzeW5jQXR0cmlidXRlVmFs
dWUoKSAmJiAhbV9mb3JjZUFzeW5jKSB7CisgICAgICAgIG1fd2lsbEV4ZWN1dGVJbk9yZGVyID0g
dHJ1ZTsKKyAgICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+cXVl
dWVTY3JpcHRGb3JFeGVjdXRpb24odGhpcywgbV9jYWNoZWRTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6
SU5fT1JERVJfRVhFQ1VUSU9OKTsKKyAgICAgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0
aGlzKTsKICAgICB9IGVsc2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpKQogICAgICAgICBtX2Nh
Y2hlZFNjcmlwdC0+YWRkQ2xpZW50KHRoaXMpOwogICAgIGVsc2UKQEAgLTI4Niw3ICszMDAsMTAg
QEAgdm9pZCBTY3JpcHRFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogbykK
IHsKICAgICBBU1NFUlQoIW1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQpOwogICAgIEFTU0VSVF9VTlVT
RUQobywgbyA9PSBtX2NhY2hlZFNjcmlwdCk7Ci0gICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5h
c3luY1NjcmlwdFJ1bm5lcigpLT5leGVjdXRlU2NyaXB0U29vbih0aGlzLCBtX2NhY2hlZFNjcmlw
dCk7CisgICAgaWYgKG1fd2lsbEV4ZWN1dGVJbk9yZGVyKQorICAgICAgICBtX2VsZW1lbnQtPmRv
Y3VtZW50KCktPnNjcmlwdFJ1bm5lcigpLT5ub3RpZnlJbk9yZGVyU2NyaXB0UmVhZHkoKTsKKyAg
ICBlbHNlCisgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCktPnF1
ZXVlU2NyaXB0Rm9yRXhlY3V0aW9uKHRoaXMsIG1fY2FjaGVkU2NyaXB0LCBTY3JpcHRSdW5uZXI6
OkFTWU5DX0VYRUNVVElPTik7CiAgICAgbV9jYWNoZWRTY3JpcHQgPSAwOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuaAppbmRleCA3OWRmZjMzLi45Y2U2NmU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFbGVtZW50LmgKQEAgLTYzLDEyICs2MywxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBzZXRIYXZlRmlyZWRMb2FkRXZlbnQoYm9vbCBoYXZlRmlyZWRMb2FkKSB7IG1faGF2ZUZpcmVk
TG9hZCA9IGhhdmVGaXJlZExvYWQ7IH0KICAgICBib29sIGlzUGFyc2VySW5zZXJ0ZWQoKSBjb25z
dCB7IHJldHVybiBtX3BhcnNlckluc2VydGVkOyB9CiAgICAgYm9vbCBhbHJlYWR5U3RhcnRlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYWxyZWFkeVN0YXJ0ZWQ7IH0KKyAgICBib29sIGZvcmNlQXN5bmMo
KSBjb25zdCB7IHJldHVybiBtX2ZvcmNlQXN5bmM7IH0KIAogICAgIC8vIEhlbHBlciBmdW5jdGlv
bnMgdXNlZCBieSBvdXIgcGFyZW50IGNsYXNzZXMuCiAgICAgdm9pZCBpbnNlcnRlZEludG9Eb2N1
bWVudCgpOwogICAgIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogICAgIHZvaWQgY2hpbGRy
ZW5DaGFuZ2VkKCk7CiAgICAgdm9pZCBoYW5kbGVTb3VyY2VBdHRyaWJ1dGUoY29uc3QgU3RyaW5n
JiBzb3VyY2VVcmwpOworICAgIHZvaWQgaGFuZGxlQXN5bmNBdHRyaWJ1dGUoKTsKIAogcHJpdmF0
ZToKICAgICBib29sIGlnbm9yZXNMb2FkUmVxdWVzdCgpIGNvbnN0OwpAQCAtOTgsNiArMTAwLDgg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgOiAxOyAvLyBTYW1l
IGFzICJUaGUgcGFyc2VyIHdpbGwgaGFuZGxlIGV4ZWN1dGluZyB0aGUgc2NyaXB0LiIKICAgICBi
b29sIG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQgOiAxOwogICAgIGJvb2wgbV93aWxsRXhlY3V0
ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZyA6IDE7CisgICAgYm9vbCBtX2ZvcmNlQXN5bmMg
OiAxOworICAgIGJvb2wgbV93aWxsRXhlY3V0ZUluT3JkZXIgOiAxOwogICAgIFN0cmluZyBtX2No
YXJhY3RlckVuY29kaW5nOwogICAgIFN0cmluZyBtX2ZhbGxiYWNrQ2hhcmFjdGVyRW5jb2Rpbmc7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCnNpbWlsYXJpdHkgaW5kZXgg
NjElCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAK
cmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCmluZGV4IDI4YjFi
MzEuLjEwMTk4YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1
bm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI0
LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQXN5bmNT
Y3JpcHRSdW5uZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKIAogI2luY2x1ZGUgIkNh
Y2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zNCw1MiArMzQsNzkgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Bc3luY1NjcmlwdFJ1bm5lcjo6QXN5bmNTY3JpcHRS
dW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50KQorU2NyaXB0UnVubmVyOjpTY3JpcHRSdW5uZXIoRG9j
dW1lbnQqIGRvY3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKLSAgICAsIG1fdGlt
ZXIodGhpcywgJkFzeW5jU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKQorICAgICwgbV90aW1lcih0
aGlzLCAmU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKQogewogICAgIEFTU0VSVChkb2N1bWVudCk7
CiB9CiAKLUFzeW5jU2NyaXB0UnVubmVyOjp+QXN5bmNTY3JpcHRSdW5uZXIoKQorU2NyaXB0UnVu
bmVyOjp+U2NyaXB0UnVubmVyKCkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2Ny
aXB0c1RvRXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kpCiAgICAgICAgIG1fZG9jdW1lbnQtPmRlY3Jl
bWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1f
c2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQt
PmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1
bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCit2b2lkIFNjcmlw
dFJ1bm5lcjo6cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxl
bWVudCwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQsIEV4
ZWN1dGlvblR5cGUgZXhlY3V0aW9uVHlwZSkKIHsKLSAgICBBU1NFUlRfQVJHKHNjcmlwdEVsZW1l
bnQsIHNjcmlwdEVsZW1lbnQpOworICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKIAogICAgIEVs
ZW1lbnQqIGVsZW1lbnQgPSBzY3JpcHRFbGVtZW50LT5lbGVtZW50KCk7CiAgICAgQVNTRVJUKGVs
ZW1lbnQpOwogICAgIEFTU0VSVChlbGVtZW50LT5pbkRvY3VtZW50KCkpOwogCiAgICAgbV9kb2N1
bWVudC0+aW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwotICAgIG1fc2NyaXB0c1RvRXhl
Y3V0ZVNvb24uYXBwZW5kKFBlbmRpbmdTY3JpcHQoZWxlbWVudCwgY2FjaGVkU2NyaXB0LmdldCgp
KSk7Ci0gICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fdGltZXIuc3RhcnRP
bmVTaG90KDApOworCisgICAgc3dpdGNoIChleGVjdXRpb25UeXBlKSB7CisgICAgY2FzZSBBU1lO
Q19FWEVDVVRJT046CisgICAgICAgIG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uYXBwZW5kKFBlbmRp
bmdTY3JpcHQoZWxlbWVudCwgY2FjaGVkU2NyaXB0LmdldCgpKSk7CisgICAgICAgIGlmICghbV90
aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7Cisg
ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBJTl9PUkRFUl9FWEVDVVRJT046CisgICAgICAgIG1f
c2NyaXB0c1RvRXhlY3V0ZUluT3JkZXIuYXBwZW5kKFBlbmRpbmdTY3JpcHQoZWxlbWVudCwgY2Fj
aGVkU2NyaXB0LmdldCgpKSk7CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQogfQogCi12b2lkIEFzeW5jU2NyaXB0UnVu
bmVyOjpzdXNwZW5kKCkKK3ZvaWQgU2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKIHsKICAgICBtX3Rp
bWVyLnN0b3AoKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6cmVzdW1lKCkKK3ZvaWQg
U2NyaXB0UnVubmVyOjpyZXN1bWUoKQogewogICAgIGlmIChoYXNQZW5kaW5nU2NyaXB0cygpKQog
ICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1
bm5lcjo6dGltZXJGaXJlZChUaW1lcjxBc3luY1NjcmlwdFJ1bm5lcj4qIHRpbWVyKQordm9pZCBT
Y3JpcHRSdW5uZXI6Om5vdGlmeUluT3JkZXJTY3JpcHRSZWFkeSgpCit7CisgICAgQVNTRVJUKCFt
X3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSk7CisgICAgbV90aW1lci5zdGFydE9u
ZVNob3QoMCk7Cit9CisKK3ZvaWQgU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKFRpbWVyPFNjcmlw
dFJ1bm5lcj4qIHRpbWVyKQogewogICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZt
X3RpbWVyKTsKIAogICAgIFJlZlB0cjxEb2N1bWVudD4gcHJvdGVjdChtX2RvY3VtZW50KTsKLSAg
ICAKKwogICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBzY3JpcHRzOwogICAgIHNjcmlwdHMuc3dh
cChtX3NjcmlwdHNUb0V4ZWN1dGVTb29uKTsKKworICAgIHNpemVfdCBudW1Jbk9yZGVyU2NyaXB0
c1RvRXhlY3V0ZSA9IDA7CisgICAgZm9yICg7IG51bUluT3JkZXJTY3JpcHRzVG9FeGVjdXRlIDwg
bV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlci5zaXplKCkgJiYgbV9zY3JpcHRzVG9FeGVjdXRlSW5P
cmRlcltudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0ZV0uY2FjaGVkU2NyaXB0KCktPmlzTG9hZGVk
KCk7ICsrbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUpCisgICAgICAgIHNjcmlwdHMuYXBwZW5k
KG1fc2NyaXB0c1RvRXhlY3V0ZUluT3JkZXJbbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGVdKTsK
KyAgICBpZiAobnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUpCisgICAgICAgIG1fc2NyaXB0c1Rv
RXhlY3V0ZUluT3JkZXIucmVtb3ZlKDAsIG51bUluT3JkZXJTY3JpcHRzVG9FeGVjdXRlKTsKKwog
ICAgIHNpemVfdCBzaXplID0gc2NyaXB0cy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQgPSBz
Y3JpcHRzW2ldLmNhY2hlZFNjcmlwdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0FzeW5jU2NyaXB0UnVubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgK
c2ltaWxhcml0eSBpbmRleCA3MyUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL0FzeW5j
U2NyaXB0UnVubmVyLmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIu
aAppbmRleCA2YTc1MzIzLi5kNmQ3NDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
QXN5bmNTY3JpcHRSdW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVy
LmgKQEAgLTIzLDggKzIzLDggQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgQXN5
bmNTY3JpcHRSdW5uZXJfaAotI2RlZmluZSBBc3luY1NjcmlwdFJ1bm5lcl9oCisjaWZuZGVmIFNj
cmlwdFJ1bm5lcl9oCisjZGVmaW5lIFNjcmlwdFJ1bm5lcl9oCiAKICNpbmNsdWRlICJDYWNoZWRS
ZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0zOCwyNiArMzgsMjkgQEAg
Y2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBQZW5kaW5nU2NyaXB0
OwogY2xhc3MgU2NyaXB0RWxlbWVudDsKLSAgICAKLWNsYXNzIEFzeW5jU2NyaXB0UnVubmVyIHsK
LSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBc3luY1NjcmlwdFJ1bm5lcik7IFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworCitjbGFzcyBTY3JpcHRSdW5uZXIgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFNjcmlwdFJ1bm5lcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEFzeW5jU2NyaXB0UnVubmVyPiBjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KSB7IHJldHVybiBuZXcgQXN5bmNTY3JpcHRSdW5uZXIoZG9jdW1lbnQpOyB9Ci0g
ICAgfkFzeW5jU2NyaXB0UnVubmVyKCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8U2NyaXB0UnVu
bmVyPiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KSB7IHJldHVybiBuZXcgU2NyaXB0UnVubmVy
KGRvY3VtZW50KTsgfQorICAgIH5TY3JpcHRSdW5uZXIoKTsKIAotICAgIHZvaWQgZXhlY3V0ZVNj
cmlwdFNvb24oU2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlw
dD4pOwotICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3Jp
cHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCk7IH0KKyAgICBlbnVtIEV4ZWN1dGlvblR5cGUgeyBB
U1lOQ19FWEVDVVRJT04sIElOX09SREVSX0VYRUNVVElPTiB9OworICAgIHZvaWQgcXVldWVTY3Jp
cHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hl
ZFNjcmlwdD4sIEV4ZWN1dGlvblR5cGUpOworICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBj
b25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fc2Ny
aXB0c1RvRXhlY3V0ZUluT3JkZXIuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAg
ICAgdm9pZCByZXN1bWUoKTsKKyAgICB2b2lkIG5vdGlmeUluT3JkZXJTY3JpcHRSZWFkeSgpOwog
CiBwcml2YXRlOgotICAgIEFzeW5jU2NyaXB0UnVubmVyKERvY3VtZW50Kik7CisgICAgU2NyaXB0
UnVubmVyKERvY3VtZW50Kik7CiAKLSAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8QXN5bmNTY3Jp
cHRSdW5uZXI+Kik7CisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPFNjcmlwdFJ1bm5lcj4qKTsK
IAogICAgIERvY3VtZW50KiBtX2RvY3VtZW50OworICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBt
X3NjcmlwdHNUb0V4ZWN1dGVJbk9yZGVyOwogICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBtX3Nj
cmlwdHNUb0V4ZWN1dGVTb29uOyAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFw
cHMvY3VycmVudC13b3JrLyNzZXQtb2Ytc2NyaXB0cy10aGF0LXdpbGwtZXhlY3V0ZS1hcy1zb29u
LWFzLXBvc3NpYmxlCi0gICAgVGltZXI8QXN5bmNTY3JpcHRSdW5uZXI+IG1fdGltZXI7CisgICAg
VGltZXI8U2NyaXB0UnVubmVyPiBtX3RpbWVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTY3JpcHRFbGVtZW50LmNwcAppbmRleCA4ZTcwOGQxLi5iNTZiMzc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcApAQCAtNTgsNiArNTgsMTMgQEAgdm9p
ZCBIVE1MU2NyaXB0RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2Vy
LCBOb2RlKiBiZWZvcmVDaGFuZ2UKICAgICBIVE1MRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNo
YW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3VudERlbHRh
KTsKIH0KIAordm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1
dGUqIGF0dHIsIGJvb2wgcHJlc2VydmVEZWNscykKK3sKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09
IGFzeW5jQXR0cikKKyAgICAgICAgaGFuZGxlQXN5bmNBdHRyaWJ1dGUoKTsKKyAgICBIVE1MRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChhdHRyLCBwcmVzZXJ2ZURlY2xzKTsKK30KKwogdm9pZCBI
VE1MU2NyaXB0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQog
ewogICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lID0gYXR0ci0+bmFtZSgpOwpAQCAt
MTAyLDYgKzEwOSwxNyBAQCB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpzZXRUZXh0KGNvbnN0IFN0
cmluZyAmdmFsdWUpCiAgICAgYXBwZW5kQ2hpbGQoZG9jdW1lbnQoKS0+Y3JlYXRlVGV4dE5vZGUo
dmFsdWUuaW1wbCgpKSwgZWMpOwogfQogCit2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpzZXRBc3lu
Yyhib29sIGFzeW5jKQoreworICAgIHNldEJvb2xlYW5BdHRyaWJ1dGUoYXN5bmNBdHRyLCBhc3lu
Yyk7CisgICAgaGFuZGxlQXN5bmNBdHRyaWJ1dGUoKTsKK30KKworYm9vbCBIVE1MU2NyaXB0RWxl
bWVudDo6YXN5bmMoKSBjb25zdAoreworICAgIHJldHVybiBmYXN0SGFzQXR0cmlidXRlKGFzeW5j
QXR0cikgfHwgZm9yY2VBc3luYygpOworfQorCiBLVVJMIEhUTUxTY3JpcHRFbGVtZW50OjpzcmMo
KSBjb25zdAogewogICAgIHJldHVybiBkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VBdHRy
aWJ1dGVWYWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRl
eCBlZmU2YTZhLi5jYmU3MjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
Y3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5oCkBAIC0zOCw2ICszOCw5IEBAIHB1YmxpYzoKIAogICAgIEtVUkwgc3JjKCkgY29uc3Q7CiAK
KyAgICB2b2lkIHNldEFzeW5jKGJvb2wpOworICAgIGJvb2wgYXN5bmMoKSBjb25zdDsKKwogcHJp
dmF0ZToKICAgICBIVE1MU2NyaXB0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgYWxyZWFkeVN0YXJ0ZWQpOwogCkBA
IC00NSw2ICs0OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0Rv
Y3VtZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2Us
IE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxk
Q291bnREZWx0YSA9IDApOworICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKEF0dHJp
YnV0ZSosIGJvb2wgcHJlc2VydmVEZWNscyA9IGZhbHNlKTsKIAogICAgIHZpcnR1YWwgYm9vbCBp
c1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTY3JpcHRFbGVtZW50LmlkbAppbmRleCAyMGI3MzMxLi5mYTc5OWNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbApAQCAtMjQsNyArMjQsNyBAQCBtb2R1bGUg
aHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1mb3JdIERPTVN0cmluZyBodG1sRm9y
OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBldmVudDsKICAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgY2hhcnNldDsKLSAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBib29sZWFuIGFzeW5jOworICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBhc3lu
YzsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGRlZmVyOwogICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5nIHNyYzsKICAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUdyb3VwTG9hZERlZmVycmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdy
b3VwTG9hZERlZmVycmVyLmNwcAppbmRleCBkZWEyY2Q3Li5kZmJiMjQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCkBAIC0yMSwxMSArMjEsMTEg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQYWdlR3JvdXBMb2FkRGVmZXJyZXIu
aCIKIAotI2luY2x1ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRQ
YXJzZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQYWdlR3JvdXAuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MCw3ICs1MCw3IEBAIFBhZ2VH
cm91cExvYWREZWZlcnJlcjo6UGFnZUdyb3VwTG9hZERlZmVycmVyKFBhZ2UqIHBhZ2UsIGJvb2wg
ZGVmZXJTZWxmKQogICAgICAgICAgICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gb3RoZXJQYWdl
LT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0
KCkpIHsKICAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnN1c3BlbmRTY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXJDYWxsYmFja3MoKTsKICAgICAgICAgICAgICAgICAgICAg
ZnJhbWUtPmRvY3VtZW50KCktPnN1c3BlbmRBY3RpdmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVj
dDo6V2lsbFNob3dEaWFsb2cpOwotICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQo
KS0+YXN5bmNTY3JpcHRSdW5uZXIoKS0+c3VzcGVuZCgpOworICAgICAgICAgICAgICAgICAgICBm
cmFtZS0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCktPnN1c3BlbmQoKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKERvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+
cGFyc2VyKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXItPnN1c3BlbmRTY2hlZHVs
ZWRUYXNrcygpOwogICAgICAgICAgICAgICAgIH0KQEAgLTczLDcgKzczLDcgQEAgUGFnZUdyb3Vw
TG9hZERlZmVycmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVyKCkKICAgICAgICAgICAgIGZvciAo
RnJhbWUqIGZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50
cmVlKCktPnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50
KCktPnJlc3VtZUFjdGl2ZURPTU9iamVjdHMoKTsKICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9j
dW1lbnQoKS0+cmVzdW1lU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyQ2FsbGJhY2tzKCk7Ci0g
ICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPmFzeW5jU2NyaXB0UnVubmVyKCktPnJl
c3VtZSgpOworICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIo
KS0+cmVzdW1lKCk7CiAgICAgICAgICAgICAgICAgaWYgKERvY3VtZW50UGFyc2VyKiBwYXJzZXIg
PSBmcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2VyKCkpCiAgICAgICAgICAgICAgICAgICAgIHBhcnNl
ci0+cmVzdW1lU2NoZWR1bGVkVGFza3MoKTsKICAgICAgICAgICAgIH0K
</data>
<flag name="review"
          id="76818"
          type_id="1"
          status="+"
          setter="tonyg"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85399</attachid>
            <date>2011-03-10 15:55:24 -0800</date>
            <delta_ts>2011-03-10 22:17:11 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>async4.patch</filename>
            <type>text/plain</type>
            <size>42270</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YzhiMDFiLi4yMTFiMzk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMt
MTAgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFRvbnkgR2VudGlsY29yZS4KKworICAgICAgICBOZWVkIGRpZmZlcmVudCBiZWhh
dmlvciBmb3IgZW5zdXJpbmcgZXhlY3V0aW9uIG9yZGVyIG9mIGR5bmFtaWNhbGx5IGxvYWRlZCBz
Y3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
MDExNQorCisgICAgICAgIER5bmFtaWNhbGx5IGFkZGVkIHNjcmlwdHMgd2l0aCBhc3luYz1mYWxz
ZSB3aWxsIGxvYWQgaW4gcGFyYWxsZWwsIGJ1dCBleGVjdXRlIGluIG9yZGVyLgorICAgICAgICBT
ZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVs
dGlwYWdlL3NjcmlwdGluZy0xLmh0bWwjZm9yY2UtYXN5bmMKKworICAgICAgICAqIGZhc3QvZG9t
L0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLWV4cGVjdGVkLnR4dDogQWRkZWQg
dGVzdCBjYXNlcyBmb3IgZm9yY2VBc3luYy4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MU2NyaXB0
RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci5odG1sOiBEaXR0by4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1vcmRlci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVj
dXRlLWluLW9yZGVyLmh0bWw6IEFkZGVkLgorCiAyMDExLTAzLTEwICBYaXl1YW4gWGlhICA8eGl5
dWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtZmFs
c2UtaW5zaWRlLWFzeW5jLWZhbHNlLWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTFNjcmlwdEVsZW1lbnQvYXN5bmMtZmFsc2UtaW5zaWRlLWFzeW5jLWZhbHNlLWxv
YWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3MzMx
OGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxl
bWVudC9hc3luYy1mYWxzZS1pbnNpZGUtYXN5bmMtZmFsc2UtbG9hZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3IEBACitDaGVja3MgdGhhdCBhZGRpbmcgYW4gYXN5bmM9ZmFsc2Ugc2NyaXB0IHdo
aWxlIGV4ZWN1dGluZyBhbiBhc3luYz1mYWxzZSBzY3JpcHQgZG9lc24ndCBtZXNzIGFueXRoaW5n
IHVwLgorYXN5bmMtZmFsc2UKK2FzeW5jCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TFNjcmlwdEVsZW1lbnQvYXN5bmMtZmFsc2UtaW5zaWRlLWFzeW5jLWZhbHNlLWxvYWQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L2FzeW5jLWZhbHNlLWluc2lk
ZS1hc3luYy1mYWxzZS1sb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZjlmMjgwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxT
Y3JpcHRFbGVtZW50L2FzeW5jLWZhbHNlLWluc2lkZS1hc3luYy1mYWxzZS1sb2FkLmh0bWwKQEAg
LTAsMCArMSwyMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0iIj4KK0NoZWNrcyB0aGF0IGFkZGluZyBhbiBhc3luYz1mYWxzZSBzY3JpcHQgd2hpbGUgZXhl
Y3V0aW5nIGFuIGFzeW5jPWZhbHNlIHNjcmlwdCBkb2Vzbid0IG1lc3MgYW55dGhpbmcgdXAuCis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIganNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK2ZpcnN0X3NjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwor
Zmlyc3Rfc2NyaXB0LmFzeW5jID0gZmFsc2U7CitmaXJzdF9zY3JpcHQuc3JjID0gInJlc291cmNl
cy9hc3luYy1mYWxzZS5qcyI7Citkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIp
WzBdLmFwcGVuZENoaWxkKGZpcnN0X3NjcmlwdCk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZXNvdXJjZXMvYXN5bmMtZmFsc2Uu
anMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9yZXNvdXJjZXMvYXN5
bmMtZmFsc2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzIzZDIwMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50
L3Jlc291cmNlcy9hc3luYy1mYWxzZS5qcwpAQCAtMCwwICsxLDYgQEAKK2RlYnVnKCJhc3luYy1m
YWxzZSIpOworc2Vjb25kX3NjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIp
Oworc2Vjb25kX3NjcmlwdC5hc3luYyA9IGZhbHNlOworc2Vjb25kX3NjcmlwdC5zcmMgPSAicmVz
b3VyY2VzL2FzeW5jLmpzIjsKK3NlY29uZF9zY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIs
IGZpbmlzaEpTVGVzdCwgZmFsc2UpOworZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhl
YWQiKVswXS5hcHBlbmRDaGlsZChzZWNvbmRfc2NyaXB0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3lu
Yy1hdHRyLWV4cGVjdGVkLnR4dAppbmRleCA3YjhiZjRkLi5lODY3ZjQwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNjcmlwdEVsZW1lbnQv
c2NyaXB0LWFzeW5jLWF0dHItZXhwZWN0ZWQudHh0CkBAIC04LDggKzgsMTQgQEAgUEFTUyBpc0Fz
eW5jKCdzMScpIGlzIHRydWUKIFBBU1MgaXNBc3luYygnczInKSBpcyB0cnVlCiBQQVNTIGlzQXN5
bmMoJ3MzJykgaXMgdHJ1ZQogUEFTUyBpc0FzeW5jKCdzNCcpIGlzIHRydWUKK1BBU1MgaXNBc3lu
YygnczUnKSBpcyB0cnVlCitQQVNTIGlzQXN5bmMoJ3M2JykgaXMgdHJ1ZQorUEFTUyBpc0FzeW5j
KCdzNycpIGlzIHRydWUKK1BBU1MgaXNBc3luYygnczgnKSBpcyBmYWxzZQogUEFTUyBpc0R5bmFt
aWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyh0cnVlKSBpcyB0cnVlCiBQQVNTIGlzRHluYW1pY2Fs
bHlJbnNlcnRlZFNjcmlwdEFzeW5jKGZhbHNlKSBpcyBmYWxzZQorUEFTUyBpc0R5bmFtaWNhbGx5
SW5zZXJ0ZWRTY3JpcHRBc3luYygiYXN5bmMiKSBpcyB0cnVlCitQQVNTIGlzRHluYW1pY2FsbHlJ
bnNlcnRlZFNjcmlwdEFzeW5jKG51bGwpIGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTFNjcmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRyLmh0bWwKaW5kZXgg
NGEzZjNhZi4uYjBlNDA2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFNj
cmlwdEVsZW1lbnQvc2NyaXB0LWFzeW5jLWF0dHIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MU2NyaXB0RWxlbWVudC9zY3JpcHQtYXN5bmMtYXR0ci5odG1sCkBAIC0xMiwxMSAr
MTIsMTUgQEAKIDxzY3JpcHQgaWQ9InMyIiBzcmM9Imlnbm9yZWQuanMiIGFzeW5jPSJhc3luYyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IGlkPSJzMyIgc3JjPSJpZ25vcmVkLmpzIiBhc3luYz0iQVNZTkMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBpZD0iczQiIHNyYz0iaWdub3JlZC5qcyIgYXN5bmM9InRydWUi
Pjwvc2NyaXB0PgorPHNjcmlwdCBpZD0iczUiIHNyYz0iaWdub3JlZC5qcyIgYXN5bmM9ImZhbHNl
Ij48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM2Ij48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM3IiBh
c3luYz48L3NjcmlwdD4KKzxzY3JpcHQgaWQ9InM4IiBhc3luYz48L3NjcmlwdD4KIAogPHNjcmlw
dD4KIGRlc2NyaXB0aW9uKCdUaGlzIHRlc3QgY2hlY2tzIGZvciBwcm9wZXIgcGFyc2luZyBvZiB0
aGUgYXN5bmMgYXR0cmlidXRlIG9uIEhUTUwgc2NyaXB0IHRhZ3MuJyk7CiAKLXZhciBuZXh0U2Ny
aXB0SUQgPSAwOwordmFyIG5leHRTY3JpcHRJRCA9IDk7CiAKIGZ1bmN0aW9uIGlzQXN5bmMoaWQp
CiB7CkBAIC0yOSwxOSArMzMsMjcgQEAgZnVuY3Rpb24gaXNEeW5hbWljYWxseUluc2VydGVkU2Ny
aXB0QXN5bmMoYXN5bmMpCiAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNjcmlwdCIpOwogICAgIHNjcmlwdC5pZCA9IGlkOwogICAgIHNjcmlwdC5zcmMgPSAicmVzb3Vy
Y2VzL3NjcmlwdC1sb2FkLmpzIjsKLSAgICBpZiAoYXN5bmMpCi0gICAgICAgIHNjcmlwdC5hc3lu
YyA9ICJhc3luYyI7CisgICAgaWYgKGFzeW5jICE9IG51bGwpCisgICAgICAgIHNjcmlwdC5hc3lu
YyA9IGFzeW5jOwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0u
YXBwZW5kQ2hpbGQoc2NyaXB0KTsKICAgICByZXR1cm4gaXNBc3luYyhpZCk7CiB9CiAKK2RvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzOCIpLnJlbW92ZUF0dHJpYnV0ZSgiYXN5bmMiKTsKKwogc2hv
dWxkQmVGYWxzZSgiaXNBc3luYygnczAnKSIpOwogc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzMScp
Iik7CiBzaG91bGRCZVRydWUoImlzQXN5bmMoJ3MyJykiKTsKIHNob3VsZEJlVHJ1ZSgiaXNBc3lu
YygnczMnKSIpOwogc2hvdWxkQmVUcnVlKCJpc0FzeW5jKCdzNCcpIik7CitzaG91bGRCZVRydWUo
ImlzQXN5bmMoJ3M1JykiKTsKK3Nob3VsZEJlVHJ1ZSgiaXNBc3luYygnczYnKSIpOworc2hvdWxk
QmVUcnVlKCJpc0FzeW5jKCdzNycpIik7CitzaG91bGRCZUZhbHNlKCJpc0FzeW5jKCdzOCcpIik7
CiBzaG91bGRCZVRydWUoImlzRHluYW1pY2FsbHlJbnNlcnRlZFNjcmlwdEFzeW5jKHRydWUpIik7
CiBzaG91bGRCZUZhbHNlKCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyhmYWxzZSki
KTsKK3Nob3VsZEJlVHJ1ZSgiaXNEeW5hbWljYWxseUluc2VydGVkU2NyaXB0QXN5bmMoXCJhc3lu
Y1wiKSIpOworc2hvdWxkQmVUcnVlKCJpc0R5bmFtaWNhbGx5SW5zZXJ0ZWRTY3JpcHRBc3luYyhu
dWxsKSIpOwogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2FkLWV4
ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L3NjcmlwdC1hc3luYy1sb2FkLWV4ZWN1dGUtaW4tb3JkZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3Y2Y2OTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LWFzeW5jLWxvYWQtZXhlY3V0ZS1pbi1v
cmRlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitDaGVja3MgdGhhdCBhc3luYz1mYWxz
ZSBlbmZvcmNlcyBleGVjdXRpb24gb3JkZXIgZHluYW1pY2FsbHkgaW5zZXJ0ZWQgc2NyaXB0cy4g
U2VlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211
bHRpcGFnZS9zY3JpcHRpbmctMS5odG1sI2ZvcmNlLWFzeW5jCitzbG93QXN5bmMKK2FzeW5jCits
b2FkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1hc3luYy1sb2Fk
LWV4ZWN1dGUtaW4tb3JkZXIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zY3Jp
cHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOWM5MzY3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1leGVjdXRlLWluLW9yZGVyLmh0bWwKQEAg
LTAsMCArMSwzMCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4v
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0iZGVidWcoJ2xvYWQnKTtmaW5pc2hKU1Rlc3QoKTsiPgorQ2hlY2tzIHRoYXQg
YXN5bmM9ZmFsc2UgZW5mb3JjZXMgZXhlY3V0aW9uIG9yZGVyIGR5bmFtaWNhbGx5IGluc2VydGVk
IHNjcmlwdHMuCitTZWU6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJy
ZW50LXdvcmsvbXVsdGlwYWdlL3NjcmlwdGluZy0xLmh0bWwjZm9yY2UtYXN5bmMKKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
c2xvd2x5X2xvYWRlZF9zY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsK
K3Nsb3dseV9sb2FkZWRfc2NyaXB0LmFzeW5jID0gZmFsc2U7CitzbG93bHlfbG9hZGVkX3Njcmlw
dC5zcmMgPSAicmVzb3VyY2VzL3Nsb3ctYXN5bmMtc2NyaXB0LmNnaSI7Citkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKHNsb3dseV9sb2FkZWRfc2Ny
aXB0KTsKK3Nsb3dseV9sb2FkZWRfc2NyaXB0LmFzeW5jID0gdHJ1ZTsgLy8gU2hvdWxkIGhhdmUg
bm8gZWZmZWN0LCBiZWNhdXMgc2NyaXB0IGhhcyBhbHJlYWR5IGJlZW4gcmVxdWVzdGVkLgorCitx
dWlja2x5X2xvYWRlZF9zY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsK
K3F1aWNrbHlfbG9hZGVkX3NjcmlwdC5hc3luYyA9IGZhbHNlOworcXVpY2tseV9sb2FkZWRfc2Ny
aXB0LnNyYyA9ICJyZXNvdXJjZXMvYXN5bmMtc2NyaXB0LmpzIjsKK2RvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQocXVpY2tseV9sb2FkZWRfc2NyaXB0
KTsKK3F1aWNrbHlfbG9hZGVkX3NjcmlwdC5hc3luYyA9IHRydWU7IC8vIFNob3VsZCBoYXZlIG5v
IGVmZmVjdCwgYmVjYXVzIHNjcmlwdCBoYXMgYWxyZWFkeSBiZWVuIHJlcXVlc3RlZC4KKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tayBiL1NvdXJjZS9X
ZWJDb3JlL0FuZHJvaWQubWsKaW5kZXggOTg1OThmZS4uOTNiZjdmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCkBA
IC05NSw3ICs5NSw2IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAog
CWNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAogCVwKIAlkb20vQWN0aXZlRE9NT2Jq
ZWN0LmNwcCBcCi0JZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcCBcCiAJZG9tL0F0dHIuY3BwIFwK
IAlkb20vQXR0cmlidXRlLmNwcCBcCiAJZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcCBc
CkBAIC0xNzIsNiArMTcxLDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVT
KSBcCiAJZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAgXAogCWRvbS9TY3JpcHRFbGVt
ZW50LmNwcCBcCiAJZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIFwKKwlkb20vU2NyaXB0
UnVubmVyLmNwcCBcCiAJZG9tL1NlbGVjdEVsZW1lbnQuY3BwIFwKIAlkb20vU2VsZWN0b3JOb2Rl
TGlzdC5jcHAgXAogCWRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IDQ4ZjIzN2EuLjBiM2Y5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02ODIsNyAr
NjgyLDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9XZWJLaXRDU1NUcmFuc2Zvcm1W
YWx1ZS5jcHAKIAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwCi0gICAgZG9tL0FzeW5jU2Ny
aXB0UnVubmVyLmNwcAogICAgIGRvbS9BdHRyLmNwcAogICAgIGRvbS9BdHRyaWJ1dGUuY3BwCiAg
ICAgZG9tL0JlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNwcApAQCAtNzYzLDYgKzc2Miw3IEBAIFNF
VChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcAog
ICAgIGRvbS9TY3JpcHRFbGVtZW50LmNwcAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmNwcAorICAgIGRvbS9TY3JpcHRSdW5uZXIuY3BwCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuY3Bw
CiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuY3BwCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggYzNhZDVhZC4uYzI5Njk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDU3IEBACisyMDExLTAzLTEwICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBUb255IEdlbnRpbGNvcmUuCisKKyAgICAgICAgTmVl
ZCBkaWZmZXJlbnQgYmVoYXZpb3IgZm9yIGVuc3VyaW5nIGV4ZWN1dGlvbiBvcmRlciBvZiBkeW5h
bWljYWxseSBsb2FkZWQgc2NyaXB0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTAxMTUKKworICAgICAgICBEeW5hbWljYWxseSBhZGRlZCBzY3JpcHRz
IHdpdGggYXN5bmM9ZmFsc2Ugd2lsbCBsb2FkIGluIHBhcmFsbGVsLCBidXQgZXhlY3V0ZSBpbiBv
cmRlci4KKyAgICAgICAgU2VlOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMv
Y3VycmVudC13b3JrL211bHRpcGFnZS9zY3JpcHRpbmctMS5odG1sI2ZvcmNlLWFzeW5jCisKKyAg
ICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxTY3JpcHRFbGVtZW50L3NjcmlwdC1hc3luYy1hdHRy
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvbWlzYy9zY3JpcHQtYXN5bmMtbG9hZC1l
eGVjdXRlLWluLW9yZGVyLmh0bWwKKworICAgICAgICAqIEFuZHJvaWQubWs6IFJlbmFtZSBBc3lu
Y1NjcmlwdFJ1bm5lciAtPiBTY3JpcHRSdW5uZXIuCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
IERpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBEaXR0by4KKyAgICAgICAg
KiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBkb20vRE9NQWxs
SW5PbmUuY3BwOiBEaXR0by4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6fkRvY3VtZW50KTogRGl0dG8uCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2NyaXB0UnVubmVyKTogRGl0dG8uCisgICAgICAg
ICogZG9tL1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RWxlbWVu
dDo6U2NyaXB0RWxlbWVudCk6IEFkZGVkIGZvcmNlQXN5bmMgYW5kIHdpbGxFeGVjdXRlSW5PcmRl
ci4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmhhbmRsZUFzeW5jQXR0cmlidXRl
KTogQ2FsbGVkIGJ5IEhUTUxTY3JpcHRFbGVtZW50IHdoZW4gYXN5bmMgYXR0cmlidXRlIGNoYW5n
ZXMuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KTogQWRk
ZWQgc3VwcG9ydCBmb3IgZm9yY2VBc3luYy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1l
bnQ6Om5vdGlmeUZpbmlzaGVkKTogVGVsbCBTY3JpcHRSdW5uZXIgdG8gZXhlY3V0ZSBpbiBvcmRl
ciBpZiBuZWVkZWQuCisgICAgICAgICogZG9tL1NjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmZvcmNlQXN5bmMpOiBBZGRlZC4KKyAgICAgICAgKiBkb20v
U2NyaXB0UnVubmVyLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1Nj
cmlwdFJ1bm5lci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRSdW5uZXI6OlNjcmlwdFJ1
bm5lcik6IEFkZGVkIGluLW9yZGVyIHNjcmlwdCBxdWV1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdFJ1bm5lcjo6flNjcmlwdFJ1bm5lcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRS
dW5uZXI6OnF1ZXVlU2NyaXB0Rm9ySW5PcmRlckV4ZWN1dGlvbik6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0UnVubmVyOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlw
dFJ1bm5lcjo6cmVzdW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6dGltZXJG
aXJlZCk6IEV4ZWN1dGUgaW4tb3JkZXIgc2NyaXB0cyBpZiByZWFkeS4KKyAgICAgICAgKiBkb20v
U2NyaXB0UnVubmVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vQXN5bmNTY3Jp
cHRSdW5uZXIuaC4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdFJ1bm5lcjo6aGFzUGVuZGluZ1NjcmlwdHMpOiBDaGVjayBm
b3IgaW4tb3JkZXIgc2NyaXB0cyB0b28uCisgICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2NyaXB0RWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZCk6IE5vdGlmeSBTY3JpcHRFbGVtZW50IHdoZW4gYXN5bmMgY2hhbmdlcy4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50OjpzZXRBc3luYyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQ6OmFzeW5jKTogSW5jbHVkZSBmb3JjZUFzeW5jIGlu
IGNhbGN1bGF0aW9uLgorICAgICAgICAqIGh0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbDogUmVtb3ZlZCBSZWZsZWN0IGZyb20gYXN5
bmMgZm9yIGN1c3RvbSBiZWhhdmlvci4KKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cExvYWREZWZl
cnJlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXI6OlBhZ2VH
cm91cExvYWREZWZlcnJlcik6IFJlbmFtZSBBc3luY1NjcmlwdFJ1bm5lciAtPiBTY3JpcHRSdW5u
ZXIuCisgICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXBMb2FkRGVmZXJyZXI6On5QYWdlR3JvdXBM
b2FkRGVmZXJyZXIpOiBEaXR0by4KKwogMjAxMS0wMy0xMCAgWGl5dWFuIFhpYSAgPHhpeXVhbkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KaW5kZXggYzNjZTlhNS4uMzk3YmZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAg
LTExMDgsOCArMTEwOCw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
Y3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9BY3Rp
dmVET01PYmplY3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0Lmgg
XAotCVNvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAgXAotCVNvdXJjZS9X
ZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQXR0
ci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9BdHRyLmggXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9BdHRyaWJ1dGUuY3BwIFwKQEAgLTEyOTksNiArMTI5Nyw4IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVu
bmVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxl
Y3RFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggYzgzMTNiOS4uNmE5NDQyMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtMTI5Miw4ICsxMjkyLDYgQEAKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuaCcsCiAgICAgICAgICAgICAnZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAnLAogICAgICAg
ICAgICAgJ2RvbS9BY3RpdmVET01PYmplY3QuaCcsCi0gICAgICAgICAgICAnZG9tL0FzeW5jU2Ny
aXB0UnVubmVyLmNwcCcsCi0gICAgICAgICAgICAnZG9tL0FzeW5jU2NyaXB0UnVubmVyLmgnLAog
ICAgICAgICAgICAgJ2RvbS9BdHRyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0F0dHIuaCcsCiAg
ICAgICAgICAgICAnZG9tL0F0dHJpYnV0ZS5jcHAnLApAQCAtMTQ4Myw2ICsxNDgxLDggQEAKICAg
ICAgICAgICAgICdkb20vU2NyaXB0RWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgnLAorICAgICAgICAgICAgJ2RvbS9TY3JpcHRSdW5uZXIuY3BwJywKKyAgICAgICAg
ICAgICdkb20vU2NyaXB0UnVubmVyLmgnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRhYmxlRG9j
dW1lbnRQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdkb20vU2NyaXB0YWJsZURvY3VtZW50UGFy
c2VyLmgnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcm8KaW5kZXggMTRhN2QzYi4uMjA1YjlkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAg
LTQzNSw3ICs0MzUsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBjc3MvV2ViS2l0Q1NTTWF0cml4LmNw
cCBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAgICAgZG9tL0FjdGl2
ZURPTU9iamVjdC5jcHAgXAotICAgIGRvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAgXAogICAgIGRv
bS9BdHRyLmNwcCBcCiAgICAgZG9tL0F0dHJpYnV0ZS5jcHAgXAogICAgIGRvbS9CZWZvcmVQcm9j
ZXNzRXZlbnQuY3BwIFwKQEAgLTUxOSw2ICs1MTgsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20v
U2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmNwcCBcCiAgICAgZG9tL1NjcmlwdEVsZW1lbnQuY3Bw
IFwKICAgICBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgXAorICAgIGRvbS9TY3JpcHRS
dW5uZXIuY3BwIFwKICAgICBkb20vU2VsZWN0RWxlbWVudC5jcHAgXAogICAgIGRvbS9TZWxlY3Rv
ck5vZGVMaXN0LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZDliYzc3MS4uMWM2
NDEyNyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTQxNTM0LDYyICs0MTUzNCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxBc3luY1NjcmlwdFJ1bm5lci5jcHAiCi0JCQkJPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2lu
MzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0J
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEFz
eW5jU2NyaXB0UnVubmVyLmgiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxBdG9taWNTdHJpbmdMaXN0LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpA
QCAtNDYxNDIsNiArNDYwODYsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNjcmlwdFJ1bm5lci5jcHAiCisJCQkJPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNjcmlwdFJ1
bm5lci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
Llxkb21cU2VsZWN0RWxlbWVudC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDE4ZDg2NDYuLmM4NzA4N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3MTIsOCArMjcxMiw4IEBACiAJCTg5RDA4REEx
MTIyMjg0NTEwMDEyNDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg5RDA4RDlFMTIyMjg0NTEwMDEy
NDFERiAvKiBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaCAqLzsgfTsKIAkJOEExMkUzNUQxMUZB
MzMyODAwMjU4MzZBIC8qIERvY3VtZW50TG9hZFRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERv
Y3VtZW50TG9hZFRpbWluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCThBMzA5QzlGMTIzOTUwQkUwMENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNy
ZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OEEzMDlDOUUxMjM5NTBCRTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggKi87
IH07Ci0JCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE0MTNBREUxMjA3
QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOEE0MTNBRTExMjA3QkJBNTAwODIwMTZFIC8q
IEFzeW5jU2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDhBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5l
ci5jcHAgKi87IH07CisJCThBNDEzQUUwMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBNDEzQURF
MTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk4QTQxM0FFMTEyMDdCQkE1MDA4MjAxNkUgLyog
U2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDhBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovOyB9
OwogCQk4QTdDQzk2QjEyMDc2RDczMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEE3Q0M5NkExMjA3NkQ3MzAw
MUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4QTdDQzk3MDEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1Nj
cmlwdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
QTdDQzk2RjEyMDc2RjhBMDAxRDQ1ODggLyogUGVuZGluZ1NjcmlwdC5jcHAgKi87IH07CiAJCThB
ODFCRjg1MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBODFCRjg0MTFEQ0ZEOTAwMERB
MkI5OCAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTE2Niw4ICs5MTY2LDggQEAKIAkJODlEMDhEOUUxMjIy
ODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5c3RlbUNhbGxiYWNrcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBc3luY0ZpbGVTeXN0ZW1DYWxsYmFja3MuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEExMkUzNUMxMUZBMzMyODAwMjU4MzZBIC8qIERvY3VtZW50
TG9hZFRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudExv
YWRUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEEzMDlDOUUxMjM5NTBC
RTAwQ0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmg7IHBhdGggPSBwYXJzZXIv
TmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
OEE0MTNBREUxMjA3QkJBNTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jU2NyaXB0UnVubmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCThBNDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1Njcmlw
dFJ1bm5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBc3luY1Nj
cmlwdFJ1bm5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThBNDEzQURFMTIw
N0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NyaXB0UnVubmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThB
NDEzQURGMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0UnVubmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOEE3Q0M5NkExMjA3NkQ3MzAwMUQ0NTg4IC8qIFBlbmRpbmdTY3JpcHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVuZGluZ1NjcmlwdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QTdDQzk2RjEyMDc2RjhBMDAxRDQ1ODggLyogUGVu
ZGluZ1NjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZW5k
aW5nU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEE4MUJGODQxMURD
RkQ5MDAwREEyQjk4IC8qIFJlc291cmNlTG9hZFRpbWluZy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSZXNvdXJjZUxvYWRUaW1pbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE4OTg3LDggKzE4OTg3LDYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUUxQzRE
RTZEMEVBNzVDNjUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmplY3QuY3BwICovLAogCQkJCUUxQzRE
RTY4MEVBNzVDMUUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmplY3QuaCAqLywKLQkJCQk4QTQxM0FE
RjEyMDdCQkE1MDA4MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuY3BwICovLAotCQkJCThBNDEz
QURFMTIwN0JCQTUwMDgyMDE2RSAvKiBBc3luY1NjcmlwdFJ1bm5lci5oICovLAogCQkJCUE4QzRB
N0ZDMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmNwcCAqLywKIAkJCQlBOEM0QTdGQjA5RDU2MzI3
MDAwM0FDOEQgLyogQXR0ci5oICovLAogCQkJCTkzRUVDMUU1MDlDMjg3NzcwMEM1MTVEMSAvKiBB
dHRyLmlkbCAqLywKQEAgLTE5MjMxLDYgKzE5MjI5LDggQEAKIAkJCQkwOEE0ODQ3NjBFNTI3MkM1
MDBDM0ZFNzYgLyogU2NyaXB0RWxlbWVudC5oICovLAogCQkJCUUxMUM5REFGMEVCMzY5OTUwMEU0
MDlEQiAvKiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCAqLywKIAkJCQlFMTFDOUQ5QTBFQjM2
ODEyMDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oICovLAorCQkJCThBNDEzQURG
MTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuY3BwICovLAorCQkJCThBNDEzQURFMTIw
N0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIuaCAqLywKIAkJCQkwODRBRUJFMjBGQjUwNUZB
MDAzODQ4M0UgLyogU2VsZWN0RWxlbWVudC5jcHAgKi8sCiAJCQkJMDg0QUVCRTMwRkI1MDVGQTAw
Mzg0ODNFIC8qIFNlbGVjdEVsZW1lbnQuaCAqLywKIAkJCQlCQzdGQTY4MDBEMUYxNjc5MDBEQjIy
QTkgLyogU2VsZWN0b3JOb2RlTGlzdC5jcHAgKi8sCkBAIC0xOTU4OSw3ICsxOTU4OSw2IEBACiAJ
CQkJOTc2RDZDNzcxMjJCOEEzRDAwMUZEMUY3IC8qIEFzeW5jRmlsZVdyaXRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTc2RDZDOTMxMjJCOEEzRDAwMUZEMUY3IC8qIEFzeW5jRmlsZVdyaXRlckNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjAxNDlFN0UxMUE0QjIxNTAwMTk2QTdCIC8qIEFz
eW5jSW1hZ2VSZXNpemVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4
MjAxNkUgLyogQXN5bmNTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzYxRjAx
MTIwOTVDODcwMDdBM0M2NyAvKiBBdG9taWNTdHJpbmdLZXllZE1SVUNhY2hlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOEM0QTgwRDA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThDNEE4MEIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHJpYnV0ZS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yMTk2NCw2ICsyMTk2Myw3IEBACiAJCQkJOUY3MjMwNEYxMTE4NEI0MTAwQUQw
MTI2IC8qIFNjcmlwdFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTlGQTM3RUU0MTE3MkZD
ODAwMEM0Q0Q1NSAvKiBTY3JpcHRQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUY3
MjMwNTExMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk4QTQxM0FFMDEyMDdCQkE1MDA4MjAxNkUgLyogU2NyaXB0UnVubmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzRDQzEwQTBFREIyMjM5MDBBNjU4RjIgLyogU2NyaXB0U291cmNlQ29kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0U1NEZEMzgxMDE2RDlBNjAwOEI0NEM4IC8qIFNjcmlwdFNv
dXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUM3NjBCMTBFREUwM0QzMDBDMTY1
NUYgLyogU2NyaXB0U3RhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjI5MDgsNyArMjI5MDgsNiBA
QAogCQkJCTQ5RUVDRERGMTA1MDNDMjQwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlclZpZXcuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODlEMDhEOUYxMjIyODQ1MTAwMTI0MURGIC8qIEFzeW5jRmlsZVN5
c3RlbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMDE0OUU3RDExQTRCMjE1MDAxOTZBN0IgLyog
QXN5bmNJbWFnZVJlc2l6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOEE0MTNBRTExMjA3QkJB
NTAwODIwMTZFIC8qIEFzeW5jU2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
QzRBODBFMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
QzRBODBDMDlENTYzMjcwMDAzQUM4RCAvKiBBdHRyaWJ1dGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQzMTVGRjYxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvQmFzaWNQcm9jZXNzb3JOb2RlLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjQ3NDQsNiArMjQ3NDMsNyBAQAogCQkJCTQxRjA2NkU1MEY2
NEJDRjYwMEEwN0VBQyAvKiBTY3JpcHRPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjMz
RjAyODIxMjA5NDdGMjAwRTU3NDNBIC8qIFNjcmlwdFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOUY3MjMwNTAxMTE4NEI0MTAwQUQwMTI2IC8qIFNjcmlwdFByb2ZpbGVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCThBNDEzQUUxMTIwN0JCQTUwMDgyMDE2RSAvKiBTY3JpcHRSdW5uZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEyN0Q1MzcwRjhBQUIxRDAwRTQyNEY1IC8qIFNjcmlw
dFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNENDMEUxMEVEMzlENkYwMEE2NThGMiAv
KiBTY3JpcHRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzhBRTM0RTEyRUEwOTZBMDBF
QjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUFsbEluT25lLmNwcAppbmRleCBjODhhZWNmLi4wOGE3NjgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01B
bGxJbk9uZS5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKIC8vIFRoaXMgYWxsLWluLW9uZSBjcHAgZmls
ZSBjdXRzIGRvd24gb24gdGVtcGxhdGUgYmxvYXQgdG8gYWxsb3cgdXMgdG8gYnVpbGQgb3VyIFdp
bmRvd3MgcmVsZWFzZSBidWlsZC4KIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5jcHAiCi0j
aW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuY3BwIgogI2luY2x1ZGUgIkF0dHIuY3BwIgogI2lu
Y2x1ZGUgIkF0dHJpYnV0ZS5jcHAiCiAjaW5jbHVkZSAiQmVmb3JlUHJvY2Vzc0V2ZW50LmNwcCIK
QEAgLTEwNCw2ICsxMDMsNyBAQAogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuY3BwIgogI2lu
Y2x1ZGUgIlNjcmlwdEVsZW1lbnQuY3BwIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwIgorI2luY2x1ZGUgIlNjcmlwdFJ1bm5lci5jcHAiCiAjaW5jbHVkZSAiU2NyaXB0YWJs
ZURvY3VtZW50UGFyc2VyLmNwcCIKICNpbmNsdWRlICJTZWxlY3RFbGVtZW50LmNwcCIKICNpbmNs
dWRlICJTZWxlY3Rvck5vZGVMaXN0LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDBm
Mzk1OTUuLmVhZWZiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjksNyArMjksNiBA
QAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRy
b2xsZXIuaCIKLSNpbmNsdWRlICJBc3luY1NjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgIkF0dHIu
aCIKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJDREFUQVNlY3Rpb24uaCIKQEAg
LTEyNyw2ICsxMjYsNyBAQAogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5oIgorI2lu
Y2x1ZGUgIlNjcmlwdFJ1bm5lci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uQ29udHJvbGxlci5o
IgpAQCAtMzkyLDcgKzM5Miw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNv
bnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICAsIG1fc3RhcnRU
aW1lKGN1cnJlbnRUaW1lKCkpCiAgICAgLCBtX292ZXJNaW5pbXVtTGF5b3V0VGhyZXNob2xkKGZh
bHNlKQogICAgICwgbV9leHRyYUxheW91dERlbGF5KDApCi0gICAgLCBtX2FzeW5jU2NyaXB0UnVu
bmVyKEFzeW5jU2NyaXB0UnVubmVyOjpjcmVhdGUodGhpcykpCisgICAgLCBtX3NjcmlwdFJ1bm5l
cihTY3JpcHRSdW5uZXI6OmNyZWF0ZSh0aGlzKSkKICAgICAsIG1feG1sVmVyc2lvbigiMS4wIikK
ICAgICAsIG1feG1sU3RhbmRhbG9uZShmYWxzZSkKICAgICAsIG1fc2F2ZWRSZW5kZXJlcigwKQpA
QCAtNTYzLDcgKzU2Myw3IEBAIERvY3VtZW50Ojp+RG9jdW1lbnQoKQogICAgIEFTU0VSVChtX3Jh
bmdlcy5pc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9zdHlsZVJlY2FsY1RpbWVyLmlzQWN0aXZl
KCkpOwogCi0gICAgbV9hc3luY1NjcmlwdFJ1bm5lci5jbGVhcigpOworICAgIG1fc2NyaXB0UnVu
bmVyLmNsZWFyKCk7CiAKICAgICByZW1vdmVBbGxFdmVudExpc3RlbmVycygpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IGRiMDRjYzEuLjVmNzE4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC01MSw3ICs1MSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXN5bmNTY3Jp
cHRSdW5uZXI7CiBjbGFzcyBBdHRyOwogY2xhc3MgQVhPYmplY3RDYWNoZTsKIGNsYXNzIENEQVRB
U2VjdGlvbjsKQEAgLTExNSw2ICsxMTQsNyBAQCBjbGFzcyBSZW5kZXJWaWV3OwogY2xhc3MgUmVu
ZGVyRnVsbFNjcmVlbjsKIGNsYXNzIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlcjsKIGNsYXNzIFNj
cmlwdEVsZW1lbnREYXRhOworY2xhc3MgU2NyaXB0UnVubmVyOwogY2xhc3MgU2VjdXJpdHlPcmln
aW47CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTZWdtZW50ZWRTdHJpbmc7
CkBAIC05MDAsNyArOTAwLDcgQEAgcHVibGljOgogCiAgICAgaW50IGRvY0lEKCkgY29uc3QgeyBy
ZXR1cm4gbV9kb2NJRDsgfQogICAgIAotICAgIEFzeW5jU2NyaXB0UnVubmVyKiBhc3luY1Njcmlw
dFJ1bm5lcigpIHsgcmV0dXJuIG1fYXN5bmNTY3JpcHRSdW5uZXIuZ2V0KCk7IH0KKyAgICBTY3Jp
cHRSdW5uZXIqIHNjcmlwdFJ1bm5lcigpIHsgcmV0dXJuIG1fc2NyaXB0UnVubmVyLmdldCgpOyB9
CiAKICNpZiBFTkFCTEUoWFNMVCkKICAgICB2b2lkIGFwcGx5WFNMVHJhbnNmb3JtKFByb2Nlc3Np
bmdJbnN0cnVjdGlvbiogcGkpOwpAQCAtMTMxNSw3ICsxMzE1LDcgQEAgcHJpdmF0ZToKICAgICAv
LyBwb2ludHMgZHVyaW5nIHRoZSBsaWZldGltZSBvZiB0aGUgRG9jdW1lbnQuCiAgICAgaW50IG1f
ZXh0cmFMYXlvdXREZWxheTsKICAgICAKLSAgICBPd25QdHI8QXN5bmNTY3JpcHRSdW5uZXI+IG1f
YXN5bmNTY3JpcHRSdW5uZXI7CisgICAgT3duUHRyPFNjcmlwdFJ1bm5lcj4gbV9zY3JpcHRSdW5u
ZXI7CiAKICNpZiBFTkFCTEUoWFNMVCkKICAgICBPd25QdHI8VHJhbnNmb3JtU291cmNlPiBtX3Ry
YW5zZm9ybVNvdXJjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCAzYmJh
OWEwLi5iNGQzNjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC0yNCw3
ICsyNCw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2NyaXB0RWxlbWVudC5o
IgogCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlICJDYWNoZWRTY3Jp
cHQuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCkBAIC0zNyw2ICszNiw3IEBACiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1
ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTYxLDYgKzYxLDgg
QEAgU2NyaXB0RWxlbWVudDo6U2NyaXB0RWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBib29sIHBh
cnNlckluc2VydGVkLCBib29sIGFscmVhZHkKICAgICAsIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQo
ZmFsc2UpCiAgICAgLCBtX3JlYWR5VG9CZVBhcnNlckV4ZWN1dGVkKGZhbHNlKQogICAgICwgbV93
aWxsRXhlY3V0ZVdoZW5Eb2N1bWVudEZpbmlzaGVkUGFyc2luZyhmYWxzZSkKKyAgICAsIG1fZm9y
Y2VBc3luYyghcGFyc2VySW5zZXJ0ZWQpCisgICAgLCBtX3dpbGxFeGVjdXRlSW5PcmRlcihmYWxz
ZSkKIHsKICAgICBBU1NFUlQobV9lbGVtZW50KTsKIH0KQEAgLTk2LDYgKzk4LDExIEBAIHZvaWQg
U2NyaXB0RWxlbWVudDo6aGFuZGxlU291cmNlQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgc291cmNl
VXJsKQogICAgIHByZXBhcmVTY3JpcHQoKTsgLy8gRklYTUU6IFByb3ZpZGUgYSByZWFsIHN0YXJ0
aW5nIGxpbmUgbnVtYmVyIGhlcmUuCiB9CiAKK3ZvaWQgU2NyaXB0RWxlbWVudDo6aGFuZGxlQXN5
bmNBdHRyaWJ1dGUoKQoreworICAgIG1fZm9yY2VBc3luYyA9IGZhbHNlOworfQorCiAvLyBIZWxw
ZXIgZnVuY3Rpb24KIHN0YXRpYyBib29sIGlzTGVnYWN5U3VwcG9ydGVkSmF2YVNjcmlwdExhbmd1
YWdlKGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCiB7CkBAIC0xNTksNyArMTY2LDggQEAgYm9vbCBT
Y3JpcHRFbGVtZW50OjpwcmVwYXJlU2NyaXB0KGNvbnN0IFRleHRQb3NpdGlvbjEmIHNjcmlwdFN0
YXJ0UG9zaXRpb24sIExlZ2EKICAgICB9IGVsc2UKICAgICAgICAgd2FzUGFyc2VySW5zZXJ0ZWQg
PSBmYWxzZTsKIAotICAgIC8vIEZJWE1FOiBIVE1MNSBzcGVjIHNheXMgd2Ugc2hvdWxkIHNldCBm
b3JjZUFzeW5jLgorICAgIGlmICh3YXNQYXJzZXJJbnNlcnRlZCAmJiAhYXN5bmNBdHRyaWJ1dGVW
YWx1ZSgpKQorICAgICAgICBtX2ZvcmNlQXN5bmMgPSB0cnVlOwogCiAgICAgLy8gRklYTUU6IEhU
TUw1IHNwZWMgc2F5cyB3ZSBzaG91bGQgY2hlY2sgdGhhdCBhbGwgY2hpbGRyZW4gYXJlIGVpdGhl
ciBjb21tZW50cyBvciBlbXB0eSB0ZXh0IG5vZGVzLgogICAgIGlmICghaGFzU291cmNlQXR0cmli
dXRlKCkgJiYgIW1fZWxlbWVudC0+Zmlyc3RDaGlsZCgpKQpAQCAtMTcxLDggKzE3OSwxMCBAQCBi
b29sIFNjcmlwdEVsZW1lbnQ6OnByZXBhcmVTY3JpcHQoY29uc3QgVGV4dFBvc2l0aW9uMSYgc2Ny
aXB0U3RhcnRQb3NpdGlvbiwgTGVnYQogICAgIGlmICghaXNTY3JpcHRUeXBlU3VwcG9ydGVkKHN1
cHBvcnRMZWdhY3lUeXBlcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICh3YXNQ
YXJzZXJJbnNlcnRlZCkKKyAgICBpZiAod2FzUGFyc2VySW5zZXJ0ZWQpIHsKICAgICAgICAgbV9w
YXJzZXJJbnNlcnRlZCA9IHRydWU7CisgICAgICAgIG1fZm9yY2VBc3luYyA9IGZhbHNlOworICAg
IH0KIAogICAgIG1fYWxyZWFkeVN0YXJ0ZWQgPSB0cnVlOwogCkBAIC0yMDcsNiArMjE3LDEwIEBA
IGJvb2wgU2NyaXB0RWxlbWVudDo6cHJlcGFyZVNjcmlwdChjb25zdCBUZXh0UG9zaXRpb24xJiBz
Y3JpcHRTdGFydFBvc2l0aW9uLCBMZWdhCiAgICAgZWxzZSBpZiAoIWhhc1NvdXJjZUF0dHJpYnV0
ZSgpICYmIG1fcGFyc2VySW5zZXJ0ZWQgJiYgIW1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+aGF2ZVN0
eWxlc2hlZXRzTG9hZGVkKCkpIHsKICAgICAgICAgbV93aWxsQmVQYXJzZXJFeGVjdXRlZCA9IHRy
dWU7CiAgICAgICAgIG1fcmVhZHlUb0JlUGFyc2VyRXhlY3V0ZWQgPSB0cnVlOworICAgIH0gZWxz
ZSBpZiAoaGFzU291cmNlQXR0cmlidXRlKCkgJiYgIWFzeW5jQXR0cmlidXRlVmFsdWUoKSAmJiAh
bV9mb3JjZUFzeW5jKSB7CisgICAgICAgIG1fd2lsbEV4ZWN1dGVJbk9yZGVyID0gdHJ1ZTsKKyAg
ICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+cXVldWVTY3JpcHRG
b3JFeGVjdXRpb24odGhpcywgbV9jYWNoZWRTY3JpcHQsIFNjcmlwdFJ1bm5lcjo6SU5fT1JERVJf
RVhFQ1VUSU9OKTsKKyAgICAgICAgbV9jYWNoZWRTY3JpcHQtPmFkZENsaWVudCh0aGlzKTsKICAg
ICB9IGVsc2UgaWYgKGhhc1NvdXJjZUF0dHJpYnV0ZSgpKQogICAgICAgICBtX2NhY2hlZFNjcmlw
dC0+YWRkQ2xpZW50KHRoaXMpOwogICAgIGVsc2UKQEAgLTI4Niw3ICszMDAsMTAgQEAgdm9pZCBT
Y3JpcHRFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogbykKIHsKICAgICBB
U1NFUlQoIW1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQpOwogICAgIEFTU0VSVF9VTlVTRUQobywgbyA9
PSBtX2NhY2hlZFNjcmlwdCk7Ci0gICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5hc3luY1Njcmlw
dFJ1bm5lcigpLT5leGVjdXRlU2NyaXB0U29vbih0aGlzLCBtX2NhY2hlZFNjcmlwdCk7CisgICAg
aWYgKG1fd2lsbEV4ZWN1dGVJbk9yZGVyKQorICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCkt
PnNjcmlwdFJ1bm5lcigpLT5ub3RpZnlJbk9yZGVyU2NyaXB0UmVhZHkoKTsKKyAgICBlbHNlCisg
ICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+c2NyaXB0UnVubmVyKCktPnF1ZXVlU2NyaXB0
Rm9yRXhlY3V0aW9uKHRoaXMsIG1fY2FjaGVkU2NyaXB0LCBTY3JpcHRSdW5uZXI6OkFTWU5DX0VY
RUNVVElPTik7CiAgICAgbV9jYWNoZWRTY3JpcHQgPSAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Njcmlw
dEVsZW1lbnQuaAppbmRleCA3OWRmZjMzLi45Y2U2NmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
bGVtZW50LmgKQEAgLTYzLDEyICs2MywxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRIYXZl
RmlyZWRMb2FkRXZlbnQoYm9vbCBoYXZlRmlyZWRMb2FkKSB7IG1faGF2ZUZpcmVkTG9hZCA9IGhh
dmVGaXJlZExvYWQ7IH0KICAgICBib29sIGlzUGFyc2VySW5zZXJ0ZWQoKSBjb25zdCB7IHJldHVy
biBtX3BhcnNlckluc2VydGVkOyB9CiAgICAgYm9vbCBhbHJlYWR5U3RhcnRlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fYWxyZWFkeVN0YXJ0ZWQ7IH0KKyAgICBib29sIGZvcmNlQXN5bmMoKSBjb25zdCB7
IHJldHVybiBtX2ZvcmNlQXN5bmM7IH0KIAogICAgIC8vIEhlbHBlciBmdW5jdGlvbnMgdXNlZCBi
eSBvdXIgcGFyZW50IGNsYXNzZXMuCiAgICAgdm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwog
ICAgIHZvaWQgcmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2Vk
KCk7CiAgICAgdm9pZCBoYW5kbGVTb3VyY2VBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiBzb3VyY2VV
cmwpOworICAgIHZvaWQgaGFuZGxlQXN5bmNBdHRyaWJ1dGUoKTsKIAogcHJpdmF0ZToKICAgICBi
b29sIGlnbm9yZXNMb2FkUmVxdWVzdCgpIGNvbnN0OwpAQCAtOTgsNiArMTAwLDggQEAgcHJpdmF0
ZToKICAgICBib29sIG1fd2lsbEJlUGFyc2VyRXhlY3V0ZWQgOiAxOyAvLyBTYW1lIGFzICJUaGUg
cGFyc2VyIHdpbGwgaGFuZGxlIGV4ZWN1dGluZyB0aGUgc2NyaXB0LiIKICAgICBib29sIG1fcmVh
ZHlUb0JlUGFyc2VyRXhlY3V0ZWQgOiAxOwogICAgIGJvb2wgbV93aWxsRXhlY3V0ZVdoZW5Eb2N1
bWVudEZpbmlzaGVkUGFyc2luZyA6IDE7CisgICAgYm9vbCBtX2ZvcmNlQXN5bmMgOiAxOworICAg
IGJvb2wgbV93aWxsRXhlY3V0ZUluT3JkZXIgOiAxOwogICAgIFN0cmluZyBtX2NoYXJhY3RlckVu
Y29kaW5nOwogICAgIFN0cmluZyBtX2ZhbGxiYWNrQ2hhcmFjdGVyRW5jb2Rpbmc7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCnNpbWlsYXJpdHkgaW5kZXggNjElCnJlbmFt
ZSBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKcmVuYW1lIHRv
IFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuY3BwCmluZGV4IDI4YjFiMzEuLjEwMTk4
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdFJ1bm5lci5jcHAKQEAgLTI0LDcgKzI0LDcg
QEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQXN5bmNTY3JpcHRSdW5u
ZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKIAogI2luY2x1ZGUgIkNhY2hlZFNjcmlw
dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zNCw1MiArMzQsNzkgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1Bc3luY1NjcmlwdFJ1bm5lcjo6QXN5bmNTY3JpcHRSdW5uZXIoRG9j
dW1lbnQqIGRvY3VtZW50KQorU2NyaXB0UnVubmVyOjpTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRv
Y3VtZW50KQogICAgIDogbV9kb2N1bWVudChkb2N1bWVudCkKLSAgICAsIG1fdGltZXIodGhpcywg
JkFzeW5jU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKQorICAgICwgbV90aW1lcih0aGlzLCAmU2Ny
aXB0UnVubmVyOjp0aW1lckZpcmVkKQogewogICAgIEFTU0VSVChkb2N1bWVudCk7CiB9CiAKLUFz
eW5jU2NyaXB0UnVubmVyOjp+QXN5bmNTY3JpcHRSdW5uZXIoKQorU2NyaXB0UnVubmVyOjp+U2Ny
aXB0UnVubmVyKCkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1RvRXhl
Y3V0ZVNvb24uc2l6ZSgpOyArK2kpCiAgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVudExvYWRF
dmVudERlbGF5Q291bnQoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc2NyaXB0c1Rv
RXhlY3V0ZUluT3JkZXIuc2l6ZSgpOyArK2kpCisgICAgICAgIG1fZG9jdW1lbnQtPmRlY3JlbWVu
dExvYWRFdmVudERlbGF5Q291bnQoKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6ZXhl
Y3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCit2b2lkIFNjcmlwdFJ1bm5lcjo6
cXVldWVTY3JpcHRGb3JFeGVjdXRpb24oU2NyaXB0RWxlbWVudCogc2NyaXB0RWxlbWVudCwgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQsIEV4ZWN1dGlvblR5
cGUgZXhlY3V0aW9uVHlwZSkKIHsKLSAgICBBU1NFUlRfQVJHKHNjcmlwdEVsZW1lbnQsIHNjcmlw
dEVsZW1lbnQpOworICAgIEFTU0VSVChzY3JpcHRFbGVtZW50KTsKIAogICAgIEVsZW1lbnQqIGVs
ZW1lbnQgPSBzY3JpcHRFbGVtZW50LT5lbGVtZW50KCk7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwog
ICAgIEFTU0VSVChlbGVtZW50LT5pbkRvY3VtZW50KCkpOwogCiAgICAgbV9kb2N1bWVudC0+aW5j
cmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwotICAgIG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24u
YXBwZW5kKFBlbmRpbmdTY3JpcHQoZWxlbWVudCwgY2FjaGVkU2NyaXB0LmdldCgpKSk7Ci0gICAg
aWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDAp
OworCisgICAgc3dpdGNoIChleGVjdXRpb25UeXBlKSB7CisgICAgY2FzZSBBU1lOQ19FWEVDVVRJ
T046CisgICAgICAgIG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uYXBwZW5kKFBlbmRpbmdTY3JpcHQo
ZWxlbWVudCwgY2FjaGVkU2NyaXB0LmdldCgpKSk7CisgICAgICAgIGlmICghbV90aW1lci5pc0Fj
dGl2ZSgpKQorICAgICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBJTl9PUkRFUl9FWEVDVVRJT046CisgICAgICAgIG1fc2NyaXB0c1Rv
RXhlY3V0ZUluT3JkZXIuYXBwZW5kKFBlbmRpbmdTY3JpcHQoZWxlbWVudCwgY2FjaGVkU2NyaXB0
LmdldCgpKSk7CisgICAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgfQogfQogCi12b2lkIEFzeW5jU2NyaXB0UnVubmVyOjpzdXNw
ZW5kKCkKK3ZvaWQgU2NyaXB0UnVubmVyOjpzdXNwZW5kKCkKIHsKICAgICBtX3RpbWVyLnN0b3Ao
KTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6cmVzdW1lKCkKK3ZvaWQgU2NyaXB0UnVu
bmVyOjpyZXN1bWUoKQogewogICAgIGlmIChoYXNQZW5kaW5nU2NyaXB0cygpKQogICAgICAgICBt
X3RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6dGlt
ZXJGaXJlZChUaW1lcjxBc3luY1NjcmlwdFJ1bm5lcj4qIHRpbWVyKQordm9pZCBTY3JpcHRSdW5u
ZXI6Om5vdGlmeUluT3JkZXJTY3JpcHRSZWFkeSgpCit7CisgICAgQVNTRVJUKCFtX3NjcmlwdHNU
b0V4ZWN1dGVJbk9yZGVyLmlzRW1wdHkoKSk7CisgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7
Cit9CisKK3ZvaWQgU2NyaXB0UnVubmVyOjp0aW1lckZpcmVkKFRpbWVyPFNjcmlwdFJ1bm5lcj4q
IHRpbWVyKQogewogICAgIEFTU0VSVF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX3RpbWVyKTsK
IAogICAgIFJlZlB0cjxEb2N1bWVudD4gcHJvdGVjdChtX2RvY3VtZW50KTsKLSAgICAKKwogICAg
IFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBzY3JpcHRzOwogICAgIHNjcmlwdHMuc3dhcChtX3Njcmlw
dHNUb0V4ZWN1dGVTb29uKTsKKworICAgIHNpemVfdCBudW1Jbk9yZGVyU2NyaXB0c1RvRXhlY3V0
ZSA9IDA7CisgICAgZm9yICg7IG51bUluT3JkZXJTY3JpcHRzVG9FeGVjdXRlIDwgbV9zY3JpcHRz
VG9FeGVjdXRlSW5PcmRlci5zaXplKCkgJiYgbV9zY3JpcHRzVG9FeGVjdXRlSW5PcmRlcltudW1J
bk9yZGVyU2NyaXB0c1RvRXhlY3V0ZV0uY2FjaGVkU2NyaXB0KCktPmlzTG9hZGVkKCk7ICsrbnVt
SW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUpCisgICAgICAgIHNjcmlwdHMuYXBwZW5kKG1fc2NyaXB0
c1RvRXhlY3V0ZUluT3JkZXJbbnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGVdKTsKKyAgICBpZiAo
bnVtSW5PcmRlclNjcmlwdHNUb0V4ZWN1dGUpCisgICAgICAgIG1fc2NyaXB0c1RvRXhlY3V0ZUlu
T3JkZXIucmVtb3ZlKDAsIG51bUluT3JkZXJTY3JpcHRzVG9FeGVjdXRlKTsKKwogICAgIHNpemVf
dCBzaXplID0gc2NyaXB0cy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXpl
OyArK2kpIHsKICAgICAgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQgPSBzY3JpcHRzW2ld
LmNhY2hlZFNjcmlwdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FzeW5jU2Ny
aXB0UnVubmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKc2ltaWxhcml0
eSBpbmRleCA3MyUKcmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVu
bmVyLmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRSdW5uZXIuaAppbmRleCA2
YTc1MzIzLi5kNmQ3NDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQXN5bmNTY3Jp
cHRSdW5uZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0UnVubmVyLmgKQEAgLTIz
LDggKzIzLDggQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgQXN5bmNTY3JpcHRS
dW5uZXJfaAotI2RlZmluZSBBc3luY1NjcmlwdFJ1bm5lcl9oCisjaWZuZGVmIFNjcmlwdFJ1bm5l
cl9oCisjZGVmaW5lIFNjcmlwdFJ1bm5lcl9oCiAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhh
bmRsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0zOCwyNiArMzgsMjkgQEAgY2xhc3MgQ2Fj
aGVkU2NyaXB0OwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBQZW5kaW5nU2NyaXB0OwogY2xhc3Mg
U2NyaXB0RWxlbWVudDsKLSAgICAKLWNsYXNzIEFzeW5jU2NyaXB0UnVubmVyIHsKLSAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShBc3luY1NjcmlwdFJ1bm5lcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworCitjbGFzcyBTY3JpcHRSdW5uZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNj
cmlwdFJ1bm5lcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzT3duUHRyPEFzeW5jU2NyaXB0UnVubmVyPiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
KSB7IHJldHVybiBuZXcgQXN5bmNTY3JpcHRSdW5uZXIoZG9jdW1lbnQpOyB9Ci0gICAgfkFzeW5j
U2NyaXB0UnVubmVyKCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8U2NyaXB0UnVubmVyPiBjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KSB7IHJldHVybiBuZXcgU2NyaXB0UnVubmVyKGRvY3VtZW50
KTsgfQorICAgIH5TY3JpcHRSdW5uZXIoKTsKIAotICAgIHZvaWQgZXhlY3V0ZVNjcmlwdFNvb24o
U2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4pOwotICAg
IGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJldHVybiAhbV9zY3JpcHRzVG9FeGVj
dXRlU29vbi5pc0VtcHR5KCk7IH0KKyAgICBlbnVtIEV4ZWN1dGlvblR5cGUgeyBBU1lOQ19FWEVD
VVRJT04sIElOX09SREVSX0VYRUNVVElPTiB9OworICAgIHZvaWQgcXVldWVTY3JpcHRGb3JFeGVj
dXRpb24oU2NyaXB0RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4s
IEV4ZWN1dGlvblR5cGUpOworICAgIGJvb2wgaGFzUGVuZGluZ1NjcmlwdHMoKSBjb25zdCB7IHJl
dHVybiAhbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5pc0VtcHR5KCkgfHwgIW1fc2NyaXB0c1RvRXhl
Y3V0ZUluT3JkZXIuaXNFbXB0eSgpOyB9CiAgICAgdm9pZCBzdXNwZW5kKCk7CiAgICAgdm9pZCBy
ZXN1bWUoKTsKKyAgICB2b2lkIG5vdGlmeUluT3JkZXJTY3JpcHRSZWFkeSgpOwogCiBwcml2YXRl
OgotICAgIEFzeW5jU2NyaXB0UnVubmVyKERvY3VtZW50Kik7CisgICAgU2NyaXB0UnVubmVyKERv
Y3VtZW50Kik7CiAKLSAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8QXN5bmNTY3JpcHRSdW5uZXI+
Kik7CisgICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPFNjcmlwdFJ1bm5lcj4qKTsKIAogICAgIERv
Y3VtZW50KiBtX2RvY3VtZW50OworICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNU
b0V4ZWN1dGVJbk9yZGVyOwogICAgIFZlY3RvcjxQZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4
ZWN1dGVTb29uOyAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrLyNzZXQtb2Ytc2NyaXB0cy10aGF0LXdpbGwtZXhlY3V0ZS1hcy1zb29uLWFzLXBvc3Np
YmxlCi0gICAgVGltZXI8QXN5bmNTY3JpcHRSdW5uZXI+IG1fdGltZXI7CisgICAgVGltZXI8U2Ny
aXB0UnVubmVyPiBtX3RpbWVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3Jp
cHRFbGVtZW50LmNwcAppbmRleCA4ZTcwOGQxLi5iNTZiMzc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcApAQCAtNTgsNiArNTgsMTMgQEAgdm9pZCBIVE1MU2Ny
aXB0RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBi
ZWZvcmVDaGFuZ2UKICAgICBIVE1MRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZWRCeVBh
cnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3VudERlbHRhKTsKIH0KIAor
dm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChBdHRyaWJ1dGUqIGF0dHIs
IGJvb2wgcHJlc2VydmVEZWNscykKK3sKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IGFzeW5jQXR0
cikKKyAgICAgICAgaGFuZGxlQXN5bmNBdHRyaWJ1dGUoKTsKKyAgICBIVE1MRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChhdHRyLCBwcmVzZXJ2ZURlY2xzKTsKK30KKwogdm9pZCBIVE1MU2NyaXB0
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogewogICAgIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lID0gYXR0ci0+bmFtZSgpOwpAQCAtMTAyLDYgKzEw
OSwxNyBAQCB2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpzZXRUZXh0KGNvbnN0IFN0cmluZyAmdmFs
dWUpCiAgICAgYXBwZW5kQ2hpbGQoZG9jdW1lbnQoKS0+Y3JlYXRlVGV4dE5vZGUodmFsdWUuaW1w
bCgpKSwgZWMpOwogfQogCit2b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpzZXRBc3luYyhib29sIGFz
eW5jKQoreworICAgIHNldEJvb2xlYW5BdHRyaWJ1dGUoYXN5bmNBdHRyLCBhc3luYyk7CisgICAg
aGFuZGxlQXN5bmNBdHRyaWJ1dGUoKTsKK30KKworYm9vbCBIVE1MU2NyaXB0RWxlbWVudDo6YXN5
bmMoKSBjb25zdAoreworICAgIHJldHVybiBmYXN0SGFzQXR0cmlidXRlKGFzeW5jQXR0cikgfHwg
Zm9yY2VBc3luYygpOworfQorCiBLVVJMIEhUTUxTY3JpcHRFbGVtZW50OjpzcmMoKSBjb25zdAog
ewogICAgIHJldHVybiBkb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzb3VyY2VBdHRyaWJ1dGVWYWx1
ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCBlZmU2YTZh
Li5jYmU3MjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC0z
OCw2ICszOCw5IEBAIHB1YmxpYzoKIAogICAgIEtVUkwgc3JjKCkgY29uc3Q7CiAKKyAgICB2b2lk
IHNldEFzeW5jKGJvb2wpOworICAgIGJvb2wgYXN5bmMoKSBjb25zdDsKKwogcHJpdmF0ZToKICAg
ICBIVE1MU2NyaXB0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBib29s
IHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgYWxyZWFkeVN0YXJ0ZWQpOwogCkBAIC00NSw2ICs0
OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9tRG9jdW1lbnQoKTsKICAgICB2aXJ0dWFsIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJl
Zm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0
YSA9IDApOworICAgIHZpcnR1YWwgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKEF0dHJpYnV0ZSosIGJv
b2wgcHJlc2VydmVEZWNscyA9IGZhbHNlKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJp
YnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2NyaXB0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmlkbAppbmRleCAyMGI3MzMxLi5mYTc5OWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTY3JpcHRFbGVtZW50LmlkbApAQCAtMjQsNyArMjQsNyBAQCBtb2R1bGUgaHRtbCB7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdD1mb3JdIERPTVN0cmluZyBodG1sRm9yOwogICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBldmVudDsKICAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgY2hhcnNldDsKLSAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBib29sZWFuIGFzeW5jOworICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBhc3luYzsKICAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGRlZmVyOwogICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3QsIFVSTF0gRE9NU3RyaW5nIHNyYzsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0
XSBET01TdHJpbmcgdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdy
b3VwTG9hZERlZmVycmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwTG9hZERl
ZmVycmVyLmNwcAppbmRleCBkZWEyY2Q3Li5kZmJiMjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VHcm91cExvYWREZWZlcnJlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlR3JvdXBMb2FkRGVmZXJyZXIuY3BwCkBAIC0yMSwxMSArMjEsMTEgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQYWdlR3JvdXBMb2FkRGVmZXJyZXIuaCIKIAotI2lu
Y2x1ZGUgIkFzeW5jU2NyaXB0UnVubmVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3Jv
dXAuaCIKKyNpbmNsdWRlICJTY3JpcHRSdW5uZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MCw3ICs1MCw3IEBAIFBhZ2VHcm91cExvYWRE
ZWZlcnJlcjo6UGFnZUdyb3VwTG9hZERlZmVycmVyKFBhZ2UqIHBhZ2UsIGJvb2wgZGVmZXJTZWxm
KQogICAgICAgICAgICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gb3RoZXJQYWdlLT5tYWluRnJh
bWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnN1c3BlbmRTY3JpcHRlZEFuaW1h
dGlvbkNvbnRyb2xsZXJDYWxsYmFja3MoKTsKICAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmRv
Y3VtZW50KCktPnN1c3BlbmRBY3RpdmVET01PYmplY3RzKEFjdGl2ZURPTU9iamVjdDo6V2lsbFNo
b3dEaWFsb2cpOwotICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+YXN5bmNT
Y3JpcHRSdW5uZXIoKS0+c3VzcGVuZCgpOworICAgICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9j
dW1lbnQoKS0+c2NyaXB0UnVubmVyKCktPnN1c3BlbmQoKTsKICAgICAgICAgICAgICAgICAgICAg
aWYgKERvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+cGFyc2VyKCkp
CiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZXItPnN1c3BlbmRTY2hlZHVsZWRUYXNrcygp
OwogICAgICAgICAgICAgICAgIH0KQEAgLTczLDcgKzczLDcgQEAgUGFnZUdyb3VwTG9hZERlZmVy
cmVyOjp+UGFnZUdyb3VwTG9hZERlZmVycmVyKCkKICAgICAgICAgICAgIGZvciAoRnJhbWUqIGZy
YW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCktPnRy
YXZlcnNlTmV4dCgpKSB7CiAgICAgICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnJlc3Vt
ZUFjdGl2ZURPTU9iamVjdHMoKTsKICAgICAgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+
cmVzdW1lU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyQ2FsbGJhY2tzKCk7Ci0gICAgICAgICAg
ICAgICAgZnJhbWUtPmRvY3VtZW50KCktPmFzeW5jU2NyaXB0UnVubmVyKCktPnJlc3VtZSgpOwor
ICAgICAgICAgICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRSdW5uZXIoKS0+cmVzdW1l
KCk7CiAgICAgICAgICAgICAgICAgaWYgKERvY3VtZW50UGFyc2VyKiBwYXJzZXIgPSBmcmFtZS0+
ZG9jdW1lbnQoKS0+cGFyc2VyKCkpCiAgICAgICAgICAgICAgICAgICAgIHBhcnNlci0+cmVzdW1l
U2NoZWR1bGVkVGFza3MoKTsKICAgICAgICAgICAgIH0K
</data>
<flag name="commit-queue"
          id="77518"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>