<?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>88148</bug_id>
          
          <creation_ts>2012-06-01 16:14:18 -0700</creation_ts>
          <short_desc>REGRESSION(r118098): &lt;content&gt; element does not render distributed children when cloned from another document</short_desc>
          <delta_ts>2012-06-13 01:06:09 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://jsfiddle.net/3WMEP/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>88852</dependson>
    
    <dependson>88857</dependson>
          <blocked>63606</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dominicc</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>haraken</cc>
    
    <cc>hayato</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>morrita</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>shinyak</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>639836</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-06-01 16:14:18 -0700</bug_when>
    <thetext>There is something really wrong happening here. This is the functionality used by Web Components Polyfill and this stopped working very recently (like, this week).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640003</commentid>
    <comment_count>1</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2012-06-02 02:54:26 -0700</bug_when>
    <thetext>git bisect fingers r118098.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640006</commentid>
    <comment_count>2</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2012-06-02 03:15:52 -0700</bug_when>
    <thetext>The cause of this seems simple enough: The function which wraps a HTMLContentElement tries to access the &quot;context&quot; (ie frame) via the element being wrapped. Independent documents don’t have frames.

A temporary workaround for the Web Components polyfill would be to create a document in a same-origin iframe.

What is the intended design of ContextEnabledFeatures? Should it access the current JavaScript context, like the SOP does?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640029</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-06-02 09:02:26 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; The cause of this seems simple enough: The function which wraps a HTMLContentElement tries to access the &quot;context&quot; (ie frame) via the element being wrapped. Independent documents don’t have frames.
&gt; 

I see. The decision is made at the creation time and is permanent. So even if the object is moved from one  document to another, its nature stays the same. Hmm... This seems deficient.

BTW, this is not just about wrappers. The code that breaks us is the one generated for HTMLElementFactory.cpp, which is used by the parser.

&gt; A temporary workaround for the Web Components polyfill would be to create a document in a same-origin iframe.

Yep, that&apos;s what I&apos;ll do in the meantime.

&gt; 
&gt; What is the intended design of ContextEnabledFeatures? Should it access the current JavaScript context, like the SOP does?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640032</commentid>
    <comment_count>4</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2012-06-02 09:26:42 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I see. The decision is made at the creation time and is permanent. So even if the object is moved from one  document to another, its nature stays the same. Hmm... This seems deficient.

Ah… maybe a less intrusive workaround than using an iframe, since you are cloning the node anyway and then adopting it, is to use importNode. This will create a new node in the new document.

adoptNode can return a new node, but it doesn’t. So it could be special-cased for elements of &quot;context enabled features.&quot; It feels a bit sad to layer all this complexity in here – although &lt;content&gt; specifically is a presentation feature, so relying on having a window is arguably OK, you can certainly observe whether you got HTMLContentElement or HTMLUnknownElement from script.

One question I still need clarified – what is the intended &quot;context&quot;? Per window? Origin? (Morita-san?)

&gt; BTW, this is not just about wrappers. The code that breaks us is the one generated for HTMLElementFactory.cpp, which is used by the parser.

Good point.

&gt; &gt; A temporary workaround for the Web Components polyfill would be to create a document in a same-origin iframe.
&gt; 
&gt; Yep, that&apos;s what I&apos;ll do in the meantime.

Maybe importNode is your friend. &lt;http://jsfiddle.net/QWt5j/&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640251</commentid>
    <comment_count>5</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-03 18:13:08 -0700</bug_when>
    <thetext>&gt; 
&gt; One question I still need clarified – what is the intended &quot;context&quot;? Per window? Origin? (Morita-san?)
&gt; 
it should correspond domain. I choose (main) frame as its proxy. 
A document created by createHTMLDocument() is frame-less and breaks this approximation.
We (well, I) need to figure out some way to reach the main frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640257</commentid>
    <comment_count>6</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-03 18:35:33 -0700</bug_when>
    <thetext>Here is my current plan:

- Extract ContextEnabledFeatureClient from FrameLoaderClient
- Add Document::m_contextEnabledFeatureClient
- Set it on the document construction.

The lifetime of the client should be handled carefully.
But basically it should work. I&apos;ll explore this direction at first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640408</commentid>
    <comment_count>7</comment_count>
      <attachid>145540</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-04 01:41:03 -0700</bug_when>
    <thetext>Created attachment 145540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640641</commentid>
    <comment_count>8</comment_count>
      <attachid>145540</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-06-04 09:43:17 -0700</bug_when>
    <thetext>Comment on attachment 145540
Patch

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

Interesting! So the ContextEnabledFeatures now becomes a thing like SecurityOrigin. Can it just be part of SecurityOrigin?

&gt; Source/WebCore/page/Frame.h:65
&gt; +class ContextEnabledFeatures;

Indent mismatch.

&gt; Source/WebCore/page/Frame.h:290
&gt; +inline ContextEnabledFeatures* Frame::features() const
&gt; +{
&gt; +    return m_features.get();
&gt; +}

Ditto.

&gt; LayoutTests/fast/dom/shadow/elements-in-frameless-document.html:8
&gt; +description(&quot;This test ensure that the shadow related elements are instantiated even inside frameless documents.&quot;);

ensure -&gt; ensures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>640683</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-04 10:53:09 -0700</bug_when>
    <thetext>This is related to the general problem of not being able to find the Settings object in some cases.  We kind of randomly guess at the value of Settings in that case.  That cause some trouble for us when we were bringing up the HTML5 parser because we used a Setting to determine which parser to use and hand to pick one of them when we couldn&apos;t find the Settings object.

When adding a new settings, is it going to be obvious whether to add it to the Page-specific settings or the Frame-specific settings?  These seem like the fulfill almost the same purpose.  I guess it&apos;s uncommon to need Frame-specific settings since we&apos;ve gotten along thus far without them.

There&apos;s a slight risk in how you&apos;ve got things set up currently.  Imagine the embedder wants to enable a feature for all documents in the HTTPS scheme and to not expose the feature to documents in the HTTP scheme, the embedder can&apos;t really do that the way you&apos;ve got things set up.  When the embedder receives one of these calls and has only a Frame upon which to base its decision.  It doesn&apos;t know *which* of the documents in the Frame is asking the question.

A better design might be to use a Page-level client and then to pass a Document as a context object.  Because the client is at the Page level, it&apos;s easier for the embedder to remember that it doesn&apos;t quite know the context for the question.  (Most people remember that there are more than one Frame per Page better than they remember that there are more than one Document per Frame).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641030</commentid>
    <comment_count>10</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-04 17:32:35 -0700</bug_when>
    <thetext>Thanks Adam, I&apos;d take that way.
Considering the requirement to access Settings from frameless document,
It might be better to introduce something like DocumentSettings or DocumentPolicy,
which asks a client to decide.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641079</commentid>
    <comment_count>11</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-04 18:15:33 -0700</bug_when>
    <thetext>My feeling is(In reply to comment #8)
&gt; (From update of attachment 145540 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=145540&amp;action=review
&gt; 
&gt; Interesting! So the ContextEnabledFeatures now becomes a thing like SecurityOrigin. Can it just be part of SecurityOrigin?
Yeah, I feel same. It looks SecurityOrigin maps some concrete concept in the standard.
So we can introduce something which includes SecurityOrigin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641275</commentid>
    <comment_count>12</comment_count>
      <attachid>145719</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-05 01:13:46 -0700</bug_when>
    <thetext>Created attachment 145719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641285</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-05 01:19:02 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641326</commentid>
    <comment_count>14</comment_count>
      <attachid>145719</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-05 01:57:30 -0700</bug_when>
    <thetext>Comment on attachment 145719
Patch

Attachment 145719 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12896494</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641328</commentid>
    <comment_count>15</comment_count>
      <attachid>145719</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-06-05 01:58:18 -0700</bug_when>
    <thetext>Comment on attachment 145719
Patch

Attachment 145719 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12890653</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641342</commentid>
    <comment_count>16</comment_count>
      <attachid>145719</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-05 02:25:12 -0700</bug_when>
    <thetext>Comment on attachment 145719
Patch

Attachment 145719 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12899463</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>641345</commentid>
    <comment_count>17</comment_count>
      <attachid>145736</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-05 02:27:52 -0700</bug_when>
    <thetext>Created attachment 145736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>642096</commentid>
    <comment_count>18</comment_count>
      <attachid>145913</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-05 19:03:09 -0700</bug_when>
    <thetext>Created attachment 145913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643954</commentid>
    <comment_count>19</comment_count>
      <attachid>145913</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-06-07 15:04:35 -0700</bug_when>
    <thetext>Comment on attachment 145913
Patch

I like this, though I am a bit sad about the static/non-static duplication of methods in ContextFeatureSwitch. Can we just get rid of that :)?

Possibly bike-shedding idea -- can&apos;t we make features an enum? Then the switch has only one-method surface.

Adam, WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644313</commentid>
    <comment_count>20</comment_count>
      <attachid>146473</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-07 21:51:08 -0700</bug_when>
    <thetext>Created attachment 146473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644315</commentid>
    <comment_count>21</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-07 21:52:32 -0700</bug_when>
    <thetext>&gt; Possibly bike-shedding idea -- can&apos;t we make features an enum? Then the switch has only one-method surface.
Tried an enum version in the updated patch. Not so bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644723</commentid>
    <comment_count>22</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-06-08 09:16:00 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; &gt; Possibly bike-shedding idea -- can&apos;t we make features an enum? Then the switch has only one-method surface.
&gt; Tried an enum version in the updated patch. Not so bad.

Enum makes things a lot more flexible -- easier to add/remove features. Can we propagate this enum to the static functions too? This way, there wouldn&apos;t be any need to add methods per feature.

Also -- naming thoughts (of course!) Could ContextFeatureSwitch be just ContextFeatures?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644751</commentid>
    <comment_count>23</comment_count>
      <attachid>146473</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-08 09:45:16 -0700</bug_when>
    <thetext>Comment on attachment 146473
Patch

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

This is a big improvement over the previous version, but I think I&apos;ve spotted one bug that you&apos;ll probably want to fix before landing.

&gt; Source/WebCore/dom/ContextFeatureSwitch.h:40
&gt; +class ContextFeatureSwitch : public Supplement&lt;Page&gt; {

So, I think there&apos;s a subtle bug here.  ContextFeatureSwitch has the same lifetime as Page, but SecurityContext holds a raw pointer to a ContextFeatureSwitch.  Document is a subclass of SecurityContext and can outlive the page.  When it does that, the Document will have a garbage pointer to a ContextFeatureSwitch.  It will then use-after-free a bunch of memory and call a virtual method of ContextFeatureSwitchClient, which is a security vulnerability.

I wonder if a better approach is to make ContextFeatureSwitch RefCounted so that SecurityContext can hold a reference to it.  You&apos;ll then probably want to make it a FrameDestructionObserver so that it can observe when the Frame goes away and stop calling through to the client at that point.  (Once the Frame goes away, there&apos;s no reason to believe anything related to the Frame, like the Page or the ContextFeatureSwitchClient still exists.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645672</commentid>
    <comment_count>24</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-10 19:37:15 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; &gt; Possibly bike-shedding idea -- can&apos;t we make features an enum? Then the switch has only one-method surface.
&gt; &gt; Tried an enum version in the updated patch. Not so bad.
&gt; 
&gt; Enum makes things a lot more flexible -- easier to add/remove features. Can we propagate this enum to the static functions too? This way, there wouldn&apos;t be any need to add methods per feature.
&gt; 
I&apos;d like to keep current style since This makes caller sides less concise.

&gt; Also -- naming thoughts (of course!) Could ContextFeatureSwitch be just ContextFeatures?
Can be. ContextFeaturesClient sounds a bit for me. That&apos;s why I chose this name.
But it doesn&apos;t look so bad now. Will try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645753</commentid>
    <comment_count>25</comment_count>
      <attachid>146791</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-10 23:19:19 -0700</bug_when>
    <thetext>Created attachment 146791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645785</commentid>
    <comment_count>26</comment_count>
      <attachid>146798</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-11 00:25:59 -0700</bug_when>
    <thetext>Created attachment 146798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645789</commentid>
    <comment_count>27</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-11 00:33:50 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 146473 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146473&amp;action=review
&gt; 
&gt; This is a big improvement over the previous version, but I think I&apos;ve spotted one bug that you&apos;ll probably want to fix before landing.
&gt; 
&gt; &gt; Source/WebCore/dom/ContextFeatureSwitch.h:40
&gt; &gt; +class ContextFeatureSwitch : public Supplement&lt;Page&gt; {
&gt; 
&gt; So, I think there&apos;s a subtle bug here.  ContextFeatureSwitch has the same lifetime as Page, but SecurityContext holds a raw pointer to a ContextFeatureSwitch.  Document is a subclass of SecurityContext and can outlive the page.  When it does that, the Document will have a garbage pointer to a ContextFeatureSwitch.  It will then use-after-free a bunch of memory and call a virtual method of ContextFeatureSwitchClient, which is a security vulnerability.

Right. Actually I encountered similar situation before.

IMHO, some of Supplement classes want to be ref-counted, and they also want to know
associated Page&apos;s destruction timing to clear the will-be-invalidated references.
In the updated patch, I introduced RefCountedSupplement for this.
I agree that FrameDestructionObserver works. 
But this will reflect Page&apos;s lifecycle directly, which is we&apos;re interested in this case.

I think this can applicable to some supplement-based Web API implementation too.
Some of them will be able to kill redundant controller classes with this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646533</commentid>
    <comment_count>28</comment_count>
      <attachid>146798</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-11 18:40:37 -0700</bug_when>
    <thetext>Comment on attachment 146798
Patch

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

&gt; Source/WebCore/dom/ContextFeatures.cpp:53
&gt; +    document-&gt;setFeatureSwitch(provided);

What is a Switch?  Do you mean a command-line switch?  If so, that seems like an odd thing to leak into these names.

&gt; Source/WebCore/dom/ContextFeatures.h:49
&gt; +    static void provideTo(Document*, Page*);

It&apos;s unclear whether we&apos;re providing ContextFeatures to the Document or to the Page...  I&apos;m not sure what to suggest to improve these names.

&gt; Source/WebCore/dom/ContextFeatures.h:83
&gt; +void provideContextFeaturesTo(Page*, ContextFeaturesClient*);

It&apos;s strange that this is a free function but ContextFeatures::provideTo is a member function.

&gt; Source/WebCore/dom/SecurityContext.h:98
&gt; +    RefPtr&lt;ContextFeatures&gt; m_featureSwitch;

It&apos;s a bit strange to store this here given that it only really works with Documents.  Why not store it in Document?

&gt; Source/WebCore/platform/RefCountedSupplement.h:47
&gt; +        virtual bool isRefCountedWrapper() const OVERRIDE { return true; }

Should this be debug-only given that it&apos;s just used for an ASSERT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646538</commentid>
    <comment_count>29</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-11 18:42:28 -0700</bug_when>
    <thetext>LGTM.  My comments above are just silly naming things.  I&apos;m happy to do the final review, or I&apos;m also happy to defer to dglazkov or whoever else is interested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646540</commentid>
    <comment_count>30</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-06-11 18:43:51 -0700</bug_when>
    <thetext>/me touches nose. I deferred to you first!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646543</commentid>
    <comment_count>31</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-11 18:46:38 -0700</bug_when>
    <thetext>Thanks guys!
I&apos;ll update the patch to address the comment. Don&apos;t hesitate r+ then ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646555</commentid>
    <comment_count>32</comment_count>
      <attachid>146798</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-06-11 19:22:03 -0700</bug_when>
    <thetext>Comment on attachment 146798
Patch

\o/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646582</commentid>
    <comment_count>33</comment_count>
      <attachid>146997</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-11 20:23:55 -0700</bug_when>
    <thetext>Created attachment 146997
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646591</commentid>
    <comment_count>34</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-11 20:42:18 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 146798 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146798&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ContextFeatures.cpp:53
&gt; &gt; +    document-&gt;setFeatureSwitch(provided);
&gt; 
&gt; What is a Switch?  Do you mean a command-line switch?  If so, that seems like an odd thing to leak into these names.

Good catch. This should be renamed.

&gt; 
&gt; &gt; Source/WebCore/dom/ContextFeatures.h:49
&gt; &gt; +    static void provideTo(Document*, Page*);
&gt; 
&gt; It&apos;s unclear whether we&apos;re providing ContextFeatures to the Document or to the Page...  I&apos;m not sure what to suggest to improve these names.
&gt; 
Moved to this as a function and give more descriptive name.

&gt; &gt; Source/WebCore/dom/ContextFeatures.h:83
&gt; &gt; +void provideContextFeaturesTo(Page*, ContextFeaturesClient*);
&gt; 
&gt; It&apos;s strange that this is a free function but ContextFeatures::provideTo is a member function.
&gt; 
&gt; &gt; Source/WebCore/dom/SecurityContext.h:98
&gt; &gt; +    RefPtr&lt;ContextFeatures&gt; m_featureSwitch;
&gt; 
&gt; It&apos;s a bit strange to store this here given that it only really works with Documents.  Why not store it in Document?
&gt; 
&gt; &gt; Source/WebCore/platform/RefCountedSupplement.h:47
&gt; &gt; +        virtual bool isRefCountedWrapper() const OVERRIDE { return true; }
&gt; 
&gt; Should this be debug-only given that it&apos;s just used for an ASSERT?
True. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646653</commentid>
    <comment_count>35</comment_count>
      <attachid>147013</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-11 23:14:12 -0700</bug_when>
    <thetext>Created attachment 147013
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646767</commentid>
    <comment_count>36</comment_count>
      <attachid>147013</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-12 02:50:11 -0700</bug_when>
    <thetext>Comment on attachment 147013
Patch for landing

Clearing flags on attachment: 147013

Committed r120051: &lt;http://trac.webkit.org/changeset/120051&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646768</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-12 02:50:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646788</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-12 04:02:48 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 88852</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647589</commentid>
    <comment_count>39</comment_count>
      <attachid>147211</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-06-12 18:58:55 -0700</bug_when>
    <thetext>Created attachment 147211
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647791</commentid>
    <comment_count>40</comment_count>
      <attachid>147211</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-13 01:06:00 -0700</bug_when>
    <thetext>Comment on attachment 147211
Patch for landing

Clearing flags on attachment: 147211

Committed r120168: &lt;http://trac.webkit.org/changeset/120168&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647792</commentid>
    <comment_count>41</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-13 01:06:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145540</attachid>
            <date>2012-06-04 01:41:03 -0700</date>
            <delta_ts>2012-06-05 01:13:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88148-20120604174102.patch</filename>
            <type>text/plain</type>
            <size>27397</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZkYmFhZGZkYmY1YzA2
MzZmYzM4YzU5ZjkwNGVmZWRkYzYxN2QyNy4uODZlZTgzYjgyZjNkMDFiMDQ1MzBmZTU1MWRhZDk3
ZmE4OWJiNjk0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDEyLTA2LTA0ICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjEx
ODA5OCk6IDxjb250ZW50PiBlbGVtZW50IGRvZXMgbm90IHJlbmRlciBkaXN0cmlidXRlZCBjaGls
ZHJlbiB3aGVuIGNsb25lZCBmcm9tIGFub3RoZXIgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTQ4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQW55IGRvY3VtZW50IG9iamVjdHMgd2hpY2gg
YXJlIGNyZWF0ZWQgYnkgRE9NSW1wbGVtZW50YXRpb24gYXJlbid0CisgICAgICAgIGF0dGFjaGVk
IHRvIGFueSBmcmFtZXMuICBCZWNhdXNlIENvbnRleHRFbmFibGVkRmVhdHVyZXMgQVBJCisgICAg
ICAgIHJlcXVpcmVkIGEgZnJhbWUgdG8gZGVjaWRlIHRoZSBmZWF0dXJlIGF2YWlsYWJpbGl0eSwg
ZnJhbWUtbGVzcyBkb2N1bWVudHMKKyAgICAgICAgY291bGRuJ3QgY3JlYXRlIDxjb250ZW50PiBu
b3IgPHNoYWRvdz4gdGhhdCB3ZXJlIGhpZGRlbiBieQorICAgICAgICBDb250ZXh0RW5hYmxlZEZl
YXR1cmVzLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGluc3RhbnRpYXRlcyBDb250ZXh0RW5hYmxl
ZEZlYXR1cmVzIHdpdGggYQorICAgICAgICBjb3JyZXNwb25kaW5nIGZyYW1lLCBhbmQgdHVybnMg
aXRzIGNsYXNzIGZ1bmN0aW9ucyBpbnRvIG1lbWJlcgorICAgICAgICBmdW5jdGlvbnMuIENvbnRl
eHRFbmFibGVkRmVhdHVyZXMgaXMgbm93IGEgcmVmLWNvdW50ZWQgb2JqZWN0CisgICAgICAgIG93
bmVkIGJ5IGEgRnJhbWUuIFRoZW4gdGhlIGNoYW5nZSBnaXZlcyBhIENvbnRleHRFbmFibGVkRmVh
dHVyZXMKKyAgICAgICAgcmVmZXJlbmNlIHRvIGVhY2ggRG9jdW1lbnQgZXZlbiBpZiB0aGUgZG9j
dW1lbnQgaXNuJ3QKKyAgICAgICAgZnJhbWUtYXR0YWNoZWQsIHNvIHRoYXQgaXQgY2FuIGFjY2Vz
cyBDb250ZXh0RW5hYmxlZEZlYXR1cmVzCisgICAgICAgIGFueXRpbWUuCisKKyAgICAgICAgVGVz
dDogZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1bWVudC5odG1sCisK
KyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwOiBU
dXJuZWQgc3RhdGljIGZ1bmNkdGlvbnMgdG8gbWVtYmVyIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dEVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRFbmFibGVkRmVhdHVyZXM6OnBhZ2VQb3B1cEVuYWJs
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEVuYWJsZWRGZWF0dXJlczo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVu
YWJsZWRGZWF0dXJlcy5oOiBEaXR0by4uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENv
bnRleHRFbmFibGVkRmVhdHVyZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEVuYWJsZWRG
ZWF0dXJlczo6Q29udGV4dEVuYWJsZWRGZWF0dXJlcyk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG06IEZvbGxvd2VkIHN0YXRpYy10by1tZW1iZXIgY2hhbmdl
LgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwOiBGb2xsb3dlZCBzdGF0aWMtdG8tbWVtYmVyIGNoYW5nZS4KKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmRldGVybWluZVNjb3BlKToKKyAgICAgICAgKiBkb20v
RE9NSW1wbGVtZW50YXRpb24uY3BwOiBTZXQgY2FsbGVyJ3MgQ29udGV4dEVuYWJsZWRGZWF0dXJl
cyB0byB0aGUgbmV3bHkgY3JlYXRlZCBkb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTUlt
cGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBs
ZW1lbnRhdGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpzZXRGZWF0dXJlcyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6IEFkZGVkIG1fZmVhdHVyZXMuCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpmZWF0dXJlcyk6CisgICAgICAgICogZG9tL1Bvc2l0aW9uLmNwcDogRm9sbG93ZWQgc3RhdGlj
LXRvLW1lbWJlciBjaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6UG9zaXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmZpbmRQYXJlbnQpOgorICAgICAgICAqIGRv
bS9UcmVlU2NvcGUuY3BwOiBGb2xsb3dlZCBzdGF0aWMtdG8tbWVtYmVyIGNoYW5nZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6Z2V0U2VsZWN0aW9uKToKKyAgICAgICAgKiBkb20vbWFr
ZV9uYW1lcy5wbDogRm9sbG93ZWQgc3RhdGljLXRvLW1lbWJlciBjaGFuZ2UuCisgICAgICAgIChw
cmludENvbnN0cnVjdG9ySW50ZXJpb3IpOgorICAgICAgICAocHJpbnRXcmFwcGVyRnVuY3Rpb25z
KToKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6IEZvbGxvd2VkIHN0YXRpYy10by1tZW1i
ZXIgY2hhbmdlLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwV2l0
aENvbnRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHA6IEZvbGxvd2Vk
IHN0YXRpYy10by1tZW1iZXIgY2hhbmdlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN0eWxlRWxl
bWVudDo6cmVnaXN0ZXJXaXRoU2NvcGluZ05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN0
eWxlRWxlbWVudDo6dW5yZWdpc3RlcldpdGhTY29waW5nTm9kZSk6CisgICAgICAgICogaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDogRm9sbG93ZWQgc3RhdGljLXRvLW1lbWJlciBj
aGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpjb250ZW50VGFnTmFtZSk6CisgICAgICAgICogaW5z
cGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHA6IFNldCBjYWxsZXIncyBDb250ZXh0RW5hYmxlZEZl
YXR1cmVzIHRvIHRoZSBuZXdseSBjcmVhdGVkIGRvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6
RE9NUGF0Y2hTdXBwb3J0OjpwYXRjaERvY3VtZW50KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpGcmFtZSk6CisgICAgICAgICogcGFnZS9GcmFt
ZS5oOiBBZGRlZCBtX2ZlYXR1cmVzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChGcmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZmVhdHVyZXMpOgorICAgICAgICAqIHhtbC9Y
TUxIdHRwUmVxdWVzdC5jcHA6IFNldCBjYWxsZXIncyBDb250ZXh0RW5hYmxlZEZlYXR1cmVzIHRv
IHRoZSBuZXdseSBjcmVhdGVkIGRvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJl
cXVlc3Q6OnJlc3BvbnNlWE1MKToKKwogMjAxMi0wNi0wMyAgSGF5YXRvIEl0byAgPGhheWF0b0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgU3VwcG9ydHMgdHJhdmVyc2luZyBub2RlcyBpbiBhbiBv
cnBoYW5lZCBzaGFkb3cgc3VidHJlZSBpbiBDb21wb3NlZFNoYWRvd1RyZWVQYXJlbnRXYWxrZXIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFi
bGVkRmVhdHVyZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0
RW5hYmxlZEZlYXR1cmVzLmNwcAppbmRleCBlMjYyMmIzNzNlYjIxNzg1YmNjMWMwNzhiYmVhMjI4
ZDAzYmMxY2I2Li5mM2RkNzY2MzBmZTBhYzFlZWY0ZWRiZGEwNjgwZjhjMmYzMDNmZDNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVh
dHVyZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVu
YWJsZWRGZWF0dXJlcy5jcHAKQEAgLTQxLDM2ICs0MSwzNSBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi1ib29sIENvbnRleHRFbmFibGVkRmVhdHVyZXM6
OnNoYWRvd0RPTUVuYWJsZWQoRE9NV2luZG93KiB3aW5kb3cpCitib29sIENvbnRleHRFbmFibGVk
RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSBjb25zdAogewotICAgIGlmICghd2luZG93KQor
ICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChGcmFtZSog
ZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCkt
PmNsaWVudCgpLT5hbGxvd1NoYWRvd0RPTShSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dE
T01FbmFibGVkKCkpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9mcmFtZS0+bG9h
ZGVyKCktPmNsaWVudCgpLT5hbGxvd1NoYWRvd0RPTShSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFkb3dET01FbmFibGVkKCkpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU1RZTEVfU0NPUEVE
KQotYm9vbCBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoRG9jdW1l
bnQqIGRvY3VtZW50KQorYm9vbCBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVu
YWJsZWQoKSBjb25zdAogewotICAgIGlmICghZG9jdW1lbnQpCisgICAgaWYgKCFtX2ZyYW1lKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5m
cmFtZSgpKQotICAgICAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+YWxsb3dT
dHlsZVNjb3BlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoKSk7
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50
KCktPmFsbG93U3R5bGVTY29wZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29wZWRF
bmFibGVkKCkpOwogfQogI2VuZGlmICAgCiAKICNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKLWJvb2wg
Q29udGV4dEVuYWJsZWRGZWF0dXJlczo6cGFnZVBvcHVwRW5hYmxlZChET01XaW5kb3cqIHdpbmRv
dykKK2Jvb2wgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6cGFnZVBvcHVwRW5hYmxlZCgpIGNvbnN0
CiB7Ci0gICAgaWYgKCF3aW5kb3cpCisgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IHdpbmRvdy0+ZnJhbWUoKSkKLSAgICAgICAg
cmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmFsbG93UGFnZVBvcHVwKCk7Ci0gICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmFs
bG93UGFnZVBvcHVwKCk7CiB9CiAjZW5kaWYKIAorUGFzc1JlZlB0cjxDb250ZXh0RW5hYmxlZEZl
YXR1cmVzPiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpjcmVhdGUoRnJhbWUqIGZyYW1lKQorewor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyhmcmFtZSkpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IGVhN2ZhNGI3
NTg1ZWE3N2E3MTliZTNiNGQzMzQ0OGIyODJmNDk5N2IuLjI5OGEwZGI4NTQ3N2FkZDc0MzMwZjE1
MTY2ZjI5Zjk2M2JlYWIyZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oCkBAIC0zMSwyNiArMzEsMzcgQEAK
ICNpZm5kZWYgQ29udGV4dEVuYWJsZWRGZWF0dXJlc19oCiAjZGVmaW5lIENvbnRleHRFbmFibGVk
RmVhdHVyZXNfaAogCisjaW5jbHVkZSAiRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERPTVdpbmRvdzsKLWNsYXNzIERvY3VtZW50Owor
Y2xhc3MgRnJhbWU7CiAKIC8vIEEgY2xhc3MgdGhhdCBzdG9yZXMgc3RhdGljIGVuYWJsZXJzIGZv
ciBhbGwgZXhwZXJpbWVudGFsIGZlYXR1cmVzLiBOb3RlIHRoYXQKIC8vIHRoZSBtZXRob2QgbmFt
ZXMgbXVzdCBsaW5lIHVwIHdpdGggdGhlIEphdmFTY3JpcHQgbWV0aG9kIHRoZXkgZW5hYmxlIGZv
ciBjb2RlCiAvLyBnZW5lcmF0aW9uIHRvIHdvcmsgcHJvcGVybHkuCiAKLWNsYXNzIENvbnRleHRF
bmFibGVkRmVhdHVyZXMgeworY2xhc3MgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyA6IHB1YmxpYyBS
ZWZDb3VudGVkPENvbnRleHRFbmFibGVkRmVhdHVyZXM+LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1YmxpYyBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIgewogcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPENvbnRleHRFbmFibGVkRmVhdHVyZXM+IGNyZWF0ZShGcmFtZSop
OworCiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgc3RhdGljIGJvb2wgc2hhZG93RE9NRW5h
YmxlZChET01XaW5kb3cqKTsKKyAgICBib29sIHNoYWRvd0RPTUVuYWJsZWQoKSBjb25zdDsKICNl
bmRpZgogI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCi0gICAgc3RhdGljIGJvb2wgc3R5bGVTY29w
ZWRFbmFibGVkKERvY3VtZW50Kik7CisgICAgYm9vbCBzdHlsZVNjb3BlZEVuYWJsZWQoKSBjb25z
dDsKICNlbmRpZgogI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotICAgIHN0YXRpYyBib29sIHBhZ2VQ
b3B1cEVuYWJsZWQoRE9NV2luZG93Kik7CisgICAgYm9vbCBwYWdlUG9wdXBFbmFibGVkKCkgY29u
c3Q7CiAjZW5kaWYKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBDb250ZXh0RW5hYmxlZEZlYXR1
cmVzKEZyYW1lKiBmcmFtZSkKKyAgICAgICAgOiBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZnJh
bWUpCisgICAgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDRkOWJm
MzQwMTk3ZmE4NDI5ZDg0YzgwNGNjZWE0MjBkYzcyOWVjYWQuLmM2YmI4ZDUxMjAzZWNkNDdkNDJl
YmM1ZGZkNTI4NjMzZTMxODBjOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0yODY0LDcgKzI4NjQsNyBAQCBFTkQKICAg
ICAgICAgICAgIG15ICRlbmFibGVGdW5jdGlvbiA9IEdldENvbnRleHRFbmFibGVGdW5jdGlvbigk
cnVudGltZUF0dHItPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJp
bmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkcnVudGltZUF0
dHItPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuI2lmICR7
Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6JHtl
bmFibGVGdW5jdGlvbn0oaW1wbCkpIHtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgaWYgKGltcGwtPmZyYW1lKCkgJiYgaW1wbC0+ZnJhbWUoKS0+ZmVhdHVyZXMoKS0+
JHtlbmFibGVGdW5jdGlvbn0oKSkge1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgc3RhdGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgYXR0ckRhdGEgPVxcXG4i
KTsKICAgICAgICAgICAgIEdlbmVyYXRlU2luZ2xlQmF0Y2hlZEF0dHJpYnV0ZSgkaW50ZXJmYWNl
TmFtZSwgJHJ1bnRpbWVBdHRyLCAiOyIsICIgICAgIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgPDxFTkQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDA5
OGU4NTY3MDE2NmU5Nzk0MTBjYzMyYjA1OTViOWFlYzBlYTA0MmQuLjczZjVlMGZkNWJmODc5NjUx
MGQ0NTg1NjA2ZGFiMDNiMTZiZWRhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5j
cHAKQEAgLTQ5MCw3ICs0OTAsNyBAQCBjb25zdCBDb250YWluZXJOb2RlKiBTdHlsZVJlc29sdmVy
OjpkZXRlcm1pbmVTY29wZShjb25zdCBDU1NTdHlsZVNoZWV0KiBzaGVldCkKIHsKICAgICBBU1NF
UlQoc2hlZXQpOwogCi0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3Bl
ZEVuYWJsZWQoZG9jdW1lbnQoKSkpCisgICAgaWYgKCFkb2N1bWVudCgpLT5mZWF0dXJlcygpLT5z
dHlsZVNjb3BlZEVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBOb2RlKiBvd25l
ck5vZGUgPSBzaGVldC0+b3duZXJOb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmNwcAppbmRleCBkZDE5N2M2ZTIxN2Q3MWI1ODRkZjQ0NDE4OWJjNWI0MjhjNmZmM2U3
Li41NmE2ZDY1ZTZlNzc0ZTNhMWNhYjlhYTVjODU1OGRlOWIzNTZlYTYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1
ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2luY2x1ZGUg
IkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNp
bmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtMjk1LDYg
KzI5Niw3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVE
b2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSCiAgICAgICAgIGRvYyA9IERvY3VtZW50
OjpjcmVhdGUoMCwgS1VSTCgpKTsKIAogICAgIGRvYy0+c2V0U2VjdXJpdHlPcmlnaW4obV9kb2N1
bWVudC0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgZG9jLT5zZXRGZWF0dXJlcyhtX2RvY3VtZW50
LT5mZWF0dXJlcygpKTsKIAogICAgIFJlZlB0cjxOb2RlPiBkb2N1bWVudEVsZW1lbnQ7CiAgICAg
aWYgKCFxdWFsaWZpZWROYW1lLmlzRW1wdHkoKSkgewpAQCAtMzcyLDYgKzM3NCw3IEBAIFBhc3NS
ZWZQdHI8SFRNTERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50
KGNvbnN0IFN0cmluZyYgdGl0CiAgICAgZC0+d3JpdGUoIjwhZG9jdHlwZSBodG1sPjxodG1sPjxi
b2R5PjwvYm9keT48L2h0bWw+Iik7CiAgICAgZC0+c2V0VGl0bGUodGl0bGUpOwogICAgIGQtPnNl
dFNlY3VyaXR5T3JpZ2luKG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpOworICAgIGQtPnNl
dEZlYXR1cmVzKG1fZG9jdW1lbnQtPmZlYXR1cmVzKCkpOwogICAgIHJldHVybiBkLnJlbGVhc2Uo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMmM5NmMxZTM0MTdhYzVlNmZmNDQ5
N2FiZDE0ZmMwMjE5OWVmNjQxNC4uNmZhMDRlOTFhMzdkYjI0YWFiOTQ2NjE4NDhhNDk0OGYwZjk1
ZDE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVk
ZSAiQ29tbWVudC5oIgogI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJDb250ZW50U2Vj
dXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5j
bHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNs
dWRlICJET01TZWxlY3Rpb24uaCIKQEAgLTUwMiw3ICs1MDMsOCBAQCBEb2N1bWVudDo6RG9jdW1l
bnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hU
TUwpCiAgICAgbV9pZ25vcmVBdXRvZm9jdXMgPSBmYWxzZTsKIAogICAgIG1fZnJhbWUgPSBmcmFt
ZTsKLQorICAgIG1fZmVhdHVyZXMgPSBmcmFtZSA/IGZyYW1lLT5mZWF0dXJlcygpIDogQ29udGV4
dEVuYWJsZWRGZWF0dXJlczo6Y3JlYXRlKDApOworICAgIAogICAgIC8vIFdlIGRlcGVuZCBvbiB0
aGUgdXJsIGdldHRpbmcgaW1tZWRpYXRlbHkgc2V0IGluIHN1YmZyYW1lcywgYnV0IHdlCiAgICAg
Ly8gYWxzbyBkZXBlbmQgb24gdGhlIHVybCBOT1QgZ2V0dGluZyBpbW1lZGlhdGVseSBzZXQgaW4g
b3BlbmVkIHdpbmRvd3MuCiAgICAgLy8gU2VlIGZhc3QvZG9tL2Vhcmx5LWZyYW1lLXVybC5odG1s
CkBAIC02MDIyLDYgKzYwMjQsMTEgQEAgSW50U2l6ZSBEb2N1bWVudDo6dmlld3BvcnRTaXplKCkg
Y29uc3QKICAgICByZXR1cm4gdmlldygpLT52aXNpYmxlQ29udGVudFJlY3QoLyogaW5jbHVkZVNj
cm9sbGJhcnMgKi8gdHJ1ZSkuc2l6ZSgpOwogfQogCit2b2lkIERvY3VtZW50OjpzZXRGZWF0dXJl
cyhQYXNzUmVmUHRyPENvbnRleHRFbmFibGVkRmVhdHVyZXM+IGZlYXR1cmVzKQoreworICAgIG1f
ZmVhdHVyZXMgPSBmZWF0dXJlczsKK30KKwogTm9kZSogZXZlbnRUYXJnZXROb2RlRm9yRG9jdW1l
bnQoRG9jdW1lbnQqIGRvYykKIHsKICAgICBpZiAoIWRvYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5k
ZXggOTljNzVlOTc3MmU2MjUxNGI0MDQzZGY5OGEwOWQ1N2ZlY2U4MzUxNS4uNTBjZTU2MzVjZjdk
MWU5MTU0NDEwN2JmMGM1YTdhYTEyMmRjYWJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTY4
LDYgKzY4LDcgQEAgY2xhc3MgQ2FjaGVkU2NyaXB0OwogY2xhc3MgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDsKIGNsYXNzIENoYXJhY3RlckRhdGE7CiBjbGFzcyBDb21tZW50OworY2xhc3MgQ29udGV4
dEVuYWJsZWRGZWF0dXJlczsKIGNsYXNzIERPTUltcGxlbWVudGF0aW9uOwogY2xhc3MgRE9NU2Vs
ZWN0aW9uOwogY2xhc3MgRE9NV2luZG93OwpAQCAtNTUyLDYgKzU1Myw4IEBAIHB1YmxpYzoKICAg
ICBGcmFtZSogZnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lOyB9IC8vIGNhbiBiZSBOVUxM
CiAgICAgUGFnZSogcGFnZSgpIGNvbnN0OyAvLyBjYW4gYmUgTlVMTAogICAgIFNldHRpbmdzKiBz
ZXR0aW5ncygpIGNvbnN0OyAvLyBjYW4gYmUgTlVMTAorICAgIENvbnRleHRFbmFibGVkRmVhdHVy
ZXMqIGZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlcy5nZXQoKTsgfQorICAgIHZv
aWQgc2V0RmVhdHVyZXMoUGFzc1JlZlB0cjxDb250ZXh0RW5hYmxlZEZlYXR1cmVzPik7CiAKICAg
ICBQYXNzUmVmUHRyPFJhbmdlPiBjcmVhdGVSYW5nZSgpOwogCkBAIC0xMTY2LDcgKzExNjksNiBA
QCBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hI
VE1MLCBib29sIGlzSFRNTCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlU2VjdXJpdHlP
cmlnaW4oKSBPVkVSUklERTsKLQogICAgIHZvaWQgY2xlYXJYTUxWZXJzaW9uKCkgeyBtX3htbFZl
cnNpb24gPSBTdHJpbmcoKTsgfQogCiBwcml2YXRlOgpAQCAtMTI1MSw2ICsxMjUzLDcgQEAgcHJp
dmF0ZToKICAgICBWZWN0b3I8T3duUHRyPEZvbnREYXRhPiA+IG1fY3VzdG9tRm9udHM7CiAKICAg
ICBGcmFtZSogbV9mcmFtZTsKKyAgICBSZWZQdHI8Q29udGV4dEVuYWJsZWRGZWF0dXJlcz4gbV9m
ZWF0dXJlczsKICAgICBPd25QdHI8Q2FjaGVkUmVzb3VyY2VMb2FkZXI+IG1fY2FjaGVkUmVzb3Vy
Y2VMb2FkZXI7CiAgICAgUmVmUHRyPERvY3VtZW50UGFyc2VyPiBtX3BhcnNlcjsKICAgICBib29s
IG1fd2VsbEZvcm1lZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCmluZGV4IGEwNmZmZDQ1ZjM5ZjIw
MzMyMzY3M2JiMmNkMWMzN2NjOTk0MGYzOWEuLjA4MmExMzBlMzk4YmY2MTE3Mjk4NDFhNzAxMjMz
YjlkY2JmYmJkYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcApAQCAtODIsNyArODIsNyBAQCBQ
b3NpdGlvbjo6UG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBhbmNob3JOb2RlLCBMZWdhY3lFZGl0
aW5nT2Zmc2V0IG9mZnNldCkKICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24odHJ1ZSkK
IHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBD
b250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKG1fYW5jaG9yTm9kZS0+ZG9j
dW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIG1fYW5j
aG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZmVhdHVyZXMoKS0+c2hhZG93RE9NRW5hYmxlZCgpKQogICAg
ICAgICAgICB8fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgp
KTsKICNlbHNlCiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNT
aGFkb3dSb290KCkpOwpAQCAtOTYsNyArOTYsNyBAQCBQb3NpdGlvbjo6UG9zaXRpb24oUGFzc1Jl
ZlB0cjxOb2RlPiBhbmNob3JOb2RlLCBBbmNob3JUeXBlIGFuY2hvclR5cGUpCiAgICAgLCBtX2lz
TGVnYWN5RWRpdGluZ1Bvc2l0aW9uKGZhbHNlKQogewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQot
ICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRv
d0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAg
QVNTRVJUKChtX2FuY2hvck5vZGUgJiYgbV9hbmNob3JOb2RlLT5kb2N1bWVudCgpLT5mZWF0dXJl
cygpLT5zaGFkb3dET01FbmFibGVkKCkpCiAgICAgICAgICAgIHx8ICFtX2FuY2hvck5vZGUgfHwg
IW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2Vsc2UKICAgICBBU1NFUlQoIW1fYW5j
aG9yTm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CkBAIC0xMTQsNyArMTE0
LDcgQEAgUG9zaXRpb246OlBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgaW50
IG9mZnNldCwgQW5jaG9yVHlwZSBhbmNob3JUeXAKICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9z
aXRpb24oZmFsc2UpCiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgQVNTRVJUKChtX2Fu
Y2hvck5vZGUgJiYgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2Fu
Y2hvck5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAgICBBU1NFUlQoKG1fYW5jaG9y
Tm9kZSAmJiBtX2FuY2hvck5vZGUtPmRvY3VtZW50KCktPmZlYXR1cmVzKCktPnNoYWRvd0RPTUVu
YWJsZWQoKSkKICAgICAgICAgICAgfHwgIW1fYW5jaG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXND
b250ZW50KG1fYW5jaG9yTm9kZS5nZXQoKSkgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290
KCkpOwogI2Vsc2UKICAgICBBU1NFUlQoIW1fYW5jaG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXND
b250ZW50KG1fYW5jaG9yTm9kZS5nZXQoKSkgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290
KCkpOwpAQCAtODU3LDcgKzg1Nyw3IEBAIENvbnRhaW5lck5vZGUqIFBvc2l0aW9uOjpmaW5kUGFy
ZW50KGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgLy8gRklYTUU6IFNlZSBodHRwOi8vd2ViLnVnLzgy
Njk3CiAKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoQ29udGV4dEVuYWJsZWRGZWF0
dXJlczo6c2hhZG93RE9NRW5hYmxlZChub2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisg
ICAgaWYgKG5vZGUtPmRvY3VtZW50KCktPmZlYXR1cmVzKCktPnNoYWRvd0RPTUVuYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuIG5vZGUtPnBhcmVudE5vZGUoKTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuY3BwCmluZGV4IGQ3MGI5MDA1OWRiZGVlYmUxZDcwN2JiMzM0NjA3ZDM2OGFlMzdh
MTIuLjBmYTljNzIzNjUwMTViZmYwMzAyN2NiMmYxMjEyMGFlNjgyODJlNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGUuY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgRE9NU2VsZWN0aW9uKiBUcmVlU2Nv
cGU6OmdldFNlbGVjdGlvbigpIGNvbnN0CiAgICAgLy8gYXMgYSBjb250YWluZXIuIEl0IGlzIG5v
dyBlbmFibGVkIG9ubHkgaWYgcnVudGltZSBTaGFkb3cgRE9NIGZlYXR1cmUgaXMgZW5hYmxlZC4K
ICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyNjk3
CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgaWYgKENvbnRleHRFbmFibGVkRmVhdHVyZXM6
OnNoYWRvd0RPTUVuYWJsZWQocm9vdE5vZGUoKS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKSB7
CisgICAgaWYgKHJvb3ROb2RlKCktPmRvY3VtZW50KCktPmZlYXR1cmVzKCktPnNoYWRvd0RPTUVu
YWJsZWQoKSkgewogICAgICAgICBtX3NlbGVjdGlvbiA9IERPTVNlbGVjdGlvbjo6Y3JlYXRlKHRo
aXMpOwogICAgICAgICByZXR1cm4gbV9zZWxlY3Rpb24uZ2V0KCk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
bWFrZV9uYW1lcy5wbAppbmRleCBhNmNiMDQyZGZlMDI2YzU4ODRhZjcwMDdjMGE2MzZiMTNhYzkx
ODVmLi5lZjRjNTVhOTY5OTY3NjYwYmE1MmQ5YjNlZGY2ZWYwNTY2NTlhZTg0IDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vbWFrZV9uYW1lcy5wbApAQCAtMzc4LDcgKzM3OCw3IEBAIEVORAogICAgIG15ICRjb250ZXh0
Q29uZGl0aW9uYWwgPSAkZW5hYmxlZFRhZ3N7JHRhZ05hbWV9e2NvbnRleHRDb25kaXRpb25hbH07
CiAgICAgaWYgKCRjb250ZXh0Q29uZGl0aW9uYWwpIHsKICAgICAgICAgcHJpbnQgRiA8PEVORAot
ICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5h
YmxlZChkb2N1bWVudC0+ZG9tV2luZG93KCkpKQorICAgIGlmICghZG9jdW1lbnQtPmZlYXR1cmVz
KCktPiR7Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIDA7CiBF
TkQKIDsKQEAgLTEwMTMsNyArMTAxMyw3IEBAIEVORAogICAgICAgICAgICAgICAgIHByaW50IEYg
PDxFTkQKIHN0YXRpYyBKU0RPTVdyYXBwZXIqIGNyZWF0ZSR7SlNJbnRlcmZhY2VOYW1lfVdyYXBw
ZXIoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNz
UmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiBlbGVtZW50KQogewotICAgIGlm
ICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChl
bGVtZW50LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpIHsKKyAgICBpZiAoIWVsZW1lbnQtPmRv
Y3VtZW50KCktPmZlYXR1cmVzKCktPiR7Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQoKSkgewog
ICAgICAgICBBU1NFUlQoIWVsZW1lbnQgfHwgZWxlbWVudC0+aXMkcGFyYW1ldGVyc3tmYWxsYmFj
a0ludGVyZmFjZU5hbWV9KCkpOwogICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4
ZWMsIGdsb2JhbE9iamVjdCwgJHBhcmFtZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfSwgZWxl
bWVudC5nZXQoKSk7CiAgICAgfQpAQCAtMTA1MCw3ICsxMDUwLDcgQEAgRU5ECiAgICAgICAgICAg
ICAgICAgcHJpbnQgRiA8PEVORAogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjcmVhdGUk
e0pTSW50ZXJmYWNlTmFtZX1XcmFwcGVyKCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50KiBl
bGVtZW50LCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKLSAgICBpZiAoIUNvbnRleHRFbmFibGVk
RmVhdHVyZXM6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQoZWxlbWVudC0+ZG9jdW1lbnQo
KS0+ZG9tV2luZG93KCkpKQorICAgIGlmICghZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZmVhdHVyZXMo
KS0+JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gVjgkcGFy
YW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9Ojp3cmFwKHRvJHBhcmFtZXRlcnN7ZmFsbGJh
Y2tJbnRlcmZhY2VOYW1lfShlbGVtZW50KSwgaXNvbGF0ZSk7CiAgICAgcmV0dXJuIHRvVjgoc3Rh
dGljX2Nhc3Q8JHtKU0ludGVyZmFjZU5hbWV9Kj4oZWxlbWVudCksIGlzb2xhdGUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDlhZTdlNzJjMmYyNmU5NzQwYWQ0YTVmMGNiMjRi
MTk5NDQ4ZDgwNzEuLjkwMWFjZTNkYzlmZjlhZDU5MjlkM2RjMjViMTUxYTc0NzlkZGU0MTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJD
U1NWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDaGls
ZExpc3RNdXRhdGlvblNjb3BlLmgiCisjaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5o
IgogI2luY2x1ZGUgIkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCkBAIC03MzAsNiArNzMxLDcg
QEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXBX
aXRoQ29udGV4dChEb2N1bWVudCogZG9jdW0KIAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiB0YWdnZWRGcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cChkb2N1bWVudCwgdGFn
Z2VkTWFya3VwLnRvU3RyaW5nKCksIGJhc2VVUkwsIHNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAg
IFJlZlB0cjxEb2N1bWVudD4gdGFnZ2VkRG9jdW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlKDAsIEtV
UkwoKSk7CisgICAgdGFnZ2VkRG9jdW1lbnQtPnNldEZlYXR1cmVzKGRvY3VtZW50LT5mZWF0dXJl
cygpKTsKICAgICB0YWdnZWREb2N1bWVudC0+dGFrZUFsbENoaWxkcmVuRnJvbSh0YWdnZWRGcmFn
bWVudC5nZXQoKSk7CiAKICAgICBSZWZQdHI8Tm9kZT4gbm9kZUJlZm9yZUNvbnRleHQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAppbmRleCA2N2RkY2ViNGZhYTNmYTdl
Y2RhNTM0NTc3MzZmYzVkNmNlMzhlZjRjLi4wMjBhZTFlNmEzZGU3MmUxN2EyMDhmODU1NjFjNTFk
YWJmYzFkNDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKQEAg
LTEwNSw3ICsxMDUsNyBAQCB2b2lkIEhUTUxTdHlsZUVsZW1lbnQ6OnJlZ2lzdGVyV2l0aFNjb3Bp
bmdOb2RlKCkKICAgICBBU1NFUlQoaW5Eb2N1bWVudCgpKTsKICAgICBpZiAobV9pc1JlZ2lzdGVy
ZWRXaXRoU2NvcGluZ05vZGUpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIUNvbnRleHRFbmFi
bGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSkKKyAgICBpZiAoIWRv
Y3VtZW50KCktPmZlYXR1cmVzKCktPnN0eWxlU2NvcGVkRW5hYmxlZCgpKQogICAgICAgICByZXR1
cm47CiAKICAgICBDb250YWluZXJOb2RlKiBzY29wZSA9IHBhcmVudE5vZGUoKTsKQEAgLTEzMCwx
MCArMTMwLDEwIEBAIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6dW5yZWdpc3RlcldpdGhTY29waW5n
Tm9kZShDb250YWluZXJOb2RlKiBzY29wZSkKIHsKICAgICAvLyBOb3RlOiBXZSBjYW5ub3QgcmVs
eSBvbiB0aGUgJ3Njb3BlZCcgZWxlbWVudCBzdGlsbCBiZWluZyBwcmVzZW50IHdoZW4gdGhpcyBt
ZXRob2QgaXMgaW52b2tlZC4KICAgICAvLyBUaGVyZWZvcmUgd2UgY2Fubm90IHJlbHkgb24gc2Nv
cGVkKCkhCi0gICAgQVNTRVJUKG1faXNSZWdpc3RlcmVkV2l0aFNjb3BpbmdOb2RlIHx8ICFDb250
ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpOworICAg
IEFTU0VSVChtX2lzUmVnaXN0ZXJlZFdpdGhTY29waW5nTm9kZSB8fCAhZG9jdW1lbnQoKS0+ZmVh
dHVyZXMoKS0+c3R5bGVTY29wZWRFbmFibGVkKCkpOwogICAgIGlmICghbV9pc1JlZ2lzdGVyZWRX
aXRoU2NvcGluZ05vZGUpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIUNvbnRleHRFbmFibGVk
RmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSkKKyAgICBpZiAoIWRvY3Vt
ZW50KCktPmZlYXR1cmVzKCktPnN0eWxlU2NvcGVkRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CiAKICAgICBBU1NFUlQoc2NvcGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0hUTUxDb250ZW50RWxlbWVudC5jcHAKaW5kZXggMDhiNDVkNGFiZjU5YmZjNzZlOGU3NDAwM2Mx
NzZkZGM5NjBlNGJlZi4uYjUyMGEzN2YyYTMzYjc0NjczMDgxMjBiMmMwMmJlODVhYTA1OTY3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQu
Y3BwCkBAIC00Myw3ICs0Myw3IEBAIHVzaW5nIEhUTUxOYW1lczo6c2VsZWN0QXR0cjsKIHN0YXRp
YyBjb25zdCBRdWFsaWZpZWROYW1lJiBjb250ZW50VGFnTmFtZShEb2N1bWVudCogZG9jdW1lbnQp
CiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1
cmVzOjpzaGFkb3dET01FbmFibGVkKGRvY3VtZW50LT5kb21XaW5kb3coKSkpCisgICAgaWYgKCFk
b2N1bWVudC0+ZmVhdHVyZXMoKS0+c2hhZG93RE9NRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4g
SFRNTE5hbWVzOjp3ZWJraXRTaGFkb3dDb250ZW50VGFnOwogICAgIHJldHVybiBIVE1MTmFtZXM6
OmNvbnRlbnRUYWc7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0RPTVBhdGNoU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hT
dXBwb3J0LmNwcAppbmRleCBiYTBkOGM4NmM1NThjOGZhOGUyNTNlZTk2MWIwMDhiZDA2NTNlMjUw
Li45NTVhZGNjMDhlZWVjZjgxYWZiZjJlMTEwYjlmN2JkNDBjMDJkMmE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcApAQCAtMzYsNiArMzYsNyBAQAog
CiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQmFzZTY0LmgiCisjaW5jbHVkZSAi
Q29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkRPTUVkaXRvci5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgpAQCAtODksNiAr
OTAsNyBAQCBET01QYXRjaFN1cHBvcnQ6On5ET01QYXRjaFN1cHBvcnQoKSB7IH0KIHZvaWQgRE9N
UGF0Y2hTdXBwb3J0OjpwYXRjaERvY3VtZW50KGNvbnN0IFN0cmluZyYgbWFya3VwKQogewogICAg
IFJlZlB0cjxIVE1MRG9jdW1lbnQ+IG5ld0RvY3VtZW50ID0gSFRNTERvY3VtZW50OjpjcmVhdGUo
MCwgS1VSTCgpKTsKKyAgICBuZXdEb2N1bWVudC0+c2V0RmVhdHVyZXMobV9kb2N1bWVudC0+ZmVh
dHVyZXMoKSk7CiAgICAgUmVmUHRyPERvY3VtZW50UGFyc2VyPiBwYXJzZXIgPSBIVE1MRG9jdW1l
bnRQYXJzZXI6OmNyZWF0ZShuZXdEb2N1bWVudC5nZXQoKSwgZmFsc2UpOwogICAgIHBhcnNlci0+
aW5zZXJ0KG1hcmt1cCk7IC8vIFVzZSBpbnNlcnQoKSBzbyB0aGF0IHRoZSBwYXJzZXIgd2lsbCBu
b3QgeWllbGQuCiAgICAgcGFyc2VyLT5maW5pc2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXgg
MTUyYTFkOTVmYTJmMDNiNzI1YzhjZGQzNWY1ZjBkMjY3ZGI5OGE1MC4uNTMzOTU1ZGZmNTJlZjBl
NWRlYTI4NmUzZWE4YjAxMTYxYTg2ZjYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTQwLDYg
KzQwLDcgQEAKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJET01XaW5kb3cu
aCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkNvbnRleHRF
bmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJF
ZGl0aW5nVGV4dC5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgpAQCAtMTUzLDYgKzE1NCw3
IEBAIGlubGluZSBGcmFtZTo6RnJhbWUoUGFnZSogcGFnZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50
KiBvd25lckVsZW1lbnQsIEZyYW1lTG9hZGVyCiAgICAgLCBtX2xvYWRlcih0aGlzLCBmcmFtZUxv
YWRlckNsaWVudCkKICAgICAsIG1fbmF2aWdhdGlvblNjaGVkdWxlcih0aGlzKQogICAgICwgbV9v
d25lckVsZW1lbnQob3duZXJFbGVtZW50KQorICAgICwgbV9mZWF0dXJlcyhDb250ZXh0RW5hYmxl
ZEZlYXR1cmVzOjpjcmVhdGUodGhpcykpCiAgICAgLCBtX3NjcmlwdCh0aGlzKQogICAgICwgbV9l
ZGl0b3IodGhpcykKICAgICAsIG1fc2VsZWN0aW9uKHRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXgg
NGNkNGY5NjgzYjRjM2JlMDVmODE3Y2E4NzU5Y2E3YTNmYTM2ZGFmYi4uZjBmZDBhMjA2NTU4ZDdi
MmExZTZiOWY4NzMzMzg0OThhMTcwNjEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtNjIsNiArNjIs
NyBAQCB0eXBlZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgQ29udGV4dEVuYWJsZWRGZWF0dXJlczsKICAgICBjbGFzcyBEb2N1bWVu
dDsKICAgICBjbGFzcyBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXI7CiAgICAgY2xhc3MgRnJhbWVW
aWV3OwpAQCAtMTAwLDYgKzEwMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBE
b2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKICAgICAgICAgRnJhbWVWaWV3KiB2aWV3KCkgY29u
c3Q7CisgICAgICAgIENvbnRleHRFbmFibGVkRmVhdHVyZXMqIGZlYXR1cmVzKCkgY29uc3Q7CiAK
ICAgICAgICAgRWRpdG9yKiBlZGl0b3IoKSBjb25zdDsKICAgICAgICAgRXZlbnRIYW5kbGVyKiBl
dmVudEhhbmRsZXIoKSBjb25zdDsKQEAgLTIyMCw2ICsyMjIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCogbV9vd25lckVsZW1lbnQ7CiAgICAg
ICAgIFJlZlB0cjxGcmFtZVZpZXc+IG1fdmlldzsKICAgICAgICAgUmVmUHRyPERvY3VtZW50PiBt
X2RvYzsKKyAgICAgICAgUmVmUHRyPENvbnRleHRFbmFibGVkRmVhdHVyZXM+IG1fZmVhdHVyZXM7
CiAKICAgICAgICAgU2NyaXB0Q29udHJvbGxlciBtX3NjcmlwdDsKIApAQCAtMjgxLDYgKzI4NCwx
MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHJldHVybiBtX3ZpZXcuZ2V0KCk7CiAg
ICAgfQogCitpbmxpbmUgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyogRnJhbWU6OmZlYXR1cmVzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9mZWF0dXJlcy5nZXQoKTsKK30KKwogICAgIGlubGluZSBT
Y3JpcHRDb250cm9sbGVyKiBGcmFtZTo6c2NyaXB0KCkKICAgICB7CiAgICAgICAgIHJldHVybiAm
bV9zY3JpcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA3YzVlNWI1
ZjA4N2IwNTg4ODU1NDY1NDE1NzI4YjlkY2Y2MjA2NTRlLi4xNTRkMzc3NGRmNWMwYmQzZjUxZmM2
NmE5MmYyMGRlMWNlYjBiMjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
QEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiQmxvYkRhdGEu
aCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJDb250ZXh0
RW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgi
CiAjaW5jbHVkZSAiRE9NRm9ybURhdGEuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5o
IgpAQCAtMjUzLDYgKzI1NCw3IEBAIERvY3VtZW50KiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VY
TUwoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICAvLyBGSVhNRTogU2V0IExhc3QtTW9k
aWZpZWQuCiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldENvbnRlbnQobV9yZXNw
b25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwogICAgICAgICAgICAgbV9y
ZXNwb25zZURvY3VtZW50LT5zZXRTZWN1cml0eU9yaWdpbihzZWN1cml0eU9yaWdpbigpKTsKKyAg
ICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0RmVhdHVyZXMoZG9jdW1lbnQoKS0+ZmVh
dHVyZXMoKSk7CiAgICAgICAgICAgICBpZiAoIW1fcmVzcG9uc2VEb2N1bWVudC0+d2VsbEZvcm1l
ZCgpKQogICAgICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudCA9IDA7CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NjE2YzE2OGMwYTliM2RjZjllOGVlNzk2YzAyY2JjMjdlNDA2MmUwLi5iZmVmODc5
MjJjZjUyYjBhZWVmY2ZlYTE0ZTU4YzMxOTgwYzU5MzQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTItMDYtMDQgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUkVHUkVTU0lPTihyMTE4MDk4KTogPGNvbnRlbnQ+IGVsZW1lbnQgZG9lcyBub3QgcmVuZGVy
IGRpc3RyaWJ1dGVkIGNoaWxkcmVuIHdoZW4gY2xvbmVkIGZyb20gYW5vdGhlciBkb2N1bWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxNDgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9t
L3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3Vt
ZW50Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTA2LTAzICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBTdXBwb3J0cyB0cmF2ZXJzaW5nIG5vZGVzIGluIGFuIG9ycGhh
bmVkIHNoYWRvdyBzdWJ0cmVlIGluIENvbXBvc2VkU2hhZG93VHJlZVBhcmVudFdhbGtlci4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxl
c3MtZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Vs
ZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Y4
NTQ3NzM4ODMyYjZhODE2MzBiZWNhNWYxMWNkMjBmODEwMTlmMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1l
bnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBlbnN1cmUgdGhhdCB0
aGUgc2hhZG93IHJlbGF0ZWQgZWxlbWVudHMgYXJlIGluc3RhbnRpYXRlZCBldmVuIGluc2lkZSBm
cmFtZWxlc3MgZG9jdW1lbnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVz
dGluZyBvbiB0aGUgZnJhbWUtbGVzcyBkb2N1bWVudC4KK1BBU1Mgd2luZG93LkhUTUxDb250ZW50
RWxlbWVudCBpcyBjb250ZW50LmNvbnN0cnVjdG9yCitQQVNTIHdpbmRvdy5IVE1MU2hhZG93RWxl
bWVudCBpcyBzaGFkb3cuY29uc3RydWN0b3IKK01vdmluZyB0byB0aGUgbWFpbiBkb2N1bWVudC4K
K1BBU1Mgd2luZG93LkhUTUxDb250ZW50RWxlbWVudCBpcyBjb250ZW50LmNvbnN0cnVjdG9yCitQ
QVNTIHdpbmRvdy5IVE1MU2hhZG93RWxlbWVudCBpcyBzaGFkb3cuY29uc3RydWN0b3IKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3Vt
ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVs
ZXNzLWRvY3VtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTVhN2MxODM4N2E1Mjk4NzMxODUzOWZkNzY5
NDEwN2I2MDc2OWE1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDMwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlIHRoYXQgdGhlIHNoYWRvdyByZWxh
dGVkIGVsZW1lbnRzIGFyZSBpbnN0YW50aWF0ZWQgZXZlbiBpbnNpZGUgZnJhbWVsZXNzIGRvY3Vt
ZW50cy4iKTsKKwordmFyIGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxE
b2N1bWVudCgpOwordmFyIGNvbnRhaW5lciA9IGRvYy5jcmVhdGVFbGVtZW50KCJzcGFuIik7Citk
b2MuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOworY29udGFpbmVyLmlubmVySFRNTCA9ICI8
Y29udGVudCBpZD0nY29udGVudEVsZW1lbnQnPjwvY29udGVudD48c2hhZG93IGlkPSdzaGFkb3dF
bGVtZW50Jz48L3NoYWRvdz4iOworCit2YXIgY29udGVudCA9IGNvbnRhaW5lci5xdWVyeVNlbGVj
dG9yKCIjY29udGVudEVsZW1lbnQiKTsKK3ZhciBzaGFkb3cgPSBjb250YWluZXIucXVlcnlTZWxl
Y3RvcigiI3NoYWRvd0VsZW1lbnQiKTsKKworZGVidWcoIlRlc3Rpbmcgb24gdGhlIGZyYW1lLWxl
c3MgZG9jdW1lbnQuIik7CitzaG91bGRCZSgid2luZG93LkhUTUxDb250ZW50RWxlbWVudCIsICJj
b250ZW50LmNvbnN0cnVjdG9yIik7CitzaG91bGRCZSgid2luZG93LkhUTUxTaGFkb3dFbGVtZW50
IiwgInNoYWRvdy5jb25zdHJ1Y3RvciIpOworCitkZWJ1ZygiTW92aW5nIHRvIHRoZSBtYWluIGRv
Y3VtZW50LiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOworc2hvdWxk
QmUoIndpbmRvdy5IVE1MQ29udGVudEVsZW1lbnQiLCAiY29udGVudC5jb25zdHJ1Y3RvciIpOwor
c2hvdWxkQmUoIndpbmRvdy5IVE1MU2hhZG93RWxlbWVudCIsICJzaGFkb3cuY29uc3RydWN0b3Ii
KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145719</attachid>
            <date>2012-06-05 01:13:46 -0700</date>
            <delta_ts>2012-06-05 02:27:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88148-20120605171344.patch</filename>
            <type>text/plain</type>
            <size>56923</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGNlYjFk
YjQwNmNiMGFlNDY5NzE3OWM2ZWJlYjY1NGZkNGJkYTIzMGEuLmY0MGU2OWY2NWJmODRmM2NkMjE3
MTBhOTY1NjA5OTc3YWYzNjdiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NTksNyArNDU5
LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJC
YXNlLmNwcAogCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5jcHAKLSAg
ICBiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwCiAgICAgYmluZGlu
Z3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAogCiAgICAgY3NzL0NTU0FzcGVj
dFJhdGlvVmFsdWUuY3BwCkBAIC01NTksNiArNTU4LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
ICAgIGRvbS9Db250YWluZXJOb2RlLmNwcAogICAgIGRvbS9Db250YWluZXJOb2RlQWxnb3JpdGht
cy5jcHAKICAgICBkb20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCisgICAgZG9tL0Nv
bnRleHRGZWF0dXJlU3dpdGNoLmNwcAogICAgIGRvbS9DdXN0b21FdmVudC5jcHAKICAgICBkb20v
RGF0YXNldERPTVN0cmluZ01hcC5jcHAKICAgICBkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNl
ci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDVhYzVkZTM2MjQxZDFiODJm
YzE4NTVmNzFhZTRhNmM2NWZkM2UzNDEuLjk0MzMxMDA3MDAyZDU5MmJhZDczOTYwMTZmNTczYmVj
OThkYWI4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTMwOSw4ICsxMzA5
LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuaCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9BY3Rp
dmVET01DYWxsYmFjay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQWN0
aXZlRE9NQ2FsbGJhY2suaCBcCi0JU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250
ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eS5oIFwKQEAgLTE4MDIsNiArMTgwMCw4IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmggXAorCVNvdXJjZS9X
ZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZVN3aXRjaC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Db250ZXh0RmVhdHVyZVN3aXRjaC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ3Jvc3NUaHJl
YWRUYXNrLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FdmVudC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9DdXN0b21FdmVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGJjMDExN2I3NTA2
MzE4OWNkZDI5MTc0NjUxYmM2ZmQ5M2U5OWJhYjQuLjNlYWQ4MTNlZWJlOWRmYTNmOWNhZWI1YTAw
MjYwNjA3ZmVlNWJlOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysr
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNzIsNyArNzIsNiBAQCBTT1VSQ0VTICs9
IFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAgXAogICAgIGFj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgXAogICAgIGJpbmRpbmdzL2dlbmVyaWMvQWN0
aXZlRE9NQ2FsbGJhY2suY3BwIFwKLSAgICBiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVk
RmVhdHVyZXMuY3BwIFwKICAgICBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuY3BwCiAKIHY4IHsKQEAgLTUyOCw2ICs1MjcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20v
Q29udGFpbmVyTm9kZS5jcHAgXAogICAgIGRvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAg
XAogICAgIGRvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgXAorICAgIGRvbS9Db250
ZXh0RmVhdHVyZVN3aXRjaC5jcHAgXAogICAgIGRvbS9DdXN0b21FdmVudC5jcHAgXAogICAgIGRv
bS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCBcCiAgICAgZG9tL0RldmljZU1vdGlvbkNv
bnRyb2xsZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkYTNkMzhkYmY3N2FiYmZhYjEyYjI5
Mjk2OTQxZTQ3MDhhYTE5YmQyLi5kYzM4ZmM2NjA5MDcxODExZDFjZDE2ZGM5MGYzZmM5OGM0ODVi
YzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02MTYsNiArNjE2LDggQEAKICAgICAgICAgICAgICdk
b20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2RvbS9Db250YWlu
ZXJOb2RlLmgnLAogICAgICAgICAgICAgJ2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5o
JywKKyAgICAgICAgICAgICdkb20vQ29udGV4dEZlYXR1cmVTd2l0Y2guaCcsCisgICAgICAgICAg
ICAnZG9tL0NvbnRleHRGZWF0dXJlU3dpdGNoLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmgnLAogICAgICAgICAgICAgJ2RvbS9ET01UaW1lU3RhbXAuaCcsCiAgICAg
ICAgICAgICAnZG9tL0RldmljZU9yaWVudGF0aW9uLmgnLApAQCAtMTg0OSw4ICsxODUxLDYgQEAK
ICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eS5oJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaCcsCi0gICAgICAg
ICAgICAnYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCcsCi0gICAg
ICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmgnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA4ZGY3MWVlM2Jl
YmYxMjFmMjhkNDAwNmZiYzhhM2Q5ZjcyYjU4NTJiLi5kYWU4Y2MwZDQ1ZWZhMTk2MjM2OTA3YjRl
ZTRkMjE4YmQyOTBlMjcwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagpAQCAtNjMxODYsMTQgKzYzMTg2LDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4K
IAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQ29udGV4
dEVuYWJsZWRGZWF0dXJlcy5jcHAiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXENvbnRleHRFbmFibGVkRmVhdHVy
ZXMuaCIKLQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGJpbmRpbmdzXGdlbmVyaWNcR2VuZXJpY0JpbmRpbmcuaCIKIAkJCQkJPgogCQkJCTwvRmls
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBmMGNjYTcyNTliODdkOTFmODQwZjdkNTEwOWE1MWQxZGZjMWFjMTdkLi5lODY5OTYz
MDY5YzdiNzgzMWE2N2U4MDIzMmFkZTc3MmYzOTJjOTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzUzLDggKzM3NTMsNiBA
QAogCQlBNzNGOTVGRjEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMx
QUFGOSAvKiBSb3VuZGVkUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUE3NDBCNUE1MTRDOTM1QUIwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0
dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
QjRFQTc5MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCAqLzsgfTsKIAkJ
QTc0MEI1QTcxNEM5MzVBRjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0RUE3ODE0QzkzNDg0
MDBDOEY1QkYgLyogSlNJbnRlcm5hbFNldHRpbmdzLmNwcCAqLzsgfTsKLQkJQTc0N0EwN0YxNTZC
Mjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0N0EwN0QxNTZCMjg2OTAwMjQzRUVE
IC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwICovOyB9OwotCQlBNzQ3QTA4MDE1NkIyODY5
MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0N0EwN0UxNTZCMjg2OTAwMjQzRUVEIC8qIENv
bnRleHRFbmFibGVkRmVhdHVyZXMuaCAqLzsgfTsKIAkJQTc0QkI3NkIxM0JEQTg2MzAwRkY3QkYw
IC8qIEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlv
bkNvZGVQbGFjZWhvbGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0
VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
NUU0OTc0MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzVFNDk3NzEwNzUy
QUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAv
KiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwICovOyB9OwpAQCAtMTA4NDIsOCArMTA4NDAsNiBA
QAogCQlBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1FeHBvcnRNYWNyb3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8q
IFJvdW5kZWRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJv
dW5kZWRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTczRjk1RkQxMkM5
N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJvdW5kZWRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3NDdB
MDdEMTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3Bw
OyBwYXRoID0gZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQTc0N0EwN0UxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFi
bGVkRmVhdHVyZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29udGV4dEVu
YWJsZWRGZWF0dXJlcy5oOyBwYXRoID0gZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NEJCNzZBMTNCREE4NjMwMEZGN0JGMCAv
KiBFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3NUU0OTc0MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZFNjcmlwdFZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5
NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5NzA5LDggKzE5NzA1LDYgQEAKIAkJCQlBNjIyQThGNTEyMkM0NEE2MDBB
Nzg1QjMgLyogQmluZGluZ1NlY3VyaXR5LmggKi8sCiAJCQkJQTYyMkE4RjYxMjJDNDRBNjAwQTc4
NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwICovLAogCQkJCUE2MjJBOEY3MTIyQzQ0QTYw
MEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi8sCi0JCQkJQTc0N0EwN0QxNTZCMjg2
OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwICovLAotCQkJCUE3NDdBMDdF
MTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmggKi8sCiAJCQkJQTYy
MkE4RjkxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi8sCiAJCQkpOwogCQkJ
bmFtZSA9IGdlbmVyaWM7CkBAIC0yMTk5Nyw3ICsyMTk5MSw2IEBACiAJCQkJNDFEMDE1Q0EwRjRC
NUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzBENkVE
QjEzODQ1NDU1MDA0NDEwM0UgLyogQ29udGVudFR5cGVQYXJzZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3NjI3QjhFMTRGQjNDRUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTc0N0EwODAxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRl
eHRFbmFibGVkRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQjZBMEU2MEIwQkNBNUMw
MEY1MDI3QSAvKiBDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDY1QUQ0RjUwQjBD
MkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
NjVBRDRGNzBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI1NTE2LDcgKzI1NTA5LDYgQEAKIAkJCQk0MUQwMTVDQjBGNEI1QzcxMDA0
QTY2MkYgLyogQ29udGVudFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzcwRDZFREExMzg0
NTQ1NTAwNDQxMDNFIC8qIENvbnRlbnRUeXBlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk3NjI3QjhEMTRGQjNDRUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlBNzQ3QTA3RjE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4
dEVuYWJsZWRGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNjVBRDRGNjBCMEMyRURB
MDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA2MDI3Q0IzMEIxQ0MwM0QwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW1NYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQk5M0I2QTBFQTBCMEJDQTg0MDBGNTAyN0EgLyogQ29udGV4dE1lbnVNYWMu
bW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlMjYyMmIzNzNlYjIxNzg1YmNjMWMwNzhiYmVhMjI4ZDAzYmMxY2I2Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw3NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNvbnRleHRF
bmFibGVkRmVhdHVyZXMuaCIKLQotI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgot
I2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNpZiBFTkFCTEUoU0hBRE9XX0RP
TSkKLWJvb2wgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChET01XaW5k
b3cqIHdpbmRvdykKLXsKLSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmIChGcmFtZSogZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBm
cmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5hbGxvd1NoYWRvd0RPTShSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCkpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLSNlbmRp
ZgotCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLWJvb2wgQ29udGV4dEVuYWJsZWRGZWF0dXJl
czo6c3R5bGVTY29wZWRFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICBpZiAoIWRv
Y3VtZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRv
Y3VtZW50LT5mcmFtZSgpKQotICAgICAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLT5jbGllbnQo
KS0+YWxsb3dTdHlsZVNjb3BlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVu
YWJsZWQoKSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotI2VuZGlmICAgCi0KLSNpZiBFTkFCTEUo
UEFHRV9QT1BVUCkKLWJvb2wgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6cGFnZVBvcHVwRW5hYmxl
ZChET01XaW5kb3cqIHdpbmRvdykKLXsKLSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmIChGcmFtZSogZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCkpCi0gICAgICAg
IHJldHVybiBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5hbGxvd1BhZ2VQb3B1cCgpOwotICAg
IHJldHVybiBmYWxzZTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVh
dHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRG
ZWF0dXJlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTdmYTRiNzU4NWVhNzdh
NzE5YmUzYjRkMzM0NDhiMjgyZjQ5OTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVu
YWJsZWRGZWF0dXJlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmli
dXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ29u
dGV4dEVuYWJsZWRGZWF0dXJlc19oCi0jZGVmaW5lIENvbnRleHRFbmFibGVkRmVhdHVyZXNfaAot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERPTVdpbmRvdzsKLWNsYXNzIERvY3VtZW50
OwotCi0vLyBBIGNsYXNzIHRoYXQgc3RvcmVzIHN0YXRpYyBlbmFibGVycyBmb3IgYWxsIGV4cGVy
aW1lbnRhbCBmZWF0dXJlcy4gTm90ZSB0aGF0Ci0vLyB0aGUgbWV0aG9kIG5hbWVzIG11c3QgbGlu
ZSB1cCB3aXRoIHRoZSBKYXZhU2NyaXB0IG1ldGhvZCB0aGV5IGVuYWJsZSBmb3IgY29kZQotLy8g
Z2VuZXJhdGlvbiB0byB3b3JrIHByb3Blcmx5LgotCi1jbGFzcyBDb250ZXh0RW5hYmxlZEZlYXR1
cmVzIHsKLXB1YmxpYzoKLSNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBzdGF0aWMgYm9vbCBz
aGFkb3dET01FbmFibGVkKERPTVdpbmRvdyopOwotI2VuZGlmCi0jaWYgRU5BQkxFKFNUWUxFX1ND
T1BFRCkKLSAgICBzdGF0aWMgYm9vbCBzdHlsZVNjb3BlZEVuYWJsZWQoRG9jdW1lbnQqKTsKLSNl
bmRpZgotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotICAgIHN0YXRpYyBib29sIHBhZ2VQb3B1cEVu
YWJsZWQoRE9NV2luZG93Kik7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIENvbnRleHRFbmFibGVkRmVhdHVyZXNfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA2MWI5N2JlM2Q5
NmUzYTliOTBlYzRiYzRiZWM1OTBlYjc1ZTdhZWNhLi4yMWU2YjNkMTUwOTMwNTk3NmMzYzA2YjI0
OGI1NWM2ZGM0YjI4OTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjQxNyw3ICsyNDE3LDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICBwdXNoKEBpbXBsRml4ZWRIZWFkZXIsIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb25Db250ZW50SGVhZGVyKCRkYXRhTm9kZSkpOwogCiAgICAgQWRkVG9JbXBsSW5jbHVk
ZXMoIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIpOwotICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJD
b250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiKTsKKyAgICBBZGRUb0ltcGxJbmNsdWRlcygiQ29udGV4
dEZlYXR1cmVTd2l0Y2guaCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOFByb3h5LmgiKTsK
ICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhCaW5kaW5nLmgiKTsKICAgICBBZGRUb0ltcGxJbmNs
dWRlcygiVjhCaW5kaW5nU3RhdGUuaCIpOwpAQCAtMjg2Niw3ICsyODY2LDcgQEAgRU5ECiAgICAg
ICAgICAgICBteSAkZW5hYmxlRnVuY3Rpb24gPSBHZXRDb250ZXh0RW5hYmxlRnVuY3Rpb24oJHJ1
bnRpbWVBdHRyLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5n
ID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJHJ1bnRpbWVBdHRy
LT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiNpZiAke2Nv
bmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwotICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKENvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7ZW5h
YmxlRnVuY3Rpb259KGltcGwpKSB7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGlmIChDb250ZXh0RmVhdHVyZVN3aXRjaDo6JHtlbmFibGVGdW5jdGlvbn0oaW1wbC0+
ZG9jdW1lbnQoKSkpIHtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIHN0YXRpYyBjb25zdCBCYXRjaGVkQXR0cmlidXRlIGF0dHJEYXRhID1cXFxuIik7CiAgICAg
ICAgICAgICBHZW5lcmF0ZVNpbmdsZUJhdGNoZWRBdHRyaWJ1dGUoJGludGVyZmFjZU5hbWUsICRy
dW50aW1lQXR0ciwgIjsiLCAiICAgICIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
IDw8RU5EKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA4Y2M3N2IzYTAz
YmU1ZDhjZWY0MGRmNjQ4MWJhMjZlNTNlNTlhYzNmLi44ZjJmYzA1MjQwYzQzNmQwMTJiNGI3NTU2
OGI4ZDVlYWJiMjVkNWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC01
Miw3ICs1Miw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWxjdWxh
dGlvblZhbHVlLmgiCiAjaW5jbHVkZSAiQ29udGVudERhdGEuaCIKLSNpbmNsdWRlICJDb250ZXh0
RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2guaCIKICNp
bmNsdWRlICJDb3VudGVyLmgiCiAjaW5jbHVkZSAiQ291bnRlckNvbnRlbnQuaCIKICNpbmNsdWRl
ICJDdXJzb3JMaXN0LmgiCkBAIC00OTAsNyArNDkwLDcgQEAgY29uc3QgQ29udGFpbmVyTm9kZSog
U3R5bGVSZXNvbHZlcjo6ZGV0ZXJtaW5lU2NvcGUoY29uc3QgQ1NTU3R5bGVTaGVldCogc2hlZXQp
CiB7CiAgICAgQVNTRVJUKHNoZWV0KTsKIAotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJl
czo6c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50KCkpKQorICAgIGlmICghQ29udGV4dEZlYXR1
cmVTd2l0Y2g6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKICAgICBOb2RlKiBvd25lck5vZGUgPSBzaGVldC0+b3duZXJOb2RlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVTd2l0Y2guY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlU3dpdGNoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTkxNDY3
MmM0MDg1YzNlNmZjNDczNmI2NTAwNDM1ODQ2YWUyMTFkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlU3dpdGNoLmNwcApAQCAtMCwwICsxLDg4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlU3dpdGNoLmgi
CisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ29udGV4
dEZlYXR1cmVTd2l0Y2hDbGllbnQqIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50OjplbXB0eSgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCwg
ZW1wdHksICgpKTsKKyAgICByZXR1cm4gJmVtcHR5OworfQorCitjb25zdCBBdG9taWNTdHJpbmcm
IENvbnRleHRGZWF0dXJlU3dpdGNoOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiQ29udGV4dEZlYXR1cmVTd2l0Y2giKSk7
CisgICAgcmV0dXJuIG5hbWU7Cit9CisKK3ZvaWQgQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnByb3Zp
ZGVUbyhEb2N1bWVudCogZG9jdW1lbnQsIFBhZ2UqIHBhZ2UpCit7CisgICAgQ29udGV4dEZlYXR1
cmVTd2l0Y2gqIHByb3ZpZGVkID0gc3RhdGljX2Nhc3Q8Q29udGV4dEZlYXR1cmVTd2l0Y2gqPihT
dXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsKKyAgICBpZiAo
IXByb3ZpZGVkKQorICAgICAgICByZXR1cm47CisgICAgZG9jdW1lbnQtPnNldEZlYXR1cmVTd2l0
Y2gocHJvdmlkZWQpOworfQorCitDb250ZXh0RmVhdHVyZVN3aXRjaCogQ29udGV4dEZlYXR1cmVT
d2l0Y2g6OmRlZmF1bHRTd2l0Y2goKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ29udGV4
dEZlYXR1cmVTd2l0Y2gsIGluc3RhbmNlLCAoQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnQ6OmVt
cHR5KCkpKTsKKyAgICByZXR1cm4gJmluc3RhbmNlOworfQorCitib29sIENvbnRleHRGZWF0dXJl
U3dpdGNoOjpzaGFkb3dET01FbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBpZiAo
IWRvY3VtZW50KQorICAgICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93
RE9NRW5hYmxlZCgpOworICAgIHJldHVybiBkb2N1bWVudC0+ZmVhdHVyZVN3aXRjaCgpLT5zaGFk
b3dET01FbmFibGVkKGRvY3VtZW50LCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01F
bmFibGVkKCkpOworfQorCitib29sIENvbnRleHRGZWF0dXJlU3dpdGNoOjpzdHlsZVNjb3BlZEVu
YWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAg
IHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoKTsKKyAg
ICByZXR1cm4gZG9jdW1lbnQtPmZlYXR1cmVTd2l0Y2goKS0+c3R5bGVTY29wZWRFbmFibGVkKGRv
Y3VtZW50LCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoKSk7Cit9
CisKK2Jvb2wgQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnBhZ2VQb3B1cEVuYWJsZWQoRG9jdW1lbnQq
IGRvY3VtZW50KQoreworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gZG9jdW1lbnQtPmZlYXR1cmVTd2l0Y2goKS0+cGFnZVBvcHVwRW5hYmxlZChk
b2N1bWVudCwgZmFsc2UpOworfQorCit2b2lkIHByb3ZpZGVDb250ZXh0RmVhdHVyZVN3aXRjaFRv
KFBhZ2UqIHBhZ2UsIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50KiBjbGllbnQpCit7CisgICAg
U3VwcGxlbWVudDxQYWdlPjo6cHJvdmlkZVRvKHBhZ2UsIENvbnRleHRGZWF0dXJlU3dpdGNoOjpz
dXBwbGVtZW50TmFtZSgpLCBDb250ZXh0RmVhdHVyZVN3aXRjaDo6Y3JlYXRlKGNsaWVudCkpOwor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVTd2l0
Y2guaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZVN3aXRjaC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg5Y2Q0OGZjNzhkMmFlZDk4Mjc2OWY5OTUzZTA5OWNkZDEyNTJhMzIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVTd2l0Y2guaApAQCAtMCww
ICsxLDk2IEBACisKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIENvbnRleHRGZWF0dXJlU3dpdGNoX2gKKyNkZWZpbmUgQ29u
dGV4dEZlYXR1cmVTd2l0Y2hfaAorCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENv
bnRleHRGZWF0dXJlU3dpdGNoOworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOworCitjbGFz
cyBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIENvbnRl
eHRGZWF0dXJlU3dpdGNoQ2xpZW50KiBlbXB0eSgpOworICAgIHZpcnR1YWwgYm9vbCBzaGFkb3dE
T01FbmFibGVkKERvY3VtZW50KiwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRlZmF1bHRW
YWx1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzdHlsZVNjb3BlZEVuYWJsZWQoRG9jdW1lbnQqLCBi
b29sIGRlZmF1bHRWYWx1ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CisgICAgdmlydHVhbCBi
b29sIHBhZ2VQb3B1cEVuYWJsZWQoRG9jdW1lbnQqLCBib29sIGRlZmF1bHRWYWx1ZSkgeyByZXR1
cm4gZGVmYXVsdFZhbHVlOyB9Cit9OworCitjbGFzcyBDb250ZXh0RmVhdHVyZVN3aXRjaCA6IHB1
YmxpYyBTdXBwbGVtZW50PFBhZ2U+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0YXRpYyB2b2lkIHByb3ZpZGVUbyhEb2N1
bWVudCosIFBhZ2UqKTsKKyAgICBzdGF0aWMgQ29udGV4dEZlYXR1cmVTd2l0Y2gqIGRlZmF1bHRT
d2l0Y2goKTsKKworICAgIGJvb2wgc2hhZG93RE9NRW5hYmxlZChEb2N1bWVudCosIGJvb2wpIGNv
bnN0OworICAgIGJvb2wgc3R5bGVTY29wZWRFbmFibGVkKERvY3VtZW50KiwgYm9vbCkgY29uc3Q7
CisgICAgYm9vbCBwYWdlUG9wdXBFbmFibGVkKERvY3VtZW50KiwgYm9vbCkgY29uc3Q7CisKKyAg
ICBzdGF0aWMgYm9vbCBzaGFkb3dET01FbmFibGVkKERvY3VtZW50Kik7CisgICAgc3RhdGljIGJv
b2wgc3R5bGVTY29wZWRFbmFibGVkKERvY3VtZW50Kik7CisgICAgc3RhdGljIGJvb2wgcGFnZVBv
cHVwRW5hYmxlZChEb2N1bWVudCopOworCisgICAgc3RhdGljIFBhc3NPd25QdHI8Q29udGV4dEZl
YXR1cmVTd2l0Y2g+IGNyZWF0ZShDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCopOworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IENvbnRleHRGZWF0dXJlU3dpdGNoKENvbnRleHRGZWF0dXJlU3dp
dGNoQ2xpZW50KiBjbGllbnQpCisgICAgICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgIHsgfQor
CisgICAgQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnQqIG1fY2xpZW50OworfTsKKwordm9pZCBw
cm92aWRlQ29udGV4dEZlYXR1cmVTd2l0Y2hUbyhQYWdlKiwgQ29udGV4dEZlYXR1cmVTd2l0Y2hD
bGllbnQqKTsKKworaW5saW5lIFBhc3NPd25QdHI8Q29udGV4dEZlYXR1cmVTd2l0Y2g+IENvbnRl
eHRGZWF0dXJlU3dpdGNoOjpjcmVhdGUoQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnQqIGNsaWVu
dCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IENvbnRleHRGZWF0dXJlU3dpdGNoKGNsaWVu
dCkpOworfQorCitpbmxpbmUgYm9vbCBDb250ZXh0RmVhdHVyZVN3aXRjaDo6c2hhZG93RE9NRW5h
YmxlZChEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdAoreworICAg
IHJldHVybiBtX2NsaWVudC0+c2hhZG93RE9NRW5hYmxlZChkb2N1bWVudCwgZGVmYXVsdFZhbHVl
KTsKK30KKworaW5saW5lIGJvb2wgQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnN0eWxlU2NvcGVkRW5h
YmxlZChEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdAoreworICAg
IHJldHVybiBtX2NsaWVudC0+c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50LCBkZWZhdWx0VmFs
dWUpOworfQorCitpbmxpbmUgYm9vbCBDb250ZXh0RmVhdHVyZVN3aXRjaDo6cGFnZVBvcHVwRW5h
YmxlZChEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdAoreworICAg
IHJldHVybiBtX2NsaWVudC0+cGFnZVBvcHVwRW5hYmxlZChkb2N1bWVudCwgZGVmYXVsdFZhbHVl
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ29udGV4dEZlYXR1
cmVTd2l0Y2hfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggMzIwYWVmOTgyMDlh
NWViODRhN2U3NTI4ZmNiM2I1NjQ5Njg1ODc3OC4uYjJmNDA5NTM1OWNlMzJhMmVhODIzMGRiOGVj
NzFlYjcwNTgxMDIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC00NCw2ICs0
NCw3IEBACiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5jcHAiCiAjaW5jbHVkZSAiQ29udGFpbmVy
Tm9kZUFsZ29yaXRobXMuY3BwIgogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
LmNwcCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZVN3aXRjaC5jcHAiCiAjaW5jbHVkZSAiQ3Vz
dG9tRXZlbnQuY3BwIgogI2luY2x1ZGUgIkRPTUNvcmVFeGNlcHRpb24uY3BwIgogI2luY2x1ZGUg
IkRPTUltcGxlbWVudGF0aW9uLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwCmluZGV4IGRkMTk3YzZlMjE3ZDcxYjU4NGRmNDQ0MTg5YmM1YjQyOGM2ZmYzZTcuLjg3
NGMwNDFlZmU2ZTQwYWFmYzUwZTllZDQ5ZGNiMjBiZWVmZjEyNGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAi
Q29udGVudFR5cGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiQ29u
dGV4dEZlYXR1cmVTd2l0Y2guaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRl
ICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtMjk1LDYgKzI5Niw4
IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVu
dChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSCiAgICAgICAgIGRvYyA9IERvY3VtZW50OjpjcmVh
dGUoMCwgS1VSTCgpKTsKIAogICAgIGRvYy0+c2V0U2VjdXJpdHlPcmlnaW4obV9kb2N1bWVudC0+
c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgZG9jLT5zZXRGZWF0dXJlU3dpdGNoKG1fZG9jdW1lbnQt
PmZlYXR1cmVTd2l0Y2goKSk7CisgICAgQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnByb3ZpZGVUbyhk
b2MuZ2V0KCksIG1fZG9jdW1lbnQtPnBhZ2UoKSk7CiAKICAgICBSZWZQdHI8Tm9kZT4gZG9jdW1l
bnRFbGVtZW50OwogICAgIGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpIHsKQEAgLTM3Miw2
ICszNzUsNyBAQCBQYXNzUmVmUHRyPEhUTUxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNy
ZWF0ZUhUTUxEb2N1bWVudChjb25zdCBTdHJpbmcmIHRpdAogICAgIGQtPndyaXRlKCI8IWRvY3R5
cGUgaHRtbD48aHRtbD48Ym9keT48L2JvZHk+PC9odG1sPiIpOwogICAgIGQtPnNldFRpdGxlKHRp
dGxlKTsKICAgICBkLT5zZXRTZWN1cml0eU9yaWdpbihtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdp
bigpKTsKKyAgICBkLT5zZXRGZWF0dXJlU3dpdGNoKG1fZG9jdW1lbnQtPmZlYXR1cmVTd2l0Y2go
KSk7CiAgICAgcmV0dXJuIGQucmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApp
bmRleCBjMjczN2IzYmM5ZmI2NjFhMDAyYThkZWRjNzQwYmJmNzgyY2FjZGU5Li40NGE4OWJhYTdh
ZmI4NDFiZmU5ODNiYzMyODljYTZmMWFiMTVkZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJDb21tZW50LmgiCiAjaW5jbHVkZSAiQ29uc29s
ZS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgorI2luY2x1ZGUgIkNvbnRl
eHRGZWF0dXJlU3dpdGNoLmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRE9N
SW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJET01TZWxlY3Rpb24uaCIKQEAgLTUwMiw2ICs1
MDMsOCBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmws
IGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgbV9pZ25vcmVBdXRvZm9jdXMgPSBmYWxz
ZTsKIAogICAgIG1fZnJhbWUgPSBmcmFtZTsKKyAgICBpZiAobV9mcmFtZSkKKyAgICAgICAgQ29u
dGV4dEZlYXR1cmVTd2l0Y2g6OnByb3ZpZGVUbyh0aGlzLCBtX2ZyYW1lLT5wYWdlKCkpOwogCiAg
ICAgLy8gV2UgZGVwZW5kIG9uIHRoZSB1cmwgZ2V0dGluZyBpbW1lZGlhdGVseSBzZXQgaW4gc3Vi
ZnJhbWVzLCBidXQgd2UKICAgICAvLyBhbHNvIGRlcGVuZCBvbiB0aGUgdXJsIE5PVCBnZXR0aW5n
IGltbWVkaWF0ZWx5IHNldCBpbiBvcGVuZWQgd2luZG93cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3Bw
CmluZGV4IGEwNmZmZDQ1ZjM5ZjIwMzMyMzY3M2JiMmNkMWMzN2NjOTk0MGYzOWEuLmVhMzEzNTEx
YTE5ZmNmMTUwODVjMDU5YmMzMWVkMWMxMzE0ZGFkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNw
cApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAKICNpbmNsdWRlICJD
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCIKLSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZl
YXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2guaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbmxpbmVUZXh0Qm94LmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgpAQCAtODIsNyArODIsNyBAQCBQb3NpdGlvbjo6UG9zaXRpb24oUGFzc1JlZlB0cjxOb2Rl
PiBhbmNob3JOb2RlLCBMZWdhY3lFZGl0aW5nT2Zmc2V0IG9mZnNldCkKICAgICAsIG1faXNMZWdh
Y3lFZGl0aW5nUG9zaXRpb24odHJ1ZSkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBB
U1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01F
bmFibGVkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgIEFTU0VS
VCgobV9hbmNob3JOb2RlICYmIENvbnRleHRGZWF0dXJlU3dpdGNoOjpzaGFkb3dET01FbmFibGVk
KG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKSkpCiAgICAgICAgICAgIHx8ICFtX2FuY2hvck5vZGUg
fHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2Vsc2UKICAgICBBU1NFUlQoIW1f
YW5jaG9yTm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CkBAIC05Niw3ICs5
Niw3IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IGFuY2hvck5vZGUsIEFu
Y2hvclR5cGUgYW5jaG9yVHlwZSkKICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFs
c2UpCiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgQVNTRVJUKChtX2FuY2hvck5vZGUg
JiYgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUt
PmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBD
b250ZXh0RmVhdHVyZVN3aXRjaDo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUtPmRvY3Vt
ZW50KCkpKQogICAgICAgICAgICB8fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlz
U2hhZG93Um9vdCgpKTsKICNlbHNlCiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwgIW1fYW5j
aG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwpAQCAtMTE0LDcgKzExNCw3IEBAIFBvc2l0aW9uOjpQ
b3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IGFuY2hvck5vZGUsIGludCBvZmZzZXQsIEFuY2hvclR5
cGUgYW5jaG9yVHlwCiAgICAgLCBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKGZhbHNlKQogewog
I2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIENvbnRl
eHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVu
dCgpLT5kb21XaW5kb3coKSkpCisgICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYgQ29udGV4dEZl
YXR1cmVTd2l0Y2g6OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpKSkK
ICAgICAgICAgICAgfHwgIW1fYW5jaG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1f
YW5jaG9yTm9kZS5nZXQoKSkgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2Vs
c2UKICAgICBBU1NFUlQoIW1fYW5jaG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1f
YW5jaG9yTm9kZS5nZXQoKSkgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwpAQCAt
ODU3LDcgKzg1Nyw3IEBAIENvbnRhaW5lck5vZGUqIFBvc2l0aW9uOjpmaW5kUGFyZW50KGNvbnN0
IE5vZGUqIG5vZGUpCiAgICAgLy8gRklYTUU6IFNlZSBodHRwOi8vd2ViLnVnLzgyNjk3CiAKICNp
ZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hh
ZG93RE9NRW5hYmxlZChub2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAgaWYgKENv
bnRleHRGZWF0dXJlU3dpdGNoOjpzaGFkb3dET01FbmFibGVkKG5vZGUtPmRvY3VtZW50KCkpKQog
ICAgICAgICByZXR1cm4gbm9kZS0+cGFyZW50Tm9kZSgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKaW5kZXggODAwMjIwMWMxZTAzNDViZTJmMzcyMDM0Mzc2
YmUxNmMyMzVjMTg5NC4uNmY2ODc4YzExNTA3YzU4OGZmNzk2MmI3YzMwMGU2M2Q0NTI1MGMwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJTZWN1cml0eUNvbnRleHQuaCIKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0
eVBvbGljeS5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlU3dpdGNoLmgiCiAjaW5jbHVkZSAi
SFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKQEAgLTM3
LDYgKzM4LDcgQEAgU2VjdXJpdHlDb250ZXh0OjpTZWN1cml0eUNvbnRleHQoKQogICAgIDogbV9t
YXlEaXNwbGF5U2VhbWxlc3NXaXRoUGFyZW50KGZhbHNlKQogICAgICwgbV9oYXZlSW5pdGlhbGl6
ZWRTZWN1cml0eU9yaWdpbihmYWxzZSkKICAgICAsIG1fc2FuZGJveEZsYWdzKFNhbmRib3hOb25l
KQorICAgICwgbV9mZWF0dXJlU3dpdGNoKENvbnRleHRGZWF0dXJlU3dpdGNoOjpkZWZhdWx0U3dp
dGNoKCkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuaAppbmRleCBmYzlk
ZjNlMzQyNWUwNjI4NDllMGFkYzg3MTRiZWY5Y2FkNjAxN2U2Li5lOGI2NjQ4ZDk4ZWI5NjkxOGJk
N2FlMDI1NDFkMDQzMjQ4ZDYwZGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Vj
dXJpdHlDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5o
CkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2VjdXJpdHlP
cmlnaW47CiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3k7CitjbGFzcyBDb250ZXh0RmVhdHVy
ZVN3aXRjaDsKIGNsYXNzIEtVUkw7CiAKIGVudW0gU2FuZGJveEZsYWcgewpAQCAtNTksNiArNjAs
NyBAQCBwdWJsaWM6CiAgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Qg
eyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIFNhbmRib3hGbGFncyBzYW5k
Ym94RmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX3NhbmRib3hGbGFnczsgfQogICAgIENvbnRlbnRT
ZWN1cml0eVBvbGljeSogY29udGVudFNlY3VyaXR5UG9saWN5KCkgeyByZXR1cm4gbV9jb250ZW50
U2VjdXJpdHlQb2xpY3kuZ2V0KCk7IH0KKyAgICBDb250ZXh0RmVhdHVyZVN3aXRjaCogZmVhdHVy
ZVN3aXRjaCgpIHsgcmV0dXJuIG1fZmVhdHVyZVN3aXRjaDsgfQogCiAgICAgYm9vbCBpc1NlY3Vy
ZVRyYW5zaXRpb25Ubyhjb25zdCBLVVJMJikgY29uc3Q7CiAKQEAgLTY5LDYgKzcxLDcgQEAgcHVi
bGljOgogICAgIC8vIE5vdGU6IEl0IGlzIGRhbmdlcm91cyB0byBjaGFuZ2UgdGhlIHNlY3VyaXR5
IG9yaWdpbiBvZiBhIHNjcmlwdCBjb250ZXh0CiAgICAgLy8gICAgICAgdGhhdCBhbHJlYWR5IGNv
bnRhaW5zIGNvbnRlbnQuCiAgICAgdm9pZCBzZXRTZWN1cml0eU9yaWdpbihQYXNzUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPik7CisgICAgdm9pZCBzZXRGZWF0dXJlU3dpdGNoKENvbnRleHRGZWF0dXJl
U3dpdGNoKiBmZWF0dXJlKSB7IG1fZmVhdHVyZVN3aXRjaCA9IGZlYXR1cmU7IH0KIAogICAgIHN0
YXRpYyBTYW5kYm94RmxhZ3MgcGFyc2VTYW5kYm94UG9saWN5KGNvbnN0IFN0cmluZyYgcG9saWN5
KTsKIApAQCAtOTIsNiArOTUsNyBAQCBwcml2YXRlOgogICAgIFNhbmRib3hGbGFncyBtX3NhbmRi
b3hGbGFnczsKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fc2VjdXJpdHlPcmlnaW47CiAg
ICAgT3duUHRyPENvbnRlbnRTZWN1cml0eVBvbGljeT4gbV9jb250ZW50U2VjdXJpdHlQb2xpY3k7
CisgICAgQ29udGV4dEZlYXR1cmVTd2l0Y2gqIG1fZmVhdHVyZVN3aXRjaDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2Nv
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggZDcwYjkwMDU5
ZGJkZWViZTFkNzA3YmIzMzQ2MDdkMzY4YWUzN2ExMi4uYWQ0MzFiZTUwZWYwNzcxY2E3MTk3MTcw
OGJkYWE2ZGZhM2VmOTZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29w
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTI3LDcgKzI3
LDcgQEAKICNpbmNsdWRlICJUcmVlU2NvcGUuaCIKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUu
aCIKLSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4
dEZlYXR1cmVTd2l0Y2guaCIKICNpbmNsdWRlICJET01TZWxlY3Rpb24uaCIKICNpbmNsdWRlICJE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTUwLDcgKzE1MCw3IEBAIERP
TVNlbGVjdGlvbiogVHJlZVNjb3BlOjpnZXRTZWxlY3Rpb24oKSBjb25zdAogICAgIC8vIGFzIGEg
Y29udGFpbmVyLiBJdCBpcyBub3cgZW5hYmxlZCBvbmx5IGlmIHJ1bnRpbWUgU2hhZG93IERPTSBm
ZWF0dXJlIGlzIGVuYWJsZWQuCiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MjY5NwogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIGlmIChDb250
ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKHJvb3ROb2RlKCktPmRvY3VtZW50
KCktPmRvbVdpbmRvdygpKSkgeworICAgIGlmIChDb250ZXh0RmVhdHVyZVN3aXRjaDo6c2hhZG93
RE9NRW5hYmxlZChyb290Tm9kZSgpLT5kb2N1bWVudCgpKSkgewogICAgICAgICBtX3NlbGVjdGlv
biA9IERPTVNlbGVjdGlvbjo6Y3JlYXRlKHRoaXMpOwogICAgICAgICByZXR1cm4gbV9zZWxlY3Rp
b24uZ2V0KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFt
ZXMucGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAppbmRleCBhNmNiMDQyZGZl
MDI2YzU4ODRhZjcwMDdjMGE2MzZiMTNhYzkxODVmLi45OWExZWIyMmEwMmIxYjE1ODhhNTllY2Fi
NjFmNjhlZjhhODUwMjVjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1l
cy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbApAQCAtMzc4LDcgKzM3
OCw3IEBAIEVORAogICAgIG15ICRjb250ZXh0Q29uZGl0aW9uYWwgPSAkZW5hYmxlZFRhZ3N7JHRh
Z05hbWV9e2NvbnRleHRDb25kaXRpb25hbH07CiAgICAgaWYgKCRjb250ZXh0Q29uZGl0aW9uYWwp
IHsKICAgICAgICAgcHJpbnQgRiA8PEVORAotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJl
czo6JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChkb2N1bWVudC0+ZG9tV2luZG93KCkpKQor
ICAgIGlmICghQ29udGV4dEZlYXR1cmVTd2l0Y2g6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVuYWJs
ZWQoZG9jdW1lbnQpKQogICAgICAgICByZXR1cm4gMDsKIEVORAogOwpAQCAtODA0LDcgKzgwNCw3
IEBAIHByaW50Q29uZGl0aW9uYWxFbGVtZW50SW5jbHVkZXMoJEYpOwogCiBwcmludCBGIDw8RU5E
CiAKLSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4
dEZlYXR1cmVTd2l0Y2guaCIKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkgfHwgRU5B
QkxFKFZJREVPKQogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0xMDEzLDcgKzEwMTMsNyBAQCBF
TkQKICAgICAgICAgICAgICAgICBwcmludCBGIDw8RU5ECiBzdGF0aWMgSlNET01XcmFwcGVyKiBj
cmVhdGUke0pTSW50ZXJmYWNlTmFtZX1XcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjwkcGFyYW1ldGVyc3tuYW1lc3BhY2V9
RWxlbWVudD4gZWxlbWVudCkKIHsKLSAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7
Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93
KCkpKSB7CisgICAgaWYgKCFDb250ZXh0RmVhdHVyZVN3aXRjaDo6JHtjb250ZXh0Q29uZGl0aW9u
YWx9RW5hYmxlZChlbGVtZW50LT5kb2N1bWVudCgpKSkgewogICAgICAgICBBU1NFUlQoIWVsZW1l
bnQgfHwgZWxlbWVudC0+aXMkcGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9KCkpOwog
ICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgJHBh
cmFtZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfSwgZWxlbWVudC5nZXQoKSk7CiAgICAgfQpA
QCAtMTA1MCw3ICsxMDUwLDcgQEAgRU5ECiAgICAgICAgICAgICAgICAgcHJpbnQgRiA8PEVORAog
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjcmVhdGUke0pTSW50ZXJmYWNlTmFtZX1XcmFw
cGVyKCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50KiBlbGVtZW50LCB2ODo6SXNvbGF0ZSog
aXNvbGF0ZSkKIHsKLSAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7Y29udGV4dENv
bmRpdGlvbmFsfUVuYWJsZWQoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAg
IGlmICghQ29udGV4dEZlYXR1cmVTd2l0Y2g6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQo
ZWxlbWVudC0+ZG9jdW1lbnQoKSkpCiAgICAgICAgIHJldHVybiBWOCRwYXJhbWV0ZXJze2ZhbGxi
YWNrSW50ZXJmYWNlTmFtZX06OndyYXAodG8kcGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5h
bWV9KGVsZW1lbnQpLCBpc29sYXRlKTsKICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDwke0pT
SW50ZXJmYWNlTmFtZX0qPihlbGVtZW50KSwgaXNvbGF0ZSk7CiB9CkBAIC0xMTExLDcgKzExMTEs
NyBAQCBzdWIgcHJpbnRXcmFwcGVyRmFjdG9yeUNwcEZpbGUKIAogICAgIHByaW50IEYgPDxFTkQK
IAotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0
RmVhdHVyZVN3aXRjaC5oIgogCiAjaWYgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggOWFlN2U3MmMyZjI2ZTk3NDBhZDRh
NWYwY2IyNGIxOTk0NDhkODA3MS4uZjM2NzExNDQ1OTgwNDYwNjkxMTczMjY0OTc3YjVhMjZmODNk
YzA4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtMzksNiArMzksNyBAQAogI2lu
Y2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1
ZGUgIkNoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZVN3
aXRjaC5oIgogI2luY2x1ZGUgIkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJE
b2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCkBAIC03MzAsNiAr
NzMxLDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21N
YXJrdXBXaXRoQ29udGV4dChEb2N1bWVudCogZG9jdW0KIAogICAgIFJlZlB0cjxEb2N1bWVudEZy
YWdtZW50PiB0YWdnZWRGcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cChkb2N1bWVu
dCwgdGFnZ2VkTWFya3VwLnRvU3RyaW5nKCksIGJhc2VVUkwsIHNjcmlwdGluZ1Blcm1pc3Npb24p
OwogICAgIFJlZlB0cjxEb2N1bWVudD4gdGFnZ2VkRG9jdW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRl
KDAsIEtVUkwoKSk7CisgICAgdGFnZ2VkRG9jdW1lbnQtPnNldEZlYXR1cmVTd2l0Y2goZG9jdW1l
bnQtPmZlYXR1cmVTd2l0Y2goKSk7CiAgICAgdGFnZ2VkRG9jdW1lbnQtPnRha2VBbGxDaGlsZHJl
bkZyb20odGFnZ2VkRnJhZ21lbnQuZ2V0KCkpOwogCiAgICAgUmVmUHRyPE5vZGU+IG5vZGVCZWZv
cmVDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKaW5kZXgg
NjdkZGNlYjRmYWEzZmE3ZWNkYTUzNDU3NzM2ZmM1ZDZjZTM4ZWY0Yy4uZmNkOWM4Yjk3YzM1MmZk
MmJlMzM0NjYzMDQ5OWE4YmZlNDYyN2RiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU3R5bGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHls
ZUVsZW1lbnQuY3BwCkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVu
dC5oIgogCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCi0jaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRG
ZWF0dXJlcy5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlU3dpdGNoLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50U2VuZGVyLmgi
CkBAIC0xMDUsNyArMTA1LDcgQEAgdm9pZCBIVE1MU3R5bGVFbGVtZW50OjpyZWdpc3RlcldpdGhT
Y29waW5nTm9kZSgpCiAgICAgQVNTRVJUKGluRG9jdW1lbnQoKSk7CiAgICAgaWYgKG1faXNSZWdp
c3RlcmVkV2l0aFNjb3BpbmdOb2RlKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFDb250ZXh0
RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpCisgICAgaWYg
KCFDb250ZXh0RmVhdHVyZVN3aXRjaDo6c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50KCkpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBDb250YWluZXJOb2RlKiBzY29wZSA9IHBhcmVudE5vZGUo
KTsKQEAgLTEzMCwxMCArMTMwLDEwIEBAIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6dW5yZWdpc3Rl
cldpdGhTY29waW5nTm9kZShDb250YWluZXJOb2RlKiBzY29wZSkKIHsKICAgICAvLyBOb3RlOiBX
ZSBjYW5ub3QgcmVseSBvbiB0aGUgJ3Njb3BlZCcgZWxlbWVudCBzdGlsbCBiZWluZyBwcmVzZW50
IHdoZW4gdGhpcyBtZXRob2QgaXMgaW52b2tlZC4KICAgICAvLyBUaGVyZWZvcmUgd2UgY2Fubm90
IHJlbHkgb24gc2NvcGVkKCkhCi0gICAgQVNTRVJUKG1faXNSZWdpc3RlcmVkV2l0aFNjb3BpbmdO
b2RlIHx8ICFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1l
bnQoKSkpOworICAgIEFTU0VSVChtX2lzUmVnaXN0ZXJlZFdpdGhTY29waW5nTm9kZSB8fCAhQ29u
dGV4dEZlYXR1cmVTd2l0Y2g6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSk7CiAgICAg
aWYgKCFtX2lzUmVnaXN0ZXJlZFdpdGhTY29waW5nTm9kZSkKICAgICAgICAgcmV0dXJuOwotICAg
IGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50
KCkpKQorICAgIGlmICghQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnN0eWxlU2NvcGVkRW5hYmxlZChk
b2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKHNjb3BlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4
IDA4YjQ1ZDRhYmY1OWJmYzc2ZThlNzQwMDNjMTc2ZGRjOTYwZTRiZWYuLjk1OWY1YTRjNDkyOTZl
ZTc4ZmEwZjNmMDNmMjBhYWVhMzVmNTM4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtMjksNyArMjksNyBAQAogCiAjaW5j
bHVkZSAiQ29udGVudERpc3RyaWJ1dG9yLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlbGVjdG9yUXVl
cnkuaCIKLSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29u
dGV4dEZlYXR1cmVTd2l0Y2guaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgpAQCAtNDMsNyArNDMs
NyBAQCB1c2luZyBIVE1MTmFtZXM6OnNlbGVjdEF0dHI7CiBzdGF0aWMgY29uc3QgUXVhbGlmaWVk
TmFtZSYgY29udGVudFRhZ05hbWUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogI2lmIEVOQUJMRShT
SEFET1dfRE9NKQotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5h
YmxlZChkb2N1bWVudC0+ZG9tV2luZG93KCkpKQorICAgIGlmICghQ29udGV4dEZlYXR1cmVTd2l0
Y2g6OnNoYWRvd0RPTUVuYWJsZWQoZG9jdW1lbnQpKQogICAgICAgICByZXR1cm4gSFRNTE5hbWVz
Ojp3ZWJraXRTaGFkb3dDb250ZW50VGFnOwogICAgIHJldHVybiBIVE1MTmFtZXM6OmNvbnRlbnRU
YWc7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNo
U3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNw
cAppbmRleCBiYTBkOGM4NmM1NThjOGZhOGUyNTNlZTk2MWIwMDhiZDA2NTNlMjUwLi45Y2FmMzgx
NTYxYjM1NmI5NzlmZjZjNzNiNzRjY2JiNjFmYzVlYjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcApAQCAtODksNiArODksNyBAQCBET01QYXRjaFN1
cHBvcnQ6On5ET01QYXRjaFN1cHBvcnQoKSB7IH0KIHZvaWQgRE9NUGF0Y2hTdXBwb3J0OjpwYXRj
aERvY3VtZW50KGNvbnN0IFN0cmluZyYgbWFya3VwKQogewogICAgIFJlZlB0cjxIVE1MRG9jdW1l
bnQ+IG5ld0RvY3VtZW50ID0gSFRNTERvY3VtZW50OjpjcmVhdGUoMCwgS1VSTCgpKTsKKyAgICBu
ZXdEb2N1bWVudC0+c2V0RmVhdHVyZVN3aXRjaChtX2RvY3VtZW50LT5mZWF0dXJlU3dpdGNoKCkp
OwogICAgIFJlZlB0cjxEb2N1bWVudFBhcnNlcj4gcGFyc2VyID0gSFRNTERvY3VtZW50UGFyc2Vy
OjpjcmVhdGUobmV3RG9jdW1lbnQuZ2V0KCksIGZhbHNlKTsKICAgICBwYXJzZXItPmluc2VydCht
YXJrdXApOyAvLyBVc2UgaW5zZXJ0KCkgc28gdGhhdCB0aGUgcGFyc2VyIHdpbGwgbm90IHlpZWxk
LgogICAgIHBhcnNlci0+ZmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oCmluZGV4IGY1YzdhNzI2NmE2MDBkZWE1MjliZjlkMTNjMTdiZGU2MjBlYTlkMjcu
LmJlODEwMjg3YTcwZDU1ZThlNjU2YmZmM2Q2NDBhYWZhNTMzYjEwNmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zMTEsMTIgKzMxMSw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGFsbG93RGlzcGxheWluZ0luc2Vj
dXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgU2VjdXJpdHlPcmlnaW4qLCBjb25z
dCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3Ms
IFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5n
czsgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd1NoYWRvd0RPTShib29sIGVuYWJsZWRB
c1J1bnRpbWVGZWF0dXJlcykgeyByZXR1cm4gZW5hYmxlZEFzUnVudGltZUZlYXR1cmVzOyB9Ci0g
ICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd1N0eWxlU2NvcGVkKGJvb2wgZW5hYmxlZEFzUnVudGlt
ZUZlYXR1cmVzKSB7IHJldHVybiBlbmFibGVkQXNSdW50aW1lRmVhdHVyZXM7IH0KLSNpZiBFTkFC
TEUoUEFHRV9QT1BVUCkKLSAgICAgICAgdmlydHVhbCBib29sIGFsbG93UGFnZVBvcHVwKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KLSNlbmRpZgotCiAgICAgICAgIC8vIFRoaXMgY2FsbGJhY2sgbm90aWZp
ZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBmcmFtZSB3YXMgYWJvdXQgdG8gcnVuCiAgICAgICAgIC8v
IEphdmFTY3JpcHQgYnV0IGRpZCBub3QgYmVjYXVzZSBhbGxvd1NjcmlwdCByZXR1cm5lZCBmYWxz
ZS4gV2UKICAgICAgICAgLy8gaGF2ZSBhIHNlcGFyYXRlIGNhbGxiYWNrIGhlcmUgYmVjYXVzZSB0
aGVyZSBhcmUgYSBudW1iZXIgb2YgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcAppbmRleCA3YzVlNWI1ZjA4N2IwNTg4ODU1NDY1NDE1NzI4YjlkY2Y2MjA2NTRlLi5kNTI0
ODFmMzE4NmZkZDY1ZDg0YmRiZDQ3OWNlNGVkZjIwNmRlNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAKQEAgLTI1Myw2ICsyNTMsNyBAQCBEb2N1bWVudCogWE1MSHR0cFJl
cXVlc3Q6OnJlc3BvbnNlWE1MKEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgLy8gRklY
TUU6IFNldCBMYXN0LU1vZGlmaWVkLgogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5z
ZXRDb250ZW50KG1fcmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsK
ICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0U2VjdXJpdHlPcmlnaW4oc2VjdXJp
dHlPcmlnaW4oKSk7CisgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldEZlYXR1cmVT
d2l0Y2goZG9jdW1lbnQoKS0+ZmVhdHVyZVN3aXRjaCgpKTsKICAgICAgICAgICAgIGlmICghbV9y
ZXNwb25zZURvY3VtZW50LT53ZWxsRm9ybWVkKCkpCiAgICAgICAgICAgICAgICAgbV9yZXNwb25z
ZURvY3VtZW50ID0gMDsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4
IGJhYWNmNDA1ODFhYjc5NzI3MjQ1ZjI2MjNjZDU1NDgxMTgyZGU4ZGUuLjFmMjQwMDA0YWFmZmI5
OTM4ZDY3MDk1NTQ5NGQzMzIxOGZiYzQ4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAK
QEAgLTM3NSw2ICszNzUsOCBAQAogICAgICAgICAgICAgICAgICdzcmMvQ29tcG9zaXRpb25VbmRl
cmxpbmVCdWlsZGVyLmgnLAogICAgICAgICAgICAgICAgICdzcmMvQ29tcG9zaXRpb25VbmRlcmxp
bmVWZWN0b3JCdWlsZGVyLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Db21wb3NpdGlvblVu
ZGVybGluZVZlY3RvckJ1aWxkZXIuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9Db250ZXh0RmVh
dHVyZVN3aXRjaENsaWVudEltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL0NvbnRleHRG
ZWF0dXJlU3dpdGNoQ2xpZW50SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL0NvbnRleHRN
ZW51Q2xpZW50SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvQ29udGV4dE1lbnVDbGll
bnRJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvRGF0YWJhc2VPYnNlcnZlci5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVu
dC5oCmluZGV4IDExNmEzODNjYThjMjhiNDc4OWFlNzM1ZmYxZTQ0Y2QzMjdkZGVjODMuLjAxNGMy
YzNmNDQwMjM1NDJkNjFiMTg5YzUyMjVmNzQwNDY1Y2M4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgKQEAgLTMzLDYgKzMz
LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYkRvY3VtZW50OwogY2xhc3Mg
V2ViRnJhbWU7CiBjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFdlYlN0cmluZzsKQEAg
LTkwLDcgKzkxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhbGxvd1dyaXRlVG9DbGlw
Ym9hcmQoV2ViRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVl
OyB9CiAKICAgICAvLyBDb250cm9scyB3aGV0aGVyIGVuYWJsaW5nIFdlYiBDb21wb25lbnRzIEFQ
SSBmb3IgdGhpcyBmcmFtZS4KLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dXZWJDb21wb25lbnRzKFdl
YkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBhbGxvd1dlYkNvbXBvbmVudHMoY29uc3QgV2ViRG9jdW1lbnQmLCBib29s
IGRlZmF1bHRWYWx1ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CiAKICAgICAvLyBOb3RpZmll
cyB0aGUgY2xpZW50IHRoYXQgdGhlIGZyYW1lIHdvdWxkIGhhdmUgaW5zdGFudGlhdGVkIGEgcGx1
Zy1pbiBpZiBwbHVnLWlucyB3ZXJlIGVuYWJsZWQuCiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFs
bG93UGx1Z2lucyhXZWJGcmFtZSopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2Y4MTcxYTgxZmZmMTc4ODE5NTM4MGQwMmEyMWUwYmFjZWMwNTlkNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlU3dpdGNo
Q2xpZW50SW1wbC5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGwuaCIKKworI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiV2ViRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJXZWJQZXJtaXNzaW9u
Q2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIENvbnRleHRGZWF0dXJlU3dp
dGNoQ2xpZW50SW1wbDo6c2hhZG93RE9NRW5hYmxlZChXZWJDb3JlOjpEb2N1bWVudCogZG9jdW1l
bnQsIGJvb2wgZGVmYXVsdFZhbHVlKSBPVkVSUklERQoreworICAgIGlmICghbV9jbGllbnQpCisg
ICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgcmV0dXJuIG1fY2xpZW50LT5hbGxvd1dl
YkNvbXBvbmVudHMoV2ViRG9jdW1lbnQoZG9jdW1lbnQpLCBkZWZhdWx0VmFsdWUpOworfQorCiti
b29sIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbDo6c3R5bGVTY29wZWRFbmFibGVkKFdl
YkNvcmU6OkRvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBkZWZhdWx0VmFsdWUpIE9WRVJSSURFCit7
CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICBy
ZXR1cm4gbV9jbGllbnQtPmFsbG93V2ViQ29tcG9uZW50cyhXZWJEb2N1bWVudChkb2N1bWVudCks
IGRlZmF1bHRWYWx1ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZVN3aXRjaENsaWVu
dEltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMDcwZDExYWQzOGYzOWYyNTg4NmRiYTBlMGQyYTE0Yzc0YWMw
NDVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4
dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29udGV4
dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsX2gKKyNkZWZpbmUgQ29udGV4dEZlYXR1cmVTd2l0Y2hD
bGllbnRJbXBsX2gKKworI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlU3dpdGNoLmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQZXJtaXNzaW9uQ2xpZW50OworCitjbGFzcyBDb250
ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6Q29udGV4dEZlYXR1
cmVTd2l0Y2hDbGllbnQgeworcHVibGljOgorICAgIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50
SW1wbCgpCisgICAgICAgIDogbV9jbGllbnQoMCkKKyAgICB7IH0KKworICAgIHZpcnR1YWwgYm9v
bCBzaGFkb3dET01FbmFibGVkKFdlYkNvcmU6OkRvY3VtZW50KiwgYm9vbCBkZWZhdWx0VmFsdWUp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzdHlsZVNjb3BlZEVuYWJsZWQoV2ViQ29yZTo6
RG9jdW1lbnQqLCBib29sIGRlZmF1bHRWYWx1ZSkgT1ZFUlJJREU7CisKKyAgICB2b2lkIHNldFBl
cm1pc3Npb25DbGllbnQoV2ViUGVybWlzc2lvbkNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0g
Y2xpZW50OyB9CisKK3ByaXZhdGU6CisgICAgV2ViUGVybWlzc2lvbkNsaWVudCogbV9jbGllbnQ7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIENvbnRleHRGZWF0dXJl
U3dpdGNoQ2xpZW50SW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCBkZTNmMjI3ODlmNWZhMTViMGFjZDhlZDc0
ZDFlNWFmOTBlOTY5ZjJjLi5kMDYwMmE5YTBlNzA0ZWNkOTEyZjZkY2FmYzFjY2M1ZjlhMmFmOWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5jcHAKQEAgLTIzOSwyNCArMjM5LDYgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudElt
cGw6OmFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncywK
ICAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOwogfQogCi1ib29sIEZyYW1lTG9hZGVyQ2xp
ZW50SW1wbDo6YWxsb3dTaGFkb3dET00oYm9vbCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZSkKLXsK
LSAgICBXZWJWaWV3SW1wbCogd2VidmlldyA9IG1fd2ViRnJhbWUtPnZpZXdJbXBsKCk7Ci0gICAg
aWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQotICAgICAgICByZXR1
cm4gd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5hbGxvd1dlYkNvbXBvbmVudHMobV93ZWJG
cmFtZSwgZW5hYmxlZEFzUnVudGltZUZlYXR1cmUpOwotCi0gICAgcmV0dXJuIGVuYWJsZWRBc1J1
bnRpbWVGZWF0dXJlOwotfQotCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dTdHls
ZVNjb3BlZChib29sIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlKQotewotICAgIFdlYlZpZXdJbXBs
KiB3ZWJ2aWV3ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwoKTsKLSAgICBpZiAod2VidmlldyAmJiB3
ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCkpCi0gICAgICAgIHJldHVybiB3ZWJ2aWV3LT5wZXJt
aXNzaW9uQ2xpZW50KCktPmFsbG93V2ViQ29tcG9uZW50cyhtX3dlYkZyYW1lLCBlbmFibGVkQXNS
dW50aW1lRmVhdHVyZSk7Ci0KLSAgICByZXR1cm4gZW5hYmxlZEFzUnVudGltZUZlYXR1cmU7Ci19
Ci0KIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaWROb3RBbGxvd1NjcmlwdCgpCiB7CiAg
ICAgV2ViVmlld0ltcGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAppbmRl
eCAyMzZhMDFiNjUzMDI5NTE0NmFjZWExM2JkZTVkMGYyMzgzN2E5ZmFmLi5lY2IyMGEyZmIyNWVm
ZTY0YWZlNjBkNDI0NmU2Yzk5M2FmNWYzMTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaApAQCAtMTk5LDggKzE5OSw2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dJbWFnZShib29sIGVuYWJsZWRQZXJTZXR0aW5n
cywgY29uc3QgV2ViQ29yZTo6S1VSTCYgaW1hZ2VVUkwpOwogICAgIHZpcnR1YWwgYm9vbCBhbGxv
d0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOwogICAgIHZpcnR1YWwg
Ym9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3Ms
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOwotICAgIHZp
cnR1YWwgYm9vbCBhbGxvd1NoYWRvd0RPTShib29sIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTdHlsZVNjb3BlZChib29sIGVuYWJsZWRB
c1J1bnRpbWVGZWF0dXJlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dT
Y3JpcHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKaW5kZXggNjE3
YjcyNWNlZTJiNWY5ZjJjZjI4ZTNjYTI4NmNmNTBhNzRmY2M4Yi4uOTM1ZmM0ZjEyMmNiOTcwNmRl
NTQyYmMwNTUyMDc5MDY2ZDA3OWMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJQ
YWdlUG9wdXBJbXBsLmgiCiAKICNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDb250ZXh0
RmVhdHVyZVN3aXRjaC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvd1BhZ2VQb3B1cC5oIgogI2luY2x1
ZGUgIkVtcHR5Q2xpZW50cy5oIgogI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCkBAIC0xMjgsOCAr
MTI5LDggQEAgcHJpdmF0ZToKICAgICBXZWJQYWdlUG9wdXBJbXBsKiBtX3BvcHVwOwogfTsKIAot
Y2xhc3MgUGFnZVBvcHVwRnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRW1wdHlGcmFtZUxvYWRl
ckNsaWVudCB7Ci0gICAgdmlydHVhbCBib29sIGFsbG93UGFnZVBvcHVwKCkgT1ZFUlJJREUgeyBy
ZXR1cm4gdHJ1ZTsgfQorY2xhc3MgUGFnZVBvcHVwRmVhdHVyZVN3aXRjaENsaWVudCA6IHB1Ymxp
YyBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCB7CisgICAgdmlydHVhbCBib29sIHBhZ2VQb3B1
cEVuYWJsZWQoRG9jdW1lbnQqLCBib29sKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiB9Owog
CiAvLyBXZWJQYWdlUG9wdXBJbXBsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE4Niw4ICsxODcsMTAgQEAgYm9vbCBX
ZWJQYWdlUG9wdXBJbXBsOjppbml0UGFnZSgpCiAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRT
Y3JpcHRFbmFibGVkKHRydWUpOwogICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0QWxsb3dTY3Jp
cHRzVG9DbG9zZVdpbmRvd3ModHJ1ZSk7CiAKLSAgICBzdGF0aWMgRnJhbWVMb2FkZXJDbGllbnQq
IHBhZ2VQb3B1cEZyYW1lTG9hZGVyQ2xpZW50ID0gIG5ldyBQYWdlUG9wdXBGcmFtZUxvYWRlckNs
aWVudDsKLSAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShtX3BhZ2UuZ2V0
KCksIDAsIHBhZ2VQb3B1cEZyYW1lTG9hZGVyQ2xpZW50KTsKKyAgICBzdGF0aWMgQ29udGV4dEZl
YXR1cmVTd2l0Y2hDbGllbnQqIHBhZ2VQb3B1cEZlYXR1cmVTd2l0Y2hDbGllbnQgPSAgbmV3IFBh
Z2VQb3B1cEZlYXR1cmVTd2l0Y2hDbGllbnQoKTsKKyAgICBwcm92aWRlQ29udGV4dEZlYXR1cmVT
d2l0Y2hUbyhtX3BhZ2UuZ2V0KCksIHBhZ2VQb3B1cEZlYXR1cmVTd2l0Y2hDbGllbnQpOworICAg
IHN0YXRpYyBGcmFtZUxvYWRlckNsaWVudCogZW1wdHlGcmFtZUxvYWRlckNsaWVudCA9ICBuZXcg
RW1wdHlGcmFtZUxvYWRlckNsaWVudCgpOworICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBGcmFt
ZTo6Y3JlYXRlKG1fcGFnZS5nZXQoKSwgMCwgZW1wdHlGcmFtZUxvYWRlckNsaWVudCk7CiAgICAg
ZnJhbWUtPnNldFZpZXcoRnJhbWVWaWV3OjpjcmVhdGUoZnJhbWUuZ2V0KCkpKTsKICAgICBmcmFt
ZS0+aW5pdCgpOwogICAgIGZyYW1lLT52aWV3KCktPnJlc2l6ZShtX3BvcHVwQ2xpZW50LT5jb250
ZW50U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApp
bmRleCBjNmRiMWIzZDIxZWQwZDJkZWY5MjZmODBiOTJmM2RlZjBiZjIyOTA0Li5hZTBmNzVhM2I2
OGIwNzExNThlN2E0MjExNTJjMWM2ZmFkNDE2NWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiQ29sb3Iu
aCIKICNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25VbmRlcmxp
bmVWZWN0b3JCdWlsZGVyLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJ
bXBsLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIKQEAgLTMzNyw2ICszMzgs
NyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXREZXZUb29sc0FnZW50Q2xpZW50KFdlYkRldlRvb2xz
QWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50KQogdm9pZCBXZWJWaWV3SW1wbDo6c2V0UGVybWlz
c2lvbkNsaWVudChXZWJQZXJtaXNzaW9uQ2xpZW50KiBwZXJtaXNzaW9uQ2xpZW50KQogewogICAg
IG1fcGVybWlzc2lvbkNsaWVudCA9IHBlcm1pc3Npb25DbGllbnQ7CisgICAgbV9mZWF0dXJlU3dp
dGNoQ2xpZW50LT5zZXRQZXJtaXNzaW9uQ2xpZW50KHBlcm1pc3Npb25DbGllbnQpOwogfQogCiB2
b2lkIFdlYlZpZXdJbXBsOjpzZXRQcmVyZW5kZXJlckNsaWVudChXZWJQcmVyZW5kZXJlckNsaWVu
dCogcHJlcmVuZGVyZXJDbGllbnQpCkBAIC0zOTIsNiArMzk0LDcgQEAgV2ViVmlld0ltcGw6Oldl
YlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKICAgICAsIG1faW1lQWNjZXB0RXZlbnRz
KHRydWUpCiAgICAgLCBtX29wZXJhdGlvbnNBbGxvd2VkKFdlYkRyYWdPcGVyYXRpb25Ob25lKQog
ICAgICwgbV9kcmFnT3BlcmF0aW9uKFdlYkRyYWdPcGVyYXRpb25Ob25lKQorICAgICwgbV9mZWF0
dXJlU3dpdGNoQ2xpZW50KGFkb3B0UHRyKG5ldyBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudElt
cGwoKSkpCiAgICAgLCBtX2F1dG9maWxsUG9wdXBTaG93aW5nKGZhbHNlKQogICAgICwgbV9hdXRv
ZmlsbFBvcHVwKDApCiAgICAgLCBtX2lzVHJhbnNwYXJlbnQoZmFsc2UpCkBAIC00NTEsNiArNDU0
LDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKICAg
ICBwcm92aWRlTm90aWZpY2F0aW9uKG1fcGFnZS5nZXQoKSwgbm90aWZpY2F0aW9uUHJlc2VudGVy
SW1wbCgpKTsKICNlbmRpZgogCisgICAgcHJvdmlkZUNvbnRleHRGZWF0dXJlU3dpdGNoVG8obV9w
YWdlLmdldCgpLCBtX2ZlYXR1cmVTd2l0Y2hDbGllbnQuZ2V0KCkpOwogICAgIHByb3ZpZGVEZXZp
Y2VPcmllbnRhdGlvblRvKG1fcGFnZS5nZXQoKSwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudFBy
b3h5LmdldCgpKTsKICAgICBwcm92aWRlR2VvbG9jYXRpb25UbyhtX3BhZ2UuZ2V0KCksIG1fZ2Vv
bG9jYXRpb25DbGllbnRQcm94eS5nZXQoKSk7CiAgICAgbV9nZW9sb2NhdGlvbkNsaWVudFByb3h5
LT5zZXRDb250cm9sbGVyKEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShtX3BhZ2UuZ2V0KCkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IGEwODg5Njc4
YTE0MDA3NDJjYzI2ZTBlYmZiYmUyM2UxOThiOTJkMmUuLjcxZmZhNTI1NGFjOTRmNzk1MjQ5NTBj
MTJhNDM1OWNiODQ0ODI3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaApAQCAtODYsNiArODYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIEF1dG9jb21w
bGV0ZVBvcHVwTWVudUNsaWVudDsKIGNsYXNzIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50OwogY2xh
c3MgQmF0dGVyeUNsaWVudEltcGw7CitjbGFzcyBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudElt
cGw7CiBjbGFzcyBDb250ZXh0TWVudUNsaWVudEltcGw7CiBjbGFzcyBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudFByb3h5OwogY2xhc3MgRHJhZ1Njcm9sbFRpbWVyOwpAQCAtNzMzLDYgKzczNCw5IEBA
IHByaXZhdGU6CiAgICAgLy8gY3VycmVudCBkcm9wIHRhcmdldCBpbiB0aGlzIFdlYlZpZXcgKHRo
ZSBkcm9wIHRhcmdldCBjYW4gYWNjZXB0IHRoZSBkcm9wKS4KICAgICBXZWJEcmFnT3BlcmF0aW9u
IG1fZHJhZ09wZXJhdGlvbjsKIAorICAgIC8vIENvbnRleHQtYmFzZWQgZmVhdHVyZSBzd2l0Y2hl
cy4KKyAgICBPd25QdHI8Q29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsPiBtX2ZlYXR1cmVT
d2l0Y2hDbGllbnQ7CisKICAgICAvLyBXaGV0aGVyIGFuIEF1dG9maWxsIHBvcHVwIGlzIGN1cnJl
bnRseSBzaG93aW5nLgogICAgIGJvb2wgbV9hdXRvZmlsbFBvcHVwU2hvd2luZzsKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1k
b2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVu
dHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjQzMDc1
M2YyOTUzMmUxZjUyMjE1MDBhOTkyMGMxMmY4Mzc2YTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1bWVudC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IGVuc3VyZSB0aGF0IHRoZSBz
aGFkb3cgcmVsYXRlZCBlbGVtZW50cyBhcmUgaW5zdGFudGlhdGVkIGV2ZW4gaW5zaWRlIGZyYW1l
bGVzcyBkb2N1bWVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0aW5n
IG9uIHRoZSBmcmFtZS1sZXNzIGRvY3VtZW50LgorUEFTUyB3aW5kb3cuSFRNTENvbnRlbnRFbGVt
ZW50IGlzIGNvbnRlbnQuY29uc3RydWN0b3IKK1BBU1Mgd2luZG93LkhUTUxTaGFkb3dFbGVtZW50
IGlzIHNoYWRvdy5jb25zdHJ1Y3RvcgorTW92aW5nIHRvIHRoZSBtYWluIGRvY3VtZW50LgorUEFT
UyB3aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IGlzIGNvbnRlbnQuY29uc3RydWN0b3IKK1BBU1Mg
d2luZG93LkhUTUxTaGFkb3dFbGVtZW50IGlzIHNoYWRvdy5jb25zdHJ1Y3RvcgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCit4KwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1bWVu
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVz
cy1kb2N1bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwYjZiZTgxZWY1N2RjYjIxZmY1NTY1NjdkNGI0
NmYwZTkzNmUyOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwKQEAgLTAsMCArMSwzMCBAQAor
eCs8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlIHRoYXQgdGhlIHNoYWRvdyByZWxh
dGVkIGVsZW1lbnRzIGFyZSBpbnN0YW50aWF0ZWQgZXZlbiBpbnNpZGUgZnJhbWVsZXNzIGRvY3Vt
ZW50cy4iKTsKKwordmFyIGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxE
b2N1bWVudCgpOwordmFyIGNvbnRhaW5lciA9IGRvYy5jcmVhdGVFbGVtZW50KCJzcGFuIik7Citk
b2MuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOworY29udGFpbmVyLmlubmVySFRNTCA9ICI8
Y29udGVudCBpZD0nY29udGVudEVsZW1lbnQnPjwvY29udGVudD48c2hhZG93IGlkPSdzaGFkb3dF
bGVtZW50Jz48L3NoYWRvdz4iOworCit2YXIgY29udGVudCA9IGNvbnRhaW5lci5xdWVyeVNlbGVj
dG9yKCIjY29udGVudEVsZW1lbnQiKTsKK3ZhciBzaGFkb3cgPSBjb250YWluZXIucXVlcnlTZWxl
Y3RvcigiI3NoYWRvd0VsZW1lbnQiKTsKKworZGVidWcoIlRlc3Rpbmcgb24gdGhlIGZyYW1lLWxl
c3MgZG9jdW1lbnQuIik7CitzaG91bGRCZSgid2luZG93LkhUTUxDb250ZW50RWxlbWVudCIsICJj
b250ZW50LmNvbnN0cnVjdG9yIik7CitzaG91bGRCZSgid2luZG93LkhUTUxTaGFkb3dFbGVtZW50
IiwgInNoYWRvdy5jb25zdHJ1Y3RvciIpOworCitkZWJ1ZygiTW92aW5nIHRvIHRoZSBtYWluIGRv
Y3VtZW50LiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOworc2hvdWxk
QmUoIndpbmRvdy5IVE1MQ29udGVudEVsZW1lbnQiLCAiY29udGVudC5jb25zdHJ1Y3RvciIpOwor
c2hvdWxkQmUoIndpbmRvdy5IVE1MU2hhZG93RWxlbWVudCIsICJzaGFkb3cuY29uc3RydWN0b3Ii
KTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145736</attachid>
            <date>2012-06-05 02:27:52 -0700</date>
            <delta_ts>2012-06-05 19:02:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88148-20120605182750.patch</filename>
            <type>text/plain</type>
            <size>83000</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzJkNzMwYTIzNGQwNzFl
YWM3NDFkZGQxYzk0YTM0ZDY3M2Q1OWFhYS4uMjQ3YjAwMjY0N2VmNjQ5YjI3YmFiYTlhOGU1OTNj
MDFkYWRhZjQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDEyLTA2LTA1ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04o
cjExODA5OCk6IDxjb250ZW50PiBlbGVtZW50IGRvZXMgbm90IHJlbmRlciBkaXN0cmlidXRlZCBj
aGlsZHJlbiB3aGVuIGNsb25lZCBmcm9tIGFub3RoZXIgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTQ4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHNoYWRvdyBET00gYXZhaWxhYmls
aXR5IHdhcyBkZWNpZGVkIHRocm91Z2ggRnJhbWVMb2FkZXJDbGllbnQuCisgICAgICAgIEJ1dCB0
aGVyZSBhcmUgZG9jdW1lbnRzIHdoaWNoIGRvbid0IGhhdmUgYW55IGFzc29jaWF0ZWQgZnJhbWVz
LAorICAgICAgICBpbiB3aGljaCBhbnkgc2hhZG93IERPTSByZWxhdGVkIGVsZW1lbnRzIGNhbm5v
dCBiZSBjb25zdHJ1Y3RlZC4KKyAgICAgICAgVGhhdCByZXN1bHN0ZWQgdGhlIHJlZ3Jlc3Npb24u
CisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaW50cm9kdWNlcyBhIFBhZ2UtYmFzZWQgY2xpZW50IGNh
bGxlZCBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudAorICAgICAgICB3aGljaCB0YWtlcyB0aGUg
cm9sZSBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50IHRvIGRlY2lkZSB0aGUgZmVhdHVyZSBhdmFpbGFi
aWxpdHksCisgICAgICAgIGFuZCBDb250ZXh0RmVhdHVyZVN3aXRjaCB3aGljaCBpcyBhIHByb3h5
IG9mIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50LgorCisgICAgICAgIENvbnRleHRGZWF0dXJl
U3dpdGNoIGlzIG93bmVkIGJ5IGEgUGFnZSwgYW5kIGlzIGF0dGFjaGVkIHRvIGVhY2ggRG9jdW1l
bnQgaW4gdGhlIHBhZ2UKKyAgICAgICAgZXZlbiBpZiB0aGUgcGFnZSBpdHNlbGYgaGFzIG5vIHJl
ZmVyZW5jdCB0byBGcmFtZXMgb3IgUGFnZXMuIFdpdGggQ29udGV4dEZlYXR1cmVTd2l0Y2gsCisg
ICAgICAgIGVhY2ggRG9jdW1lbnQgY2FuIGRlY2lkZSB0aGUgZmVhdHVyZSBhdmFpbGFiaWxpdHkg
ZXZlbiBpZiBpdCBjYW5ub3QgcmVhY2ggUGFnZSBvciBGcmFtZS4KKworICAgICAgICBDb250ZXh0
RW5hYmxlZEZlYXR1cmVzIGlzIHJlbW92ZWQgc2luY2UgaXQgaXMgcmVwbGFjZWQgd2l0aCBDb250
ZXh0RmVhdHVyZVN3aXRjaC4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvZWxlbWVu
dHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOiBSZXBsYWNlZCBD
b250ZXh0RW5hYmxlZEZlYXR1cmVzIHdpdGggQ29udGV4dEZlYXR1cmVTd2l0Y2gKKyAgICAgICAg
KEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNw
cDogUmVwbGFjZWQgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyB3aXRoIENvbnRleHRGZWF0dXJlU3dp
dGNoLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6ZGV0ZXJtaW5lU2NvcGUpOgor
ICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZVN3aXRjaC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudDo6
ZW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OnN1cHBsZW1l
bnROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlU3dpdGNoOjpwcm92aWRl
VG8pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OmRlZmF1bHRTd2l0
Y2gpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OnNoYWRvd0RPTUVu
YWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OnN0eWxlU2Nv
cGVkRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZVN3aXRjaDo6cGFn
ZVBvcHVwRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlQ29udGV4dEZlYXR1cmVT
d2l0Y2hUbyk6CisgICAgICAgICogZG9tL0NvbnRleHRGZWF0dXJlU3dpdGNoLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnQ6On5D
b250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVh
dHVyZVN3aXRjaENsaWVudDo6c2hhZG93RE9NRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0RmVhdHVyZVN3aXRjaENsaWVudDo6c3R5bGVTY29wZWRFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50OjpwYWdlUG9wdXBFbmFibGVkKToK
KyAgICAgICAgKENvbnRleHRGZWF0dXJlU3dpdGNoKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0RmVhdHVyZVN3aXRjaDo6Q29udGV4dEZlYXR1cmVTd2l0Y2gpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0RmVhdHVyZVN3aXRjaDo6c2hhZG93RE9NRW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0RmVhdHVyZVN3aXRjaDo6c3R5bGVTY29wZWRFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlU3dpdGNoOjpwYWdlUG9wdXBFbmFibGVkKToKKyAgICAg
ICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHA6IFB1dCBDb250ZXh0RmVhdHVyZVN3aXRjaCB0byBuZXdseSBjcmVhdGVkIERvY3VtZW50
LgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVIVE1MRG9jdW1lbnQp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6IFB1dCBDb250ZXh0RmVhdHVyZVN3aXRjaCB0
byBuZXdseSBjcmVhdGVkIERvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRv
Y3VtZW50KToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOiBSZXBsYWNlZCBDb250ZXh0RW5h
YmxlZEZlYXR1cmVzIHdpdGggQ29udGV4dEZlYXR1cmVTd2l0Y2gKKyAgICAgICAgKFdlYkNvcmU6
OlBvc2l0aW9uOjpQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6ZmluZFBh
cmVudCk6CisgICAgICAgICogZG9tL1NlY3VyaXR5Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZWN1cml0eUNvbnRleHQ6OlNlY3VyaXR5Q29udGV4dCk6CisgICAgICAgICogZG9tL1Nl
Y3VyaXR5Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpT
ZWN1cml0eUNvbnRleHQ6OmZlYXR1cmVTd2l0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJp
dHlDb250ZXh0OjpzZXRGZWF0dXJlU3dpdGNoKToKKyAgICAgICAgKFNlY3VyaXR5Q29udGV4dCk6
IEFkZGVkIG1fZmVhdHVyZVN3aXRjaC4KKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDogUmVw
bGFjZWQgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyB3aXRoIENvbnRleHRGZWF0dXJlU3dpdGNoCisg
ICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmdldFNlbGVjdGlvbik6CisgICAgICAgICogZG9t
L21ha2VfbmFtZXMucGw6IFJlcGxhY2VkIENvbnRleHRFbmFibGVkRmVhdHVyZXMgd2l0aCBDb250
ZXh0RmVhdHVyZVN3aXRjaAorICAgICAgICAocHJpbnRDb25zdHJ1Y3RvckludGVyaW9yKToKKyAg
ICAgICAgKHByaW50RmFjdG9yeUNwcEZpbGUpOgorICAgICAgICAocHJpbnRXcmFwcGVyRnVuY3Rp
b25zKToKKyAgICAgICAgKHByaW50V3JhcHBlckZhY3RvcnlDcHBGaWxlKToKKyAgICAgICAgKiBl
ZGl0aW5nL21hcmt1cC5jcHA6IFB1dCBDb250ZXh0RmVhdHVyZVN3aXRjaCB0byBuZXdseSBjcmVh
dGVkIERvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJhZ21lbnRGcm9tTWFya3Vw
V2l0aENvbnRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU3R5bGVFbGVtZW50OjpyZWdpc3RlcldpdGhTY29waW5nTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU3R5bGVFbGVtZW50Ojp1bnJlZ2lzdGVyV2l0aFNjb3Bp
bmdOb2RlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwOiBS
ZXBsYWNlZCBDb250ZXh0RW5hYmxlZEZlYXR1cmVzIHdpdGggQ29udGV4dEZlYXR1cmVTd2l0Y2gK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRlbnRUYWdOYW1lKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
RE9NUGF0Y2hTdXBwb3J0LmNwcDogUHV0IENvbnRleHRGZWF0dXJlU3dpdGNoIHRvIG5ld2x5IGNy
ZWF0ZWQgRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpET01QYXRjaFN1cHBvcnQ6OnBhdGNo
RG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOiBSZW1vdmVk
IG9sZCBBUElzCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDogUHV0IENvbnRleHRG
ZWF0dXJlU3dpdGNoIHRvIG5ld2x5IGNyZWF0ZWQgRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3Jl
OjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwpOgorCiAyMDEyLTA2LTA1ICBLZW5pY2hpIElz
aGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEltcGxl
bWVudCBmb250IHNoYXBpbmcgd2l0aCBmb250LWZlYXR1cmUtc2V0dGluZ3Mgb24gTWFjCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGJiZjI3NTYyYWE2NGU2ZDlkY2U2ZTlhYmU2OWY3YjAz
YTQ1MjRjMjYuLmYzZTQ1N2NmN2I3NGMyMjJkNDgxOTFmMGIxNTEzMTliNDUyNzZjZGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTItMDYtMDUgIEhhamlt
ZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihy
MTE4MDk4KTogPGNvbnRlbnQ+IGVsZW1lbnQgZG9lcyBub3QgcmVuZGVyIGRpc3RyaWJ1dGVkIGNo
aWxkcmVuIHdoZW4gY2xvbmVkIGZyb20gYW5vdGhlciBkb2N1bWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxNDgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIEFkZGVkIENvbnRleHRGZWF0dXJlU3dp
dGNoQ2xpZW50SW1wbCB3aGljaCBpbXBsZW1lbnRzIFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlU3dp
dGNoQ2xpZW50LgorICAgICAgICAtIFJlcGxhY2VkIFBhZ2VQb3B1cEZyYW1lTG9hZGVyQ2xpZW50
IHdpdGggUGFnZVBvcHVwRmVhdHVyZVN3aXRjaENsaWVudC4KKworICAgICAgICAqIFdlYktpdC5n
eXA6CisgICAgICAgICogcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaDoKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBlcm1pc3Npb25DbGllbnQ6OmFsbG93V2ViQ29t
cG9uZW50cyk6CisgICAgICAgICogc3JjL0NvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbC5j
cHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRF
bmFibGVkRmVhdHVyZXMuY3BwLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvQ29u
dGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaC4KKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGwpOgorICAgICAg
ICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGw6OkNvbnRleHRGZWF0dXJl
U3dpdGNoQ2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlU3dpdGNo
Q2xpZW50SW1wbDo6c2V0UGVybWlzc2lvbkNsaWVudCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9h
ZGVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5o
OgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViUGFn
ZVBvcHVwSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQb3B1cEltcGw6OmluaXRQ
YWdlKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0UGVybWlzc2lvbkNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisgICAg
ICAgIChXZWJLaXQpOgorCiAyMDEyLTA2LTA1ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgRXZlbnRIYW5kbGVyIHNob3VsZG4ndCBkaXNwYXRjaCBmYWtlIG1vdXNl
bW92ZSBldmVudHMgd2hlbiBzY3JvbGxpbmcgb24gZGV2aWNlcyB0aGF0IGRvbid0IGhhdmUgYSBt
b3VzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjZWIxZGI0MDZjYjBhZTQ2OTcxNzljNmViZWI2
NTRmZDRiZGEyMzBhLi5mNDBlNjlmNjViZjg0ZjNjZDIxNzEwYTk2NTYwOTk3N2FmMzY3YjZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDU5LDcgKzQ1OSw2IEBAIFNFVChXZWJDb3JlX1NPVVJD
RVMKICAgICBiaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHAKIAogICAgIGJpbmRpbmdz
L2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suY3BwCi0gICAgYmluZGluZ3MvZ2VuZXJpYy9Db250
ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcAogICAgIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5jcHAKIAogICAgIGNzcy9DU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcApAQCAtNTU5
LDYgKzU1OCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vQ29udGFpbmVyTm9kZS5j
cHAKICAgICBkb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwCiAgICAgZG9tL0NvbnRleHRE
ZXN0cnVjdGlvbk9ic2VydmVyLmNwcAorICAgIGRvbS9Db250ZXh0RmVhdHVyZVN3aXRjaC5jcHAK
ICAgICBkb20vQ3VzdG9tRXZlbnQuY3BwCiAgICAgZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3Bw
CiAgICAgZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQppbmRleCA1YWM1ZGUzNjI0MWQxYjgyZmMxODU1ZjcxYWU0YTZjNjVmZDNlMzQx
Li45NDMzMTAwNzAwMmQ1OTJiYWQ3Mzk2MDE2ZjU3M2JlYzk4ZGFiODlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTEzMDksOCArMTMwOSw2IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggXAogCVNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmggXAotCVNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAg
XAotCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJl
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJh
c2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0
eUJhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJp
dHkuaCBcCkBAIC0xODAyLDYgKzE4MDAsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0
RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1
cmVTd2l0Y2guY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVTd2l0Y2gu
aCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0Nyb3NzVGhyZWFkVGFzay5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9kb20vQ3VzdG9tRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRXZl
bnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQppbmRleCBiYzAxMTdiNzUwNjMxODljZGQyOTE3NDY1MWJjNmZkOTNl
OTliYWI0Li4zZWFkODEzZWViZTlkZmEzZjljYWViNWEwMDI2MDYwN2ZlZTViZThmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKQEAgLTcyLDcgKzcyLDYgQEAgU09VUkNFUyArPSBcCiAgICAgYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwIFwKICAgICBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2Fj
aGUuY3BwIFwKICAgICBiaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmNwcCBcCi0g
ICAgYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCBcCiAgICAgYmlu
ZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAogCiB2OCB7CkBAIC01Mjgs
NiArNTI3LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL0NvbnRhaW5lck5vZGUuY3BwIFwKICAg
ICBkb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwIFwKICAgICBkb20vQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIuY3BwIFwKKyAgICBkb20vQ29udGV4dEZlYXR1cmVTd2l0Y2guY3BwIFwK
ICAgICBkb20vQ3VzdG9tRXZlbnQuY3BwIFwKICAgICBkb20vRGVjb2RlZERhdGFEb2N1bWVudFBh
cnNlci5jcHAgXAogICAgIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggNmYyMzE2MGMzY2RlZGE4Y2QxMTIzMWJjNTIyOTJhOTg5ZDA2ZmY5MS4uZWQy
ZjA4NTdmYjhlOGIwZjE3N2E1MTEwOTQwZDNhOTMxZTg2OWZkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtNjE2LDYgKzYxNiw4IEBACiAgICAgICAgICAgICAnZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdh
bGtlci5oJywKICAgICAgICAgICAgICdkb20vQ29udGFpbmVyTm9kZS5oJywKICAgICAgICAgICAg
ICdkb20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCcsCisgICAgICAgICAgICAnZG9tL0Nv
bnRleHRGZWF0dXJlU3dpdGNoLmgnLAorICAgICAgICAgICAgJ2RvbS9Db250ZXh0RmVhdHVyZVN3
aXRjaC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oJywKICAgICAg
ICAgICAgICdkb20vRE9NVGltZVN0YW1wLmgnLAogICAgICAgICAgICAgJ2RvbS9EZXZpY2VPcmll
bnRhdGlvbi5oJywKQEAgLTE4NDksOCArMTg1MSw2IEBACiAgICAgICAgICAgICAnYmluZGluZ3Mv
Z2VuZXJpYy9CaW5kaW5nU2VjdXJpdHkuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJp
Yy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJp
Yy9CaW5kaW5nU2VjdXJpdHlCYXNlLmgnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMv
Q29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVy
aWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5l
cmljL0dlbmVyaWNCaW5kaW5nLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOGRmNzFlZTNiZWJmMTIxZjI4ZDQwMDZmYmM4YTNkOWY3
MmI1ODUyYi4uZGFlOGNjMGQ0NWVmYTE5NjIzNjkwN2I0ZWU0ZDIxOGJkMjkwZTI3MCAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTYzMTg2LDE0
ICs2MzE4Niw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIgot
CQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmlu
ZGluZ3NcZ2VuZXJpY1xDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCi0JCQkJCT4KLQkJCQk8L0Zp
bGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXEdl
bmVyaWNCaW5kaW5nLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjBjY2E3MjU5Yjg3ZDkx
Zjg0MGY3ZDUxMDlhNTFkMWRmYzFhYzE3ZC4uMDJiODZiZWMxODY0NmM0NTQxZmE5NWE2MzY5MDAw
MjAwYWVkODgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMSw0ICsxLDMgQEAKLQogLy8gISQqVVRGOCokIQogewogCWFyY2hp
dmVWZXJzaW9uID0gMTsKQEAgLTMzNiw4ICszMzUsNiBAQAogCQkxNEUwQkM1NjEzNjE0OEE4MDAy
QUQxMkUgLyogSlNET01Ub2tlbkxpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRFMEJDNTUxMzYxNDhBODAwMkFEMTJFIC8qIEpTRE9N
VG9rZW5MaXN0Q3VzdG9tLmNwcCAqLzsgfTsKIAkJMTRFODM3ODQwOUY4NUQxQzAwQjg1QUU0IC8q
IEpTRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTRFODM3ODMwOUY4NUQxQzAwQjg1QUU0IC8qIEpTRXZlbnQuY3BwICovOyB9OwogCQkxNEU4
Mzc4RTA5Rjg1RDRGMDBCODVBRTQgLyogSlNFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRFODM3OEQwOUY4NUQ0RjAwQjg1QUU0IC8qIEpTRXZl
bnQuaCAqLzsgfTsKLQkJQzZBNzAzMzI1QzlEMEI2Q0RDQkM0RDc3IC8qIEpTRXZlbnRUYXJnZXQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZBNzAz
MzI1QzlEMEI2Q0RDQkM0RDc4IC8qIEpTRXZlbnRUYXJnZXQuY3BwICovOyB9OwotCQk1RkM3REMy
NkNGRTI1NjMyMDBCODVBRTQgLyogSlNFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUZDN0RDMjZDRkUyNTYzMjAwQjg1QUU1IC8qIEpT
RXZlbnRUYXJnZXQuaCAqLzsgfTsKIAkJMTRGRkUzMUQwQUUxOTYzMzAwMTM2QkY1IC8qIEhUTUxG
cmFtZUVsZW1lbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNEZGRTMxQjBBRTE5NjMzMDAxMzZCRjUgLyogSFRNTEZyYW1lRWxlbWVudEJhc2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNEZG
RTMxRTBBRTE5NjMzMDAxMzZCRjUgLyogSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGRkUzMUMwQUUxOTYzMzAw
MTM2QkY1IC8qIEhUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcCAqLzsgfTsKIAkJMTVDNzcwOEQxMDBE
M0M2QjAwNUJBMjY3IC8qIFZhbGlkaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE1Qzc3MDhBMTAwRDNDNkEwMDVCQTI2NyAvKiBWYWxpZGl0
eVN0YXRlLmggKi87IH07CkBAIC0xNjc0LDYgKzE2NzEsNyBAQAogCQk1REY3RjVDMjBGMDFGOTJB
MDA1MjZCNEIgLyogQ1NTUHJvcGVydHlOYW1lcy5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2NTgwRUYwOUQxMkIyMDAwMEU2
MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuaCAqLzsgfTsKIAkJNURGRThGNTYwRDE2NDc3QjAwNzZF
OTM3IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0EzNzhCQTBEMTVGNjQyMDBCNzkzRDYgLyogU2NoZWR1bGVkQWN0
aW9uLmNwcCAqLzsgfTsKIAkJNURGRThGNTcwRDE2NDc3QzAwNzZFOTM3IC8qIFNjaGVkdWxlZEFj
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNB
Mzc4QkIwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovOyB9OworCQk1RkM3
REMyNkNGRTI1NjMyMDBCODVBRTQgLyogSlNFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUZDN0RDMjZDRkUyNTYzMjAwQjg1QUU1IC8q
IEpTRXZlbnRUYXJnZXQuaCAqLzsgfTsKIAkJNjI2Q0RFMEUxMTQwNDI0QzAwMUU1QTY4IC8qIFNw
YXRpYWxOYXZpZ2F0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDYyNkNERTBDMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlvbi5j
cHAgKi87IH07CiAJCTYyNkNERTBGMTE0MDQyNEMwMDFFNUE2OCAvKiBTcGF0aWFsTmF2aWdhdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjI2Q0RF
MEQxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjI4RDIxNEMxMjEzMUVEMTAwNTVE
Q0ZDIC8qIE5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2MjhEMjE0QjEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0Nv
bnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTkyNyw2ICsxOTI1LDggQEAKIAkJN0FGRDRGRjQxMTMyNzdCNjAwMzVCODgzIC8qIFNjcmlw
dERlYnVnTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdBRkQ0RkYzMTEzMjc3QjYwMDM1Qjg4MyAvKiBTY3JpcHREZWJ1Z0xpc3RlbmVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0UzM0NE
MDExMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFMzNDRDAwMTI3RjM0MEQwMEJFOEYxNyAvKiBQ
dXJnZVByaW9yaXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJN0UzN0VGMkUxMzM5MjA4ODAwQjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0Yu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UzN0VG
MkQxMzM5MjA4ODAwQjI5MjUwIC8qIFN1YnJlc291cmNlTG9hZGVyQ0YuY3BwICovOyB9OworCQk3
RTk5QUY1MTBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFOTlBRjUy
MEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuY3BwICovOyB9
OworCQk3RTk5QUY1MzBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNh
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTk5
QUY1NDBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0VFNjg0NUYx
MkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NEMxMkQyNkUzODAwRTc5NDE1IC8q
IEF1dGhlbnRpY2F0aW9uQ0YuY3BwICovOyB9OwogCQk3RUU2ODQ2MDEyRDI2RTM4MDBFNzk0MTUg
LyogQXV0aGVudGljYXRpb25DRi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0VFNjg0NEQxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ0Yu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RUU2
ODQ2MTEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDRFMTJEMjZFMzgw
MEU3OTQxNSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNzUzLDggKzM3NTMsNiBAQAogCQlBNzNG
OTVGRjEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBS
b3VuZGVkUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE3NDBCNUE1MTRDOTM1QUIwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc5MTRD
OTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCAqLzsgfTsKIAkJQTc0MEI1QTcx
NEM5MzVBRjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0RUE3ODE0QzkzNDg0MDBDOEY1QkYg
LyogSlNJbnRlcm5hbFNldHRpbmdzLmNwcCAqLzsgfTsKLQkJQTc0N0EwN0YxNTZCMjg2OTAwMjQz
RUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0N0EwN0QxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRl
eHRFbmFibGVkRmVhdHVyZXMuY3BwICovOyB9OwotCQlBNzQ3QTA4MDE1NkIyODY5MDAyNDNFRUQg
LyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc0N0EwN0UxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFi
bGVkRmVhdHVyZXMuaCAqLzsgfTsKIAkJQTc0QkI3NkIxM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2Vw
dGlvbkNvZGVQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFj
ZWhvbGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc0MTA3
NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzVFNDk3NzEwNzUyQUNCMDBDOUI4
OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwICovOyB9OwpAQCAtMzgwNiw2ICszODA0LDggQEAKIAkJQTdEMjBG
NjIxMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDIwRjYwMTA3RjQwNjkwMEE4MDM5
MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5jcHAgKi87IH07CiAJCUE3RDIwRjYzMTA3RjQwNjkwMEE4
MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTdEMjBGNjExMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3Rp
dmVJbmZvLmggKi87IH07CiAJCUE3RDIwRjZEMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2
ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
RDIwRjZCMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCAqLzsgfTsKKwkJQTdE
M0NBMTAxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlU3dpdGNoLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDNDQTBFMTU3REY4RTkw
MDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZVN3aXRjaC5jcHAgKi87IH07CisJCUE3RDNDQTExMTU3
REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZVN3aXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEM0NBMEYxNTdERjhFOTAwODYwQTk3IC8q
IENvbnRleHRGZWF0dXJlU3dpdGNoLmggKi87IH07CiAJCUE3RDZCMzQ5MEY2MTEwNDUwMEI3OUZE
MSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3RDZCMzQ3MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRM
b2FkZXIuaCAqLzsgfTsKIAkJQTdENkIzNEEwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlw
dExvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0Q2QjM0ODBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmNwcCAqLzsg
fTsKIAkJQTdEQkY4REQxMjc2OTE5QzAwNkI2MDA4IC8qIFRleHRDaGVja2luZ0hlbHBlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0RCRjhEQjEy
NzY5MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmNwcCAqLzsgfTsKQEAgLTU0MzEs
OCArNTQzMSw2IEBACiAJCUJDODI0MzJBMEQwQ0U4QTIwMDQ2MEM4RiAvKiBKU1NRTFRyYW5zYWN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzgy
NDMyNjBEMENFOEEyMDA0NjBDOEYgLyogSlNTUUxUcmFuc2FjdGlvbi5oICovOyB9OwogCQlCQzgy
NDNFODBEMENGRDc1MDA0NjBDOEYgLyogV2luZG93RmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4MjQzRTYwRDBDRkQ3NTAwNDYwQzhG
IC8qIFdpbmRvd0ZlYXR1cmVzLmNwcCAqLzsgfTsKIAkJQkM4MjQzRTkwRDBDRkQ3NTAwNDYwQzhG
IC8qIFdpbmRvd0ZlYXR1cmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzgyNDNFNzBEMENGRDc1MDA0NjBDOEYgLyogV2luZG93RmVhdHVyZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk3RTk5QUY1
MTBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFOTlBRjUyMEIxMzg0
NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuY3BwICovOyB9OwotCQk3
RTk5QUY1MzBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTk5QUY1NDBC
MTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM4NUYyM0QxNTE5MTVF
MDAwQkMxN0JFIC8qIFJlbmRlck5hbWVkRmxvd1RocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4NUYyM0MxNTE5MTVFMDAwQkMxN0JFIC8qIFJl
bmRlck5hbWVkRmxvd1RocmVhZC5oICovOyB9OwogCQlCQzhBRTM0RTEyRUEwOTZBMDBFQjNBRTYg
LyogU2Nyb2xsYWJsZUFyZWEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM4QUUzNEMxMkVBMDk2QTAwRUIzQUU2IC8qIFNjcm9sbGFibGVBcmVhLmNw
cCAqLzsgfTsKIAkJQkM4QUUzNEYxMkVBMDk2QTAwRUIzQUU2IC8qIFNjcm9sbGFibGVBcmVhLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzhBRTM0RDEy
RUEwOTZBMDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTczNCw2ICs1NzMyLDcgQEAKIAkJQzVENEFB
N0ExMTZCQUZCNjAwNjlDQTkzIC8qIEdseXBoTWV0cmljc01hcC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVENEFBNzgxMTZCQUZCNjAwNjlDQTkzIC8q
IEdseXBoTWV0cmljc01hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUM1RTlCNjc3MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdlRXZlbnREaXNw
YXRjaGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEM1RTlCNjc2MTA2OTdFMTMwMEM3QkIxQSAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcCAq
LzsgfTsKIAkJQzVFQkREODQxMDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNo
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1RUJE
RDgxMTA1RURERUMwMDU2ODE2RiAvKiBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmggKi87IH07CisJ
CUM2QTcwMzMyNUM5RDBCNkNEQ0JDNEQ3NyAvKiBKU0V2ZW50VGFyZ2V0LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2QTcwMzMyNUM5RDBCNkNEQ0JD
NEQ3OCAvKiBKU0V2ZW50VGFyZ2V0LmNwcCAqLzsgfTsKIAkJQzZCMzFCMkUxNEY4NDFGQjAwODlG
MjNGIC8qIFNjcm9sbGJhclRoZW1lQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDNjkxNjE0NzE0RjZFQkE3MDA0NjM3NUMgLyogU2Nyb2xsYmFy
VGhlbWVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlDNkQ3NEFENTA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExl
dmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkQ3
NEFEMzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmggKi87IH07
CiAJCUM2RDc0QUU0MDlBQTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZENzRB
RTMwOUFBMjkwQTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAgKi87IH07
CkBAIC03MjU2LDggKzcyNTUsNiBAQAogCQkxNEU4MzZEMjA5Rjg1MTIwMDBCODVBRTQgLyogRXZl
bnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTRFODM3ODMwOUY4NUQxQzAwQjg1QUU0IC8qIEpTRXZlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXZlbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxNEU4Mzc4RDA5Rjg1RDRGMDBCODVBRTQgLyogSlNFdmVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFdmVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlDNkE3MDMzMjVDOUQwQjZDRENCQzRENzggLyogSlNFdmVu
dFRhcmdldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFdmVu
dFRhcmdldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVGQzdEQzI2Q0ZFMjU2
MzIwMEI4NUFFNSAvKiBKU0V2ZW50VGFyZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0V2ZW50VGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0
RkZFMzFCMEFFMTk2MzMwMDEzNkJGNSAvKiBIVE1MRnJhbWVFbGVtZW50QmFzZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MRnJhbWVFbGVtZW50QmFzZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxNEZGRTMxQzBBRTE5NjMzMDAxMzZCRjUgLyogSFRNTEZy
YW1lRWxlbWVudEJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
NUM3NzA4OTEwMEQzQzZBMDA1QkEyNjcgLyogVmFsaWRpdHlTdGF0ZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gVmFsaWRpdHlTdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC04NzIwLDYgKzg3MTcsNyBAQAogCQk1REIxQkM2ODEwNzE1QTY0MDBFRkFBNDkgLyogVHJh
bnNmb3JtU291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRyYW5zZm9y
bVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1REIxQkM2OTEwNzE1QTY0
MDBFRkFBNDkgLyogVHJhbnNmb3JtU291cmNlTGlieHNsdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUcmFuc2Zvcm1Tb3VyY2VMaWJ4c2x0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURDODdFRUYxMTcxNkRGMjAwMUMwRTZEIC8qIEVtcHR5UHJv
dG9jb2xEZWZpbml0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbXB0
eVByb3RvY29sRGVmaW5pdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUZD
N0RDMjZDRkUyNTYzMjAwQjg1QUU1IC8qIEpTRXZlbnRUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXZlbnRUYXJnZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNjI2Q0RFMEMxMTQwNDI0QzAwMUU1QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNwYXRpYWxOYXZpZ2F0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjI2Q0RFMEQxMTQwNDI0QzAwMUU1
QTY4IC8qIFNwYXRpYWxOYXZpZ2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwYXRpYWxOYXZpZ2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYy
OEQyMTRCMTIxMzFFRDEwMDU1RENGQyAvKiBOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtOTAwNSw2ICs5MDAzLDggQEAKIAkJN0M2MDEyODA2MDA3OEJCNzBF
MzY3QTk1IC8qIEROU1Jlc29sdmVRdWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBETlNSZXNvbHZlUXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXJnZVByaW9yaXR5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdFMzdFRjJEMTMzOTIwODgwMEIyOTI1MCAvKiBTdWJyZXNvdXJjZUxv
YWRlckNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN1YnJlc291
cmNlTG9hZGVyQ0YuY3BwOyBwYXRoID0gY2YvU3VicmVzb3VyY2VMb2FkZXJDRi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdFOTlBRjUyMEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5k
b3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJN0U5OUFGNTQwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxs
b3dlZEluZGljYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaW5kb3dG
b2N1c0FsbG93ZWRJbmRpY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0VF
Njg0NEMxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ0YuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DRi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFRTY4NDREMTJEMjZFMzgwMEU3OTQxNSAvKiBBdXRoZW50
aWNhdGlvbkNGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0
aW9uQ0YuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0VFNjg0NEUxMkQyNkUzODAw
RTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMDg0Miw4ICsxMDg0Miw2IEBACiAJCUE3MjNGNzdBMTQ4NENBNEMwMDhD
NkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUm91bmRlZFJlY3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJl
Y3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUm91bmRlZFJlY3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTc0N0EwN0QxNTZCMjg2OTAwMjQzRUVEIC8qIENv
bnRleHRFbmFibGVkRmVhdHVyZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHA7IHBhdGggPSBnZW5lcmljL0NvbnRleHRF
bmFibGVkRmVhdHVyZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzQ3QTA3
RTE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmg7IHBhdGggPSBn
ZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb25Db2RlUGxhY2Vo
b2xkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5NzQxMDc1MkFDQjAw
QzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTc1RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA5MDEsNiArMTA4
OTksOCBAQAogCQlBN0QyMEY2MDEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTEFjdGl2ZUlu
Zm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0QyMEY2MTEwN0Y0MDY5MDBB
ODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNXZWJHTEFjdGl2ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTdEMjBGNkIxMDdGNDM4QjAwQTgwMzkyIC8qIFdlYkdMQWN0aXZlSW5mby5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJHTEFjdGl2ZUluZm8uaDsgcGF0aCA9IGNhbnZhcy9X
ZWJHTEFjdGl2ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdEM0NBMEUx
NTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlU3dpdGNoLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnRleHRGZWF0dXJlU3dpdGNoLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdEM0NBMEYxNTdERjhFOTAwODYwQTk3IC8qIENvbnRl
eHRGZWF0dXJlU3dpdGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRl
eHRGZWF0dXJlU3dpdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDZCMzQ3
MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gV29ya2VyU2NyaXB0TG9hZGVyLmg7IHBhdGggPSB3b3JrZXJzL1dv
cmtlclNjcmlwdExvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0Q2QjM0
ODBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdvcmtlclNjcmlwdExvYWRlci5jcHA7IHBhdGggPSB3
b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3REI0MTgxMTRDRTFGMEEwMEEyRTMxNiAvKiBTaGFkb3dSb290LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTaGFkb3dSb290LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEyNTczLDggKzEyNTczLDYgQEAKIAkJQkM4MjQzMjYwRDBDRThBMjAwNDYwQzhGIC8qIEpT
U1FMVHJhbnNhY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTUUxU
cmFuc2FjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzgyNDNFNjBEMENG
RDc1MDA0NjBDOEYgLyogV2luZG93RmVhdHVyZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2luZG93RmVhdHVyZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzgyNDNFNzBEMENGRDc1MDA0NjBDOEYgLyogV2luZG93RmVhdHVyZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2luZG93RmVhdHVyZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJN0U5OUFGNTIwQjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0Zv
Y3VzQWxsb3dlZEluZGljYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk3RTk5QUY1NDBCMTM4NDY0NjhGQjAxQTUgLyogV2luZG93Rm9jdXNBbGxvd2Vk
SW5kaWNhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd0ZvY3Vz
QWxsb3dlZEluZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzg1RjIz
QzE1MTkxNUUwMDBCQzE3QkUgLyogUmVuZGVyTmFtZWRGbG93VGhyZWFkLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlck5hbWVkRmxvd1RocmVhZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzg1RjIzRTE1MTkxODczMDBCQzE3QkUgLyogUmVuZGVyTmFt
ZWRGbG93VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bmRlck5hbWVkRmxvd1RocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
OEFFMzRDMTJFQTA5NkEwMEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxhYmxlQXJlYS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMjkwMyw2ICsxMjkwMSw3IEBACiAJCUM1Rjc2NUI0MTRFMUQ0
MTQwMDZDODk5QiAvKiBQYXN0ZWJvYXJkU3RyYXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGFzdGVib2FyZFN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUM1Rjc2NUJBMTRFMUVDRjQwMDZDODk5QiAvKiBQbGF0Zm9ybVBhc3RlYm9hcmRNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybVBhc3Rl
Ym9hcmRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2OTE2MTQ3MTRGNkVC
QTcwMDQ2Mzc1QyAvKiBTY3JvbGxiYXJUaGVtZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxiYXJUaGVtZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDNkE3MDMzMjVDOUQwQjZDRENCQzRENzggLyogSlNFdmVudFRhcmdldC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFdmVudFRhcmdldC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM2RDc0QUQzMDlBQTI4MkUwMDBCMEE1MiAv
KiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUM2RDc0QUUzMDlBQTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2
ZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTW9kaWZ5U2VsZWN0
aW9uTGlzdExldmVsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzZGMDhGQjkx
NDMwRkU4RjAwNjg1ODQ5IC8qIE11dGF0aW9uUmVjb3JkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE11dGF0aW9uUmVjb3JkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE5NzA5LDggKzE5NzA4LDYgQEAKIAkJCQlBNjIyQThGNTEyMkM0NEE2MDBB
Nzg1QjMgLyogQmluZGluZ1NlY3VyaXR5LmggKi8sCiAJCQkJQTYyMkE4RjYxMjJDNDRBNjAwQTc4
NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuY3BwICovLAogCQkJCUE2MjJBOEY3MTIyQzQ0QTYw
MEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi8sCi0JCQkJQTc0N0EwN0QxNTZCMjg2
OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwICovLAotCQkJCUE3NDdBMDdF
MTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmggKi8sCiAJCQkJQTYy
MkE4RjkxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi8sCiAJCQkpOwogCQkJ
bmFtZSA9IGdlbmVyaWM7CkBAIC0yMTE0Nyw2ICsyMTE0NCw4IEBACiAJCQkJRTFBMTQ3MDcxMTEw
MkIxNTAwRUVDMEYzIC8qIENvbnRhaW5lck5vZGVBbGdvcml0aG1zLmggKi8sCiAJCQkJOTc2MjdC
OEIxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCAqLywK
IAkJCQk5NzYyN0I4QzE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIuaCAqLywKKwkJCQlBN0QzQ0EwRTE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVT
d2l0Y2guY3BwICovLAorCQkJCUE3RDNDQTBGMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVh
dHVyZVN3aXRjaC5oICovLAogCQkJCTJFM0ZBQTA4MTFBMzZCRjEwMDU3NjYyNCAvKiBDcm9zc1Ro
cmVhZFRhc2suaCAqLywKIAkJCQk2MkNEMzI1NjExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZl
bnQuY3BwICovLAogCQkJCTYyQ0QzMjU3MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5o
ICovLApAQCAtMjE5OTcsNyArMjE5OTYsNyBAQAogCQkJCTQxRDAxNUNBMEY0QjVDNzEwMDRBNjYy
RiAvKiBDb250ZW50VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcwRDZFREIxMzg0NTQ1NTAw
NDQxMDNFIC8qIENvbnRlbnRUeXBlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzYyN0I4
RTE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCUE3NDdBMDgwMTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZl
YXR1cmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlBN0QzQ0ExMTE1N0RGOEU5MDA4NjBBOTcgLyog
Q29udGV4dEZlYXR1cmVTd2l0Y2guaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQjZBMEU2MEIwQkNB
NUMwMEY1MDI3QSAvKiBDb250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDY1QUQ0RjUw
QjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwNjVBRDRGNzBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggaW4g
SGVhZGVycyAqLywKQEAgLTI1NTE2LDcgKzI1NTE1LDcgQEAKIAkJCQk0MUQwMTVDQjBGNEI1Qzcx
MDA0QTY2MkYgLyogQ29udGVudFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzcwRDZFREEx
Mzg0NTQ1NTAwNDQxMDNFIC8qIENvbnRlbnRUeXBlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTk3NjI3QjhEMTRGQjNDRUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
ci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBNzQ3QTA3RjE1NkIyODY5MDAyNDNFRUQgLyogQ29u
dGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBN0QzQ0ExMDE1N0RG
OEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVTd2l0Y2guY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDY1QUQ0RjYwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwNjAyN0NCMzBCMUNDMDNEMDA4ODRCMkQgLyogQ29udGV4dE1l
bnVJdGVtTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNkEwRUEwQjBCQ0E4NDAwRjUwMjdB
IC8qIENvbnRleHRNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTI2MjJiMzczZWIyMTc4NWJjYzFjMDc4YmJl
YTIyOGQwM2JjMWNiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVy
ZXMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0g
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCi0KLSNpbmNsdWRlICJET01XaW5k
b3cuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVk
ZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgotI2luY2x1
ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0j
aWYgRU5BQkxFKFNIQURPV19ET00pCi1ib29sIENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRv
d0RPTUVuYWJsZWQoRE9NV2luZG93KiB3aW5kb3cpCi17Ci0gICAgaWYgKCF3aW5kb3cpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gd2luZG93LT5mcmFtZSgp
KQotICAgICAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+YWxsb3dTaGFkb3dE
T00oUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCgpKTsKLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCi1ib29sIENv
bnRleHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChEb2N1bWVudCogZG9jdW1l
bnQpCi17Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
IChGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIGZyYW1l
LT5sb2FkZXIoKS0+Y2xpZW50KCktPmFsbG93U3R5bGVTY29wZWQoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKCkpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLSNlbmRp
ZiAgIAotCi0jaWYgRU5BQkxFKFBBR0VfUE9QVVApCi1ib29sIENvbnRleHRFbmFibGVkRmVhdHVy
ZXM6OnBhZ2VQb3B1cEVuYWJsZWQoRE9NV2luZG93KiB3aW5kb3cpCi17Ci0gICAgaWYgKCF3aW5k
b3cpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gd2luZG93
LT5mcmFtZSgpKQotICAgICAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+YWxs
b3dQYWdlUG9wdXAoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5l
cmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZWE3ZmE0Yjc1ODVlYTc3YTcxOWJlM2I0ZDMzNDQ4YjI4MmY0OTk3Yi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDU4
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoK
LSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIENvbnRleHRFbmFibGVkRmVhdHVyZXNfaAotI2RlZmluZSBDb250ZXh0
RW5hYmxlZEZlYXR1cmVzX2gKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBET01XaW5k
b3c7Ci1jbGFzcyBEb2N1bWVudDsKLQotLy8gQSBjbGFzcyB0aGF0IHN0b3JlcyBzdGF0aWMgZW5h
YmxlcnMgZm9yIGFsbCBleHBlcmltZW50YWwgZmVhdHVyZXMuIE5vdGUgdGhhdAotLy8gdGhlIG1l
dGhvZCBuYW1lcyBtdXN0IGxpbmUgdXAgd2l0aCB0aGUgSmF2YVNjcmlwdCBtZXRob2QgdGhleSBl
bmFibGUgZm9yIGNvZGUKLS8vIGdlbmVyYXRpb24gdG8gd29yayBwcm9wZXJseS4KLQotY2xhc3Mg
Q29udGV4dEVuYWJsZWRGZWF0dXJlcyB7Ci1wdWJsaWM6Ci0jaWYgRU5BQkxFKFNIQURPV19ET00p
Ci0gICAgc3RhdGljIGJvb2wgc2hhZG93RE9NRW5hYmxlZChET01XaW5kb3cqKTsKLSNlbmRpZgot
I2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCi0gICAgc3RhdGljIGJvb2wgc3R5bGVTY29wZWRFbmFi
bGVkKERvY3VtZW50Kik7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKLSAgICBzdGF0
aWMgYm9vbCBwYWdlUG9wdXBFbmFibGVkKERPTVdpbmRvdyopOwotI2VuZGlmCi19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBDb250ZXh0RW5hYmxlZEZlYXR1cmVzX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0KaW5kZXggNjFiOTdiZTNkOTZlM2E5YjkwZWM0YmM0YmVjNTkwZWI3NWU3YWVjYS4uMjFlNmIz
ZDE1MDkzMDU5NzZjM2MwNmIyNDhiNTVjNmRjNGIyODkxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTI0MTcsNyArMjQx
Nyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgcHVzaChAaW1wbEZpeGVkSGVh
ZGVyLCBHZW5lcmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRlcigkZGF0YU5vZGUpKTsKIAog
ICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiKTsKLSAgICBB
ZGRUb0ltcGxJbmNsdWRlcygiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIik7CisgICAgQWRkVG9J
bXBsSW5jbHVkZXMoIkNvbnRleHRGZWF0dXJlU3dpdGNoLmgiKTsKICAgICBBZGRUb0ltcGxJbmNs
dWRlcygiVjhQcm94eS5oIik7CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4QmluZGluZy5oIik7
CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4QmluZGluZ1N0YXRlLmgiKTsKQEAgLTI4NjYsNyAr
Mjg2Niw3IEBAIEVORAogICAgICAgICAgICAgbXkgJGVuYWJsZUZ1bmN0aW9uID0gR2V0Q29udGV4
dEVuYWJsZUZ1bmN0aW9uKCRydW50aW1lQXR0ci0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgIG15
ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFs
U3RyaW5nKCRydW50aW1lQXR0ci0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiXG4jaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0
cmluZzsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChDb250ZXh0RW5h
YmxlZEZlYXR1cmVzOjoke2VuYWJsZUZ1bmN0aW9ufShpbXBsKSkge1xuIik7CisgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoQ29udGV4dEZlYXR1cmVTd2l0Y2g6OiR7ZW5h
YmxlRnVuY3Rpb259KGltcGwtPmRvY3VtZW50KCkpKSB7XG4iKTsKICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBhdHRy
RGF0YSA9XFxcbiIpOwogICAgICAgICAgICAgR2VuZXJhdGVTaW5nbGVCYXRjaGVkQXR0cmlidXRl
KCRpbnRlcmZhY2VOYW1lLCAkcnVudGltZUF0dHIsICI7IiwgIiAgICAiKTsKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5j
cHAKaW5kZXggZjdhNGM2YjQwYThjYjhjOTkzNDdkMWUxYzU4ZTczNjE0MzA5MjhkMy4uOWY3MTNl
N2E4MzNkMzFkZjM5OWY4N2FiODA1MzM0MTcwZmUxOWFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcApAQCAtNTIsNyArNTIsNyBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgi
CiAjaW5jbHVkZSAiQ2FsY3VsYXRpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNvbnRlbnREYXRhLmgi
Ci0jaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIkNvbnRleHRG
ZWF0dXJlU3dpdGNoLmgiCiAjaW5jbHVkZSAiQ291bnRlci5oIgogI2luY2x1ZGUgIkNvdW50ZXJD
b250ZW50LmgiCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgpAQCAtNDkwLDcgKzQ5MCw3IEBAIGNv
bnN0IENvbnRhaW5lck5vZGUqIFN0eWxlUmVzb2x2ZXI6OmRldGVybWluZVNjb3BlKGNvbnN0IENT
U1N0eWxlU2hlZXQqIHNoZWV0KQogewogICAgIEFTU0VSVChzaGVldCk7CiAKLSAgICBpZiAoIUNv
bnRleHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSkKKyAg
ICBpZiAoIUNvbnRleHRGZWF0dXJlU3dpdGNoOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQo
KSkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgTm9kZSogb3duZXJOb2RlID0gc2hlZXQtPm93
bmVyTm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJl
U3dpdGNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZVN3aXRjaC5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGUzZjEyZTJjZDhlOTk3NzM4MTFkNDRjZmVlZjc1NWVjZDM2OGQ1MgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZVN3aXRjaC5j
cHAKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29u
dGV4dEZlYXR1cmVTd2l0Y2guaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
UGFnZS5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCogQ29udGV4dEZlYXR1cmVT
d2l0Y2hDbGllbnQ6OmVtcHR5KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbnRleHRG
ZWF0dXJlU3dpdGNoQ2xpZW50LCBlbXB0eSwgKCkpOworICAgIHJldHVybiAmZW1wdHk7Cit9CisK
K2NvbnN0IEF0b21pY1N0cmluZyYgQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnN1cHBsZW1lbnROYW1l
KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZSwgKCJDb250
ZXh0RmVhdHVyZVN3aXRjaCIpKTsKKyAgICByZXR1cm4gbmFtZTsKK30KKwordm9pZCBDb250ZXh0
RmVhdHVyZVN3aXRjaDo6cHJvdmlkZVRvKERvY3VtZW50KiBkb2N1bWVudCwgUGFnZSogcGFnZSkK
K3sKKyAgICBDb250ZXh0RmVhdHVyZVN3aXRjaCogcHJvdmlkZWQgPSBzdGF0aWNfY2FzdDxDb250
ZXh0RmVhdHVyZVN3aXRjaCo+KFN1cHBsZW1lbnQ8UGFnZT46OmZyb20ocGFnZSwgc3VwcGxlbWVu
dE5hbWUoKSkpOworICAgIGlmICghcHJvdmlkZWQpCisgICAgICAgIHJldHVybjsKKyAgICBkb2N1
bWVudC0+c2V0RmVhdHVyZVN3aXRjaChwcm92aWRlZCk7Cit9CisKK0NvbnRleHRGZWF0dXJlU3dp
dGNoKiBDb250ZXh0RmVhdHVyZVN3aXRjaDo6ZGVmYXVsdFN3aXRjaCgpCit7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChDb250ZXh0RmVhdHVyZVN3aXRjaCwgaW5zdGFuY2UsIChDb250ZXh0RmVh
dHVyZVN3aXRjaENsaWVudDo6ZW1wdHkoKSkpOworICAgIHJldHVybiAmaW5zdGFuY2U7Cit9CisK
K2Jvb2wgQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnNoYWRvd0RPTUVuYWJsZWQoRG9jdW1lbnQqIGRv
Y3VtZW50KQoreworI2lmIEVOQUJMRShTSEFET1dfRE9NKQorICAgIGlmICghZG9jdW1lbnQpCisg
ICAgICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCk7
CisgICAgcmV0dXJuIGRvY3VtZW50LT5mZWF0dXJlU3dpdGNoKCktPnNoYWRvd0RPTUVuYWJsZWQo
ZG9jdW1lbnQsIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSk7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShkb2N1bWVudCk7CisgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCit9CisKK2Jvb2wgQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnN0eWxlU2NvcGVkRW5hYmxlZChE
b2N1bWVudCogZG9jdW1lbnQpCit7CisjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKKyAgICBpZiAo
IWRvY3VtZW50KQorICAgICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c3R5bGVT
Y29wZWRFbmFibGVkKCk7CisgICAgcmV0dXJuIGRvY3VtZW50LT5mZWF0dXJlU3dpdGNoKCktPnN0
eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCwgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c3R5bGVT
Y29wZWRFbmFibGVkKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOworICAg
IHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCitib29sIENvbnRleHRGZWF0dXJlU3dpdGNoOjpw
YWdlUG9wdXBFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyNpZiBFTkFCTEUoUEFHRV9Q
T1BVUCkKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIGRvY3VtZW50LT5mZWF0dXJlU3dpdGNoKCktPnBhZ2VQb3B1cEVuYWJsZWQoZG9jdW1lbnQs
IGZhbHNlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKK30KKwordm9pZCBwcm92aWRlQ29udGV4dEZlYXR1cmVTd2l0Y2hUbyhQ
YWdlKiBwYWdlLCBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCogY2xpZW50KQoreworICAgIFN1
cHBsZW1lbnQ8UGFnZT46OnByb3ZpZGVUbyhwYWdlLCBDb250ZXh0RmVhdHVyZVN3aXRjaDo6c3Vw
cGxlbWVudE5hbWUoKSwgQ29udGV4dEZlYXR1cmVTd2l0Y2g6OmNyZWF0ZShjbGllbnQpKTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlU3dpdGNo
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVTd2l0Y2guaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xMGEwYzYzZGE5N2RlODYzNDhlZWQ0OGM4MTdmYzdkMDFlM2E3Mzk0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlU3dpdGNoLmgKQEAgLTAsMCAr
MSw5NyBAQAorCisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBDb250ZXh0RmVhdHVyZVN3aXRjaF9oCisjZGVmaW5lIENvbnRl
eHRGZWF0dXJlU3dpdGNoX2gKKworI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDb250
ZXh0RmVhdHVyZVN3aXRjaDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgUGFnZTsKKworY2xhc3Mg
Q29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnQgeworcHVibGljOgorICAgIHN0YXRpYyBDb250ZXh0
RmVhdHVyZVN3aXRjaENsaWVudCogZW1wdHkoKTsKKworICAgIHZpcnR1YWwgfkNvbnRleHRGZWF0
dXJlU3dpdGNoQ2xpZW50KCkgeyB9CisgICAgdmlydHVhbCBib29sIHNoYWRvd0RPTUVuYWJsZWQo
RG9jdW1lbnQqLCBib29sIGRlZmF1bHRWYWx1ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9Cisg
ICAgdmlydHVhbCBib29sIHN0eWxlU2NvcGVkRW5hYmxlZChEb2N1bWVudCosIGJvb2wgZGVmYXVs
dFZhbHVlKSB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcGFnZVBv
cHVwRW5hYmxlZChEb2N1bWVudCosIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBkZWZhdWx0
VmFsdWU7IH0KK307CisKK2NsYXNzIENvbnRleHRGZWF0dXJlU3dpdGNoIDogcHVibGljIFN1cHBs
ZW1lbnQ8UGFnZT4geworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1
cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIHZvaWQgcHJvdmlkZVRvKERvY3VtZW50KiwgUGFn
ZSopOworICAgIHN0YXRpYyBDb250ZXh0RmVhdHVyZVN3aXRjaCogZGVmYXVsdFN3aXRjaCgpOwor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPENvbnRleHRGZWF0dXJlU3dpdGNoPiBjcmVhdGUoQ29udGV4
dEZlYXR1cmVTd2l0Y2hDbGllbnQqKTsKKworICAgIHN0YXRpYyBib29sIHNoYWRvd0RPTUVuYWJs
ZWQoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgYm9vbCBzdHlsZVNjb3BlZEVuYWJsZWQoRG9jdW1l
bnQqKTsKKyAgICBzdGF0aWMgYm9vbCBwYWdlUG9wdXBFbmFibGVkKERvY3VtZW50Kik7CisKKyAg
ICBib29sIHNoYWRvd0RPTUVuYWJsZWQoRG9jdW1lbnQqLCBib29sKSBjb25zdDsKKyAgICBib29s
IHN0eWxlU2NvcGVkRW5hYmxlZChEb2N1bWVudCosIGJvb2wpIGNvbnN0OworICAgIGJvb2wgcGFn
ZVBvcHVwRW5hYmxlZChEb2N1bWVudCosIGJvb2wpIGNvbnN0OworCitwcml2YXRlOgorICAgIGV4
cGxpY2l0IENvbnRleHRGZWF0dXJlU3dpdGNoKENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50KiBj
bGllbnQpCisgICAgICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgIHsgfQorCisgICAgQ29udGV4
dEZlYXR1cmVTd2l0Y2hDbGllbnQqIG1fY2xpZW50OworfTsKKwordm9pZCBwcm92aWRlQ29udGV4
dEZlYXR1cmVTd2l0Y2hUbyhQYWdlKiwgQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnQqKTsKKwor
aW5saW5lIFBhc3NPd25QdHI8Q29udGV4dEZlYXR1cmVTd2l0Y2g+IENvbnRleHRGZWF0dXJlU3dp
dGNoOjpjcmVhdGUoQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnQqIGNsaWVudCkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IENvbnRleHRGZWF0dXJlU3dpdGNoKGNsaWVudCkpOworfQorCitp
bmxpbmUgYm9vbCBDb250ZXh0RmVhdHVyZVN3aXRjaDo6c2hhZG93RE9NRW5hYmxlZChEb2N1bWVu
dCogZG9jdW1lbnQsIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdAoreworICAgIHJldHVybiBtX2Ns
aWVudC0+c2hhZG93RE9NRW5hYmxlZChkb2N1bWVudCwgZGVmYXVsdFZhbHVlKTsKK30KKworaW5s
aW5lIGJvb2wgQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnN0eWxlU2NvcGVkRW5hYmxlZChEb2N1bWVu
dCogZG9jdW1lbnQsIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdAoreworICAgIHJldHVybiBtX2Ns
aWVudC0+c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50LCBkZWZhdWx0VmFsdWUpOworfQorCitp
bmxpbmUgYm9vbCBDb250ZXh0RmVhdHVyZVN3aXRjaDo6cGFnZVBvcHVwRW5hYmxlZChEb2N1bWVu
dCogZG9jdW1lbnQsIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdAoreworICAgIHJldHVybiBtX2Ns
aWVudC0+cGFnZVBvcHVwRW5hYmxlZChkb2N1bWVudCwgZGVmYXVsdFZhbHVlKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ29udGV4dEZlYXR1cmVTd2l0Y2hfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggMzIwYWVmOTgyMDlhNWViODRhN2U3NTI4
ZmNiM2I1NjQ5Njg1ODc3OC4uYjJmNDA5NTM1OWNlMzJhMmVhODIzMGRiOGVjNzFlYjcwNTgxMDIy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSAiQ29udGFpbmVyTm9kZS5jcHAiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZUFsZ29yaXRo
bXMuY3BwIgogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCIKKyNpbmNs
dWRlICJDb250ZXh0RmVhdHVyZVN3aXRjaC5jcHAiCiAjaW5jbHVkZSAiQ3VzdG9tRXZlbnQuY3Bw
IgogI2luY2x1ZGUgIkRPTUNvcmVFeGNlcHRpb24uY3BwIgogI2luY2x1ZGUgIkRPTUltcGxlbWVu
dGF0aW9uLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4
IGRkMTk3YzZlMjE3ZDcxYjU4NGRmNDQ0MTg5YmM1YjQyOGM2ZmYzZTcuLjg3NGMwNDFlZmU2ZTQw
YWFmYzUwZTllZDQ5ZGNiMjBiZWVmZjEyNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxl
bWVudGF0aW9uLmNwcApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ29udGVudFR5cGUu
aCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVT
d2l0Y2guaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtMjk1LDYgKzI5Niw4IEBAIFBhc3NSZWZQ
dHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25zdCBTdHJp
bmcmIG5hbWVzcGFjZVVSCiAgICAgICAgIGRvYyA9IERvY3VtZW50OjpjcmVhdGUoMCwgS1VSTCgp
KTsKIAogICAgIGRvYy0+c2V0U2VjdXJpdHlPcmlnaW4obV9kb2N1bWVudC0+c2VjdXJpdHlPcmln
aW4oKSk7CisgICAgZG9jLT5zZXRGZWF0dXJlU3dpdGNoKG1fZG9jdW1lbnQtPmZlYXR1cmVTd2l0
Y2goKSk7CisgICAgQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnByb3ZpZGVUbyhkb2MuZ2V0KCksIG1f
ZG9jdW1lbnQtPnBhZ2UoKSk7CiAKICAgICBSZWZQdHI8Tm9kZT4gZG9jdW1lbnRFbGVtZW50Owog
ICAgIGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpIHsKQEAgLTM3Miw2ICszNzUsNyBAQCBQ
YXNzUmVmUHRyPEhUTUxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZUhUTUxEb2N1
bWVudChjb25zdCBTdHJpbmcmIHRpdAogICAgIGQtPndyaXRlKCI8IWRvY3R5cGUgaHRtbD48aHRt
bD48Ym9keT48L2JvZHk+PC9odG1sPiIpOwogICAgIGQtPnNldFRpdGxlKHRpdGxlKTsKICAgICBk
LT5zZXRTZWN1cml0eU9yaWdpbihtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpKTsKKyAgICBk
LT5zZXRGZWF0dXJlU3dpdGNoKG1fZG9jdW1lbnQtPmZlYXR1cmVTd2l0Y2goKSk7CiAgICAgcmV0
dXJuIGQucmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBkNjI2ZWYw
OWUyNDdiYjFlODdmYjZjOWQxMDQ5M2ExN2EzYzRhNDg1Li5jNzU1Mjc3NWY1MjRmMjY1ZmI1ZTZh
MTJmOTZjYmFmZDkzMjI5ZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQ0LDYgKzQ0
LDcgQEAKICNpbmNsdWRlICJDb21tZW50LmgiCiAjaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1
ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlU3dp
dGNoLmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRp
b24uaCIKICNpbmNsdWRlICJET01TZWxlY3Rpb24uaCIKQEAgLTUwMiw2ICs1MDMsOCBAQCBEb2N1
bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRN
TCwgYm9vbCBpc0hUTUwpCiAgICAgbV9pZ25vcmVBdXRvZm9jdXMgPSBmYWxzZTsKIAogICAgIG1f
ZnJhbWUgPSBmcmFtZTsKKyAgICBpZiAobV9mcmFtZSkKKyAgICAgICAgQ29udGV4dEZlYXR1cmVT
d2l0Y2g6OnByb3ZpZGVUbyh0aGlzLCBtX2ZyYW1lLT5wYWdlKCkpOwogCiAgICAgLy8gV2UgZGVw
ZW5kIG9uIHRoZSB1cmwgZ2V0dGluZyBpbW1lZGlhdGVseSBzZXQgaW4gc3ViZnJhbWVzLCBidXQg
d2UKICAgICAvLyBhbHNvIGRlcGVuZCBvbiB0aGUgdXJsIE5PVCBnZXR0aW5nIGltbWVkaWF0ZWx5
IHNldCBpbiBvcGVuZWQgd2luZG93cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCmluZGV4IGEwNmZm
ZDQ1ZjM5ZjIwMzMyMzY3M2JiMmNkMWMzN2NjOTk0MGYzOWEuLmVhMzEzNTExYTE5ZmNmMTUwODVj
MDU5YmMzMWVkMWMxMzE0ZGFkMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcApAQCAtMjcsNyAr
MjcsNyBAQAogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uaCIKLSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCisj
aW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2guaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJJbmxpbmVUZXh0Qm94LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtODIs
NyArODIsNyBAQCBQb3NpdGlvbjo6UG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBhbmNob3JOb2Rl
LCBMZWdhY3lFZGl0aW5nT2Zmc2V0IG9mZnNldCkKICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9z
aXRpb24odHJ1ZSkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBBU1NFUlQoKG1fYW5j
aG9yTm9kZSAmJiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKG1fYW5j
aG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgIEFTU0VSVCgobV9hbmNob3JO
b2RlICYmIENvbnRleHRGZWF0dXJlU3dpdGNoOjpzaGFkb3dET01FbmFibGVkKG1fYW5jaG9yTm9k
ZS0+ZG9jdW1lbnQoKSkpCiAgICAgICAgICAgIHx8ICFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9y
Tm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2Vsc2UKICAgICBBU1NFUlQoIW1fYW5jaG9yTm9kZSB8
fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CkBAIC05Niw3ICs5Niw3IEBAIFBvc2l0
aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IGFuY2hvck5vZGUsIEFuY2hvclR5cGUgYW5j
aG9yVHlwZSkKICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFsc2UpCiB7CiAjaWYg
RU5BQkxFKFNIQURPV19ET00pCi0gICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYgQ29udGV4dEVu
YWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUtPmRvY3VtZW50KCkt
PmRvbVdpbmRvdygpKSkKKyAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBDb250ZXh0RmVhdHVy
ZVN3aXRjaDo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUtPmRvY3VtZW50KCkpKQogICAg
ICAgICAgICB8fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgp
KTsKICNlbHNlCiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNT
aGFkb3dSb290KCkpOwpAQCAtMTE0LDcgKzExNCw3IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNz
UmVmUHRyPE5vZGU+IGFuY2hvck5vZGUsIGludCBvZmZzZXQsIEFuY2hvclR5cGUgYW5jaG9yVHlw
CiAgICAgLCBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKGZhbHNlKQogewogI2lmIEVOQUJMRShT
SEFET1dfRE9NKQotICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIENvbnRleHRFbmFibGVkRmVh
dHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpLT5kb21XaW5k
b3coKSkpCisgICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYgQ29udGV4dEZlYXR1cmVTd2l0Y2g6
OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpKSkKICAgICAgICAgICAg
fHwgIW1fYW5jaG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZS5n
ZXQoKSkgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2Vsc2UKICAgICBBU1NF
UlQoIW1fYW5jaG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZS5n
ZXQoKSkgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwpAQCAtODU3LDcgKzg1Nyw3
IEBAIENvbnRhaW5lck5vZGUqIFBvc2l0aW9uOjpmaW5kUGFyZW50KGNvbnN0IE5vZGUqIG5vZGUp
CiAgICAgLy8gRklYTUU6IFNlZSBodHRwOi8vd2ViLnVnLzgyNjk3CiAKICNpZiBFTkFCTEUoU0hB
RE9XX0RPTSkKLSAgICBpZiAoQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxl
ZChub2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAgaWYgKENvbnRleHRGZWF0dXJl
U3dpdGNoOjpzaGFkb3dET01FbmFibGVkKG5vZGUtPmRvY3VtZW50KCkpKQogICAgICAgICByZXR1
cm4gbm9kZS0+cGFyZW50Tm9kZSgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5
Q29udGV4dC5jcHAKaW5kZXggODAwMjIwMWMxZTAzNDViZTJmMzcyMDM0Mzc2YmUxNmMyMzVjMTg5
NC4uNmY2ODc4YzExNTA3YzU4OGZmNzk2MmI3YzMwMGU2M2Q0NTI1MGMwMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJT
ZWN1cml0eUNvbnRleHQuaCIKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgor
I2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlU3dpdGNoLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklk
aW9tcy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKQEAgLTM3LDYgKzM4LDcgQEAg
U2VjdXJpdHlDb250ZXh0OjpTZWN1cml0eUNvbnRleHQoKQogICAgIDogbV9tYXlEaXNwbGF5U2Vh
bWxlc3NXaXRoUGFyZW50KGZhbHNlKQogICAgICwgbV9oYXZlSW5pdGlhbGl6ZWRTZWN1cml0eU9y
aWdpbihmYWxzZSkKICAgICAsIG1fc2FuZGJveEZsYWdzKFNhbmRib3hOb25lKQorICAgICwgbV9m
ZWF0dXJlU3dpdGNoKENvbnRleHRGZWF0dXJlU3dpdGNoOjpkZWZhdWx0U3dpdGNoKCkpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuaAppbmRleCBmYzlkZjNlMzQyNWUwNjI4
NDllMGFkYzg3MTRiZWY5Y2FkNjAxN2U2Li5lOGI2NjQ4ZDk4ZWI5NjkxOGJkN2FlMDI1NDFkMDQz
MjQ4ZDYwZGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5oCkBAIC0zNSw2ICsz
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2VjdXJpdHlPcmlnaW47CiBjbGFz
cyBDb250ZW50U2VjdXJpdHlQb2xpY3k7CitjbGFzcyBDb250ZXh0RmVhdHVyZVN3aXRjaDsKIGNs
YXNzIEtVUkw7CiAKIGVudW0gU2FuZGJveEZsYWcgewpAQCAtNTksNiArNjAsNyBAQCBwdWJsaWM6
CiAgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9z
ZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIFNhbmRib3hGbGFncyBzYW5kYm94RmxhZ3MoKSBj
b25zdCB7IHJldHVybiBtX3NhbmRib3hGbGFnczsgfQogICAgIENvbnRlbnRTZWN1cml0eVBvbGlj
eSogY29udGVudFNlY3VyaXR5UG9saWN5KCkgeyByZXR1cm4gbV9jb250ZW50U2VjdXJpdHlQb2xp
Y3kuZ2V0KCk7IH0KKyAgICBDb250ZXh0RmVhdHVyZVN3aXRjaCogZmVhdHVyZVN3aXRjaCgpIHsg
cmV0dXJuIG1fZmVhdHVyZVN3aXRjaDsgfQogCiAgICAgYm9vbCBpc1NlY3VyZVRyYW5zaXRpb25U
byhjb25zdCBLVVJMJikgY29uc3Q7CiAKQEAgLTY5LDYgKzcxLDcgQEAgcHVibGljOgogICAgIC8v
IE5vdGU6IEl0IGlzIGRhbmdlcm91cyB0byBjaGFuZ2UgdGhlIHNlY3VyaXR5IG9yaWdpbiBvZiBh
IHNjcmlwdCBjb250ZXh0CiAgICAgLy8gICAgICAgdGhhdCBhbHJlYWR5IGNvbnRhaW5zIGNvbnRl
bnQuCiAgICAgdm9pZCBzZXRTZWN1cml0eU9yaWdpbihQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
Pik7CisgICAgdm9pZCBzZXRGZWF0dXJlU3dpdGNoKENvbnRleHRGZWF0dXJlU3dpdGNoKiBmZWF0
dXJlKSB7IG1fZmVhdHVyZVN3aXRjaCA9IGZlYXR1cmU7IH0KIAogICAgIHN0YXRpYyBTYW5kYm94
RmxhZ3MgcGFyc2VTYW5kYm94UG9saWN5KGNvbnN0IFN0cmluZyYgcG9saWN5KTsKIApAQCAtOTIs
NiArOTUsNyBAQCBwcml2YXRlOgogICAgIFNhbmRib3hGbGFncyBtX3NhbmRib3hGbGFnczsKICAg
ICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fc2VjdXJpdHlPcmlnaW47CiAgICAgT3duUHRyPENv
bnRlbnRTZWN1cml0eVBvbGljeT4gbV9jb250ZW50U2VjdXJpdHlQb2xpY3k7CisgICAgQ29udGV4
dEZlYXR1cmVTd2l0Y2gqIG1fZmVhdHVyZVN3aXRjaDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggZDcwYjkwMDU5ZGJkZWViZTFkNzA3
YmIzMzQ2MDdkMzY4YWUzN2ExMi4uYWQ0MzFiZTUwZWYwNzcxY2E3MTk3MTcwOGJkYWE2ZGZhM2Vm
OTZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNs
dWRlICJUcmVlU2NvcGUuaCIKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKLSNpbmNsdWRl
ICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0
Y2guaCIKICNpbmNsdWRlICJET01TZWxlY3Rpb24uaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTUwLDcgKzE1MCw3IEBAIERPTVNlbGVjdGlvbiog
VHJlZVNjb3BlOjpnZXRTZWxlY3Rpb24oKSBjb25zdAogICAgIC8vIGFzIGEgY29udGFpbmVyLiBJ
dCBpcyBub3cgZW5hYmxlZCBvbmx5IGlmIHJ1bnRpbWUgU2hhZG93IERPTSBmZWF0dXJlIGlzIGVu
YWJsZWQuCiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MjY5NwogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIGlmIChDb250ZXh0RW5hYmxlZEZl
YXR1cmVzOjpzaGFkb3dET01FbmFibGVkKHJvb3ROb2RlKCktPmRvY3VtZW50KCktPmRvbVdpbmRv
dygpKSkgeworICAgIGlmIChDb250ZXh0RmVhdHVyZVN3aXRjaDo6c2hhZG93RE9NRW5hYmxlZChy
b290Tm9kZSgpLT5kb2N1bWVudCgpKSkgewogICAgICAgICBtX3NlbGVjdGlvbiA9IERPTVNlbGVj
dGlvbjo6Y3JlYXRlKHRoaXMpOwogICAgICAgICByZXR1cm4gbV9zZWxlY3Rpb24uZ2V0KCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAppbmRleCBhNmNiMDQyZGZlMDI2YzU4ODRhZjcw
MDdjMGE2MzZiMTNhYzkxODVmLi45OWExZWIyMmEwMmIxYjE1ODhhNTllY2FiNjFmNjhlZjhhODUw
MjVjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbApAQCAtMzc4LDcgKzM3OCw3IEBAIEVORAog
ICAgIG15ICRjb250ZXh0Q29uZGl0aW9uYWwgPSAkZW5hYmxlZFRhZ3N7JHRhZ05hbWV9e2NvbnRl
eHRDb25kaXRpb25hbH07CiAgICAgaWYgKCRjb250ZXh0Q29uZGl0aW9uYWwpIHsKICAgICAgICAg
cHJpbnQgRiA8PEVORAotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6JHtjb250ZXh0
Q29uZGl0aW9uYWx9RW5hYmxlZChkb2N1bWVudC0+ZG9tV2luZG93KCkpKQorICAgIGlmICghQ29u
dGV4dEZlYXR1cmVTd2l0Y2g6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQoZG9jdW1lbnQp
KQogICAgICAgICByZXR1cm4gMDsKIEVORAogOwpAQCAtODA0LDcgKzgwNCw3IEBAIHByaW50Q29u
ZGl0aW9uYWxFbGVtZW50SW5jbHVkZXMoJEYpOwogCiBwcmludCBGIDw8RU5ECiAKLSNpbmNsdWRl
ICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0
Y2guaCIKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkgfHwgRU5BQkxFKFZJREVPKQog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0xMDEzLDcgKzEwMTMsNyBAQCBFTkQKICAgICAgICAg
ICAgICAgICBwcmludCBGIDw8RU5ECiBzdGF0aWMgSlNET01XcmFwcGVyKiBjcmVhdGUke0pTSW50
ZXJmYWNlTmFtZX1XcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUGFzc1JlZlB0cjwkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudD4gZWxl
bWVudCkKIHsKLSAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7Y29udGV4dENvbmRp
dGlvbmFsfUVuYWJsZWQoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKSB7CisgICAg
aWYgKCFDb250ZXh0RmVhdHVyZVN3aXRjaDo6JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChl
bGVtZW50LT5kb2N1bWVudCgpKSkgewogICAgICAgICBBU1NFUlQoIWVsZW1lbnQgfHwgZWxlbWVu
dC0+aXMkcGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9KCkpOwogICAgICAgICByZXR1
cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgJHBhcmFtZXRlcnN7ZmFs
bGJhY2tJbnRlcmZhY2VOYW1lfSwgZWxlbWVudC5nZXQoKSk7CiAgICAgfQpAQCAtMTA1MCw3ICsx
MDUwLDcgQEAgRU5ECiAgICAgICAgICAgICAgICAgcHJpbnQgRiA8PEVORAogc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBjcmVhdGUke0pTSW50ZXJmYWNlTmFtZX1XcmFwcGVyKCRwYXJhbWV0
ZXJze25hbWVzcGFjZX1FbGVtZW50KiBlbGVtZW50LCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsK
LSAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVu
YWJsZWQoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgIGlmICghQ29udGV4
dEZlYXR1cmVTd2l0Y2g6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQoZWxlbWVudC0+ZG9j
dW1lbnQoKSkpCiAgICAgICAgIHJldHVybiBWOCRwYXJhbWV0ZXJze2ZhbGxiYWNrSW50ZXJmYWNl
TmFtZX06OndyYXAodG8kcGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9KGVsZW1lbnQp
LCBpc29sYXRlKTsKICAgICByZXR1cm4gdG9WOChzdGF0aWNfY2FzdDwke0pTSW50ZXJmYWNlTmFt
ZX0qPihlbGVtZW50KSwgaXNvbGF0ZSk7CiB9CkBAIC0xMTExLDcgKzExMTEsNyBAQCBzdWIgcHJp
bnRXcmFwcGVyRmFjdG9yeUNwcEZpbGUKIAogICAgIHByaW50IEYgPDxFTkQKIAotI2luY2x1ZGUg
IkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZVN3aXRj
aC5oIgogCiAjaWYgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIkRvY3VtZW50LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggOWFlN2U3MmMyZjI2ZTk3NDBhZDRhNWYwY2IyNGIxOTk0
NDhkODA3MS4uZjM2NzExNDQ1OTgwNDYwNjkxMTczMjY0OTc3YjVhMjZmODNkYzA4MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkNTU1Zh
bHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNoaWxkTGlz
dE11dGF0aW9uU2NvcGUuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZVN3aXRjaC5oIgogI2lu
Y2x1ZGUgIkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCkBAIC03MzAsNiArNzMxLDcgQEAgUGFz
c1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXBXaXRoQ29u
dGV4dChEb2N1bWVudCogZG9jdW0KIAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiB0YWdn
ZWRGcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cChkb2N1bWVudCwgdGFnZ2VkTWFy
a3VwLnRvU3RyaW5nKCksIGJhc2VVUkwsIHNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIFJlZlB0
cjxEb2N1bWVudD4gdGFnZ2VkRG9jdW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlKDAsIEtVUkwoKSk7
CisgICAgdGFnZ2VkRG9jdW1lbnQtPnNldEZlYXR1cmVTd2l0Y2goZG9jdW1lbnQtPmZlYXR1cmVT
d2l0Y2goKSk7CiAgICAgdGFnZ2VkRG9jdW1lbnQtPnRha2VBbGxDaGlsZHJlbkZyb20odGFnZ2Vk
RnJhZ21lbnQuZ2V0KCkpOwogCiAgICAgUmVmUHRyPE5vZGU+IG5vZGVCZWZvcmVDb250ZXh0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKaW5kZXggNjdkZGNlYjRmYWEz
ZmE3ZWNkYTUzNDU3NzM2ZmM1ZDZjZTM4ZWY0Yy4uZmNkOWM4Yjk3YzM1MmZkMmJlMzM0NjYzMDQ5
OWE4YmZlNDYyN2RiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3Bw
CkBAIC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogCiAjaW5j
bHVkZSAiQXR0cmlidXRlLmgiCi0jaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgor
I2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlU3dpdGNoLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50U2VuZGVyLmgiCkBAIC0xMDUsNyAr
MTA1LDcgQEAgdm9pZCBIVE1MU3R5bGVFbGVtZW50OjpyZWdpc3RlcldpdGhTY29waW5nTm9kZSgp
CiAgICAgQVNTRVJUKGluRG9jdW1lbnQoKSk7CiAgICAgaWYgKG1faXNSZWdpc3RlcmVkV2l0aFNj
b3BpbmdOb2RlKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1
cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpCisgICAgaWYgKCFDb250ZXh0RmVh
dHVyZVN3aXRjaDo6c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50KCkpKQogICAgICAgICByZXR1
cm47CiAKICAgICBDb250YWluZXJOb2RlKiBzY29wZSA9IHBhcmVudE5vZGUoKTsKQEAgLTEzMCwx
MCArMTMwLDEwIEBAIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6dW5yZWdpc3RlcldpdGhTY29waW5n
Tm9kZShDb250YWluZXJOb2RlKiBzY29wZSkKIHsKICAgICAvLyBOb3RlOiBXZSBjYW5ub3QgcmVs
eSBvbiB0aGUgJ3Njb3BlZCcgZWxlbWVudCBzdGlsbCBiZWluZyBwcmVzZW50IHdoZW4gdGhpcyBt
ZXRob2QgaXMgaW52b2tlZC4KICAgICAvLyBUaGVyZWZvcmUgd2UgY2Fubm90IHJlbHkgb24gc2Nv
cGVkKCkhCi0gICAgQVNTRVJUKG1faXNSZWdpc3RlcmVkV2l0aFNjb3BpbmdOb2RlIHx8ICFDb250
ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpOworICAg
IEFTU0VSVChtX2lzUmVnaXN0ZXJlZFdpdGhTY29waW5nTm9kZSB8fCAhQ29udGV4dEZlYXR1cmVT
d2l0Y2g6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSk7CiAgICAgaWYgKCFtX2lzUmVn
aXN0ZXJlZFdpdGhTY29waW5nTm9kZSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghQ29udGV4
dEVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50KCkpKQorICAgIGlm
ICghQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKHNjb3BlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4IDA4YjQ1ZDRhYmY1
OWJmYzc2ZThlNzQwMDNjMTc2ZGRjOTYwZTRiZWYuLjk1OWY1YTRjNDkyOTZlZTc4ZmEwZjNmMDNm
MjBhYWVhMzVmNTM4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hU
TUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRN
TENvbnRlbnRFbGVtZW50LmNwcApAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAiQ29udGVu
dERpc3RyaWJ1dG9yLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlbGVjdG9yUXVlcnkuaCIKLSNpbmNs
dWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVT
d2l0Y2guaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgpAQCAtNDMsNyArNDMsNyBAQCB1c2luZyBI
VE1MTmFtZXM6OnNlbGVjdEF0dHI7CiBzdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgY29udGVu
dFRhZ05hbWUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQot
ICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChkb2N1bWVu
dC0+ZG9tV2luZG93KCkpKQorICAgIGlmICghQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnNoYWRvd0RP
TUVuYWJsZWQoZG9jdW1lbnQpKQogICAgICAgICByZXR1cm4gSFRNTE5hbWVzOjp3ZWJraXRTaGFk
b3dDb250ZW50VGFnOwogICAgIHJldHVybiBIVE1MTmFtZXM6OmNvbnRlbnRUYWc7CiAjZWxzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAppbmRleCBiYTBk
OGM4NmM1NThjOGZhOGUyNTNlZTk2MWIwMDhiZDA2NTNlMjUwLi45Y2FmMzgxNTYxYjM1NmI5Nzlm
ZjZjNzNiNzRjY2JiNjFmYzVlYjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9N
UGF0Y2hTdXBwb3J0LmNwcApAQCAtODksNiArODksNyBAQCBET01QYXRjaFN1cHBvcnQ6On5ET01Q
YXRjaFN1cHBvcnQoKSB7IH0KIHZvaWQgRE9NUGF0Y2hTdXBwb3J0OjpwYXRjaERvY3VtZW50KGNv
bnN0IFN0cmluZyYgbWFya3VwKQogewogICAgIFJlZlB0cjxIVE1MRG9jdW1lbnQ+IG5ld0RvY3Vt
ZW50ID0gSFRNTERvY3VtZW50OjpjcmVhdGUoMCwgS1VSTCgpKTsKKyAgICBuZXdEb2N1bWVudC0+
c2V0RmVhdHVyZVN3aXRjaChtX2RvY3VtZW50LT5mZWF0dXJlU3dpdGNoKCkpOwogICAgIFJlZlB0
cjxEb2N1bWVudFBhcnNlcj4gcGFyc2VyID0gSFRNTERvY3VtZW50UGFyc2VyOjpjcmVhdGUobmV3
RG9jdW1lbnQuZ2V0KCksIGZhbHNlKTsKICAgICBwYXJzZXItPmluc2VydChtYXJrdXApOyAvLyBV
c2UgaW5zZXJ0KCkgc28gdGhhdCB0aGUgcGFyc2VyIHdpbGwgbm90IHlpZWxkLgogICAgIHBhcnNl
ci0+ZmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IGY1YzdhNzI2NmE2MDBkZWE1MjliZjlkMTNjMTdiZGU2MjBlYTlkMjcuLmJlODEwMjg3YTcw
ZDU1ZThlNjU2YmZmM2Q2NDBhYWZhNTMzYjEwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oCkBAIC0zMTEsMTIgKzMxMSw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdmlydHVhbCBib29sIGFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudChi
b29sIGVuYWJsZWRQZXJTZXR0aW5ncywgU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJikgeyBy
ZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd1J1
bm5pbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIFNlY3VyaXR5T3Jp
Z2luKiwgY29uc3QgS1VSTCYpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQogCi0gICAg
ICAgIHZpcnR1YWwgYm9vbCBhbGxvd1NoYWRvd0RPTShib29sIGVuYWJsZWRBc1J1bnRpbWVGZWF0
dXJlcykgeyByZXR1cm4gZW5hYmxlZEFzUnVudGltZUZlYXR1cmVzOyB9Ci0gICAgICAgIHZpcnR1
YWwgYm9vbCBhbGxvd1N0eWxlU2NvcGVkKGJvb2wgZW5hYmxlZEFzUnVudGltZUZlYXR1cmVzKSB7
IHJldHVybiBlbmFibGVkQXNSdW50aW1lRmVhdHVyZXM7IH0KLSNpZiBFTkFCTEUoUEFHRV9QT1BV
UCkKLSAgICAgICAgdmlydHVhbCBib29sIGFsbG93UGFnZVBvcHVwKCkgeyByZXR1cm4gZmFsc2U7
IH0KLSNlbmRpZgotCiAgICAgICAgIC8vIFRoaXMgY2FsbGJhY2sgbm90aWZpZXMgdGhlIGNsaWVu
dCB0aGF0IHRoZSBmcmFtZSB3YXMgYWJvdXQgdG8gcnVuCiAgICAgICAgIC8vIEphdmFTY3JpcHQg
YnV0IGRpZCBub3QgYmVjYXVzZSBhbGxvd1NjcmlwdCByZXR1cm5lZCBmYWxzZS4gV2UKICAgICAg
ICAgLy8gaGF2ZSBhIHNlcGFyYXRlIGNhbGxiYWNrIGhlcmUgYmVjYXVzZSB0aGVyZSBhcmUgYSBu
dW1iZXIgb2YgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA3
YzVlNWI1ZjA4N2IwNTg4ODU1NDY1NDE1NzI4YjlkY2Y2MjA2NTRlLi5kNTI0ODFmMzE4NmZkZDY1
ZDg0YmRiZDQ3OWNlNGVkZjIwNmRlNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAKQEAgLTI1Myw2ICsyNTMsNyBAQCBEb2N1bWVudCogWE1MSHR0cFJlcXVlc3Q6OnJlc3Bv
bnNlWE1MKEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgLy8gRklYTUU6IFNldCBMYXN0
LU1vZGlmaWVkLgogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRDb250ZW50KG1f
cmVzcG9uc2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKICAgICAgICAgICAg
IG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0U2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4oKSk7
CisgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldEZlYXR1cmVTd2l0Y2goZG9jdW1l
bnQoKS0+ZmVhdHVyZVN3aXRjaCgpKTsKICAgICAgICAgICAgIGlmICghbV9yZXNwb25zZURvY3Vt
ZW50LT53ZWxsRm9ybWVkKCkpCiAgICAgICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50ID0g
MDsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGJhYWNmNDA1ODFh
Yjc5NzI3MjQ1ZjI2MjNjZDU1NDgxMTgyZGU4ZGUuLjFmMjQwMDA0YWFmZmI5OTM4ZDY3MDk1NTQ5
NGQzMzIxOGZiYzQ4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTM3NSw2ICsz
NzUsOCBAQAogICAgICAgICAgICAgICAgICdzcmMvQ29tcG9zaXRpb25VbmRlcmxpbmVCdWlsZGVy
LmgnLAogICAgICAgICAgICAgICAgICdzcmMvQ29tcG9zaXRpb25VbmRlcmxpbmVWZWN0b3JCdWls
ZGVyLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Db21wb3NpdGlvblVuZGVybGluZVZlY3Rv
ckJ1aWxkZXIuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9Db250ZXh0RmVhdHVyZVN3aXRjaENs
aWVudEltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL0NvbnRleHRGZWF0dXJlU3dpdGNo
Q2xpZW50SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL0NvbnRleHRNZW51Q2xpZW50SW1w
bC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmgnLAog
ICAgICAgICAgICAgICAgICdzcmMvRGF0YWJhc2VPYnNlcnZlci5jcHAnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCmluZGV4IDEx
NmEzODNjYThjMjhiNDc4OWFlNzM1ZmYxZTQ0Y2QzMjdkZGVjODMuLjAxNGMyYzNmNDQwMjM1NDJk
NjFiMTg5YzUyMjVmNzQwNDY1Y2M4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYkRvY3VtZW50OwogY2xhc3MgV2ViRnJhbWU7CiBj
bGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFdlYlN0cmluZzsKQEAgLTkwLDcgKzkxLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhbGxvd1dyaXRlVG9DbGlwYm9hcmQoV2ViRnJh
bWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CiAKICAgICAv
LyBDb250cm9scyB3aGV0aGVyIGVuYWJsaW5nIFdlYiBDb21wb25lbnRzIEFQSSBmb3IgdGhpcyBm
cmFtZS4KLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dXZWJDb21wb25lbnRzKFdlYkZyYW1lKiwgYm9v
bCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBhbGxvd1dlYkNvbXBvbmVudHMoY29uc3QgV2ViRG9jdW1lbnQmLCBib29sIGRlZmF1bHRWYWx1
ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CiAKICAgICAvLyBOb3RpZmllcyB0aGUgY2xpZW50
IHRoYXQgdGhlIGZyYW1lIHdvdWxkIGhhdmUgaW5zdGFudGlhdGVkIGEgcGx1Zy1pbiBpZiBwbHVn
LWlucyB3ZXJlIGVuYWJsZWQuCiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucyhX
ZWJGcmFtZSopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29u
dGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0NvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y4MTcx
YTgxZmZmMTc4ODE5NTM4MGQwMmEyMWUwYmFjZWMwNTlkNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbC5j
cHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb250ZXh0
RmVhdHVyZVN3aXRjaENsaWVudEltcGwuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiV2ViRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJXZWJQZXJtaXNzaW9uQ2xpZW50LmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1w
bDo6c2hhZG93RE9NRW5hYmxlZChXZWJDb3JlOjpEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgZGVm
YXVsdFZhbHVlKSBPVkVSUklERQoreworICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVy
biBkZWZhdWx0VmFsdWU7CisgICAgcmV0dXJuIG1fY2xpZW50LT5hbGxvd1dlYkNvbXBvbmVudHMo
V2ViRG9jdW1lbnQoZG9jdW1lbnQpLCBkZWZhdWx0VmFsdWUpOworfQorCitib29sIENvbnRleHRG
ZWF0dXJlU3dpdGNoQ2xpZW50SW1wbDo6c3R5bGVTY29wZWRFbmFibGVkKFdlYkNvcmU6OkRvY3Vt
ZW50KiBkb2N1bWVudCwgYm9vbCBkZWZhdWx0VmFsdWUpIE9WRVJSSURFCit7CisgICAgaWYgKCFt
X2NsaWVudCkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICByZXR1cm4gbV9jbGll
bnQtPmFsbG93V2ViQ29tcG9uZW50cyhXZWJEb2N1bWVudChkb2N1bWVudCksIGRlZmF1bHRWYWx1
ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGwuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMDcwZDExYWQzOGYzOWYyNTg4NmRiYTBlMGQyYTE0Yzc0YWMwNDVkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVTd2l0
Y2hDbGllbnRJbXBsLmgKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29udGV4dEZlYXR1cmVTd2l0
Y2hDbGllbnRJbXBsX2gKKyNkZWZpbmUgQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsX2gK
KworI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlU3dpdGNoLmgiCisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBXZWJQZXJtaXNzaW9uQ2xpZW50OworCitjbGFzcyBDb250ZXh0RmVhdHVyZVN3
aXRjaENsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2hDbGll
bnQgeworcHVibGljOgorICAgIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbCgpCisgICAg
ICAgIDogbV9jbGllbnQoMCkKKyAgICB7IH0KKworICAgIHZpcnR1YWwgYm9vbCBzaGFkb3dET01F
bmFibGVkKFdlYkNvcmU6OkRvY3VtZW50KiwgYm9vbCBkZWZhdWx0VmFsdWUpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBzdHlsZVNjb3BlZEVuYWJsZWQoV2ViQ29yZTo6RG9jdW1lbnQqLCBi
b29sIGRlZmF1bHRWYWx1ZSkgT1ZFUlJJREU7CisKKyAgICB2b2lkIHNldFBlcm1pc3Npb25DbGll
bnQoV2ViUGVybWlzc2lvbkNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CisK
K3ByaXZhdGU6CisgICAgV2ViUGVybWlzc2lvbkNsaWVudCogbV9jbGllbnQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50
SW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRl
ckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJD
bGllbnRJbXBsLmNwcAppbmRleCBkZTNmMjI3ODlmNWZhMTViMGFjZDhlZDc0ZDFlNWFmOTBlOTY5
ZjJjLi5kMDYwMmE5YTBlNzA0ZWNkOTEyZjZkY2FmYzFjY2M1ZjlhMmFmOWZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAK
QEAgLTIzOSwyNCArMjM5LDYgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93UnVu
bmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncywKICAgICByZXR1cm4g
ZW5hYmxlZFBlclNldHRpbmdzOwogfQogCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxs
b3dTaGFkb3dET00oYm9vbCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZSkKLXsKLSAgICBXZWJWaWV3
SW1wbCogd2VidmlldyA9IG1fd2ViRnJhbWUtPnZpZXdJbXBsKCk7Ci0gICAgaWYgKHdlYnZpZXcg
JiYgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQotICAgICAgICByZXR1cm4gd2Vidmlldy0+
cGVybWlzc2lvbkNsaWVudCgpLT5hbGxvd1dlYkNvbXBvbmVudHMobV93ZWJGcmFtZSwgZW5hYmxl
ZEFzUnVudGltZUZlYXR1cmUpOwotCi0gICAgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJl
OwotfQotCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dTdHlsZVNjb3BlZChib29s
IGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlKQotewotICAgIFdlYlZpZXdJbXBsKiB3ZWJ2aWV3ID0g
bV93ZWJGcmFtZS0+dmlld0ltcGwoKTsKLSAgICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJt
aXNzaW9uQ2xpZW50KCkpCi0gICAgICAgIHJldHVybiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50
KCktPmFsbG93V2ViQ29tcG9uZW50cyhtX3dlYkZyYW1lLCBlbmFibGVkQXNSdW50aW1lRmVhdHVy
ZSk7Ci0KLSAgICByZXR1cm4gZW5hYmxlZEFzUnVudGltZUZlYXR1cmU7Ci19Ci0KIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnRJbXBsOjpkaWROb3RBbGxvd1NjcmlwdCgpCiB7CiAgICAgV2ViVmlld0lt
cGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAppbmRleCAyMzZhMDFiNjUz
MDI5NTE0NmFjZWExM2JkZTVkMGYyMzgzN2E5ZmFmLi5lY2IyMGEyZmIyNWVmZTY0YWZlNjBkNDI0
NmU2Yzk5M2FmNWYzMTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9G
cmFtZUxvYWRlckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9G
cmFtZUxvYWRlckNsaWVudEltcGwuaApAQCAtMTk5LDggKzE5OSw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgYWxsb3dJbWFnZShib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgY29uc3QgV2Vi
Q29yZTo6S1VSTCYgaW1hZ2VVUkwpOwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd0Rpc3BsYXlpbmdJ
bnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd1J1
bm5pbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOwotICAgIHZpcnR1YWwgYm9vbCBh
bGxvd1NoYWRvd0RPTShib29sIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgYWxsb3dTdHlsZVNjb3BlZChib29sIGVuYWJsZWRBc1J1bnRpbWVGZWF0
dXJlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKaW5kZXggNjE3YjcyNWNlZTJiNWY5
ZjJjZjI4ZTNjYTI4NmNmNTBhNzRmY2M4Yi4uOTM1ZmM0ZjEyMmNiOTcwNmRlNTQyYmMwNTUyMDc5
MDY2ZDA3OWMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFn
ZVBvcHVwSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBv
cHVwSW1wbC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJQYWdlUG9wdXBJbXBs
LmgiCiAKICNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZVN3aXRj
aC5oIgogI2luY2x1ZGUgIkRPTVdpbmRvd1BhZ2VQb3B1cC5oIgogI2luY2x1ZGUgIkVtcHR5Q2xp
ZW50cy5oIgogI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCkBAIC0xMjgsOCArMTI5LDggQEAgcHJp
dmF0ZToKICAgICBXZWJQYWdlUG9wdXBJbXBsKiBtX3BvcHVwOwogfTsKIAotY2xhc3MgUGFnZVBv
cHVwRnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRW1wdHlGcmFtZUxvYWRlckNsaWVudCB7Ci0g
ICAgdmlydHVhbCBib29sIGFsbG93UGFnZVBvcHVwKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsg
fQorY2xhc3MgUGFnZVBvcHVwRmVhdHVyZVN3aXRjaENsaWVudCA6IHB1YmxpYyBDb250ZXh0RmVh
dHVyZVN3aXRjaENsaWVudCB7CisgICAgdmlydHVhbCBib29sIHBhZ2VQb3B1cEVuYWJsZWQoRG9j
dW1lbnQqLCBib29sKSBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiB9OwogCiAvLyBXZWJQYWdl
UG9wdXBJbXBsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE4Niw4ICsxODcsMTAgQEAgYm9vbCBXZWJQYWdlUG9wdXBJ
bXBsOjppbml0UGFnZSgpCiAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTY3JpcHRFbmFibGVk
KHRydWUpOwogICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0QWxsb3dTY3JpcHRzVG9DbG9zZVdp
bmRvd3ModHJ1ZSk7CiAKLSAgICBzdGF0aWMgRnJhbWVMb2FkZXJDbGllbnQqIHBhZ2VQb3B1cEZy
YW1lTG9hZGVyQ2xpZW50ID0gIG5ldyBQYWdlUG9wdXBGcmFtZUxvYWRlckNsaWVudDsKLSAgICBS
ZWZQdHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShtX3BhZ2UuZ2V0KCksIDAsIHBhZ2VQ
b3B1cEZyYW1lTG9hZGVyQ2xpZW50KTsKKyAgICBzdGF0aWMgQ29udGV4dEZlYXR1cmVTd2l0Y2hD
bGllbnQqIHBhZ2VQb3B1cEZlYXR1cmVTd2l0Y2hDbGllbnQgPSAgbmV3IFBhZ2VQb3B1cEZlYXR1
cmVTd2l0Y2hDbGllbnQoKTsKKyAgICBwcm92aWRlQ29udGV4dEZlYXR1cmVTd2l0Y2hUbyhtX3Bh
Z2UuZ2V0KCksIHBhZ2VQb3B1cEZlYXR1cmVTd2l0Y2hDbGllbnQpOworICAgIHN0YXRpYyBGcmFt
ZUxvYWRlckNsaWVudCogZW1wdHlGcmFtZUxvYWRlckNsaWVudCA9ICBuZXcgRW1wdHlGcmFtZUxv
YWRlckNsaWVudCgpOworICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBGcmFtZTo6Y3JlYXRlKG1f
cGFnZS5nZXQoKSwgMCwgZW1wdHlGcmFtZUxvYWRlckNsaWVudCk7CiAgICAgZnJhbWUtPnNldFZp
ZXcoRnJhbWVWaWV3OjpjcmVhdGUoZnJhbWUuZ2V0KCkpKTsKICAgICBmcmFtZS0+aW5pdCgpOwog
ICAgIGZyYW1lLT52aWV3KCktPnJlc2l6ZShtX3BvcHVwQ2xpZW50LT5jb250ZW50U2l6ZSgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBjNmRiMWIz
ZDIxZWQwZDJkZWY5MjZmODBiOTJmM2RlZjBiZjIyOTA0Li5hZTBmNzVhM2I2OGIwNzExNThlN2E0
MjExNTJjMWM2ZmFkNDE2NWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRl
ICJDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25VbmRlcmxpbmVWZWN0b3JCdWls
ZGVyLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsLmgiCiAjaW5j
bHVkZSAiQ29udGV4dE1lbnUuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIKQEAgLTMzNyw2ICszMzgsNyBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpzZXREZXZUb29sc0FnZW50Q2xpZW50KFdlYkRldlRvb2xzQWdlbnRDbGllbnQq
IGRldlRvb2xzQ2xpZW50KQogdm9pZCBXZWJWaWV3SW1wbDo6c2V0UGVybWlzc2lvbkNsaWVudChX
ZWJQZXJtaXNzaW9uQ2xpZW50KiBwZXJtaXNzaW9uQ2xpZW50KQogewogICAgIG1fcGVybWlzc2lv
bkNsaWVudCA9IHBlcm1pc3Npb25DbGllbnQ7CisgICAgbV9mZWF0dXJlU3dpdGNoQ2xpZW50LT5z
ZXRQZXJtaXNzaW9uQ2xpZW50KHBlcm1pc3Npb25DbGllbnQpOwogfQogCiB2b2lkIFdlYlZpZXdJ
bXBsOjpzZXRQcmVyZW5kZXJlckNsaWVudChXZWJQcmVyZW5kZXJlckNsaWVudCogcHJlcmVuZGVy
ZXJDbGllbnQpCkBAIC0zOTIsNiArMzk0LDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdl
YlZpZXdDbGllbnQqIGNsaWVudCkKICAgICAsIG1faW1lQWNjZXB0RXZlbnRzKHRydWUpCiAgICAg
LCBtX29wZXJhdGlvbnNBbGxvd2VkKFdlYkRyYWdPcGVyYXRpb25Ob25lKQogICAgICwgbV9kcmFn
T3BlcmF0aW9uKFdlYkRyYWdPcGVyYXRpb25Ob25lKQorICAgICwgbV9mZWF0dXJlU3dpdGNoQ2xp
ZW50KGFkb3B0UHRyKG5ldyBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGwoKSkpCiAgICAg
LCBtX2F1dG9maWxsUG9wdXBTaG93aW5nKGZhbHNlKQogICAgICwgbV9hdXRvZmlsbFBvcHVwKDAp
CiAgICAgLCBtX2lzVHJhbnNwYXJlbnQoZmFsc2UpCkBAIC00NTEsNiArNDU0LDcgQEAgV2ViVmll
d0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKICAgICBwcm92aWRlTm90
aWZpY2F0aW9uKG1fcGFnZS5nZXQoKSwgbm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCgpKTsKICNl
bmRpZgogCisgICAgcHJvdmlkZUNvbnRleHRGZWF0dXJlU3dpdGNoVG8obV9wYWdlLmdldCgpLCBt
X2ZlYXR1cmVTd2l0Y2hDbGllbnQuZ2V0KCkpOwogICAgIHByb3ZpZGVEZXZpY2VPcmllbnRhdGlv
blRvKG1fcGFnZS5nZXQoKSwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmdldCgpKTsK
ICAgICBwcm92aWRlR2VvbG9jYXRpb25UbyhtX3BhZ2UuZ2V0KCksIG1fZ2VvbG9jYXRpb25DbGll
bnRQcm94eS5nZXQoKSk7CiAgICAgbV9nZW9sb2NhdGlvbkNsaWVudFByb3h5LT5zZXRDb250cm9s
bGVyKEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShtX3BhZ2UuZ2V0KCkpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IGEwODg5Njc4YTE0MDA3NDJjYzI2
ZTBlYmZiYmUyM2UxOThiOTJkMmUuLjcxZmZhNTI1NGFjOTRmNzk1MjQ5NTBjMTJhNDM1OWNiODQ0
ODI3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtODYs
NiArODYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIEF1dG9jb21wbGV0ZVBvcHVwTWVu
dUNsaWVudDsKIGNsYXNzIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50OwogY2xhc3MgQmF0dGVyeUNs
aWVudEltcGw7CitjbGFzcyBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGw7CiBjbGFzcyBD
b250ZXh0TWVudUNsaWVudEltcGw7CiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5
OwogY2xhc3MgRHJhZ1Njcm9sbFRpbWVyOwpAQCAtNzMzLDYgKzczNCw5IEBAIHByaXZhdGU6CiAg
ICAgLy8gY3VycmVudCBkcm9wIHRhcmdldCBpbiB0aGlzIFdlYlZpZXcgKHRoZSBkcm9wIHRhcmdl
dCBjYW4gYWNjZXB0IHRoZSBkcm9wKS4KICAgICBXZWJEcmFnT3BlcmF0aW9uIG1fZHJhZ09wZXJh
dGlvbjsKIAorICAgIC8vIENvbnRleHQtYmFzZWQgZmVhdHVyZSBzd2l0Y2hlcy4KKyAgICBPd25Q
dHI8Q29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsPiBtX2ZlYXR1cmVTd2l0Y2hDbGllbnQ7
CisKICAgICAvLyBXaGV0aGVyIGFuIEF1dG9maWxsIHBvcHVwIGlzIGN1cnJlbnRseSBzaG93aW5n
LgogICAgIGJvb2wgbV9hdXRvZmlsbFBvcHVwU2hvd2luZzsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQwYTM1MjA1Nzli
NmY1OTkzMWFhMzVlNzY4NDc1MTBiZTlkYTg5NGIuLjQ1OGFiOGMxZWYxYjEwYjJjNjk1ZDM0NjVj
NWRmYWRiMzJlNGRmOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0wNSAgSGFqaW1l
IE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIx
MTgwOTgpOiA8Y29udGVudD4gZWxlbWVudCBkb2VzIG5vdCByZW5kZXIgZGlzdHJpYnV0ZWQgY2hp
bGRyZW4gd2hlbiBjbG9uZWQgZnJvbSBhbm90aGVyIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODE0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2VsZW1lbnRz
LWluLWZyYW1lbGVzcy1kb2N1bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbDogQWRkZWQu
CisKIDIwMTItMDYtMDUgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtDaHJvbWl1bV0gSW1wbGVtZW50IGZvbnQgc2hhcGluZyB3aXRoIGZvbnQtZmVh
dHVyZS1zZXR0aW5ncyBvbiBNYWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1bWVudC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY0MzA3NTNmMjk1MzJlMWY1MjIxNTAwYTk5MjBjMTJmODM3
NmEyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVt
ZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAK
K1RoaXMgdGVzdCBlbnN1cmUgdGhhdCB0aGUgc2hhZG93IHJlbGF0ZWQgZWxlbWVudHMgYXJlIGlu
c3RhbnRpYXRlZCBldmVuIGluc2lkZSBmcmFtZWxlc3MgZG9jdW1lbnRzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworVGVzdGluZyBvbiB0aGUgZnJhbWUtbGVzcyBkb2N1bWVudC4K
K1BBU1Mgd2luZG93LkhUTUxDb250ZW50RWxlbWVudCBpcyBjb250ZW50LmNvbnN0cnVjdG9yCitQ
QVNTIHdpbmRvdy5IVE1MU2hhZG93RWxlbWVudCBpcyBzaGFkb3cuY29uc3RydWN0b3IKK01vdmlu
ZyB0byB0aGUgbWFpbiBkb2N1bWVudC4KK1BBU1Mgd2luZG93LkhUTUxDb250ZW50RWxlbWVudCBp
cyBjb250ZW50LmNvbnN0cnVjdG9yCitQQVNTIHdpbmRvdy5IVE1MU2hhZG93RWxlbWVudCBpcyBz
aGFkb3cuY29uc3RydWN0b3IKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQoreCsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9l
bGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
MGI2YmU4MWVmNTdkY2IyMWZmNTU2NTY3ZDRiNDZmMGU5MzZlMjliCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1
bWVudC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKK3grPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
IGVuc3VyZSB0aGF0IHRoZSBzaGFkb3cgcmVsYXRlZCBlbGVtZW50cyBhcmUgaW5zdGFudGlhdGVk
IGV2ZW4gaW5zaWRlIGZyYW1lbGVzcyBkb2N1bWVudHMuIik7CisKK3ZhciBkb2MgPSBkb2N1bWVu
dC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKK3ZhciBjb250YWluZXIgPSBk
b2MuY3JlYXRlRWxlbWVudCgic3BhbiIpOworZG9jLmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVy
KTsKK2NvbnRhaW5lci5pbm5lckhUTUwgPSAiPGNvbnRlbnQgaWQ9J2NvbnRlbnRFbGVtZW50Jz48
L2NvbnRlbnQ+PHNoYWRvdyBpZD0nc2hhZG93RWxlbWVudCc+PC9zaGFkb3c+IjsKKwordmFyIGNv
bnRlbnQgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcigiI2NvbnRlbnRFbGVtZW50Iik7Cit2YXIg
c2hhZG93ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIiNzaGFkb3dFbGVtZW50Iik7CisKK2Rl
YnVnKCJUZXN0aW5nIG9uIHRoZSBmcmFtZS1sZXNzIGRvY3VtZW50LiIpOworc2hvdWxkQmUoIndp
bmRvdy5IVE1MQ29udGVudEVsZW1lbnQiLCAiY29udGVudC5jb25zdHJ1Y3RvciIpOworc2hvdWxk
QmUoIndpbmRvdy5IVE1MU2hhZG93RWxlbWVudCIsICJzaGFkb3cuY29uc3RydWN0b3IiKTsKKwor
ZGVidWcoIk1vdmluZyB0byB0aGUgbWFpbiBkb2N1bWVudC4iKTsKK2RvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoY29udGFpbmVyKTsKK3Nob3VsZEJlKCJ3aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50
IiwgImNvbnRlbnQuY29uc3RydWN0b3IiKTsKK3Nob3VsZEJlKCJ3aW5kb3cuSFRNTFNoYWRvd0Vs
ZW1lbnQiLCAic2hhZG93LmNvbnN0cnVjdG9yIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>145913</attachid>
            <date>2012-06-05 19:03:09 -0700</date>
            <delta_ts>2012-06-07 21:51:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88148-20120606110307.patch</filename>
            <type>text/plain</type>
            <size>68725</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODZmNGY0NzUzMjBkNjJh
Nzc0Yzc2Mjk5MjAxNGE5YzNhM2JmYWVmNy4uMzJjNTg2OTYxNTRjNzQwMzFhOTYxYTVjNjI5OWJm
MmFlOGM3YjM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDEyLTA2LTA1ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04o
cjExODA5OCk6IDxjb250ZW50PiBlbGVtZW50IGRvZXMgbm90IHJlbmRlciBkaXN0cmlidXRlZCBj
aGlsZHJlbiB3aGVuIGNsb25lZCBmcm9tIGFub3RoZXIgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTQ4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHNoYWRvdyBET00gYXZhaWxhYmls
aXR5IHdhcyBkZWNpZGVkIHRocm91Z2ggRnJhbWVMb2FkZXJDbGllbnQuCisgICAgICAgIEJ1dCB0
aGVyZSBhcmUgZG9jdW1lbnRzIHdoaWNoIGRvbid0IGhhdmUgYW55IGFzc29jaWF0ZWQgZnJhbWVz
LAorICAgICAgICBpbiB3aGljaCBhbnkgc2hhZG93IERPTSByZWxhdGVkIGVsZW1lbnRzIGNhbm5v
dCBiZSBjb25zdHJ1Y3RlZC4KKyAgICAgICAgVGhhdCByZXN1bHN0ZWQgdGhlIHJlZ3Jlc3Npb24u
CisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaW50cm9kdWNlcyBhIFBhZ2UtYmFzZWQgY2xpZW50IGNh
bGxlZCBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudAorICAgICAgICB3aGljaCB0YWtlcyB0aGUg
cm9sZSBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50IHRvIGRlY2lkZSB0aGUgZmVhdHVyZSBhdmFpbGFi
aWxpdHksCisgICAgICAgIGFuZCBDb250ZXh0RmVhdHVyZVN3aXRjaCB3aGljaCBpcyBhIHByb3h5
IG9mIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50LgorCisgICAgICAgIENvbnRleHRGZWF0dXJl
U3dpdGNoIGlzIG93bmVkIGJ5IGEgUGFnZSwgYW5kIGlzIGF0dGFjaGVkIHRvIGVhY2ggRG9jdW1l
bnQgaW4gdGhlIHBhZ2UKKyAgICAgICAgZXZlbiBpZiB0aGUgcGFnZSBpdHNlbGYgaGFzIG5vIHJl
ZmVyZW5jdCB0byBGcmFtZXMgb3IgUGFnZXMuIFdpdGggQ29udGV4dEZlYXR1cmVTd2l0Y2gsCisg
ICAgICAgIGVhY2ggRG9jdW1lbnQgY2FuIGRlY2lkZSB0aGUgZmVhdHVyZSBhdmFpbGFiaWxpdHkg
ZXZlbiBpZiBpdCBjYW5ub3QgcmVhY2ggUGFnZSBvciBGcmFtZS4KKworICAgICAgICBDb250ZXh0
RW5hYmxlZEZlYXR1cmVzIGlzIHJlbW92ZWQgc2luY2UgaXQgaXMgcmVwbGFjZWQgd2l0aCBDb250
ZXh0RmVhdHVyZVN3aXRjaC4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvZWxlbWVu
dHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOiBSZXBsYWNlZCBD
b250ZXh0RW5hYmxlZEZlYXR1cmVzIHdpdGggQ29udGV4dEZlYXR1cmVTd2l0Y2gKKyAgICAgICAg
KEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNw
cDogUmVwbGFjZWQgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyB3aXRoIENvbnRleHRGZWF0dXJlU3dp
dGNoLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6ZGV0ZXJtaW5lU2NvcGUpOgor
ICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZVN3aXRjaC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudDo6
ZW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OnN1cHBsZW1l
bnROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlU3dpdGNoOjpwcm92aWRl
VG8pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OmRlZmF1bHRTd2l0
Y2gpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OnNoYWRvd0RPTUVu
YWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OnN0eWxlU2Nv
cGVkRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZVN3aXRjaDo6cGFn
ZVBvcHVwRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlQ29udGV4dEZlYXR1cmVT
d2l0Y2hUbyk6CisgICAgICAgICogZG9tL0NvbnRleHRGZWF0dXJlU3dpdGNoLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnQ6On5D
b250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVh
dHVyZVN3aXRjaENsaWVudDo6c2hhZG93RE9NRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0RmVhdHVyZVN3aXRjaENsaWVudDo6c3R5bGVTY29wZWRFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50OjpwYWdlUG9wdXBFbmFibGVkKToK
KyAgICAgICAgKENvbnRleHRGZWF0dXJlU3dpdGNoKTogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0RmVhdHVyZVN3aXRjaDo6Q29udGV4dEZlYXR1cmVTd2l0Y2gpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0RmVhdHVyZVN3aXRjaDo6c2hhZG93RE9NRW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0RmVhdHVyZVN3aXRjaDo6c3R5bGVTY29wZWRFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlU3dpdGNoOjpwYWdlUG9wdXBFbmFibGVkKToKKyAgICAg
ICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHA6IFB1dCBDb250ZXh0RmVhdHVyZVN3aXRjaCB0byBuZXdseSBjcmVhdGVkIERvY3VtZW50
LgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVIVE1MRG9jdW1lbnQp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6IFB1dCBDb250ZXh0RmVhdHVyZVN3aXRjaCB0
byBuZXdseSBjcmVhdGVkIERvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRv
Y3VtZW50KToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOiBSZXBsYWNlZCBDb250ZXh0RW5h
YmxlZEZlYXR1cmVzIHdpdGggQ29udGV4dEZlYXR1cmVTd2l0Y2gKKyAgICAgICAgKFdlYkNvcmU6
OlBvc2l0aW9uOjpQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6ZmluZFBh
cmVudCk6CisgICAgICAgICogZG9tL1NlY3VyaXR5Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZWN1cml0eUNvbnRleHQ6OlNlY3VyaXR5Q29udGV4dCk6CisgICAgICAgICogZG9tL1Nl
Y3VyaXR5Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpT
ZWN1cml0eUNvbnRleHQ6OmZlYXR1cmVTd2l0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJp
dHlDb250ZXh0OjpzZXRGZWF0dXJlU3dpdGNoKToKKyAgICAgICAgKFNlY3VyaXR5Q29udGV4dCk6
IEFkZGVkIG1fZmVhdHVyZVN3aXRjaC4KKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDogUmVw
bGFjZWQgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyB3aXRoIENvbnRleHRGZWF0dXJlU3dpdGNoCisg
ICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmdldFNlbGVjdGlvbik6CisgICAgICAgICogZG9t
L21ha2VfbmFtZXMucGw6IFJlcGxhY2VkIENvbnRleHRFbmFibGVkRmVhdHVyZXMgd2l0aCBDb250
ZXh0RmVhdHVyZVN3aXRjaAorICAgICAgICAocHJpbnRDb25zdHJ1Y3RvckludGVyaW9yKToKKyAg
ICAgICAgKHByaW50RmFjdG9yeUNwcEZpbGUpOgorICAgICAgICAocHJpbnRXcmFwcGVyRnVuY3Rp
b25zKToKKyAgICAgICAgKHByaW50V3JhcHBlckZhY3RvcnlDcHBGaWxlKToKKyAgICAgICAgKiBl
ZGl0aW5nL21hcmt1cC5jcHA6IFB1dCBDb250ZXh0RmVhdHVyZVN3aXRjaCB0byBuZXdseSBjcmVh
dGVkIERvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJhZ21lbnRGcm9tTWFya3Vw
V2l0aENvbnRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU3R5bGVFbGVtZW50OjpyZWdpc3RlcldpdGhTY29waW5nTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU3R5bGVFbGVtZW50Ojp1bnJlZ2lzdGVyV2l0aFNjb3Bp
bmdOb2RlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwOiBS
ZXBsYWNlZCBDb250ZXh0RW5hYmxlZEZlYXR1cmVzIHdpdGggQ29udGV4dEZlYXR1cmVTd2l0Y2gK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRlbnRUYWdOYW1lKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
RE9NUGF0Y2hTdXBwb3J0LmNwcDogUHV0IENvbnRleHRGZWF0dXJlU3dpdGNoIHRvIG5ld2x5IGNy
ZWF0ZWQgRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpET01QYXRjaFN1cHBvcnQ6OnBhdGNo
RG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOiBSZW1vdmVk
IG9sZCBBUElzCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDogUHV0IENvbnRleHRG
ZWF0dXJlU3dpdGNoIHRvIG5ld2x5IGNyZWF0ZWQgRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3Jl
OjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwpOgorCiAyMDEyLTA2LTA1ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEJ1aWxkIGZpeCBhZnRlciByMTE5NTI3
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA3YTFhNDc2MDUzMmVjYzU0ZWI0MWUzOTcw
Y2FkZmI0NTIyNDU3MzM4Li4zOWJhMzJlMGEwZDk4MzViZGJhYjE2NGIzNWExNjgyMjMxOWI5MzBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA2LTA1
ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JF
U1NJT04ocjExODA5OCk6IDxjb250ZW50PiBlbGVtZW50IGRvZXMgbm90IHJlbmRlciBkaXN0cmli
dXRlZCBjaGlsZHJlbiB3aGVuIGNsb25lZCBmcm9tIGFub3RoZXIgZG9jdW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTQ4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBBZGRlZCBDb250ZXh0RmVh
dHVyZVN3aXRjaENsaWVudEltcGwgd2hpY2ggaW1wbGVtZW50cyBXZWJDb3JlOjpDb250ZXh0RmVh
dHVyZVN3aXRjaENsaWVudC4KKyAgICAgICAgLSBSZXBsYWNlZCBQYWdlUG9wdXBGcmFtZUxvYWRl
ckNsaWVudCB3aXRoIFBhZ2VQb3B1cEZlYXR1cmVTd2l0Y2hDbGllbnQuCisKKyAgICAgICAgKiBX
ZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50Lmg6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50OjphbGxv
d1dlYkNvbXBvbmVudHMpOgorICAgICAgICAqIHNyYy9Db250ZXh0RmVhdHVyZVN3aXRjaENsaWVu
dEltcGwuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9D
b250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
c3JjL0NvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbC5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmguCisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsKToK
KyAgICAgICAgKFdlYktpdDo6Q29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsOjpDb250ZXh0
RmVhdHVyZVN3aXRjaENsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0RmVhdHVy
ZVN3aXRjaENsaWVudEltcGw6OnNldFBlcm1pc3Npb25DbGllbnQpOgorICAgICAgICAqIHNyYy9G
cmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVu
dEltcGwuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50SW1wbCk6CisgICAgICAgICogc3Jj
L1dlYlBhZ2VQb3B1cEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUG9wdXBJbXBs
Ojppbml0UGFnZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnNldFBlcm1pc3Npb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5o
OgorICAgICAgICAoV2ViS2l0KToKKwogMjAxMi0wNi0wNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSb2xsIENocm9taXVtIERFUFMgZnJvbSByMTQwNTI4IHRv
IHIxNDA2NTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGNlYjFkYjQwNmNiMGFlNDY5NzE3OWM2
ZWJlYjY1NGZkNGJkYTIzMGEuLmY0MGU2OWY2NWJmODRmM2NkMjE3MTBhOTY1NjA5OTc3YWYzNjdi
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NTksNyArNDU5LDYgQEAgU0VUKFdlYkNvcmVf
U09VUkNFUwogICAgIGJpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcAogCiAgICAgYmlu
ZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5jcHAKLSAgICBiaW5kaW5ncy9nZW5lcmlj
L0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcAogCiAgICAgY3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3BwCkBA
IC01NTksNiArNTU4LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9Db250YWluZXJO
b2RlLmNwcAogICAgIGRvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAKICAgICBkb20vQ29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCisgICAgZG9tL0NvbnRleHRGZWF0dXJlU3dpdGNo
LmNwcAogICAgIGRvbS9DdXN0b21FdmVudC5jcHAKICAgICBkb20vRGF0YXNldERPTVN0cmluZ01h
cC5jcHAKICAgICBkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCmluZGV4IDVhYzVkZTM2MjQxZDFiODJmYzE4NTVmNzFhZTRhNmM2NWZk
M2UzNDEuLjk0MzMxMDA3MDAyZDU5MmJhZDczOTYwMTZmNTczYmVjOThkYWI4OWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTMwOSw4ICsxMzA5LDYgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBc
CiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suaCBc
Ci0JU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVz
LmNwcCBcCi0JU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZl
YXR1cmVzLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3Vy
aXR5QmFzZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1Nl
Y3VyaXR5QmFzZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdT
ZWN1cml0eS5oIFwKQEAgLTE4MDIsNiArMTgwMCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0
RmVhdHVyZVN3aXRjaC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZVN3
aXRjaC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ3Jvc3NUaHJlYWRUYXNrLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9DdXN0b21FdmVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9DdXN0
b21FdmVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGJjMDExN2I3NTA2MzE4OWNkZDI5MTc0NjUxYmM2
ZmQ5M2U5OWJhYjQuLjNlYWQ4MTNlZWJlOWRmYTNmOWNhZWI1YTAwMjYwNjA3ZmVlNWJlOGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQpAQCAtNzIsNyArNzIsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAgXAogICAgIGFjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5jcHAgXAogICAgIGJpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suY3Bw
IFwKLSAgICBiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIFwKICAg
ICBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCiAKIHY4IHsKQEAg
LTUyOCw2ICs1MjcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vQ29udGFpbmVyTm9kZS5jcHAg
XAogICAgIGRvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAgXAogICAgIGRvbS9Db250ZXh0
RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgXAorICAgIGRvbS9Db250ZXh0RmVhdHVyZVN3aXRjaC5j
cHAgXAogICAgIGRvbS9DdXN0b21FdmVudC5jcHAgXAogICAgIGRvbS9EZWNvZGVkRGF0YURvY3Vt
ZW50UGFyc2VyLmNwcCBcCiAgICAgZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCBjYmUyYzRmYzE1NjIxODgzYTk2OWFmYzY2YmU1NTc4YmY3ZDQ5NWZl
Li43MWZmZmRlNTBhZmE4NDIxM2M2ZmE4NGFmOWQ1NGNmNjM4MzVkNjZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC02MTYsNiArNjE2LDggQEAKICAgICAgICAgICAgICdkb20vQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2RvbS9Db250YWluZXJOb2RlLmgnLAogICAgICAg
ICAgICAgJ2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oJywKKyAgICAgICAgICAgICdk
b20vQ29udGV4dEZlYXR1cmVTd2l0Y2guaCcsCisgICAgICAgICAgICAnZG9tL0NvbnRleHRGZWF0
dXJlU3dpdGNoLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RPTUltcGxlbWVudGF0aW9uLmgnLAog
ICAgICAgICAgICAgJ2RvbS9ET01UaW1lU3RhbXAuaCcsCiAgICAgICAgICAgICAnZG9tL0Rldmlj
ZU9yaWVudGF0aW9uLmgnLApAQCAtMTg0OSw4ICsxODUxLDYgQEAKICAgICAgICAgICAgICdiaW5k
aW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9n
ZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9n
ZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvZ2Vu
ZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3Mv
Z2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2dlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJp
Yy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2Vu
ZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA4ZGY3MWVlM2JlYmYxMjFmMjhkNDAwNmZiYzhh
M2Q5ZjcyYjU4NTJiLi5kYWU4Y2MwZDQ1ZWZhMTk2MjM2OTA3YjRlZTRkMjE4YmQyOTBlMjcwIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjMx
ODYsMTQgKzYzMTg2LDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5j
cHAiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxiaW5kaW5nc1xnZW5lcmljXENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKLQkJCQkJPgotCQkJ
CTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVy
aWNcR2VuZXJpY0JpbmRpbmcuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxNGExNGJkMzU0
NDg2MTBmNmVlM2E2M2MzNzIzNDUzNTAwZTc5NDIwLi4wMmI4NmJlYzE4NjQ2YzQ1NDFmYTk1YTYz
NjkwMDAyMDBhZWQ4ODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzUzLDggKzM3NTMsNiBAQAogCQlBNzNGOTVGRjEyQzk3
QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVj
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3
NDBCNUE1MTRDOTM1QUIwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc5MTRDOTM0ODQwMEM4
RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCAqLzsgfTsKIAkJQTc0MEI1QTcxNEM5MzVBRjAw
QTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0RUE3ODE0QzkzNDg0MDBDOEY1QkYgLyogSlNJbnRl
cm5hbFNldHRpbmdzLmNwcCAqLzsgfTsKLQkJQTc0N0EwN0YxNTZCMjg2OTAwMjQzRUVEIC8qIENv
bnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc0N0EwN0QxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVk
RmVhdHVyZXMuY3BwICovOyB9OwotCQlBNzQ3QTA4MDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4
dEVuYWJsZWRGZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc0N0EwN0UxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVy
ZXMuaCAqLzsgfTsKIAkJQTc0QkI3NkIxM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQ
bGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NUU0
OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc0MTA3NTJBQ0IwMEM5
Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzVFNDk3NzEwNzUyQUNCMDBDOUI4OTYgLyogU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0
VmFsdWUuY3BwICovOyB9OwpAQCAtMzgwNiw2ICszODA0LDggQEAKIAkJQTdEMjBGNjIxMDdGNDA2
OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDIwRjYwMTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dl
YkdMQWN0aXZlSW5mby5jcHAgKi87IH07CiAJCUE3RDIwRjYzMTA3RjQwNjkwMEE4MDM5MiAvKiBK
U1dlYkdMQWN0aXZlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTdEMjBGNjExMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmgg
Ki87IH07CiAJCUE3RDIwRjZEMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDIwRjZCMTA3
RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCAqLzsgfTsKKwkJQTdEM0NBMTAxNTdE
RjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlU3dpdGNoLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDNDQTBFMTU3REY4RTkwMDg2MEE5NyAv
KiBDb250ZXh0RmVhdHVyZVN3aXRjaC5jcHAgKi87IH07CisJCUE3RDNDQTExMTU3REY4RTkwMDg2
MEE5NyAvKiBDb250ZXh0RmVhdHVyZVN3aXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEM0NBMEYxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRG
ZWF0dXJlU3dpdGNoLmggKi87IH07CiAJCUE3RDZCMzQ5MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3Jr
ZXJTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3RDZCMzQ3MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuaCAq
LzsgfTsKIAkJQTdENkIzNEEwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q2QjM0
ODBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmNwcCAqLzsgfTsKIAkJQTdE
QkY4REQxMjc2OTE5QzAwNkI2MDA4IC8qIFRleHRDaGVja2luZ0hlbHBlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0RCRjhEQjEyNzY5MTlDMDA2
QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmNwcCAqLzsgfTsKQEAgLTEwODQyLDggKzEwODQy
LDYgQEAKIAkJQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRXhwb3J0TWFjcm9z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFG
OSAvKiBSb3VuZGVkUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSb3VuZGVkUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZE
MTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSb3VuZGVkUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
NzQ3QTA3RDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb250ZXh0RW5hYmxlZEZlYXR1cmVz
LmNwcDsgcGF0aCA9IGdlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3NDdBMDdFMTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0
RW5hYmxlZEZlYXR1cmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbnRl
eHRFbmFibGVkRmVhdHVyZXMuaDsgcGF0aCA9IGdlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJl
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzRCQjc2QTEzQkRBODYzMDBGRjdC
RjAgLyogRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNzVFNDk3NDEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzVFNDk3NTEwNzUyQUNCMDBD
OUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xMDkwMSw2ICsxMDg5OSw4IEBACiAJCUE3RDIwRjYwMTA3RjQwNjkw
MEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1dlYkdMQWN0aXZlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3RDIwRjYxMTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQWN0aXZlSW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0QyMEY2QjEwN0Y0MzhCMDBBODAzOTIgLyog
V2ViR0xBY3RpdmVJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdM
QWN0aXZlSW5mby5oOyBwYXRoID0gY2FudmFzL1dlYkdMQWN0aXZlSW5mby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBN0QzQ0EwRTE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZl
YXR1cmVTd2l0Y2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29u
dGV4dEZlYXR1cmVTd2l0Y2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0Qz
Q0EwRjE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVTd2l0Y2guaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGV4dEZlYXR1cmVTd2l0Y2guaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdENkIzNDcwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNj
cmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXb3JrZXJTY3Jp
cHRMb2FkZXIuaDsgcGF0aCA9IHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDZCMzQ4MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJT
Y3JpcHRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV29y
a2VyU2NyaXB0TG9hZGVyLmNwcDsgcGF0aCA9IHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdEQjQxODExNENFMUYwQTAwQTJFMzE2
IC8qIFNoYWRvd1Jvb3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3QuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk3MDgsOCArMTk3MDgsNiBAQAogCQkJ
CUE2MjJBOEY1MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAqLywKIAkJCQlB
NjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8sCiAJ
CQkJQTYyMkE4RjcxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCAqLywK
LQkJCQlBNzQ3QTA3RDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5j
cHAgKi8sCi0JCQkJQTc0N0EwN0UxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVh
dHVyZXMuaCAqLywKIAkJCQlBNjIyQThGOTEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRp
bmcuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gZ2VuZXJpYzsKQEAgLTIxMTQ2LDYgKzIxMTQ0LDgg
QEAKIAkJCQlFMUExNDcwNzExMTAyQjE1MDBFRUMwRjMgLyogQ29udGFpbmVyTm9kZUFsZ29yaXRo
bXMuaCAqLywKIAkJCQk5NzYyN0I4QjE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NjI3QjhDMTRGQjNDRUUwMDJDRENBMSAvKiBDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oICovLAorCQkJCUE3RDNDQTBFMTU3REY4RTkwMDg2MEE5
NyAvKiBDb250ZXh0RmVhdHVyZVN3aXRjaC5jcHAgKi8sCisJCQkJQTdEM0NBMEYxNTdERjhFOTAw
ODYwQTk3IC8qIENvbnRleHRGZWF0dXJlU3dpdGNoLmggKi8sCiAJCQkJMkUzRkFBMDgxMUEzNkJG
MTAwNTc2NjI0IC8qIENyb3NzVGhyZWFkVGFzay5oICovLAogCQkJCTYyQ0QzMjU2MTE1N0U1N0Mw
MDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8sCiAJCQkJNjJDRDMyNTcxMTU3RTU3QzAwNjNC
MEE3IC8qIEN1c3RvbUV2ZW50LmggKi8sCkBAIC0yMTk5Niw3ICsyMTk5Niw3IEBACiAJCQkJNDFE
MDE1Q0EwRjRCNUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzNzBENkVEQjEzODQ1NDU1MDA0NDEwM0UgLyogQ29udGVudFR5cGVQYXJzZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3NjI3QjhFMTRGQjNDRUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTc0N0EwODAxNTZCMjg2OTAwMjQzRUVE
IC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3RDNDQTEx
MTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZVN3aXRjaC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTNCNkEwRTYwQjBCQ0E1QzAwRjUwMjdBIC8qIENvbnRleHRNZW51LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwNjVBRDRGNTBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY3MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0
TWVudUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjU1MTUsNyArMjU1MTUsNyBAQAog
CQkJCTQxRDAxNUNCMEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkzNzBENkVEQTEzODQ1NDU1MDA0NDEwM0UgLyogQ29udGVudFR5cGVQYXJzZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2MjdCOEQxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3NDdBMDdGMTU2
QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUE3RDNDQTEwMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZVN3aXRjaC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwNjVBRDRGNjBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4
dE1lbnVDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA2MDI3Q0IzMEIxQ0MwM0Qw
MDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW1NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0I2
QTBFQTBCMEJDQTg0MDBGNTAyN0EgLyogQ29udGV4dE1lbnVNYWMubW0gaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJs
ZWRGZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRF
bmFibGVkRmVhdHVyZXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjYyMmIz
NzNlYjIxNzg1YmNjMWMwNzhiYmVhMjI4ZDAzYmMxY2I2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
Q29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIK
LQotI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVk
ZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgotI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLSNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLWJvb2wgQ29udGV4dEVu
YWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChET01XaW5kb3cqIHdpbmRvdykKLXsKLSAg
ICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChGcmFtZSogZnJh
bWUgPSB3aW5kb3ctPmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCktPmNs
aWVudCgpLT5hbGxvd1NoYWRvd0RPTShSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01F
bmFibGVkKCkpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNU
WUxFX1NDT1BFRCkKLWJvb2wgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFi
bGVkKERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICBpZiAoIWRvY3VtZW50KQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpKQot
ICAgICAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+YWxsb3dTdHlsZVNjb3Bl
ZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoKSk7Ci0gICAgcmV0
dXJuIGZhbHNlOwotfQotI2VuZGlmICAgCi0KLSNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKLWJvb2wg
Q29udGV4dEVuYWJsZWRGZWF0dXJlczo6cGFnZVBvcHVwRW5hYmxlZChET01XaW5kb3cqIHdpbmRv
dykKLXsKLSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChG
cmFtZSogZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFtZS0+bG9h
ZGVyKCktPmNsaWVudCgpLT5hbGxvd1BhZ2VQb3B1cCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0K
LSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTdmYTRiNzU4NWVhNzdhNzE5YmUzYjRkMzM0NDhiMjgy
ZjQ5OTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oCisr
KyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ29udGV4dEVuYWJsZWRGZWF0dXJl
c19oCi0jZGVmaW5lIENvbnRleHRFbmFibGVkRmVhdHVyZXNfaAotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWNsYXNzIERPTVdpbmRvdzsKLWNsYXNzIERvY3VtZW50OwotCi0vLyBBIGNsYXNzIHRo
YXQgc3RvcmVzIHN0YXRpYyBlbmFibGVycyBmb3IgYWxsIGV4cGVyaW1lbnRhbCBmZWF0dXJlcy4g
Tm90ZSB0aGF0Ci0vLyB0aGUgbWV0aG9kIG5hbWVzIG11c3QgbGluZSB1cCB3aXRoIHRoZSBKYXZh
U2NyaXB0IG1ldGhvZCB0aGV5IGVuYWJsZSBmb3IgY29kZQotLy8gZ2VuZXJhdGlvbiB0byB3b3Jr
IHByb3Blcmx5LgotCi1jbGFzcyBDb250ZXh0RW5hYmxlZEZlYXR1cmVzIHsKLXB1YmxpYzoKLSNp
ZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBzdGF0aWMgYm9vbCBzaGFkb3dET01FbmFibGVkKERP
TVdpbmRvdyopOwotI2VuZGlmCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLSAgICBzdGF0aWMg
Ym9vbCBzdHlsZVNjb3BlZEVuYWJsZWQoRG9jdW1lbnQqKTsKLSNlbmRpZgotI2lmIEVOQUJMRShQ
QUdFX1BPUFVQKQotICAgIHN0YXRpYyBib29sIHBhZ2VQb3B1cEVuYWJsZWQoRE9NV2luZG93Kik7
Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIENvbnRl
eHRFbmFibGVkRmVhdHVyZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA2MWI5N2JlM2Q5NmUzYTliOTBlYzRiYzRiZWM1
OTBlYjc1ZTdhZWNhLi4yMWU2YjNkMTUwOTMwNTk3NmMzYzA2YjI0OGI1NWM2ZGM0YjI4OTFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JW
OC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JW
OC5wbQpAQCAtMjQxNyw3ICsyNDE3LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAg
ICBwdXNoKEBpbXBsRml4ZWRIZWFkZXIsIEdlbmVyYXRlSW1wbGVtZW50YXRpb25Db250ZW50SGVh
ZGVyKCRkYXRhTm9kZSkpOwogCiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIpOwotICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJDb250ZXh0RW5hYmxlZEZlYXR1
cmVzLmgiKTsKKyAgICBBZGRUb0ltcGxJbmNsdWRlcygiQ29udGV4dEZlYXR1cmVTd2l0Y2guaCIp
OwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOFByb3h5LmgiKTsKICAgICBBZGRUb0ltcGxJbmNs
dWRlcygiVjhCaW5kaW5nLmgiKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhCaW5kaW5nU3Rh
dGUuaCIpOwpAQCAtMjg2Niw3ICsyODY2LDcgQEAgRU5ECiAgICAgICAgICAgICBteSAkZW5hYmxl
RnVuY3Rpb24gPSBHZXRDb250ZXh0RW5hYmxlRnVuY3Rpb24oJHJ1bnRpbWVBdHRyLT5zaWduYXR1
cmUpOwogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3It
PkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJHJ1bnRpbWVBdHRyLT5zaWduYXR1cmUpOwogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxu
IikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaWYgKENvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7ZW5hYmxlRnVuY3Rpb259KGltcGwp
KSB7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChDb250ZXh0
RmVhdHVyZVN3aXRjaDo6JHtlbmFibGVGdW5jdGlvbn0oaW1wbC0+ZG9jdW1lbnQoKSkpIHtcbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHN0YXRpYyBjb25zdCBC
YXRjaGVkQXR0cmlidXRlIGF0dHJEYXRhID1cXFxuIik7CiAgICAgICAgICAgICBHZW5lcmF0ZVNp
bmdsZUJhdGNoZWRBdHRyaWJ1dGUoJGludGVyZmFjZU5hbWUsICRydW50aW1lQXR0ciwgIjsiLCAi
ICAgICIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCAzZWYwYWRkOGQ4OTk2NzllMDY1Yzc4ODVhYzcx
OTU4MWRkY2UzYWEwLi5hZmRiNjJmOGY0ZTdhMjBkMWQ2ODdkN2Y3MjBkYTQ1OGE0MGMyYWZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC01Miw3ICs1Miw3IEBACiAjaW5j
bHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWxjdWxhdGlvblZhbHVlLmgiCiAjaW5j
bHVkZSAiQ29udGVudERhdGEuaCIKLSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgi
CisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2guaCIKICNpbmNsdWRlICJDb3VudGVyLmgi
CiAjaW5jbHVkZSAiQ291bnRlckNvbnRlbnQuaCIKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCkBA
IC00OTAsNyArNDkwLDcgQEAgY29uc3QgQ29udGFpbmVyTm9kZSogU3R5bGVSZXNvbHZlcjo6ZGV0
ZXJtaW5lU2NvcGUoY29uc3QgQ1NTU3R5bGVTaGVldCogc2hlZXQpCiB7CiAgICAgQVNTRVJUKHNo
ZWV0KTsKIAotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFi
bGVkKGRvY3VtZW50KCkpKQorICAgIGlmICghQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnN0eWxlU2Nv
cGVkRW5hYmxlZChkb2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBOb2RlKiBv
d25lck5vZGUgPSBzaGVldC0+b3duZXJOb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGV4dEZlYXR1cmVTd2l0Y2guY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRl
eHRGZWF0dXJlU3dpdGNoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZTNmMTJlMmNkOGU5OTc3MzgxMWQ0NGNm
ZWVmNzU1ZWNkMzY4ZDUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRleHRGZWF0dXJlU3dpdGNoLmNwcApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZVN3aXRjaC5oIgorCisjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NvbnRleHRGZWF0dXJlU3dpdGNoQ2xp
ZW50KiBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudDo6ZW1wdHkoKQoreworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnQsIGVtcHR5LCAoKSk7CisgICAg
cmV0dXJuICZlbXB0eTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBDb250ZXh0RmVhdHVyZVN3
aXRjaDo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBuYW1lLCAoIkNvbnRleHRGZWF0dXJlU3dpdGNoIikpOworICAgIHJldHVybiBuYW1l
OworfQorCit2b2lkIENvbnRleHRGZWF0dXJlU3dpdGNoOjpwcm92aWRlVG8oRG9jdW1lbnQqIGRv
Y3VtZW50LCBQYWdlKiBwYWdlKQoreworICAgIENvbnRleHRGZWF0dXJlU3dpdGNoKiBwcm92aWRl
ZCA9IHN0YXRpY19jYXN0PENvbnRleHRGZWF0dXJlU3dpdGNoKj4oU3VwcGxlbWVudDxQYWdlPjo6
ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7CisgICAgaWYgKCFwcm92aWRlZCkKKyAgICAg
ICAgcmV0dXJuOworICAgIGRvY3VtZW50LT5zZXRGZWF0dXJlU3dpdGNoKHByb3ZpZGVkKTsKK30K
KworQ29udGV4dEZlYXR1cmVTd2l0Y2gqIENvbnRleHRGZWF0dXJlU3dpdGNoOjpkZWZhdWx0U3dp
dGNoKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbnRleHRGZWF0dXJlU3dpdGNoLCBp
bnN0YW5jZSwgKENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50OjplbXB0eSgpKSk7CisgICAgcmV0
dXJuICZpbnN0YW5jZTsKK30KKworYm9vbCBDb250ZXh0RmVhdHVyZVN3aXRjaDo6c2hhZG93RE9N
RW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQpCit7CisjaWYgRU5BQkxFKFNIQURPV19ET00pCisg
ICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYWRvd0RPTUVuYWJsZWQoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQtPmZlYXR1cmVTd2l0Y2go
KS0+c2hhZG93RE9NRW5hYmxlZChkb2N1bWVudCwgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
ZG93RE9NRW5hYmxlZCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKKyAg
ICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworYm9vbCBDb250ZXh0RmVhdHVyZVN3aXRjaDo6
c3R5bGVTY29wZWRFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyNpZiBFTkFCTEUoU1RZ
TEVfU0NPUEVEKQorICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQt
PmZlYXR1cmVTd2l0Y2goKS0+c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50LCBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShkb2N1bWVudCk7CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK2Jvb2wgQ29u
dGV4dEZlYXR1cmVTd2l0Y2g6OnBhZ2VQb3B1cEVuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50KQor
eworI2lmIEVOQUJMRShQQUdFX1BPUFVQKQorICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXR1cm4gZG9jdW1lbnQtPmZlYXR1cmVTd2l0Y2goKS0+cGFnZVBv
cHVwRW5hYmxlZChkb2N1bWVudCwgZmFsc2UpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9j
dW1lbnQpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCit2b2lkIHByb3ZpZGVDb250
ZXh0RmVhdHVyZVN3aXRjaFRvKFBhZ2UqIHBhZ2UsIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50
KiBjbGllbnQpCit7CisgICAgU3VwcGxlbWVudDxQYWdlPjo6cHJvdmlkZVRvKHBhZ2UsIENvbnRl
eHRGZWF0dXJlU3dpdGNoOjpzdXBwbGVtZW50TmFtZSgpLCBDb250ZXh0RmVhdHVyZVN3aXRjaDo6
Y3JlYXRlKGNsaWVudCkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29udGV4dEZlYXR1cmVTd2l0Y2guaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVy
ZVN3aXRjaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYTBjNjNkYTk3ZGU4NjM0OGVlZDQ4YzgxN2ZjN2QwMWUz
YTczOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1
cmVTd2l0Y2guaApAQCAtMCwwICsxLDk3IEBACisKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbnRleHRGZWF0dXJlU3dp
dGNoX2gKKyNkZWZpbmUgQ29udGV4dEZlYXR1cmVTd2l0Y2hfaAorCisjaW5jbHVkZSAiU3VwcGxl
bWVudGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIENvbnRleHRGZWF0dXJlU3dpdGNoOworY2xhc3MgRG9jdW1lbnQ7Citj
bGFzcyBQYWdlOworCitjbGFzcyBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCB7CitwdWJsaWM6
CisgICAgc3RhdGljIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50KiBlbXB0eSgpOworCisgICAg
dmlydHVhbCB+Q29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgc2hhZG93RE9NRW5hYmxlZChEb2N1bWVudCosIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVy
biBkZWZhdWx0VmFsdWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3R5bGVTY29wZWRFbmFibGVkKERv
Y3VtZW50KiwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBwYWdlUG9wdXBFbmFibGVkKERvY3VtZW50KiwgYm9vbCBkZWZhdWx0VmFs
dWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQorfTsKKworY2xhc3MgQ29udGV4dEZlYXR1cmVT
d2l0Y2ggOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIGNv
bnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKKyAgICBzdGF0aWMgdm9pZCBwcm92
aWRlVG8oRG9jdW1lbnQqLCBQYWdlKik7CisgICAgc3RhdGljIENvbnRleHRGZWF0dXJlU3dpdGNo
KiBkZWZhdWx0U3dpdGNoKCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8Q29udGV4dEZlYXR1cmVT
d2l0Y2g+IGNyZWF0ZShDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCopOworCisgICAgc3RhdGlj
IGJvb2wgc2hhZG93RE9NRW5hYmxlZChEb2N1bWVudCopOworICAgIHN0YXRpYyBib29sIHN0eWxl
U2NvcGVkRW5hYmxlZChEb2N1bWVudCopOworICAgIHN0YXRpYyBib29sIHBhZ2VQb3B1cEVuYWJs
ZWQoRG9jdW1lbnQqKTsKKworICAgIGJvb2wgc2hhZG93RE9NRW5hYmxlZChEb2N1bWVudCosIGJv
b2wpIGNvbnN0OworICAgIGJvb2wgc3R5bGVTY29wZWRFbmFibGVkKERvY3VtZW50KiwgYm9vbCkg
Y29uc3Q7CisgICAgYm9vbCBwYWdlUG9wdXBFbmFibGVkKERvY3VtZW50KiwgYm9vbCkgY29uc3Q7
CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQ29udGV4dEZlYXR1cmVTd2l0Y2goQ29udGV4dEZl
YXR1cmVTd2l0Y2hDbGllbnQqIGNsaWVudCkKKyAgICAgICAgOiBtX2NsaWVudChjbGllbnQpCisg
ICAgeyB9CisKKyAgICBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCogbV9jbGllbnQ7Cit9Owor
Cit2b2lkIHByb3ZpZGVDb250ZXh0RmVhdHVyZVN3aXRjaFRvKFBhZ2UqLCBDb250ZXh0RmVhdHVy
ZVN3aXRjaENsaWVudCopOworCitpbmxpbmUgUGFzc093blB0cjxDb250ZXh0RmVhdHVyZVN3aXRj
aD4gQ29udGV4dEZlYXR1cmVTd2l0Y2g6OmNyZWF0ZShDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVu
dCogY2xpZW50KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ29udGV4dEZlYXR1cmVTd2l0
Y2goY2xpZW50KSk7Cit9CisKK2lubGluZSBib29sIENvbnRleHRGZWF0dXJlU3dpdGNoOjpzaGFk
b3dET01FbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fY2xpZW50LT5zaGFkb3dET01FbmFibGVkKGRvY3VtZW50LCBkZWZh
dWx0VmFsdWUpOworfQorCitpbmxpbmUgYm9vbCBDb250ZXh0RmVhdHVyZVN3aXRjaDo6c3R5bGVT
Y29wZWRFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fY2xpZW50LT5zdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQsIGRl
ZmF1bHRWYWx1ZSk7Cit9CisKK2lubGluZSBib29sIENvbnRleHRGZWF0dXJlU3dpdGNoOjpwYWdl
UG9wdXBFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fY2xpZW50LT5wYWdlUG9wdXBFbmFibGVkKGRvY3VtZW50LCBkZWZh
dWx0VmFsdWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDb250
ZXh0RmVhdHVyZVN3aXRjaF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxs
SW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCAzMjBh
ZWY5ODIwOWE1ZWI4NGE3ZTc1MjhmY2IzYjU2NDk2ODU4Nzc4Li5iMmY0MDk1MzU5Y2UzMmEyZWE4
MjMwZGI4ZWM3MWViNzA1ODEwMjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
QWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAg
LTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmNwcCIKICNpbmNsdWRlICJD
b250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAiCiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIuY3BwIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlU3dpdGNoLmNwcCIKICNpbmNs
dWRlICJDdXN0b21FdmVudC5jcHAiCiAjaW5jbHVkZSAiRE9NQ29yZUV4Y2VwdGlvbi5jcHAiCiAj
aW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBs
ZW1lbnRhdGlvbi5jcHAKaW5kZXggZGQxOTdjNmUyMTdkNzFiNTg0ZGY0NDQxODliYzViNDI4YzZm
ZjNlNy4uODc0YzA0MWVmZTZlNDBhYWZjNTBlOWVkNDlkY2IyMGJlZWZmMTI0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAKICNp
bmNsdWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNs
dWRlICJDb250ZXh0RmVhdHVyZVN3aXRjaC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgog
I2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC0yOTUs
NiArMjk2LDggQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0
ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVIKICAgICAgICAgZG9jID0gRG9jdW1l
bnQ6OmNyZWF0ZSgwLCBLVVJMKCkpOwogCiAgICAgZG9jLT5zZXRTZWN1cml0eU9yaWdpbihtX2Rv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpKTsKKyAgICBkb2MtPnNldEZlYXR1cmVTd2l0Y2gobV9k
b2N1bWVudC0+ZmVhdHVyZVN3aXRjaCgpKTsKKyAgICBDb250ZXh0RmVhdHVyZVN3aXRjaDo6cHJv
dmlkZVRvKGRvYy5nZXQoKSwgbV9kb2N1bWVudC0+cGFnZSgpKTsKIAogICAgIFJlZlB0cjxOb2Rl
PiBkb2N1bWVudEVsZW1lbnQ7CiAgICAgaWYgKCFxdWFsaWZpZWROYW1lLmlzRW1wdHkoKSkgewpA
QCAtMzcyLDYgKzM3NSw3IEBAIFBhc3NSZWZQdHI8SFRNTERvY3VtZW50PiBET01JbXBsZW1lbnRh
dGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50KGNvbnN0IFN0cmluZyYgdGl0CiAgICAgZC0+d3JpdGUo
IjwhZG9jdHlwZSBodG1sPjxodG1sPjxib2R5PjwvYm9keT48L2h0bWw+Iik7CiAgICAgZC0+c2V0
VGl0bGUodGl0bGUpOwogICAgIGQtPnNldFNlY3VyaXR5T3JpZ2luKG1fZG9jdW1lbnQtPnNlY3Vy
aXR5T3JpZ2luKCkpOworICAgIGQtPnNldEZlYXR1cmVTd2l0Y2gobV9kb2N1bWVudC0+ZmVhdHVy
ZVN3aXRjaCgpKTsKICAgICByZXR1cm4gZC5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IGQ2MjZlZjA5ZTI0N2JiMWU4N2ZiNmM5ZDEwNDkzYTE3YTNjNGE0ODUuLmM3
NTUyNzc1ZjUyNGYyNjVmYjVlNmExMmY5NmNiYWZkOTMyMjllMGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkNvbW1lbnQuaCIKICNpbmNsdWRl
ICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVk
ZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2guaCIKICNpbmNsdWRlICJDb29raWVKYXIuaCIKICNpbmNs
dWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkRPTVNlbGVjdGlvbi5oIgpAQCAt
NTAyLDYgKzUwMyw4IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtV
UkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICBtX2lnbm9yZUF1dG9mb2N1
cyA9IGZhbHNlOwogCiAgICAgbV9mcmFtZSA9IGZyYW1lOworICAgIGlmIChtX2ZyYW1lKQorICAg
ICAgICBDb250ZXh0RmVhdHVyZVN3aXRjaDo6cHJvdmlkZVRvKHRoaXMsIG1fZnJhbWUtPnBhZ2Uo
KSk7CiAKICAgICAvLyBXZSBkZXBlbmQgb24gdGhlIHVybCBnZXR0aW5nIGltbWVkaWF0ZWx5IHNl
dCBpbiBzdWJmcmFtZXMsIGJ1dCB3ZQogICAgIC8vIGFsc28gZGVwZW5kIG9uIHRoZSB1cmwgTk9U
IGdldHRpbmcgaW1tZWRpYXRlbHkgc2V0IGluIG9wZW5lZCB3aW5kb3dzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5jcHAKaW5kZXggYTA2ZmZkNDVmMzlmMjAzMzIzNjczYmIyY2QxYzM3Y2M5OTQwZjM5YS4u
ZWEzMTM1MTFhMTlmY2YxNTA4NWMwNTliYzMxZWQxYzEzMTRkYWQwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9z
aXRpb24uY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiUG9zaXRpb24uaCIKIAogI2lu
Y2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIkNvbnRleHRF
bmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZVN3aXRjaC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklubGluZVRleHRCb3guaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCkBAIC04Miw3ICs4Miw3IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVm
UHRyPE5vZGU+IGFuY2hvck5vZGUsIExlZ2FjeUVkaXRpbmdPZmZzZXQgb2Zmc2V0KQogICAgICwg
bV9pc0xlZ2FjeUVkaXRpbmdQb3NpdGlvbih0cnVlKQogewogI2lmIEVOQUJMRShTSEFET1dfRE9N
KQotICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNo
YWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisg
ICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYgQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnNoYWRvd0RP
TUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpKSkKICAgICAgICAgICAgfHwgIW1fYW5j
aG9yTm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZWxzZQogICAgIEFT
U0VSVCghbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKQEAg
LTk2LDcgKzk2LDcgQEAgUG9zaXRpb246OlBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYW5jaG9y
Tm9kZSwgQW5jaG9yVHlwZSBhbmNob3JUeXBlKQogICAgICwgbV9pc0xlZ2FjeUVkaXRpbmdQb3Np
dGlvbihmYWxzZSkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBBU1NFUlQoKG1fYW5j
aG9yTm9kZSAmJiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKG1fYW5j
aG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgIEFTU0VSVCgobV9hbmNob3JO
b2RlICYmIENvbnRleHRGZWF0dXJlU3dpdGNoOjpzaGFkb3dET01FbmFibGVkKG1fYW5jaG9yTm9k
ZS0+ZG9jdW1lbnQoKSkpCiAgICAgICAgICAgIHx8ICFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9y
Tm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2Vsc2UKICAgICBBU1NFUlQoIW1fYW5jaG9yTm9kZSB8
fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CkBAIC0xMTQsNyArMTE0LDcgQEAgUG9z
aXRpb246OlBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgaW50IG9mZnNldCwg
QW5jaG9yVHlwZSBhbmNob3JUeXAKICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFs
c2UpCiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgQVNTRVJUKChtX2FuY2hvck5vZGUg
JiYgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUt
PmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBD
b250ZXh0RmVhdHVyZVN3aXRjaDo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUtPmRvY3Vt
ZW50KCkpKQogICAgICAgICAgICB8fCAhbV9hbmNob3JOb2RlIHx8ICFlZGl0aW5nSWdub3Jlc0Nv
bnRlbnQobV9hbmNob3JOb2RlLmdldCgpKSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3Qo
KSk7CiAjZWxzZQogICAgIEFTU0VSVCghbV9hbmNob3JOb2RlIHx8ICFlZGl0aW5nSWdub3Jlc0Nv
bnRlbnQobV9hbmNob3JOb2RlLmdldCgpKSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3Qo
KSk7CkBAIC04NTcsNyArODU3LDcgQEAgQ29udGFpbmVyTm9kZSogUG9zaXRpb246OmZpbmRQYXJl
bnQoY29uc3QgTm9kZSogbm9kZSkKICAgICAvLyBGSVhNRTogU2VlIGh0dHA6Ly93ZWIudWcvODI2
OTcKIAogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIGlmIChDb250ZXh0RW5hYmxlZEZlYXR1
cmVzOjpzaGFkb3dET01FbmFibGVkKG5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAg
ICBpZiAoQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnNoYWRvd0RPTUVuYWJsZWQobm9kZS0+ZG9jdW1l
bnQoKSkpCiAgICAgICAgIHJldHVybiBub2RlLT5wYXJlbnROb2RlKCk7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAppbmRleCA4MDAyMjAxYzFlMDM0NWJlMmYz
NzIwMzQzNzZiZTE2YzIzNWMxODk0Li42ZjY4NzhjMTE1MDdjNTg4ZmY3OTYyYjdjMzAwZTYzZDQ1
MjUwYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcApAQCAtMjgsNiAr
MjgsNyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5oIgogCiAjaW5jbHVkZSAiQ29udGVu
dFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2guaCIKICNp
bmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
IApAQCAtMzcsNiArMzgsNyBAQCBTZWN1cml0eUNvbnRleHQ6OlNlY3VyaXR5Q29udGV4dCgpCiAg
ICAgOiBtX21heURpc3BsYXlTZWFtbGVzc1dpdGhQYXJlbnQoZmFsc2UpCiAgICAgLCBtX2hhdmVJ
bml0aWFsaXplZFNlY3VyaXR5T3JpZ2luKGZhbHNlKQogICAgICwgbV9zYW5kYm94RmxhZ3MoU2Fu
ZGJveE5vbmUpCisgICAgLCBtX2ZlYXR1cmVTd2l0Y2goQ29udGV4dEZlYXR1cmVTd2l0Y2g6OmRl
ZmF1bHRTd2l0Y2goKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Nl
Y3VyaXR5Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5oCmlu
ZGV4IGZjOWRmM2UzNDI1ZTA2Mjg0OWUwYWRjODcxNGJlZjljYWQ2MDE3ZTYuLmU4YjY2NDhkOThl
Yjk2OTE4YmQ3YWUwMjU0MWQwNDMyNDhkNjBkZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TZWN1cml0eUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlD
b250ZXh0LmgKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBT
ZWN1cml0eU9yaWdpbjsKIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeTsKK2NsYXNzIENvbnRl
eHRGZWF0dXJlU3dpdGNoOwogY2xhc3MgS1VSTDsKIAogZW51bSBTYW5kYm94RmxhZyB7CkBAIC01
OSw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4o
KSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAgU2FuZGJveEZs
YWdzIHNhbmRib3hGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fc2FuZGJveEZsYWdzOyB9CiAgICAg
Q29udGVudFNlY3VyaXR5UG9saWN5KiBjb250ZW50U2VjdXJpdHlQb2xpY3koKSB7IHJldHVybiBt
X2NvbnRlbnRTZWN1cml0eVBvbGljeS5nZXQoKTsgfQorICAgIENvbnRleHRGZWF0dXJlU3dpdGNo
KiBmZWF0dXJlU3dpdGNoKCkgeyByZXR1cm4gbV9mZWF0dXJlU3dpdGNoOyB9CiAKICAgICBib29s
IGlzU2VjdXJlVHJhbnNpdGlvblRvKGNvbnN0IEtVUkwmKSBjb25zdDsKIApAQCAtNjksNiArNzEs
NyBAQCBwdWJsaWM6CiAgICAgLy8gTm90ZTogSXQgaXMgZGFuZ2Vyb3VzIHRvIGNoYW5nZSB0aGUg
c2VjdXJpdHkgb3JpZ2luIG9mIGEgc2NyaXB0IGNvbnRleHQKICAgICAvLyAgICAgICB0aGF0IGFs
cmVhZHkgY29udGFpbnMgY29udGVudC4KICAgICB2b2lkIHNldFNlY3VyaXR5T3JpZ2luKFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+KTsKKyAgICB2b2lkIHNldEZlYXR1cmVTd2l0Y2goQ29udGV4
dEZlYXR1cmVTd2l0Y2gqIGZlYXR1cmUpIHsgbV9mZWF0dXJlU3dpdGNoID0gZmVhdHVyZTsgfQog
CiAgICAgc3RhdGljIFNhbmRib3hGbGFncyBwYXJzZVNhbmRib3hQb2xpY3koY29uc3QgU3RyaW5n
JiBwb2xpY3kpOwogCkBAIC05Miw2ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgU2FuZGJveEZsYWdz
IG1fc2FuZGJveEZsYWdzOwogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9zZWN1cml0eU9y
aWdpbjsKICAgICBPd25QdHI8Q29udGVudFNlY3VyaXR5UG9saWN5PiBtX2NvbnRlbnRTZWN1cml0
eVBvbGljeTsKKyAgICBDb250ZXh0RmVhdHVyZVN3aXRjaCogbV9mZWF0dXJlU3dpdGNoOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCBk
NzBiOTAwNTlkYmRlZWJlMWQ3MDdiYjMzNDYwN2QzNjhhZTM3YTEyLi5hZDQzMWJlNTBlZjA3NzFj
YTcxOTcxNzA4YmRhYTZkZmEzZWY5NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAt
MjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgogCiAjaW5jbHVkZSAiQ29udGFp
bmVyTm9kZS5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRl
ICJDb250ZXh0RmVhdHVyZVN3aXRjaC5oIgogI2luY2x1ZGUgIkRPTVNlbGVjdGlvbi5oIgogI2lu
Y2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0xNTAsNyArMTUw
LDcgQEAgRE9NU2VsZWN0aW9uKiBUcmVlU2NvcGU6OmdldFNlbGVjdGlvbigpIGNvbnN0CiAgICAg
Ly8gYXMgYSBjb250YWluZXIuIEl0IGlzIG5vdyBlbmFibGVkIG9ubHkgaWYgcnVudGltZSBTaGFk
b3cgRE9NIGZlYXR1cmUgaXMgZW5hYmxlZC4KICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgyNjk3CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAg
aWYgKENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQocm9vdE5vZGUoKS0+
ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKSB7CisgICAgaWYgKENvbnRleHRGZWF0dXJlU3dpdGNo
OjpzaGFkb3dET01FbmFibGVkKHJvb3ROb2RlKCktPmRvY3VtZW50KCkpKSB7CiAgICAgICAgIG1f
c2VsZWN0aW9uID0gRE9NU2VsZWN0aW9uOjpjcmVhdGUodGhpcyk7CiAgICAgICAgIHJldHVybiBt
X3NlbGVjdGlvbi5nZXQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
bWFrZV9uYW1lcy5wbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IGE2
Y2IwNDJkZmUwMjZjNTg4NGFmNzAwN2MwYTYzNmIxM2FjOTE4NWYuLjk5YTFlYjIyYTAyYjFiMTU4
OGE1OWVjYWI2MWY2OGVmOGE4NTAyNWMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9t
YWtlX25hbWVzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC0z
NzgsNyArMzc4LDcgQEAgRU5ECiAgICAgbXkgJGNvbnRleHRDb25kaXRpb25hbCA9ICRlbmFibGVk
VGFnc3skdGFnTmFtZX17Y29udGV4dENvbmRpdGlvbmFsfTsKICAgICBpZiAoJGNvbnRleHRDb25k
aXRpb25hbCkgewogICAgICAgICBwcmludCBGIDw8RU5ECi0gICAgaWYgKCFDb250ZXh0RW5hYmxl
ZEZlYXR1cmVzOjoke2NvbnRleHRDb25kaXRpb25hbH1FbmFibGVkKGRvY3VtZW50LT5kb21XaW5k
b3coKSkpCisgICAgaWYgKCFDb250ZXh0RmVhdHVyZVN3aXRjaDo6JHtjb250ZXh0Q29uZGl0aW9u
YWx9RW5hYmxlZChkb2N1bWVudCkpCiAgICAgICAgIHJldHVybiAwOwogRU5ECiA7CkBAIC04MDQs
NyArODA0LDcgQEAgcHJpbnRDb25kaXRpb25hbEVsZW1lbnRJbmNsdWRlcygkRik7CiAKIHByaW50
IEYgPDxFTkQKIAotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRl
ICJDb250ZXh0RmVhdHVyZVN3aXRjaC5oIgogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JU
KSB8fCBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTEwMTMsNyArMTAx
Myw3IEBAIEVORAogICAgICAgICAgICAgICAgIHByaW50IEYgPDxFTkQKIHN0YXRpYyBKU0RPTVdy
YXBwZXIqIGNyZWF0ZSR7SlNJbnRlcmZhY2VOYW1lfVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJze25h
bWVzcGFjZX1FbGVtZW50PiBlbGVtZW50KQogewotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0
dXJlczo6JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChlbGVtZW50LT5kb2N1bWVudCgpLT5k
b21XaW5kb3coKSkpIHsKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlU3dpdGNoOjoke2NvbnRleHRD
b25kaXRpb25hbH1FbmFibGVkKGVsZW1lbnQtPmRvY3VtZW50KCkpKSB7CiAgICAgICAgIEFTU0VS
VCghZWxlbWVudCB8fCBlbGVtZW50LT5pcyRwYXJhbWV0ZXJze2ZhbGxiYWNrSW50ZXJmYWNlTmFt
ZX0oKSk7CiAgICAgICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCAkcGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9LCBlbGVtZW50LmdldCgpKTsK
ICAgICB9CkBAIC0xMDUwLDcgKzEwNTAsNyBAQCBFTkQKICAgICAgICAgICAgICAgICBwcmludCBG
IDw8RU5ECiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNyZWF0ZSR7SlNJbnRlcmZhY2VO
YW1lfVdyYXBwZXIoJHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQqIGVsZW1lbnQsIHY4OjpJ
c29sYXRlKiBpc29sYXRlKQogewotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6JHtj
b250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChlbGVtZW50LT5kb2N1bWVudCgpLT5kb21XaW5kb3co
KSkpCisgICAgaWYgKCFDb250ZXh0RmVhdHVyZVN3aXRjaDo6JHtjb250ZXh0Q29uZGl0aW9uYWx9
RW5hYmxlZChlbGVtZW50LT5kb2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJuIFY4JHBhcmFtZXRl
cnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfTo6d3JhcCh0byRwYXJhbWV0ZXJze2ZhbGxiYWNrSW50
ZXJmYWNlTmFtZX0oZWxlbWVudCksIGlzb2xhdGUpOwogICAgIHJldHVybiB0b1Y4KHN0YXRpY19j
YXN0PCR7SlNJbnRlcmZhY2VOYW1lfSo+KGVsZW1lbnQpLCBpc29sYXRlKTsKIH0KQEAgLTExMTEs
NyArMTExMSw3IEBAIHN1YiBwcmludFdyYXBwZXJGYWN0b3J5Q3BwRmlsZQogCiAgICAgcHJpbnQg
RiA8PEVORAogCi0jaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUg
IkNvbnRleHRGZWF0dXJlU3dpdGNoLmgiCiAKICNpZiBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAppbmRleCA5YWU3ZTcyYzJmMjZl
OTc0MGFkNGE1ZjBjYjI0YjE5OTQ0OGQ4MDcxLi5mMzY3MTE0NDU5ODA0NjA2OTExNzMyNjQ5Nzdi
NWEyNmY4M2RjMDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0zOSw2ICszOSw3
IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgi
CiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5oIgorI2luY2x1ZGUgIkNvbnRleHRG
ZWF0dXJlU3dpdGNoLmgiCiAjaW5jbHVkZSAiRGVsZXRlQnV0dG9uQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKQEAg
LTczMCw2ICs3MzEsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdt
ZW50RnJvbU1hcmt1cFdpdGhDb250ZXh0KERvY3VtZW50KiBkb2N1bQogCiAgICAgUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IHRhZ2dlZEZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3Vw
KGRvY3VtZW50LCB0YWdnZWRNYXJrdXAudG9TdHJpbmcoKSwgYmFzZVVSTCwgc2NyaXB0aW5nUGVy
bWlzc2lvbik7CiAgICAgUmVmUHRyPERvY3VtZW50PiB0YWdnZWREb2N1bWVudCA9IERvY3VtZW50
OjpjcmVhdGUoMCwgS1VSTCgpKTsKKyAgICB0YWdnZWREb2N1bWVudC0+c2V0RmVhdHVyZVN3aXRj
aChkb2N1bWVudC0+ZmVhdHVyZVN3aXRjaCgpKTsKICAgICB0YWdnZWREb2N1bWVudC0+dGFrZUFs
bENoaWxkcmVuRnJvbSh0YWdnZWRGcmFnbWVudC5nZXQoKSk7CiAKICAgICBSZWZQdHI8Tm9kZT4g
bm9kZUJlZm9yZUNvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNw
cAppbmRleCA2N2RkY2ViNGZhYTNmYTdlY2RhNTM0NTc3MzZmYzVkNmNlMzhlZjRjLi5mY2Q5Yzhi
OTdjMzUyZmQyYmUzMzQ2NjMwNDk5YThiZmU0NjI3ZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFN0eWxlRWxlbWVudC5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlICJIVE1MU3R5
bGVFbGVtZW50LmgiCiAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKLSNpbmNsdWRlICJDb250ZXh0
RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2guaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRT
ZW5kZXIuaCIKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIEhUTUxTdHlsZUVsZW1lbnQ6OnJlZ2lz
dGVyV2l0aFNjb3BpbmdOb2RlKCkKICAgICBBU1NFUlQoaW5Eb2N1bWVudCgpKTsKICAgICBpZiAo
bV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05vZGUpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAo
IUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSkK
KyAgICBpZiAoIUNvbnRleHRGZWF0dXJlU3dpdGNoOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1l
bnQoKSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIENvbnRhaW5lck5vZGUqIHNjb3BlID0gcGFy
ZW50Tm9kZSgpOwpAQCAtMTMwLDEwICsxMzAsMTAgQEAgdm9pZCBIVE1MU3R5bGVFbGVtZW50Ojp1
bnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKENvbnRhaW5lck5vZGUqIHNjb3BlKQogewogICAgIC8v
IE5vdGU6IFdlIGNhbm5vdCByZWx5IG9uIHRoZSAnc2NvcGVkJyBlbGVtZW50IHN0aWxsIGJlaW5n
IHByZXNlbnQgd2hlbiB0aGlzIG1ldGhvZCBpcyBpbnZva2VkLgogICAgIC8vIFRoZXJlZm9yZSB3
ZSBjYW5ub3QgcmVseSBvbiBzY29wZWQoKSEKLSAgICBBU1NFUlQobV9pc1JlZ2lzdGVyZWRXaXRo
U2NvcGluZ05vZGUgfHwgIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxl
ZChkb2N1bWVudCgpKSk7CisgICAgQVNTRVJUKG1faXNSZWdpc3RlcmVkV2l0aFNjb3BpbmdOb2Rl
IHx8ICFDb250ZXh0RmVhdHVyZVN3aXRjaDo6c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50KCkp
KTsKICAgICBpZiAoIW1faXNSZWdpc3RlcmVkV2l0aFNjb3BpbmdOb2RlKQogICAgICAgICByZXR1
cm47Ci0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQo
ZG9jdW1lbnQoKSkpCisgICAgaWYgKCFDb250ZXh0RmVhdHVyZVN3aXRjaDo6c3R5bGVTY29wZWRF
bmFibGVkKGRvY3VtZW50KCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoc2NvcGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5j
cHAKaW5kZXggMDhiNDVkNGFiZjU5YmZjNzZlOGU3NDAwM2MxNzZkZGM5NjBlNGJlZi4uOTU5ZjVh
NGM0OTI5NmVlNzhmYTBmM2YwM2YyMGFhZWEzNWY1Mzg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCkBAIC0yOSw3ICsyOSw3IEBA
CiAKICNpbmNsdWRlICJDb250ZW50RGlzdHJpYnV0b3IuaCIKICNpbmNsdWRlICJDb250ZW50U2Vs
ZWN0b3JRdWVyeS5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNs
dWRlICJDb250ZXh0RmVhdHVyZVN3aXRjaC5oIgogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCkBAIC00
Myw3ICs0Myw3IEBAIHVzaW5nIEhUTUxOYW1lczo6c2VsZWN0QXR0cjsKIHN0YXRpYyBjb25zdCBR
dWFsaWZpZWROYW1lJiBjb250ZW50VGFnTmFtZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAjaWYg
RU5BQkxFKFNIQURPV19ET00pCi0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFk
b3dET01FbmFibGVkKGRvY3VtZW50LT5kb21XaW5kb3coKSkpCisgICAgaWYgKCFDb250ZXh0RmVh
dHVyZVN3aXRjaDo6c2hhZG93RE9NRW5hYmxlZChkb2N1bWVudCkpCiAgICAgICAgIHJldHVybiBI
VE1MTmFtZXM6OndlYmtpdFNoYWRvd0NvbnRlbnRUYWc7CiAgICAgcmV0dXJuIEhUTUxOYW1lczo6
Y29udGVudFRhZzsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RE9NUGF0Y2hTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1
cHBvcnQuY3BwCmluZGV4IGJhMGQ4Yzg2YzU1OGM4ZmE4ZTI1M2VlOTYxYjAwOGJkMDY1M2UyNTAu
LjljYWYzODE1NjFiMzU2Yjk3OWZmNmM3M2I3NGNjYmI2MWZjNWViNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwCkBAIC04OSw2ICs4OSw3IEBAIERP
TVBhdGNoU3VwcG9ydDo6fkRPTVBhdGNoU3VwcG9ydCgpIHsgfQogdm9pZCBET01QYXRjaFN1cHBv
cnQ6OnBhdGNoRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXApCiB7CiAgICAgUmVmUHRyPEhU
TUxEb2N1bWVudD4gbmV3RG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZSgwLCBLVVJMKCkp
OworICAgIG5ld0RvY3VtZW50LT5zZXRGZWF0dXJlU3dpdGNoKG1fZG9jdW1lbnQtPmZlYXR1cmVT
d2l0Y2goKSk7CiAgICAgUmVmUHRyPERvY3VtZW50UGFyc2VyPiBwYXJzZXIgPSBIVE1MRG9jdW1l
bnRQYXJzZXI6OmNyZWF0ZShuZXdEb2N1bWVudC5nZXQoKSwgZmFsc2UpOwogICAgIHBhcnNlci0+
aW5zZXJ0KG1hcmt1cCk7IC8vIFVzZSBpbnNlcnQoKSBzbyB0aGF0IHRoZSBwYXJzZXIgd2lsbCBu
b3QgeWllbGQuCiAgICAgcGFyc2VyLT5maW5pc2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZjVjN2E3MjY2YTYwMGRlYTUyOWJmOWQxM2MxN2JkZTYy
MGVhOWQyNy4uYmU4MTAyODdhNzBkNTVlOGU2NTZiZmYzZDY0MGFhZmE1MzNiMTA2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTMxMSwxMiArMzExLDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dEaXNwbGF5
aW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBTZWN1cml0eU9yaWdp
biosIGNvbnN0IEtVUkwmKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KICAgICAgICAg
dmlydHVhbCBib29sIGFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJT
ZXR0aW5ncywgU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBl
clNldHRpbmdzOyB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGFsbG93U2hhZG93RE9NKGJvb2wg
ZW5hYmxlZEFzUnVudGltZUZlYXR1cmVzKSB7IHJldHVybiBlbmFibGVkQXNSdW50aW1lRmVhdHVy
ZXM7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGFsbG93U3R5bGVTY29wZWQoYm9vbCBlbmFibGVk
QXNSdW50aW1lRmVhdHVyZXMpIHsgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlczsgfQot
I2lmIEVOQUJMRShQQUdFX1BPUFVQKQotICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dQYWdlUG9w
dXAoKSB7IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCi0KICAgICAgICAgLy8gVGhpcyBjYWxsYmFj
ayBub3RpZmllcyB0aGUgY2xpZW50IHRoYXQgdGhlIGZyYW1lIHdhcyBhYm91dCB0byBydW4KICAg
ICAgICAgLy8gSmF2YVNjcmlwdCBidXQgZGlkIG5vdCBiZWNhdXNlIGFsbG93U2NyaXB0IHJldHVy
bmVkIGZhbHNlLiBXZQogICAgICAgICAvLyBoYXZlIGEgc2VwYXJhdGUgY2FsbGJhY2sgaGVyZSBi
ZWNhdXNlIHRoZXJlIGFyZSBhIG51bWJlciBvZiBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCmluZGV4IDdjNWU1YjVmMDg3YjA1ODg4NTU0NjU0MTU3MjhiOWRjZjYyMDY1
NGUuLmQ1MjQ4MWYzMTg2ZmRkNjVkODRiZGJkNDc5Y2U0ZWRmMjA2ZGU0NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMjUzLDYgKzI1Myw3IEBAIERvY3VtZW50KiBY
TUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAg
ICAvLyBGSVhNRTogU2V0IExhc3QtTW9kaWZpZWQuCiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9j
dW1lbnQtPnNldENvbnRlbnQobV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFj
aXR5KCkpOwogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRTZWN1cml0eU9yaWdp
bihzZWN1cml0eU9yaWdpbigpKTsKKyAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0
RmVhdHVyZVN3aXRjaChkb2N1bWVudCgpLT5mZWF0dXJlU3dpdGNoKCkpOwogICAgICAgICAgICAg
aWYgKCFtX3Jlc3BvbnNlRG9jdW1lbnQtPndlbGxGb3JtZWQoKSkKICAgICAgICAgICAgICAgICBt
X3Jlc3BvbnNlRG9jdW1lbnQgPSAwOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKaW5kZXggMzQwNzQxOGM0YTNjM2U0OTllMWI5YjMzNGQ4N2Q2NjY1MGQyMDFmOS4uMThiZTZj
MmFhNjZkYmVjMzE5MGJlNTVjYmJjMzRjNDNhMDliZmZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cApAQCAtMzczLDYgKzM3Myw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9Db21wb3Np
dGlvblVuZGVybGluZUJ1aWxkZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Db21wb3NpdGlv
blVuZGVybGluZVZlY3RvckJ1aWxkZXIuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0NvbXBv
c2l0aW9uVW5kZXJsaW5lVmVjdG9yQnVpbGRlci5oJywKKyAgICAgICAgICAgICAgICAnc3JjL0Nv
bnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbC5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMv
Q29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMv
Q29udGV4dE1lbnVDbGllbnRJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Db250ZXh0
TWVudUNsaWVudEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9EYXRhYmFzZU9ic2VydmVy
LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJt
aXNzaW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJtaXNz
aW9uQ2xpZW50LmgKaW5kZXggMTE2YTM4M2NhOGMyOGI0Nzg5YWU3MzVmZjFlNDRjZDMyN2RkZWM4
My4uMDE0YzJjM2Y0NDAyMzU0MmQ2MWIxODljNTIyNWY3NDA0NjVjYzhlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaApAQCAt
MzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViRG9jdW1lbnQ7
CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOwogY2xhc3MgV2ViU3Ry
aW5nOwpAQCAtOTAsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFsbG93V3Jp
dGVUb0NsaXBib2FyZChXZWJGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBkZWZh
dWx0VmFsdWU7IH0KIAogICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgZW5hYmxpbmcgV2ViIENvbXBv
bmVudHMgQVBJIGZvciB0aGlzIGZyYW1lLgotICAgIHZpcnR1YWwgYm9vbCBhbGxvd1dlYkNvbXBv
bmVudHMoV2ViRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVl
OyB9CisgICAgdmlydHVhbCBib29sIGFsbG93V2ViQ29tcG9uZW50cyhjb25zdCBXZWJEb2N1bWVu
dCYsIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0KIAogICAgIC8v
IE5vdGlmaWVzIHRoZSBjbGllbnQgdGhhdCB0aGUgZnJhbWUgd291bGQgaGF2ZSBpbnN0YW50aWF0
ZWQgYSBwbHVnLWluIGlmIHBsdWctaW5zIHdlcmUgZW5hYmxlZC4KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkTm90QWxsb3dQbHVnaW5zKFdlYkZyYW1lKikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jZjgxNzFhODFmZmYxNzg4MTk1MzgwZDAyYTIxZTBiYWNlYzA1OWQ3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1
cmVTd2l0Y2hDbGllbnRJbXBsLmNwcApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbC5oIgorCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJXZWJEb2N1bWVudC5oIgorI2luY2x1ZGUgIldlYlBl
cm1pc3Npb25DbGllbnQuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgQ29udGV4dEZl
YXR1cmVTd2l0Y2hDbGllbnRJbXBsOjpzaGFkb3dET01FbmFibGVkKFdlYkNvcmU6OkRvY3VtZW50
KiBkb2N1bWVudCwgYm9vbCBkZWZhdWx0VmFsdWUpIE9WRVJSSURFCit7CisgICAgaWYgKCFtX2Ns
aWVudCkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICByZXR1cm4gbV9jbGllbnQt
PmFsbG93V2ViQ29tcG9uZW50cyhXZWJEb2N1bWVudChkb2N1bWVudCksIGRlZmF1bHRWYWx1ZSk7
Cit9CisKK2Jvb2wgQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsOjpzdHlsZVNjb3BlZEVu
YWJsZWQoV2ViQ29yZTo6RG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGRlZmF1bHRWYWx1ZSkgT1ZF
UlJJREUKK3sKKyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVl
OworICAgIHJldHVybiBtX2NsaWVudC0+YWxsb3dXZWJDb21wb25lbnRzKFdlYkRvY3VtZW50KGRv
Y3VtZW50KSwgZGVmYXVsdFZhbHVlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZVN3aXRjaENs
aWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlU3dp
dGNoQ2xpZW50SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNzBkMTFhZDM4ZjM5ZjI1ODg2ZGJhMGUwZDJh
MTRjNzRhYzA0NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Db250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGwuaApAQCAtMCwwICsxLDU3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGxfaAorI2RlZmluZSBDb250ZXh0RmVhdHVy
ZVN3aXRjaENsaWVudEltcGxfaAorCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2guaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBlcm1pc3Npb25DbGllbnQ7CisKK2Ns
YXNzIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpDb250
ZXh0RmVhdHVyZVN3aXRjaENsaWVudCB7CitwdWJsaWM6CisgICAgQ29udGV4dEZlYXR1cmVTd2l0
Y2hDbGllbnRJbXBsKCkKKyAgICAgICAgOiBtX2NsaWVudCgwKQorICAgIHsgfQorCisgICAgdmly
dHVhbCBib29sIHNoYWRvd0RPTUVuYWJsZWQoV2ViQ29yZTo6RG9jdW1lbnQqLCBib29sIGRlZmF1
bHRWYWx1ZSkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHN0eWxlU2NvcGVkRW5hYmxlZChX
ZWJDb3JlOjpEb2N1bWVudCosIGJvb2wgZGVmYXVsdFZhbHVlKSBPVkVSUklERTsKKworICAgIHZv
aWQgc2V0UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNzaW9uQ2xpZW50KiBjbGllbnQpIHsgbV9j
bGllbnQgPSBjbGllbnQ7IH0KKworcHJpdmF0ZToKKyAgICBXZWJQZXJtaXNzaW9uQ2xpZW50KiBt
X2NsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gQ29udGV4
dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCmluZGV4IGRlM2YyMjc4OWY1ZmExNWIw
YWNkOGVkNzRkMWU1YWY5MGU5NjlmMmMuLmQwNjAyYTlhMGU3MDRlY2Q5MTJmNmRjYWZjMWNjYzVm
OWEyYWY5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9h
ZGVyQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVM
b2FkZXJDbGllbnRJbXBsLmNwcApAQCAtMjM5LDI0ICsyMzksNiBAQCBib29sIEZyYW1lTG9hZGVy
Q2xpZW50SW1wbDo6YWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNl
dHRpbmdzLAogICAgIHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7CiB9CiAKLWJvb2wgRnJhbWVM
b2FkZXJDbGllbnRJbXBsOjphbGxvd1NoYWRvd0RPTShib29sIGVuYWJsZWRBc1J1bnRpbWVGZWF0
dXJlKQotewotICAgIFdlYlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwo
KTsKLSAgICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCkpCi0gICAg
ICAgIHJldHVybiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93V2ViQ29tcG9uZW50
cyhtX3dlYkZyYW1lLCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZSk7Ci0KLSAgICByZXR1cm4gZW5h
YmxlZEFzUnVudGltZUZlYXR1cmU7Ci19Ci0KLWJvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjph
bGxvd1N0eWxlU2NvcGVkKGJvb2wgZW5hYmxlZEFzUnVudGltZUZlYXR1cmUpCi17Ci0gICAgV2Vi
Vmlld0ltcGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOwotICAgIGlmICh3ZWJ2
aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKLSAgICAgICAgcmV0dXJuIHdlYnZp
ZXctPnBlcm1pc3Npb25DbGllbnQoKS0+YWxsb3dXZWJDb21wb25lbnRzKG1fd2ViRnJhbWUsIGVu
YWJsZWRBc1J1bnRpbWVGZWF0dXJlKTsKLQotICAgIHJldHVybiBlbmFibGVkQXNSdW50aW1lRmVh
dHVyZTsKLX0KLQogdm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZE5vdEFsbG93U2NyaXB0
KCkKIHsKICAgICBXZWJWaWV3SW1wbCogd2VidmlldyA9IG1fd2ViRnJhbWUtPnZpZXdJbXBsKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVu
dEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1w
bC5oCmluZGV4IDIzNmEwMWI2NTMwMjk1MTQ2YWNlYTEzYmRlNWQwZjIzODM3YTlmYWYuLmVjYjIw
YTJmYjI1ZWZlNjRhZmU2MGQ0MjQ2ZTZjOTkzYWY1ZjMxMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCkBAIC0xOTksOCArMTk5
LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ltYWdlKGJvb2wgZW5hYmxlZFBl
clNldHRpbmdzLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBpbWFnZVVSTCk7CiAgICAgdmlydHVhbCBi
b29sIGFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5n
cywgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXZWJDb3JlOjpLVVJMJik7CiAgICAg
dmlydHVhbCBib29sIGFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJT
ZXR0aW5ncywgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXZWJDb3JlOjpLVVJMJik7
Ci0gICAgdmlydHVhbCBib29sIGFsbG93U2hhZG93RE9NKGJvb2wgZW5hYmxlZEFzUnVudGltZUZl
YXR1cmUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhbGxvd1N0eWxlU2NvcGVkKGJvb2wg
ZW5hYmxlZEFzUnVudGltZUZlYXR1cmUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRO
b3RBbGxvd1NjcmlwdCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1BsdWdpbnMoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcApp
bmRleCBhZTVhYWM4YTQwNzNmYjU4NzFkOTczNGQ3ZjQ0NzdjYWJmY2VjMzZkLi5lOWQxMmFkMmYy
ZWY2NTMxMzI0MDdhZTIyZWZiZTliYzQxMzg4NjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgIldlYlBhZ2VQb3B1cEltcGwuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUg
IkNvbnRleHRGZWF0dXJlU3dpdGNoLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93UGFnZVBvcHVwLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFbXB0eUNsaWVudHMuaCIK
QEAgLTEyNyw4ICsxMjgsOCBAQCBwcml2YXRlOgogICAgIFdlYlBhZ2VQb3B1cEltcGwqIG1fcG9w
dXA7CiB9OwogCi1jbGFzcyBQYWdlUG9wdXBGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBFbXB0
eUZyYW1lTG9hZGVyQ2xpZW50IHsKLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dQYWdlUG9wdXAoKSBP
VkVSUklERSB7IHJldHVybiB0cnVlOyB9CitjbGFzcyBQYWdlUG9wdXBGZWF0dXJlU3dpdGNoQ2xp
ZW50IDogcHVibGljIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50IHsKKyAgICB2aXJ0dWFsIGJv
b2wgcGFnZVBvcHVwRW5hYmxlZChEb2N1bWVudCosIGJvb2wpIE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KIH07CiAKIC8vIFdlYlBhZ2VQb3B1cEltcGwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTg1LDggKzE4Niwx
MCBAQCBib29sIFdlYlBhZ2VQb3B1cEltcGw6OmluaXRQYWdlKCkKICAgICBtX3BhZ2UtPnNldHRp
bmdzKCktPnNldFNjcmlwdEVuYWJsZWQodHJ1ZSk7CiAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5z
ZXRBbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93cyh0cnVlKTsKIAotICAgIHN0YXRpYyBGcmFtZUxv
YWRlckNsaWVudCogcGFnZVBvcHVwRnJhbWVMb2FkZXJDbGllbnQgPSAgbmV3IFBhZ2VQb3B1cEZy
YW1lTG9hZGVyQ2xpZW50OwotICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBGcmFtZTo6Y3JlYXRl
KG1fcGFnZS5nZXQoKSwgMCwgcGFnZVBvcHVwRnJhbWVMb2FkZXJDbGllbnQpOworICAgIHN0YXRp
YyBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCogcGFnZVBvcHVwRmVhdHVyZVN3aXRjaENsaWVu
dCA9ICBuZXcgUGFnZVBvcHVwRmVhdHVyZVN3aXRjaENsaWVudCgpOworICAgIHByb3ZpZGVDb250
ZXh0RmVhdHVyZVN3aXRjaFRvKG1fcGFnZS5nZXQoKSwgcGFnZVBvcHVwRmVhdHVyZVN3aXRjaENs
aWVudCk7CisgICAgc3RhdGljIEZyYW1lTG9hZGVyQ2xpZW50KiBlbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50ID0gIG5ldyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50KCk7CisgICAgUmVmUHRyPEZyYW1lPiBm
cmFtZSA9IEZyYW1lOjpjcmVhdGUobV9wYWdlLmdldCgpLCAwLCBlbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50KTsKICAgICBmcmFtZS0+c2V0VmlldyhGcmFtZVZpZXc6OmNyZWF0ZShmcmFtZS5nZXQoKSkp
OwogICAgIGZyYW1lLT5pbml0KCk7CiAgICAgZnJhbWUtPnZpZXcoKS0+cmVzaXplKG1fcG9wdXBD
bGllbnQtPmNvbnRlbnRTaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCmluZGV4IDhiNGUyZWFmMDQ2MTUyMDg3ZDhiMDgxZmYyZmQ3MmI1OGIwZDJhNTIu
LjU0OWYwN2MzMTMzYzBhZDcyNzU5NWY5ZGU0ZGIyOWE2YWZkMmVjMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNs
dWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNsdWRlICJDb21wb3Np
dGlvblVuZGVybGluZVZlY3RvckJ1aWxkZXIuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZVN3
aXRjaENsaWVudEltcGwuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudS5oIgogI2luY2x1ZGUgIkNv
bnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5oIgpAQCAt
MzM3LDYgKzMzOCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldERldlRvb2xzQWdlbnRDbGllbnQo
V2ViRGV2VG9vbHNBZ2VudENsaWVudCogZGV2VG9vbHNDbGllbnQpCiB2b2lkIFdlYlZpZXdJbXBs
OjpzZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGllbnQqIHBlcm1pc3Npb25DbGll
bnQpCiB7CiAgICAgbV9wZXJtaXNzaW9uQ2xpZW50ID0gcGVybWlzc2lvbkNsaWVudDsKKyAgICBt
X2ZlYXR1cmVTd2l0Y2hDbGllbnQtPnNldFBlcm1pc3Npb25DbGllbnQocGVybWlzc2lvbkNsaWVu
dCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldFByZXJlbmRlcmVyQ2xpZW50KFdlYlByZXJl
bmRlcmVyQ2xpZW50KiBwcmVyZW5kZXJlckNsaWVudCkKQEAgLTM5Miw2ICszOTQsNyBAQCBXZWJW
aWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50KQogICAgICwgbV9pbWVB
Y2NlcHRFdmVudHModHJ1ZSkKICAgICAsIG1fb3BlcmF0aW9uc0FsbG93ZWQoV2ViRHJhZ09wZXJh
dGlvbk5vbmUpCiAgICAgLCBtX2RyYWdPcGVyYXRpb24oV2ViRHJhZ09wZXJhdGlvbk5vbmUpCisg
ICAgLCBtX2ZlYXR1cmVTd2l0Y2hDbGllbnQoYWRvcHRQdHIobmV3IENvbnRleHRGZWF0dXJlU3dp
dGNoQ2xpZW50SW1wbCgpKSkKICAgICAsIG1fYXV0b2ZpbGxQb3B1cFNob3dpbmcoZmFsc2UpCiAg
ICAgLCBtX2F1dG9maWxsUG9wdXAoMCkKICAgICAsIG1faXNUcmFuc3BhcmVudChmYWxzZSkKQEAg
LTQ1MSw2ICs0NTQsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCog
Y2xpZW50KQogICAgIHByb3ZpZGVOb3RpZmljYXRpb24obV9wYWdlLmdldCgpLCBub3RpZmljYXRp
b25QcmVzZW50ZXJJbXBsKCkpOwogI2VuZGlmCiAKKyAgICBwcm92aWRlQ29udGV4dEZlYXR1cmVT
d2l0Y2hUbyhtX3BhZ2UuZ2V0KCksIG1fZmVhdHVyZVN3aXRjaENsaWVudC5nZXQoKSk7CiAgICAg
cHJvdmlkZURldmljZU9yaWVudGF0aW9uVG8obV9wYWdlLmdldCgpLCBtX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50UHJveHkuZ2V0KCkpOwogICAgIHByb3ZpZGVHZW9sb2NhdGlvblRvKG1fcGFnZS5n
ZXQoKSwgbV9nZW9sb2NhdGlvbkNsaWVudFByb3h5LmdldCgpKTsKICAgICBtX2dlb2xvY2F0aW9u
Q2xpZW50UHJveHktPnNldENvbnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKG1f
cGFnZS5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5k
ZXggNzQwNWI1NGMzODA3YWRkNDRjYzM2NzY2OTc5ZWFmNDk4NDhkMjZlYS4uZjc5OTY1Zjg5NTZi
MzgwZmZjODg3OTY5ODliZGNjOGU1YjE2OTIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5oCkBAIC04Niw2ICs4Niw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xh
c3MgQXV0b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50OwogY2xhc3MgQXV0b2ZpbGxQb3B1cE1lbnVD
bGllbnQ7CiBjbGFzcyBCYXR0ZXJ5Q2xpZW50SW1wbDsKK2NsYXNzIENvbnRleHRGZWF0dXJlU3dp
dGNoQ2xpZW50SW1wbDsKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50SW1wbDsKIGNsYXNzIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UHJveHk7CiBjbGFzcyBEcmFnU2Nyb2xsVGltZXI7CkBAIC03MzQs
NiArNzM1LDkgQEAgcHJpdmF0ZToKICAgICAvLyBjdXJyZW50IGRyb3AgdGFyZ2V0IGluIHRoaXMg
V2ViVmlldyAodGhlIGRyb3AgdGFyZ2V0IGNhbiBhY2NlcHQgdGhlIGRyb3ApLgogICAgIFdlYkRy
YWdPcGVyYXRpb24gbV9kcmFnT3BlcmF0aW9uOwogCisgICAgLy8gQ29udGV4dC1iYXNlZCBmZWF0
dXJlIHN3aXRjaGVzLgorICAgIE93blB0cjxDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGw+
IG1fZmVhdHVyZVN3aXRjaENsaWVudDsKKwogICAgIC8vIFdoZXRoZXIgYW4gQXV0b2ZpbGwgcG9w
dXAgaXMgY3VycmVudGx5IHNob3dpbmcuCiAgICAgYm9vbCBtX2F1dG9maWxsUG9wdXBTaG93aW5n
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMGYyMjU1ZjhmNmQ3Yjk0NGU3N2ZlZTFlMmU5ZGI5NzhkOTYwMzgwYy4uMTBl
OWViM2M2MTI4OTcwNjU4ZTUzZDQ1NGYwMzYxMTE0OTg2YzcwZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDEyLTA2LTA1ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJFR1JFU1NJT04ocjExODA5OCk6IDxjb250ZW50PiBlbGVtZW50IGRvZXMgbm90
IHJlbmRlciBkaXN0cmlidXRlZCBjaGlsZHJlbiB3aGVuIGNsb25lZCBmcm9tIGFub3RoZXIgZG9j
dW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4
MTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBm
YXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVz
cy1kb2N1bWVudC5odG1sOiBBZGRlZC4KKwogMjAxMi0wNi0wNSAgTGV2aSBXZWludHJhdWIgIDxs
ZXZpd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuIE1vcmUg
dXBkYXRlZCBDaHJvbWl1bSB0ZXN0IGV4cGVjdGF0aW9ucyBmb2xsb3dpbmcgMTE5NTI4LgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVz
cy1kb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxl
bWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjQz
MDc1M2YyOTUzMmUxZjUyMjE1MDBhOTkyMGMxMmY4Mzc2YTJjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1bWVu
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IGVuc3VyZSB0aGF0IHRo
ZSBzaGFkb3cgcmVsYXRlZCBlbGVtZW50cyBhcmUgaW5zdGFudGlhdGVkIGV2ZW4gaW5zaWRlIGZy
YW1lbGVzcyBkb2N1bWVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0
aW5nIG9uIHRoZSBmcmFtZS1sZXNzIGRvY3VtZW50LgorUEFTUyB3aW5kb3cuSFRNTENvbnRlbnRF
bGVtZW50IGlzIGNvbnRlbnQuY29uc3RydWN0b3IKK1BBU1Mgd2luZG93LkhUTUxTaGFkb3dFbGVt
ZW50IGlzIHNoYWRvdy5jb25zdHJ1Y3RvcgorTW92aW5nIHRvIHRoZSBtYWluIGRvY3VtZW50Lgor
UEFTUyB3aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IGlzIGNvbnRlbnQuY29uc3RydWN0b3IKK1BB
U1Mgd2luZG93LkhUTUxTaGFkb3dFbGVtZW50IGlzIHNoYWRvdy5jb25zdHJ1Y3RvcgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCit4KwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1
bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1l
bGVzcy1kb2N1bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwYjZiZTgxZWY1N2RjYjIxZmY1NTY1Njdk
NGI0NmYwZTkzNmUyOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwKQEAgLTAsMCArMSwzMCBA
QAoreCs8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJlIHRoYXQgdGhlIHNoYWRvdyBy
ZWxhdGVkIGVsZW1lbnRzIGFyZSBpbnN0YW50aWF0ZWQgZXZlbiBpbnNpZGUgZnJhbWVsZXNzIGRv
Y3VtZW50cy4iKTsKKwordmFyIGRvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhU
TUxEb2N1bWVudCgpOwordmFyIGNvbnRhaW5lciA9IGRvYy5jcmVhdGVFbGVtZW50KCJzcGFuIik7
Citkb2MuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOworY29udGFpbmVyLmlubmVySFRNTCA9
ICI8Y29udGVudCBpZD0nY29udGVudEVsZW1lbnQnPjwvY29udGVudD48c2hhZG93IGlkPSdzaGFk
b3dFbGVtZW50Jz48L3NoYWRvdz4iOworCit2YXIgY29udGVudCA9IGNvbnRhaW5lci5xdWVyeVNl
bGVjdG9yKCIjY29udGVudEVsZW1lbnQiKTsKK3ZhciBzaGFkb3cgPSBjb250YWluZXIucXVlcnlT
ZWxlY3RvcigiI3NoYWRvd0VsZW1lbnQiKTsKKworZGVidWcoIlRlc3Rpbmcgb24gdGhlIGZyYW1l
LWxlc3MgZG9jdW1lbnQuIik7CitzaG91bGRCZSgid2luZG93LkhUTUxDb250ZW50RWxlbWVudCIs
ICJjb250ZW50LmNvbnN0cnVjdG9yIik7CitzaG91bGRCZSgid2luZG93LkhUTUxTaGFkb3dFbGVt
ZW50IiwgInNoYWRvdy5jb25zdHJ1Y3RvciIpOworCitkZWJ1ZygiTW92aW5nIHRvIHRoZSBtYWlu
IGRvY3VtZW50LiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOworc2hv
dWxkQmUoIndpbmRvdy5IVE1MQ29udGVudEVsZW1lbnQiLCAiY29udGVudC5jb25zdHJ1Y3RvciIp
Oworc2hvdWxkQmUoIndpbmRvdy5IVE1MU2hhZG93RWxlbWVudCIsICJzaGFkb3cuY29uc3RydWN0
b3IiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146473</attachid>
            <date>2012-06-07 21:51:08 -0700</date>
            <delta_ts>2012-06-10 23:19:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88148-20120608135106.patch</filename>
            <type>text/plain</type>
            <size>68228</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDkwZTY5MzQ1MTQ4N2Ri
YjMzYjZkZWM0NDUwMmU2MWMyMDIyMmFlNy4uZjU0OWI1OGUxMmYzODExZWY5MzU3ZjY1N2RkNWVl
MTZlNjA0ZWJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDEyLTA2LTA3ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04o
cjExODA5OCk6IDxjb250ZW50PiBlbGVtZW50IGRvZXMgbm90IHJlbmRlciBkaXN0cmlidXRlZCBj
aGlsZHJlbiB3aGVuIGNsb25lZCBmcm9tIGFub3RoZXIgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTQ4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHNoYWRvdyBET00gYXZhaWxhYmls
aXR5IHdhcyBkZWNpZGVkIHRocm91Z2ggRnJhbWVMb2FkZXJDbGllbnQuCisgICAgICAgIEJ1dCB0
aGVyZSBhcmUgZG9jdW1lbnRzIHdoaWNoIGRvbid0IGhhdmUgYW55IGFzc29jaWF0ZWQgZnJhbWVz
LAorICAgICAgICBpbiB3aGljaCBhbnkgc2hhZG93IERPTSByZWxhdGVkIGVsZW1lbnRzIGNhbm5v
dCBiZSBjb25zdHJ1Y3RlZC4KKyAgICAgICAgVGhhdCByZXN1bHN0ZWQgdGhlIHJlZ3Jlc3Npb24u
CisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaW50cm9kdWNlcyBhIFBhZ2UtYmFzZWQgY2xpZW50IGNh
bGxlZCBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudAorICAgICAgICB3aGljaCB0YWtlcyB0aGUg
cm9sZSBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50IHRvIGRlY2lkZSB0aGUgZmVhdHVyZSBhdmFpbGFi
aWxpdHksCisgICAgICAgIGFuZCBDb250ZXh0RmVhdHVyZVN3aXRjaCB3aGljaCBpcyBhIHByb3h5
IG9mIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50LgorCisgICAgICAgIENvbnRleHRGZWF0dXJl
U3dpdGNoIGlzIG93bmVkIGJ5IGEgUGFnZSwgYW5kIGlzIGF0dGFjaGVkIHRvIGVhY2ggRG9jdW1l
bnQgaW4gdGhlIHBhZ2UKKyAgICAgICAgZXZlbiBpZiB0aGUgcGFnZSBpdHNlbGYgaGFzIG5vIHJl
ZmVyZW5jdCB0byBGcmFtZXMgb3IgUGFnZXMuIFdpdGggQ29udGV4dEZlYXR1cmVTd2l0Y2gsCisg
ICAgICAgIGVhY2ggRG9jdW1lbnQgY2FuIGRlY2lkZSB0aGUgZmVhdHVyZSBhdmFpbGFiaWxpdHkg
ZXZlbiBpZiBpdCBjYW5ub3QgcmVhY2ggUGFnZSBvciBGcmFtZS4KKworICAgICAgICBDb250ZXh0
RW5hYmxlZEZlYXR1cmVzIGlzIHJlbW92ZWQgc2luY2UgaXQgaXMgcmVwbGFjZWQgd2l0aCBDb250
ZXh0RmVhdHVyZVN3aXRjaC4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvZWxlbWVu
dHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOiBSZXBsYWNlZCBD
b250ZXh0RW5hYmxlZEZlYXR1cmVzIHdpdGggQ29udGV4dEZlYXR1cmVTd2l0Y2gKKyAgICAgICAg
KEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNw
cDogUmVwbGFjZWQgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyB3aXRoIENvbnRleHRGZWF0dXJlU3dp
dGNoLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6ZGV0ZXJtaW5lU2NvcGUpOgor
ICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZVN3aXRjaC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudDo6
ZW1wdHkpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OnN1cHBsZW1l
bnROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlU3dpdGNoOjpwcm92aWRl
VG8pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OmRlZmF1bHRTd2l0
Y2gpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OnNoYWRvd0RPTUVu
YWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OnN0eWxlU2Nv
cGVkRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZVN3aXRjaDo6cGFn
ZVBvcHVwRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlQ29udGV4dEZlYXR1cmVT
d2l0Y2hUbyk6CisgICAgICAgICogZG9tL0NvbnRleHRGZWF0dXJlU3dpdGNoLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnQ6On5D
b250ZXh0RmVhdHVyZVN3aXRjaENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVh
dHVyZVN3aXRjaENsaWVudDo6aXNFbmFibGVkKToKKyAgICAgICAgKENvbnRleHRGZWF0dXJlU3dp
dGNoKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZVN3aXRjaDo6Q29u
dGV4dEZlYXR1cmVTd2l0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVTd2l0
Y2g6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZVN3aXRjaDo6aXNF
bmFibGVkKToKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGRvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHA6IFB1dCBDb250ZXh0RmVhdHVyZVN3aXRjaCB0byBuZXdseSBj
cmVhdGVkIERvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNy
ZWF0ZURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpjcmVh
dGVIVE1MRG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6IFB1dCBDb250ZXh0
RmVhdHVyZVN3aXRjaCB0byBuZXdseSBjcmVhdGVkIERvY3VtZW50LgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOiBSZXBs
YWNlZCBDb250ZXh0RW5hYmxlZEZlYXR1cmVzIHdpdGggQ29udGV4dEZlYXR1cmVTd2l0Y2gKKyAg
ICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQ
b3NpdGlvbjo6ZmluZFBhcmVudCk6CisgICAgICAgICogZG9tL1NlY3VyaXR5Q29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eUNvbnRleHQ6OlNlY3VyaXR5Q29udGV4dCk6Cisg
ICAgICAgICogZG9tL1NlY3VyaXR5Q29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWN1cml0eUNvbnRleHQ6OmZlYXR1cmVTd2l0Y2gpOgorICAgICAgICAo
V2ViQ29yZTo6U2VjdXJpdHlDb250ZXh0OjpzZXRGZWF0dXJlU3dpdGNoKToKKyAgICAgICAgKFNl
Y3VyaXR5Q29udGV4dCk6IEFkZGVkIG1fZmVhdHVyZVN3aXRjaC4KKyAgICAgICAgKiBkb20vVHJl
ZVNjb3BlLmNwcDogUmVwbGFjZWQgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyB3aXRoIENvbnRleHRG
ZWF0dXJlU3dpdGNoCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmdldFNlbGVjdGlvbik6
CisgICAgICAgICogZG9tL21ha2VfbmFtZXMucGw6IFJlcGxhY2VkIENvbnRleHRFbmFibGVkRmVh
dHVyZXMgd2l0aCBDb250ZXh0RmVhdHVyZVN3aXRjaAorICAgICAgICAocHJpbnRDb25zdHJ1Y3Rv
ckludGVyaW9yKToKKyAgICAgICAgKHByaW50RmFjdG9yeUNwcEZpbGUpOgorICAgICAgICAocHJp
bnRXcmFwcGVyRnVuY3Rpb25zKToKKyAgICAgICAgKHByaW50V3JhcHBlckZhY3RvcnlDcHBGaWxl
KToKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6IFB1dCBDb250ZXh0RmVhdHVyZVN3aXRj
aCB0byBuZXdseSBjcmVhdGVkIERvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJh
Z21lbnRGcm9tTWFya3VwV2l0aENvbnRleHQpOgorICAgICAgICAqIGh0bWwvSFRNTFN0eWxlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU3R5bGVFbGVtZW50OjpyZWdpc3Rlcldp
dGhTY29waW5nTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU3R5bGVFbGVtZW50Ojp1bnJl
Z2lzdGVyV2l0aFNjb3BpbmdOb2RlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVu
dEVsZW1lbnQuY3BwOiBSZXBsYWNlZCBDb250ZXh0RW5hYmxlZEZlYXR1cmVzIHdpdGggQ29udGV4
dEZlYXR1cmVTd2l0Y2gKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRlbnRUYWdOYW1lKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcDogUHV0IENvbnRleHRGZWF0dXJlU3dp
dGNoIHRvIG5ld2x5IGNyZWF0ZWQgRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpET01QYXRj
aFN1cHBvcnQ6OnBhdGNoRG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oOiBSZW1vdmVkIG9sZCBBUElzCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNw
cDogUHV0IENvbnRleHRGZWF0dXJlU3dpdGNoIHRvIG5ld2x5IGNyZWF0ZWQgRG9jdW1lbnQuCisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwpOgorCiAyMDEyLTA2
LTA3ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KIAogICAgICAgICBJbXBy
b3ZlIHRoZSBwZXJmb3JtYW5jZSBvZiBwdXNoU2NvcGUgaW4gU3R5bGVSZXNvbHZlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCBiMmUzN2U5MzU4ZTVlODk5YTIzZjNmOGI2MjM0Y2M1MTUz
YTZmMTU5Li43MzQ4OGQ3MGQ5ZDQ0YmJjYzQyY2VkMzMwODdhZjBhNDc0YTA3NDM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA2LTA3ICBIYWppbWUg
TW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjEx
ODA5OCk6IDxjb250ZW50PiBlbGVtZW50IGRvZXMgbm90IHJlbmRlciBkaXN0cmlidXRlZCBjaGls
ZHJlbiB3aGVuIGNsb25lZCBmcm9tIGFub3RoZXIgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTQ4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBBZGRlZCBDb250ZXh0RmVhdHVyZVN3aXRj
aENsaWVudEltcGwgd2hpY2ggaW1wbGVtZW50cyBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZVN3aXRj
aENsaWVudC4KKyAgICAgICAgLSBSZXBsYWNlZCBQYWdlUG9wdXBGcmFtZUxvYWRlckNsaWVudCB3
aXRoIFBhZ2VQb3B1cEZlYXR1cmVTd2l0Y2hDbGllbnQuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lw
OgorICAgICAgICAqIHB1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50Lmg6CisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50OjphbGxvd1dlYkNvbXBv
bmVudHMpOgorICAgICAgICAqIHNyYy9Db250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGwuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5h
YmxlZEZlYXR1cmVzLmNwcC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0NvbnRl
eHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmguCisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAoQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsKToKKyAgICAgICAg
KFdlYktpdDo6Q29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsOjpDb250ZXh0RmVhdHVyZVN3
aXRjaENsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZVN3aXRjaENs
aWVudEltcGw6OnNldFBlcm1pc3Npb25DbGllbnQpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRl
ckNsaWVudEltcGwuY3BwOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaDoK
KyAgICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50SW1wbCk6CisgICAgICAgICogc3JjL1dlYlBhZ2VQ
b3B1cEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUG9wdXBJbXBsOjppbml0UGFn
ZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnNldFBlcm1pc3Npb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAg
ICAoV2ViS2l0KToKKwogMjAxMi0wNi0wNyAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBNb3ZlIGRpZFN0YXJ0V29ya2VyUnVuTG9vcCB0
byBQbGF0Zm9ybS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDdiOTc3ODM0NjM5MWU2MDQ0OTI5
ZGM0MGQyNjM1OTlhYjcwYjkzYTcuLjkzYTI5ZTRjZTJhOGM4YWFlMGNmZDVlNzgzYTdhNmQ5ZTQ1
NjA5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NTksNyArNDU5LDYgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGJpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcAogCiAgICAg
YmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5jcHAKLSAgICBiaW5kaW5ncy9nZW5l
cmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAogCiAgICAgY3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3Bw
CkBAIC01NTksNiArNTU4LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9Db250YWlu
ZXJOb2RlLmNwcAogICAgIGRvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAKICAgICBkb20v
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCisgICAgZG9tL0NvbnRleHRGZWF0dXJlU3dp
dGNoLmNwcAogICAgIGRvbS9DdXN0b21FdmVudC5jcHAKICAgICBkb20vRGF0YXNldERPTVN0cmlu
Z01hcC5jcHAKICAgICBkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGE5Yzc1ZTI2MDM3MmQwYzNiYWYwY2IxZjI5MmZlNTA4
MDNhMDUwNmYuLjZmOGExMWJlNTc5MDBmZTRmNDlmZDRjMjQxY2U5OGJkY2UyMWRiZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTMwNyw4ICsxMzA3LDYgQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2su
aCBcCi0JU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1
cmVzLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxl
ZEZlYXR1cmVzLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1Nl
Y3VyaXR5QmFzZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGlu
Z1NlY3VyaXR5QmFzZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRp
bmdTZWN1cml0eS5oIFwKQEAgLTE4MDAsNiArMTc5OCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250
ZXh0RmVhdHVyZVN3aXRjaC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVy
ZVN3aXRjaC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ3Jvc3NUaHJlYWRUYXNrLmggXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FdmVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9D
dXN0b21FdmVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDE1M2YxMzljMzNlYjdiY2QwODNmMmI0MmQx
OGYzMjkxMWFmZDgyZGUuLmViNTI5ZTNlZmIwZjM1YTQxYzljYzU2ZGJkNTFmOTczZTNlMDM5MDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQpAQCAtNzIsNyArNzIsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAgXAogICAgIGFjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAgXAogICAgIGJpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2su
Y3BwIFwKLSAgICBiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIFwK
ICAgICBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCiAKIHY4IHsK
QEAgLTUyOCw2ICs1MjcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vQ29udGFpbmVyTm9kZS5j
cHAgXAogICAgIGRvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAgXAogICAgIGRvbS9Db250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgXAorICAgIGRvbS9Db250ZXh0RmVhdHVyZVN3aXRj
aC5jcHAgXAogICAgIGRvbS9DdXN0b21FdmVudC5jcHAgXAogICAgIGRvbS9EZWNvZGVkRGF0YURv
Y3VtZW50UGFyc2VyLmNwcCBcCiAgICAgZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCBiM2U2NjI3ZWNkMjQ0ZjRkN2M3Mzc0ZTJjNGQ2ODc0ODc1YTM0
NDlmLi40YjU0MGM0MWIzNTU1MzNhMTg2YTAzMmZkZDAxZGI3YmEyNTgzMzE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC02MTYsNiArNjE2LDggQEAKICAgICAgICAgICAgICdkb20vQ29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2RvbS9Db250YWluZXJOb2RlLmgnLAogICAg
ICAgICAgICAgJ2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oJywKKyAgICAgICAgICAg
ICdkb20vQ29udGV4dEZlYXR1cmVTd2l0Y2guaCcsCisgICAgICAgICAgICAnZG9tL0NvbnRleHRG
ZWF0dXJlU3dpdGNoLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RPTUltcGxlbWVudGF0aW9uLmgn
LAogICAgICAgICAgICAgJ2RvbS9ET01UaW1lU3RhbXAuaCcsCiAgICAgICAgICAgICAnZG9tL0Rl
dmljZU9yaWVudGF0aW9uLmgnLApAQCAtMTg0OCw4ICsxODUwLDYgQEAKICAgICAgICAgICAgICdi
aW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eS5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaCcsCi0gICAgICAgICAgICAnYmluZGluZ3Mv
Z2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCcsCi0gICAgICAgICAgICAnYmluZGlu
Z3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmgnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2Vu
ZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
Z2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBiMTZhOTYyZTBlYjIwZGUwNzY3MzAxM2Y4
MDgwNzhiNmNmNzZjMDdjLi4zMmY3NDkwNTU2YjVlNWExNjNkMjZjOWVhOGY4ZjUxYTYzMGE1OWIy
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
NjMxNzAsMTQgKzYzMTcwLDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQ29udGV4dEVuYWJsZWRGZWF0dXJl
cy5jcHAiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xnZW5lcmljXENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKLQkJCQkJPgot
CQkJCTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdl
bmVyaWNcR2VuZXJpY0JpbmRpbmcuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMWQwY2Zi
ZmQxOGRkNmM3NzcxMzgxMmYyNmUwMTdmNTNjOWI0YjVkLi43YWNhMzhiYzFkMzM0ZmFlNjQzM2Y2
NzhlZTAzMGQ1ZTU2ZDRmNWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzQ5LDggKzM3NDksNiBAQAogCQlBNzNGOTVGRjEy
Qzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVk
UmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE3NDBCNUE1MTRDOTM1QUIwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc5MTRDOTM0ODQw
MEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCAqLzsgfTsKIAkJQTc0MEI1QTcxNEM5MzVB
RjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0RUE3ODE0QzkzNDg0MDBDOEY1QkYgLyogSlNJ
bnRlcm5hbFNldHRpbmdzLmNwcCAqLzsgfTsKLQkJQTc0N0EwN0YxNTZCMjg2OTAwMjQzRUVEIC8q
IENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc0N0EwN0QxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFi
bGVkRmVhdHVyZXMuY3BwICovOyB9OwotCQlBNzQ3QTA4MDE1NkIyODY5MDAyNDNFRUQgLyogQ29u
dGV4dEVuYWJsZWRGZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc0N0EwN0UxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVh
dHVyZXMuaCAqLzsgfTsKIAkJQTc0QkI3NkIxM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNv
ZGVQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3
NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc0MTA3NTJBQ0Iw
MEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzVFNDk3NzEwNzUyQUNCMDBDOUI4OTYgLyog
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuY3BwICovOyB9OwpAQCAtMzgwMiw2ICszODAwLDggQEAKIAkJQTdEMjBGNjIxMDdG
NDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDIwRjYwMTA3RjQwNjkwMEE4MDM5MiAvKiBK
U1dlYkdMQWN0aXZlSW5mby5jcHAgKi87IH07CiAJCUE3RDIwRjYzMTA3RjQwNjkwMEE4MDM5MiAv
KiBKU1dlYkdMQWN0aXZlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTdEMjBGNjExMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZv
LmggKi87IH07CiAJCUE3RDIwRjZEMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDIwRjZC
MTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCAqLzsgfTsKKwkJQTdEM0NBMTAx
NTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlU3dpdGNoLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDNDQTBFMTU3REY4RTkwMDg2MEE5
NyAvKiBDb250ZXh0RmVhdHVyZVN3aXRjaC5jcHAgKi87IH07CisJCUE3RDNDQTExMTU3REY4RTkw
MDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZVN3aXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEM0NBMEYxNTdERjhFOTAwODYwQTk3IC8qIENvbnRl
eHRGZWF0dXJlU3dpdGNoLmggKi87IH07CiAJCUE3RDZCMzQ5MEY2MTEwNDUwMEI3OUZEMSAvKiBX
b3JrZXJTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3RDZCMzQ3MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIu
aCAqLzsgfTsKIAkJQTdENkIzNEEwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q2
QjM0ODBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmNwcCAqLzsgfTsKIAkJ
QTdEQkY4REQxMjc2OTE5QzAwNkI2MDA4IC8qIFRleHRDaGVja2luZ0hlbHBlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0RCRjhEQjEyNzY5MTlD
MDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmNwcCAqLzsgfTsKQEAgLTEwODM2LDggKzEw
ODM2LDYgQEAKIAkJQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFj
cm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRXhwb3J0TWFj
cm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZDMTJDOTdCRkUwMDMx
QUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSb3VuZGVkUmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5
NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSb3VuZGVkUmVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlBNzQ3QTA3RDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDb250ZXh0RW5hYmxlZEZlYXR1
cmVzLmNwcDsgcGF0aCA9IGdlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3NDdBMDdFMTU2QjI4NjkwMDI0M0VFRCAvKiBDb250
ZXh0RW5hYmxlZEZlYXR1cmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENv
bnRleHRFbmFibGVkRmVhdHVyZXMuaDsgcGF0aCA9IGdlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0
dXJlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzRCQjc2QTEzQkRBODYzMDBG
RjdCRjAgLyogRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNzVFNDk3NDEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzVFNDk3NTEwNzUyQUNC
MDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMDg5NSw2ICsxMDg5Myw4IEBACiAJCUE3RDIwRjYwMTA3RjQw
NjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQWN0aXZlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3RDIwRjYxMTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5m
by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQWN0aXZlSW5mby5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0QyMEY2QjEwN0Y0MzhCMDBBODAzOTIg
LyogV2ViR0xBY3RpdmVJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdl
YkdMQWN0aXZlSW5mby5oOyBwYXRoID0gY2FudmFzL1dlYkdMQWN0aXZlSW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBN0QzQ0EwRTE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4
dEZlYXR1cmVTd2l0Y2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q29udGV4dEZlYXR1cmVTd2l0Y2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
N0QzQ0EwRjE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVTd2l0Y2guaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGV4dEZlYXR1cmVTd2l0Y2guaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdENkIzNDcwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtl
clNjcmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXb3JrZXJT
Y3JpcHRMb2FkZXIuaDsgcGF0aCA9IHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDZCMzQ4MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3Jr
ZXJTY3JpcHRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
V29ya2VyU2NyaXB0TG9hZGVyLmNwcDsgcGF0aCA9IHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdEQjQxODExNENFMUYwQTAwQTJF
MzE2IC8qIFNoYWRvd1Jvb3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3Qu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk3MDcsOCArMTk3MDcsNiBAQAog
CQkJCUE2MjJBOEY1MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAqLywKIAkJ
CQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8s
CiAJCQkJQTYyMkE4RjcxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCAq
LywKLQkJCQlBNzQ3QTA3RDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJl
cy5jcHAgKi8sCi0JCQkJQTc0N0EwN0UxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVk
RmVhdHVyZXMuaCAqLywKIAkJCQlBNjIyQThGOTEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0Jp
bmRpbmcuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gZ2VuZXJpYzsKQEAgLTIxMTQ1LDYgKzIxMTQz
LDggQEAKIAkJCQlFMUExNDcwNzExMTAyQjE1MDBFRUMwRjMgLyogQ29udGFpbmVyTm9kZUFsZ29y
aXRobXMuaCAqLywKIAkJCQk5NzYyN0I4QjE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NjI3QjhDMTRGQjNDRUUwMDJDRENBMSAvKiBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oICovLAorCQkJCUE3RDNDQTBFMTU3REY4RTkwMDg2
MEE5NyAvKiBDb250ZXh0RmVhdHVyZVN3aXRjaC5jcHAgKi8sCisJCQkJQTdEM0NBMEYxNTdERjhF
OTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlU3dpdGNoLmggKi8sCiAJCQkJMkUzRkFBMDgxMUEz
NkJGMTAwNTc2NjI0IC8qIENyb3NzVGhyZWFkVGFzay5oICovLAogCQkJCTYyQ0QzMjU2MTE1N0U1
N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8sCiAJCQkJNjJDRDMyNTcxMTU3RTU3QzAw
NjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggKi8sCkBAIC0yMTk5NSw3ICsyMTk5NSw3IEBACiAJCQkJ
NDFEMDE1Q0EwRjRCNUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzNzBENkVEQjEzODQ1NDU1MDA0NDEwM0UgLyogQ29udGVudFR5cGVQYXJzZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3NjI3QjhFMTRGQjNDRUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTc0N0EwODAxNTZCMjg2OTAwMjQz
RUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3RDND
QTExMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZVN3aXRjaC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTNCNkEwRTYwQjBCQ0E1QzAwRjUwMjdBIC8qIENvbnRleHRNZW51LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNjVBRDRGNTBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY3MEIwQzJFREEwMDVBMkIxRCAvKiBDb250
ZXh0TWVudUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjU1MTQsNyArMjU1MTQsNyBA
QAogCQkJCTQxRDAxNUNCMEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkzNzBENkVEQTEzODQ1NDU1MDA0NDEwM0UgLyogQ29udGVudFR5cGVQYXJz
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2MjdCOEQxNEZCM0NFRTAwMkNEQ0ExIC8qIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3NDdBMDdG
MTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUE3RDNDQTEwMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZVN3aXRj
aC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNjVBRDRGNjBCMEMyRURBMDA1QTJCMUQgLyogQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA2MDI3Q0IzMEIxQ0Mw
M0QwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW1NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5
M0I2QTBFQTBCMEJDQTg0MDBGNTAyN0EgLyogQ29udGV4dE1lbnVNYWMubW0gaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVu
YWJsZWRGZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRl
eHRFbmFibGVkRmVhdHVyZXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjYy
MmIzNzNlYjIxNzg1YmNjMWMwNzhiYmVhMjI4ZDAzYmMxY2I2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgot
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0g
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMu
aCIKLQotI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5j
bHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgotI2luY2x1ZGUgIkZyYW1l
TG9hZGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLWJvb2wgQ29udGV4
dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChET01XaW5kb3cqIHdpbmRvdykKLXsK
LSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChGcmFtZSog
ZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCkt
PmNsaWVudCgpLT5hbGxvd1NoYWRvd0RPTShSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dE
T01FbmFibGVkKCkpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLSNlbmRpZgotCi0jaWYgRU5BQkxF
KFNUWUxFX1NDT1BFRCkKLWJvb2wgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29wZWRF
bmFibGVkKERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICBpZiAoIWRvY3VtZW50KQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgp
KQotICAgICAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+YWxsb3dTdHlsZVNj
b3BlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoKSk7Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotI2VuZGlmICAgCi0KLSNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKLWJv
b2wgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6cGFnZVBvcHVwRW5hYmxlZChET01XaW5kb3cqIHdp
bmRvdykKLXsKLSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlm
IChGcmFtZSogZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFtZS0+
bG9hZGVyKCktPmNsaWVudCgpLT5hbGxvd1BhZ2VQb3B1cCgpOwotICAgIHJldHVybiBmYWxzZTsK
LX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTdmYTRiNzU4NWVhNzdhNzE5YmUzYjRkMzM0NDhi
MjgyZjQ5OTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5o
CisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0g
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ29udGV4dEVuYWJsZWRGZWF0
dXJlc19oCi0jZGVmaW5lIENvbnRleHRFbmFibGVkRmVhdHVyZXNfaAotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIERPTVdpbmRvdzsKLWNsYXNzIERvY3VtZW50OwotCi0vLyBBIGNsYXNz
IHRoYXQgc3RvcmVzIHN0YXRpYyBlbmFibGVycyBmb3IgYWxsIGV4cGVyaW1lbnRhbCBmZWF0dXJl
cy4gTm90ZSB0aGF0Ci0vLyB0aGUgbWV0aG9kIG5hbWVzIG11c3QgbGluZSB1cCB3aXRoIHRoZSBK
YXZhU2NyaXB0IG1ldGhvZCB0aGV5IGVuYWJsZSBmb3IgY29kZQotLy8gZ2VuZXJhdGlvbiB0byB3
b3JrIHByb3Blcmx5LgotCi1jbGFzcyBDb250ZXh0RW5hYmxlZEZlYXR1cmVzIHsKLXB1YmxpYzoK
LSNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBzdGF0aWMgYm9vbCBzaGFkb3dET01FbmFibGVk
KERPTVdpbmRvdyopOwotI2VuZGlmCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLSAgICBzdGF0
aWMgYm9vbCBzdHlsZVNjb3BlZEVuYWJsZWQoRG9jdW1lbnQqKTsKLSNlbmRpZgotI2lmIEVOQUJM
RShQQUdFX1BPUFVQKQotICAgIHN0YXRpYyBib29sIHBhZ2VQb3B1cEVuYWJsZWQoRE9NV2luZG93
Kik7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIENv
bnRleHRFbmFibGVkRmVhdHVyZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA2MWI5N2JlM2Q5NmUzYTliOTBlYzRiYzRi
ZWM1OTBlYjc1ZTdhZWNhLi4yMWU2YjNkMTUwOTMwNTk3NmMzYzA2YjI0OGI1NWM2ZGM0YjI4OTFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQpAQCAtMjQxNyw3ICsyNDE3LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICBwdXNoKEBpbXBsRml4ZWRIZWFkZXIsIEdlbmVyYXRlSW1wbGVtZW50YXRpb25Db250ZW50
SGVhZGVyKCRkYXRhTm9kZSkpOwogCiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCIpOwotICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJDb250ZXh0RW5hYmxlZEZl
YXR1cmVzLmgiKTsKKyAgICBBZGRUb0ltcGxJbmNsdWRlcygiQ29udGV4dEZlYXR1cmVTd2l0Y2gu
aCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOFByb3h5LmgiKTsKICAgICBBZGRUb0ltcGxJ
bmNsdWRlcygiVjhCaW5kaW5nLmgiKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhCaW5kaW5n
U3RhdGUuaCIpOwpAQCAtMjg2Niw3ICsyODY2LDcgQEAgRU5ECiAgICAgICAgICAgICBteSAkZW5h
YmxlRnVuY3Rpb24gPSBHZXRDb250ZXh0RW5hYmxlRnVuY3Rpb24oJHJ1bnRpbWVBdHRyLT5zaWdu
YXR1cmUpOwogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0
b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJHJ1bnRpbWVBdHRyLT5zaWduYXR1cmUpOwog
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiNpZiAke2NvbmRpdGlvbmFsU3RyaW5n
fVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgaWYgKENvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7ZW5hYmxlRnVuY3Rpb259KGlt
cGwpKSB7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChDb250
ZXh0RmVhdHVyZVN3aXRjaDo6JHtlbmFibGVGdW5jdGlvbn0oaW1wbC0+ZG9jdW1lbnQoKSkpIHtc
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHN0YXRpYyBjb25z
dCBCYXRjaGVkQXR0cmlidXRlIGF0dHJEYXRhID1cXFxuIik7CiAgICAgICAgICAgICBHZW5lcmF0
ZVNpbmdsZUJhdGNoZWRBdHRyaWJ1dGUoJGludGVyZmFjZU5hbWUsICRydW50aW1lQXR0ciwgIjsi
LCAiICAgICIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA2NDhmNjFiYmFlOTQ3MTcwNjQ1OTMxZGY3
YzU5NDg5MGFiZDBjYjQ2Li4zMTk3NTNhMTU1NTI2MzZmM2QxMDU2ZThiNjY0NGJhZmUwYWI4N2Vk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC01Miw3ICs1Miw3IEBACiAj
aW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYWxjdWxhdGlvblZhbHVlLmgiCiAj
aW5jbHVkZSAiQ29udGVudERhdGEuaCIKLSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVz
LmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2guaCIKICNpbmNsdWRlICJDb3VudGVy
LmgiCiAjaW5jbHVkZSAiQ291bnRlckNvbnRlbnQuaCIKICNpbmNsdWRlICJDdXJzb3JMaXN0Lmgi
CkBAIC00OTAsNyArNDkwLDcgQEAgY29uc3QgQ29udGFpbmVyTm9kZSogU3R5bGVSZXNvbHZlcjo6
ZGV0ZXJtaW5lU2NvcGUoY29uc3QgQ1NTU3R5bGVTaGVldCogc2hlZXQpCiB7CiAgICAgQVNTRVJU
KHNoZWV0KTsKIAotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29wZWRF
bmFibGVkKGRvY3VtZW50KCkpKQorICAgIGlmICghQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnN0eWxl
U2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBOb2Rl
KiBvd25lck5vZGUgPSBzaGVldC0+b3duZXJOb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29udGV4dEZlYXR1cmVTd2l0Y2guY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRleHRGZWF0dXJlU3dpdGNoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZmMxZWUwNjEwMmIxZmQyZGZjZDAy
MDk5NjgwZTdlZTE0MWY1Y2M5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRleHRGZWF0dXJlU3dpdGNoLmNwcApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZVN3aXRjaC5oIgorCisjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NvbnRleHRGZWF0dXJlU3dpdGNo
Q2xpZW50KiBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudDo6ZW1wdHkoKQoreworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnQsIGVtcHR5LCAoKSk7Cisg
ICAgcmV0dXJuICZlbXB0eTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBDb250ZXh0RmVhdHVy
ZVN3aXRjaDo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBuYW1lLCAoIkNvbnRleHRGZWF0dXJlU3dpdGNoIikpOworICAgIHJldHVybiBu
YW1lOworfQorCit2b2lkIENvbnRleHRGZWF0dXJlU3dpdGNoOjpwcm92aWRlVG8oRG9jdW1lbnQq
IGRvY3VtZW50LCBQYWdlKiBwYWdlKQoreworICAgIENvbnRleHRGZWF0dXJlU3dpdGNoKiBwcm92
aWRlZCA9IHN0YXRpY19jYXN0PENvbnRleHRGZWF0dXJlU3dpdGNoKj4oU3VwcGxlbWVudDxQYWdl
Pjo6ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7CisgICAgaWYgKCFwcm92aWRlZCkKKyAg
ICAgICAgcmV0dXJuOworICAgIGRvY3VtZW50LT5zZXRGZWF0dXJlU3dpdGNoKHByb3ZpZGVkKTsK
K30KKworQ29udGV4dEZlYXR1cmVTd2l0Y2gqIENvbnRleHRGZWF0dXJlU3dpdGNoOjpkZWZhdWx0
U3dpdGNoKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbnRleHRGZWF0dXJlU3dpdGNo
LCBpbnN0YW5jZSwgKENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50OjplbXB0eSgpKSk7CisgICAg
cmV0dXJuICZpbnN0YW5jZTsKK30KKworYm9vbCBDb250ZXh0RmVhdHVyZVN3aXRjaDo6c2hhZG93
RE9NRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQpCit7CisjaWYgRU5BQkxFKFNIQURPV19ET00p
CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYWRvd0RPTUVuYWJsZWQoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQtPmZlYXR1cmVTd2l0
Y2goKS0+aXNFbmFibGVkKGRvY3VtZW50LCBTaGFkb3dET00sIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkb2N1bWVu
dCk7CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK2Jvb2wgQ29udGV4dEZlYXR1cmVT
d2l0Y2g6OnN0eWxlU2NvcGVkRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQpCit7CisjaWYgRU5B
QkxFKFNUWUxFX1NDT1BFRCkKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKCk7CisgICAgcmV0dXJuIGRv
Y3VtZW50LT5mZWF0dXJlU3dpdGNoKCktPmlzRW5hYmxlZChkb2N1bWVudCwgU3R5bGVTY29wZWQs
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZCgpKTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30K
KworYm9vbCBDb250ZXh0RmVhdHVyZVN3aXRjaDo6cGFnZVBvcHVwRW5hYmxlZChEb2N1bWVudCog
ZG9jdW1lbnQpCit7CisjaWYgRU5BQkxFKFBBR0VfUE9QVVApCisgICAgaWYgKCFkb2N1bWVudCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBkb2N1bWVudC0+ZmVhdHVyZVN3aXRj
aCgpLT5pc0VuYWJsZWQoZG9jdW1lbnQsIFBhZ2VQb3B1cCwgZmFsc2UpOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oZG9jdW1lbnQpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCit2
b2lkIHByb3ZpZGVDb250ZXh0RmVhdHVyZVN3aXRjaFRvKFBhZ2UqIHBhZ2UsIENvbnRleHRGZWF0
dXJlU3dpdGNoQ2xpZW50KiBjbGllbnQpCit7CisgICAgU3VwcGxlbWVudDxQYWdlPjo6cHJvdmlk
ZVRvKHBhZ2UsIENvbnRleHRGZWF0dXJlU3dpdGNoOjpzdXBwbGVtZW50TmFtZSgpLCBDb250ZXh0
RmVhdHVyZVN3aXRjaDo6Y3JlYXRlKGNsaWVudCkpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVTd2l0Y2guaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db250ZXh0RmVhdHVyZVN3aXRjaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkYmU1OWIzMzVjODBkNWI4YmMw
NjgyNmViZWQ1Y2FiN2M5OTczYTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29udGV4dEZlYXR1cmVTd2l0Y2guaApAQCAtMCwwICsxLDg5IEBACisKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENv
bnRleHRGZWF0dXJlU3dpdGNoX2gKKyNkZWZpbmUgQ29udGV4dEZlYXR1cmVTd2l0Y2hfaAorCisj
aW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50
OworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOworCitjbGFzcyBDb250ZXh0RmVhdHVyZVN3
aXRjaCA6IHB1YmxpYyBTdXBwbGVtZW50PFBhZ2U+IHsKK3B1YmxpYzoKKyAgICBlbnVtIEZlYXR1
cmVUeXBlIHsKKyAgICAgICAgU2hhZG93RE9NLAorICAgICAgICBTdHlsZVNjb3BlZCwKKyAgICAg
ICAgUGFnZVBvcHVwCisgICAgfTsKKworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1
cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIHZvaWQgcHJvdmlkZVRvKERvY3VtZW50KiwgUGFn
ZSopOworICAgIHN0YXRpYyBDb250ZXh0RmVhdHVyZVN3aXRjaCogZGVmYXVsdFN3aXRjaCgpOwor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPENvbnRleHRGZWF0dXJlU3dpdGNoPiBjcmVhdGUoQ29udGV4
dEZlYXR1cmVTd2l0Y2hDbGllbnQqKTsKKworICAgIHN0YXRpYyBib29sIHNoYWRvd0RPTUVuYWJs
ZWQoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgYm9vbCBzdHlsZVNjb3BlZEVuYWJsZWQoRG9jdW1l
bnQqKTsKKyAgICBzdGF0aWMgYm9vbCBwYWdlUG9wdXBFbmFibGVkKERvY3VtZW50Kik7CisKKyAg
ICBib29sIGlzRW5hYmxlZChEb2N1bWVudCosIEZlYXR1cmVUeXBlLCBib29sKSBjb25zdDsKKwor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBDb250ZXh0RmVhdHVyZVN3aXRjaChDb250ZXh0RmVhdHVy
ZVN3aXRjaENsaWVudCogY2xpZW50KQorICAgICAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICB7
IH0KKworICAgIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50KiBtX2NsaWVudDsKK307CisKK2Ns
YXNzIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgQ29u
dGV4dEZlYXR1cmVTd2l0Y2hDbGllbnQqIGVtcHR5KCk7CisKKyAgICB2aXJ0dWFsIH5Db250ZXh0
RmVhdHVyZVN3aXRjaENsaWVudCgpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0VuYWJsZWQoRG9j
dW1lbnQqLCBDb250ZXh0RmVhdHVyZVN3aXRjaDo6RmVhdHVyZVR5cGUsIGJvb2wgZGVmYXVsdFZh
bHVlKSB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0KK307CisKK3ZvaWQgcHJvdmlkZUNvbnRleHRG
ZWF0dXJlU3dpdGNoVG8oUGFnZSosIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50Kik7CisKK2lu
bGluZSBQYXNzT3duUHRyPENvbnRleHRGZWF0dXJlU3dpdGNoPiBDb250ZXh0RmVhdHVyZVN3aXRj
aDo6Y3JlYXRlKENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBDb250ZXh0RmVhdHVyZVN3aXRjaChjbGllbnQpKTsKK30KKworaW5s
aW5lIGJvb2wgQ29udGV4dEZlYXR1cmVTd2l0Y2g6OmlzRW5hYmxlZChEb2N1bWVudCogZG9jdW1l
bnQsIEZlYXR1cmVUeXBlIHR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdAoreworICAgIHJl
dHVybiBtX2NsaWVudC0+aXNFbmFibGVkKGRvY3VtZW50LCB0eXBlLCBkZWZhdWx0VmFsdWUpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBDb250ZXh0RmVhdHVyZVN3
aXRjaF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCAzMjBhZWY5ODIwOWE1ZWI4
NGE3ZTc1MjhmY2IzYjU2NDk2ODU4Nzc4Li5iMmY0MDk1MzU5Y2UzMmEyZWE4MjMwZGI4ZWM3MWVi
NzA1ODEwMjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTQ0LDYgKzQ0LDcg
QEAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmNwcCIKICNpbmNsdWRlICJDb250YWluZXJOb2Rl
QWxnb3JpdGhtcy5jcHAiCiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3Bw
IgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlU3dpdGNoLmNwcCIKICNpbmNsdWRlICJDdXN0b21F
dmVudC5jcHAiCiAjaW5jbHVkZSAiRE9NQ29yZUV4Y2VwdGlvbi5jcHAiCiAjaW5jbHVkZSAiRE9N
SW1wbGVtZW50YXRpb24uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5j
cHAKaW5kZXggZGQxOTdjNmUyMTdkNzFiNTg0ZGY0NDQxODliYzViNDI4YzZmZjNlNy4uODc0YzA0
MWVmZTZlNDBhYWZjNTBlOWVkNDlkY2IyMGJlZWZmMTI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJDb250
ZW50VHlwZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJDb250ZXh0
RmVhdHVyZVN3aXRjaC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC0yOTUsNiArMjk2LDggQEAg
UGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNv
bnN0IFN0cmluZyYgbmFtZXNwYWNlVVIKICAgICAgICAgZG9jID0gRG9jdW1lbnQ6OmNyZWF0ZSgw
LCBLVVJMKCkpOwogCiAgICAgZG9jLT5zZXRTZWN1cml0eU9yaWdpbihtX2RvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpKTsKKyAgICBkb2MtPnNldEZlYXR1cmVTd2l0Y2gobV9kb2N1bWVudC0+ZmVh
dHVyZVN3aXRjaCgpKTsKKyAgICBDb250ZXh0RmVhdHVyZVN3aXRjaDo6cHJvdmlkZVRvKGRvYy5n
ZXQoKSwgbV9kb2N1bWVudC0+cGFnZSgpKTsKIAogICAgIFJlZlB0cjxOb2RlPiBkb2N1bWVudEVs
ZW1lbnQ7CiAgICAgaWYgKCFxdWFsaWZpZWROYW1lLmlzRW1wdHkoKSkgewpAQCAtMzcyLDYgKzM3
NSw3IEBAIFBhc3NSZWZQdHI8SFRNTERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRl
SFRNTERvY3VtZW50KGNvbnN0IFN0cmluZyYgdGl0CiAgICAgZC0+d3JpdGUoIjwhZG9jdHlwZSBo
dG1sPjxodG1sPjxib2R5PjwvYm9keT48L2h0bWw+Iik7CiAgICAgZC0+c2V0VGl0bGUodGl0bGUp
OwogICAgIGQtPnNldFNlY3VyaXR5T3JpZ2luKG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkp
OworICAgIGQtPnNldEZlYXR1cmVTd2l0Y2gobV9kb2N1bWVudC0+ZmVhdHVyZVN3aXRjaCgpKTsK
ICAgICByZXR1cm4gZC5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IDNhOWJhZmYxZTEwYjY2MjhmMTdhNTFjZmQ2Y2Q3MTdjZDNiZWEwMDcuLjhlYTZmMGQyMDU1YWZk
MGZmYmUwNWJiZDEwMDRhYjhkMjFkY2Q3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
NDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkNvbW1lbnQuaCIKICNpbmNsdWRlICJDb25zb2xlLmgi
CiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAiQ29udGV4dEZl
YXR1cmVTd2l0Y2guaCIKICNpbmNsdWRlICJDb29raWVKYXIuaCIKICNpbmNsdWRlICJET01JbXBs
ZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkRPTVNlbGVjdGlvbi5oIgpAQCAtNTAyLDYgKzUwMyw4
IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9v
bCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICBtX2lnbm9yZUF1dG9mb2N1cyA9IGZhbHNlOwog
CiAgICAgbV9mcmFtZSA9IGZyYW1lOworICAgIGlmIChtX2ZyYW1lKQorICAgICAgICBDb250ZXh0
RmVhdHVyZVN3aXRjaDo6cHJvdmlkZVRvKHRoaXMsIG1fZnJhbWUtPnBhZ2UoKSk7CiAKICAgICAv
LyBXZSBkZXBlbmQgb24gdGhlIHVybCBnZXR0aW5nIGltbWVkaWF0ZWx5IHNldCBpbiBzdWJmcmFt
ZXMsIGJ1dCB3ZQogICAgIC8vIGFsc28gZGVwZW5kIG9uIHRoZSB1cmwgTk9UIGdldHRpbmcgaW1t
ZWRpYXRlbHkgc2V0IGluIG9wZW5lZCB3aW5kb3dzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKaW5k
ZXggYTA2ZmZkNDVmMzlmMjAzMzIzNjczYmIyY2QxYzM3Y2M5OTQwZjM5YS4uZWEzMTM1MTFhMTlm
Y2YxNTA4NWMwNTliYzMxZWQxYzEzMTRkYWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBA
IC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiUG9zaXRpb24uaCIKIAogI2luY2x1ZGUgIkNTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVy
ZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZVN3aXRjaC5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIklubGluZVRleHRCb3guaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CkBAIC04Miw3ICs4Miw3IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IGFu
Y2hvck5vZGUsIExlZ2FjeUVkaXRpbmdPZmZzZXQgb2Zmc2V0KQogICAgICwgbV9pc0xlZ2FjeUVk
aXRpbmdQb3NpdGlvbih0cnVlKQogewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIEFTU0VS
VCgobV9hbmNob3JOb2RlICYmIENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJs
ZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAgQVNTRVJUKCht
X2FuY2hvck5vZGUgJiYgQ29udGV4dEZlYXR1cmVTd2l0Y2g6OnNoYWRvd0RPTUVuYWJsZWQobV9h
bmNob3JOb2RlLT5kb2N1bWVudCgpKSkKICAgICAgICAgICAgfHwgIW1fYW5jaG9yTm9kZSB8fCAh
bV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZWxzZQogICAgIEFTU0VSVCghbV9hbmNo
b3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKQEAgLTk2LDcgKzk2LDcg
QEAgUG9zaXRpb246OlBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgQW5jaG9y
VHlwZSBhbmNob3JUeXBlKQogICAgICwgbV9pc0xlZ2FjeUVkaXRpbmdQb3NpdGlvbihmYWxzZSkK
IHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBD
b250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKG1fYW5jaG9yTm9kZS0+ZG9j
dW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIENvbnRl
eHRGZWF0dXJlU3dpdGNoOjpzaGFkb3dET01FbmFibGVkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQo
KSkpCiAgICAgICAgICAgIHx8ICFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFk
b3dSb290KCkpOwogI2Vsc2UKICAgICBBU1NFUlQoIW1fYW5jaG9yTm9kZSB8fCAhbV9hbmNob3JO
b2RlLT5pc1NoYWRvd1Jvb3QoKSk7CkBAIC0xMTQsNyArMTE0LDcgQEAgUG9zaXRpb246OlBvc2l0
aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgaW50IG9mZnNldCwgQW5jaG9yVHlwZSBh
bmNob3JUeXAKICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFsc2UpCiB7CiAjaWYg
RU5BQkxFKFNIQURPV19ET00pCi0gICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYgQ29udGV4dEVu
YWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUtPmRvY3VtZW50KCkt
PmRvbVdpbmRvdygpKSkKKyAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBDb250ZXh0RmVhdHVy
ZVN3aXRjaDo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUtPmRvY3VtZW50KCkpKQogICAg
ICAgICAgICB8fCAhbV9hbmNob3JOb2RlIHx8ICFlZGl0aW5nSWdub3Jlc0NvbnRlbnQobV9hbmNo
b3JOb2RlLmdldCgpKSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZWxzZQog
ICAgIEFTU0VSVCghbV9hbmNob3JOb2RlIHx8ICFlZGl0aW5nSWdub3Jlc0NvbnRlbnQobV9hbmNo
b3JOb2RlLmdldCgpKSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CkBAIC04NTcs
NyArODU3LDcgQEAgQ29udGFpbmVyTm9kZSogUG9zaXRpb246OmZpbmRQYXJlbnQoY29uc3QgTm9k
ZSogbm9kZSkKICAgICAvLyBGSVhNRTogU2VlIGh0dHA6Ly93ZWIudWcvODI2OTcKIAogI2lmIEVO
QUJMRShTSEFET1dfRE9NKQotICAgIGlmIChDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dE
T01FbmFibGVkKG5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAgICBpZiAoQ29udGV4
dEZlYXR1cmVTd2l0Y2g6OnNoYWRvd0RPTUVuYWJsZWQobm9kZS0+ZG9jdW1lbnQoKSkpCiAgICAg
ICAgIHJldHVybiBub2RlLT5wYXJlbnROb2RlKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2VjdXJpdHlDb250ZXh0LmNwcAppbmRleCA4MDAyMjAxYzFlMDM0NWJlMmYzNzIwMzQzNzZiZTE2
YzIzNWMxODk0Li42ZjY4NzhjMTE1MDdjNTg4ZmY3OTYyYjdjMzAwZTYzZDQ1MjUwYzAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2lu
Y2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5oIgogCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9s
aWN5LmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2guaCIKICNpbmNsdWRlICJIVE1M
UGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKIApAQCAtMzcsNiAr
MzgsNyBAQCBTZWN1cml0eUNvbnRleHQ6OlNlY3VyaXR5Q29udGV4dCgpCiAgICAgOiBtX21heURp
c3BsYXlTZWFtbGVzc1dpdGhQYXJlbnQoZmFsc2UpCiAgICAgLCBtX2hhdmVJbml0aWFsaXplZFNl
Y3VyaXR5T3JpZ2luKGZhbHNlKQogICAgICwgbV9zYW5kYm94RmxhZ3MoU2FuZGJveE5vbmUpCisg
ICAgLCBtX2ZlYXR1cmVTd2l0Y2goQ29udGV4dEZlYXR1cmVTd2l0Y2g6OmRlZmF1bHRTd2l0Y2go
KSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5oCmluZGV4IGZjOWRmM2Uz
NDI1ZTA2Mjg0OWUwYWRjODcxNGJlZjljYWQ2MDE3ZTYuLmU4YjY2NDhkOThlYjk2OTE4YmQ3YWUw
MjU0MWQwNDMyNDhkNjBkZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0
eUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmgKQEAg
LTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTZWN1cml0eU9yaWdp
bjsKIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeTsKK2NsYXNzIENvbnRleHRGZWF0dXJlU3dp
dGNoOwogY2xhc3MgS1VSTDsKIAogZW51bSBTYW5kYm94RmxhZyB7CkBAIC01OSw2ICs2MCw3IEBA
IHB1YmxpYzoKICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJl
dHVybiBtX3NlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAgU2FuZGJveEZsYWdzIHNhbmRib3hG
bGFncygpIGNvbnN0IHsgcmV0dXJuIG1fc2FuZGJveEZsYWdzOyB9CiAgICAgQ29udGVudFNlY3Vy
aXR5UG9saWN5KiBjb250ZW50U2VjdXJpdHlQb2xpY3koKSB7IHJldHVybiBtX2NvbnRlbnRTZWN1
cml0eVBvbGljeS5nZXQoKTsgfQorICAgIENvbnRleHRGZWF0dXJlU3dpdGNoKiBmZWF0dXJlU3dp
dGNoKCkgeyByZXR1cm4gbV9mZWF0dXJlU3dpdGNoOyB9CiAKICAgICBib29sIGlzU2VjdXJlVHJh
bnNpdGlvblRvKGNvbnN0IEtVUkwmKSBjb25zdDsKIApAQCAtNjksNiArNzEsNyBAQCBwdWJsaWM6
CiAgICAgLy8gTm90ZTogSXQgaXMgZGFuZ2Vyb3VzIHRvIGNoYW5nZSB0aGUgc2VjdXJpdHkgb3Jp
Z2luIG9mIGEgc2NyaXB0IGNvbnRleHQKICAgICAvLyAgICAgICB0aGF0IGFscmVhZHkgY29udGFp
bnMgY29udGVudC4KICAgICB2b2lkIHNldFNlY3VyaXR5T3JpZ2luKFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+KTsKKyAgICB2b2lkIHNldEZlYXR1cmVTd2l0Y2goQ29udGV4dEZlYXR1cmVTd2l0
Y2gqIGZlYXR1cmUpIHsgbV9mZWF0dXJlU3dpdGNoID0gZmVhdHVyZTsgfQogCiAgICAgc3RhdGlj
IFNhbmRib3hGbGFncyBwYXJzZVNhbmRib3hQb2xpY3koY29uc3QgU3RyaW5nJiBwb2xpY3kpOwog
CkBAIC05Miw2ICs5NSw3IEBAIHByaXZhdGU6CiAgICAgU2FuZGJveEZsYWdzIG1fc2FuZGJveEZs
YWdzOwogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9zZWN1cml0eU9yaWdpbjsKICAgICBP
d25QdHI8Q29udGVudFNlY3VyaXR5UG9saWN5PiBtX2NvbnRlbnRTZWN1cml0eVBvbGljeTsKKyAg
ICBDb250ZXh0RmVhdHVyZVN3aXRjaCogbV9mZWF0dXJlU3dpdGNoOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCBkNzBiOTAwNTlkYmRl
ZWJlMWQ3MDdiYjMzNDYwN2QzNjhhZTM3YTEyLi5hZDQzMWJlNTBlZjA3NzFjYTcxOTcxNzA4YmRh
YTZkZmEzZWY5NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMjcsNyArMjcsNyBA
QAogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgogCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgot
I2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVh
dHVyZVN3aXRjaC5oIgogI2luY2x1ZGUgIkRPTVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0xNTAsNyArMTUwLDcgQEAgRE9NU2Vs
ZWN0aW9uKiBUcmVlU2NvcGU6OmdldFNlbGVjdGlvbigpIGNvbnN0CiAgICAgLy8gYXMgYSBjb250
YWluZXIuIEl0IGlzIG5vdyBlbmFibGVkIG9ubHkgaWYgcnVudGltZSBTaGFkb3cgRE9NIGZlYXR1
cmUgaXMgZW5hYmxlZC4KICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgyNjk3CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgaWYgKENvbnRleHRF
bmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQocm9vdE5vZGUoKS0+ZG9jdW1lbnQoKS0+
ZG9tV2luZG93KCkpKSB7CisgICAgaWYgKENvbnRleHRGZWF0dXJlU3dpdGNoOjpzaGFkb3dET01F
bmFibGVkKHJvb3ROb2RlKCktPmRvY3VtZW50KCkpKSB7CiAgICAgICAgIG1fc2VsZWN0aW9uID0g
RE9NU2VsZWN0aW9uOjpjcmVhdGUodGhpcyk7CiAgICAgICAgIHJldHVybiBtX3NlbGVjdGlvbi5n
ZXQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5w
bCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCmluZGV4IGE2Y2IwNDJkZmUwMjZj
NTg4NGFmNzAwN2MwYTYzNmIxM2FjOTE4NWYuLjk5YTFlYjIyYTAyYjFiMTU4OGE1OWVjYWI2MWY2
OGVmOGE4NTAyNWMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCkBAIC0zNzgsNyArMzc4LDcg
QEAgRU5ECiAgICAgbXkgJGNvbnRleHRDb25kaXRpb25hbCA9ICRlbmFibGVkVGFnc3skdGFnTmFt
ZX17Y29udGV4dENvbmRpdGlvbmFsfTsKICAgICBpZiAoJGNvbnRleHRDb25kaXRpb25hbCkgewog
ICAgICAgICBwcmludCBGIDw8RU5ECi0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjok
e2NvbnRleHRDb25kaXRpb25hbH1FbmFibGVkKGRvY3VtZW50LT5kb21XaW5kb3coKSkpCisgICAg
aWYgKCFDb250ZXh0RmVhdHVyZVN3aXRjaDo6JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChk
b2N1bWVudCkpCiAgICAgICAgIHJldHVybiAwOwogRU5ECiA7CkBAIC04MDQsNyArODA0LDcgQEAg
cHJpbnRDb25kaXRpb25hbEVsZW1lbnRJbmNsdWRlcygkRik7CiAKIHByaW50IEYgPDxFTkQKIAot
I2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVh
dHVyZVN3aXRjaC5oIgogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKSB8fCBFTkFCTEUo
VklERU8pCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTEwMTMsNyArMTAxMyw3IEBAIEVORAog
ICAgICAgICAgICAgICAgIHByaW50IEYgPDxFTkQKIHN0YXRpYyBKU0RPTVdyYXBwZXIqIGNyZWF0
ZSR7SlNJbnRlcmZhY2VOYW1lfVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVt
ZW50PiBlbGVtZW50KQogewotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6JHtjb250
ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChlbGVtZW50LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkp
IHsKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlU3dpdGNoOjoke2NvbnRleHRDb25kaXRpb25hbH1F
bmFibGVkKGVsZW1lbnQtPmRvY3VtZW50KCkpKSB7CiAgICAgICAgIEFTU0VSVCghZWxlbWVudCB8
fCBlbGVtZW50LT5pcyRwYXJhbWV0ZXJze2ZhbGxiYWNrSW50ZXJmYWNlTmFtZX0oKSk7CiAgICAg
ICAgIHJldHVybiBDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCAkcGFyYW1l
dGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9LCBlbGVtZW50LmdldCgpKTsKICAgICB9CkBAIC0x
MDUwLDcgKzEwNTAsNyBAQCBFTkQKICAgICAgICAgICAgICAgICBwcmludCBGIDw8RU5ECiBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNyZWF0ZSR7SlNJbnRlcmZhY2VOYW1lfVdyYXBwZXIo
JHBhcmFtZXRlcnN7bmFtZXNwYWNlfUVsZW1lbnQqIGVsZW1lbnQsIHY4OjpJc29sYXRlKiBpc29s
YXRlKQogewotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6JHtjb250ZXh0Q29uZGl0
aW9uYWx9RW5hYmxlZChlbGVtZW50LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAgaWYg
KCFDb250ZXh0RmVhdHVyZVN3aXRjaDo6JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChlbGVt
ZW50LT5kb2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJuIFY4JHBhcmFtZXRlcnN7ZmFsbGJhY2tJ
bnRlcmZhY2VOYW1lfTo6d3JhcCh0byRwYXJhbWV0ZXJze2ZhbGxiYWNrSW50ZXJmYWNlTmFtZX0o
ZWxlbWVudCksIGlzb2xhdGUpOwogICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PCR7SlNJbnRl
cmZhY2VOYW1lfSo+KGVsZW1lbnQpLCBpc29sYXRlKTsKIH0KQEAgLTExMTEsNyArMTExMSw3IEBA
IHN1YiBwcmludFdyYXBwZXJGYWN0b3J5Q3BwRmlsZQogCiAgICAgcHJpbnQgRiA8PEVORAogCi0j
aW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0
dXJlU3dpdGNoLmgiCiAKICNpZiBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAppbmRleCA5YWU3ZTcyYzJmMjZlOTc0MGFkNGE1ZjBj
YjI0YjE5OTQ0OGQ4MDcxLi5mMzY3MTE0NDU5ODA0NjA2OTExNzMyNjQ5NzdiNWEyNmY4M2RjMDgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVk
ZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAi
Q2hpbGRMaXN0TXV0YXRpb25TY29wZS5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlU3dpdGNo
LmgiCiAjaW5jbHVkZSAiRGVsZXRlQnV0dG9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKQEAgLTczMCw2ICs3MzEs
NyBAQCBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1
cFdpdGhDb250ZXh0KERvY3VtZW50KiBkb2N1bQogCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IHRhZ2dlZEZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKGRvY3VtZW50LCB0
YWdnZWRNYXJrdXAudG9TdHJpbmcoKSwgYmFzZVVSTCwgc2NyaXB0aW5nUGVybWlzc2lvbik7CiAg
ICAgUmVmUHRyPERvY3VtZW50PiB0YWdnZWREb2N1bWVudCA9IERvY3VtZW50OjpjcmVhdGUoMCwg
S1VSTCgpKTsKKyAgICB0YWdnZWREb2N1bWVudC0+c2V0RmVhdHVyZVN3aXRjaChkb2N1bWVudC0+
ZmVhdHVyZVN3aXRjaCgpKTsKICAgICB0YWdnZWREb2N1bWVudC0+dGFrZUFsbENoaWxkcmVuRnJv
bSh0YWdnZWRGcmFnbWVudC5nZXQoKSk7CiAKICAgICBSZWZQdHI8Tm9kZT4gbm9kZUJlZm9yZUNv
bnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAppbmRleCA2N2Rk
Y2ViNGZhYTNmYTdlY2RhNTM0NTc3MzZmYzVkNmNlMzhlZjRjLi5mY2Q5YzhiOTdjMzUyZmQyYmUz
MzQ2NjMwNDk5YThiZmU0NjI3ZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxl
bWVudC5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50Lmgi
CiAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKLSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1
cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2guaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRTZW5kZXIuaCIKQEAg
LTEwNSw3ICsxMDUsNyBAQCB2b2lkIEhUTUxTdHlsZUVsZW1lbnQ6OnJlZ2lzdGVyV2l0aFNjb3Bp
bmdOb2RlKCkKICAgICBBU1NFUlQoaW5Eb2N1bWVudCgpKTsKICAgICBpZiAobV9pc1JlZ2lzdGVy
ZWRXaXRoU2NvcGluZ05vZGUpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIUNvbnRleHRFbmFi
bGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSkKKyAgICBpZiAoIUNv
bnRleHRGZWF0dXJlU3dpdGNoOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIENvbnRhaW5lck5vZGUqIHNjb3BlID0gcGFyZW50Tm9kZSgpOwpA
QCAtMTMwLDEwICsxMzAsMTAgQEAgdm9pZCBIVE1MU3R5bGVFbGVtZW50Ojp1bnJlZ2lzdGVyV2l0
aFNjb3BpbmdOb2RlKENvbnRhaW5lck5vZGUqIHNjb3BlKQogewogICAgIC8vIE5vdGU6IFdlIGNh
bm5vdCByZWx5IG9uIHRoZSAnc2NvcGVkJyBlbGVtZW50IHN0aWxsIGJlaW5nIHByZXNlbnQgd2hl
biB0aGlzIG1ldGhvZCBpcyBpbnZva2VkLgogICAgIC8vIFRoZXJlZm9yZSB3ZSBjYW5ub3QgcmVs
eSBvbiBzY29wZWQoKSEKLSAgICBBU1NFUlQobV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05vZGUg
fHwgIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgp
KSk7CisgICAgQVNTRVJUKG1faXNSZWdpc3RlcmVkV2l0aFNjb3BpbmdOb2RlIHx8ICFDb250ZXh0
RmVhdHVyZVN3aXRjaDo6c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50KCkpKTsKICAgICBpZiAo
IW1faXNSZWdpc3RlcmVkV2l0aFNjb3BpbmdOb2RlKQogICAgICAgICByZXR1cm47Ci0gICAgaWYg
KCFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkp
CisgICAgaWYgKCFDb250ZXh0RmVhdHVyZVN3aXRjaDo6c3R5bGVTY29wZWRFbmFibGVkKGRvY3Vt
ZW50KCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoc2NvcGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKaW5kZXggMDhi
NDVkNGFiZjU5YmZjNzZlOGU3NDAwM2MxNzZkZGM5NjBlNGJlZi4uOTU5ZjVhNGM0OTI5NmVlNzhm
YTBmM2YwM2YyMGFhZWEzNWY1Mzg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRl
ICJDb250ZW50RGlzdHJpYnV0b3IuaCIKICNpbmNsdWRlICJDb250ZW50U2VsZWN0b3JRdWVyeS5o
IgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0
RmVhdHVyZVN3aXRjaC5oIgogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCkBAIC00Myw3ICs0Myw3IEBA
IHVzaW5nIEhUTUxOYW1lczo6c2VsZWN0QXR0cjsKIHN0YXRpYyBjb25zdCBRdWFsaWZpZWROYW1l
JiBjb250ZW50VGFnTmFtZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAjaWYgRU5BQkxFKFNIQURP
V19ET00pCi0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVk
KGRvY3VtZW50LT5kb21XaW5kb3coKSkpCisgICAgaWYgKCFDb250ZXh0RmVhdHVyZVN3aXRjaDo6
c2hhZG93RE9NRW5hYmxlZChkb2N1bWVudCkpCiAgICAgICAgIHJldHVybiBIVE1MTmFtZXM6Ondl
YmtpdFNoYWRvd0NvbnRlbnRUYWc7CiAgICAgcmV0dXJuIEhUTUxOYW1lczo6Y29udGVudFRhZzsK
ICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBw
b3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwCmlu
ZGV4IGJhMGQ4Yzg2YzU1OGM4ZmE4ZTI1M2VlOTYxYjAwOGJkMDY1M2UyNTAuLjljYWYzODE1NjFi
MzU2Yjk3OWZmNmM3M2I3NGNjYmI2MWZjNWViNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwCkBAIC04OSw2ICs4OSw3IEBAIERPTVBhdGNoU3VwcG9y
dDo6fkRPTVBhdGNoU3VwcG9ydCgpIHsgfQogdm9pZCBET01QYXRjaFN1cHBvcnQ6OnBhdGNoRG9j
dW1lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXApCiB7CiAgICAgUmVmUHRyPEhUTUxEb2N1bWVudD4g
bmV3RG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZSgwLCBLVVJMKCkpOworICAgIG5ld0Rv
Y3VtZW50LT5zZXRGZWF0dXJlU3dpdGNoKG1fZG9jdW1lbnQtPmZlYXR1cmVTd2l0Y2goKSk7CiAg
ICAgUmVmUHRyPERvY3VtZW50UGFyc2VyPiBwYXJzZXIgPSBIVE1MRG9jdW1lbnRQYXJzZXI6OmNy
ZWF0ZShuZXdEb2N1bWVudC5nZXQoKSwgZmFsc2UpOwogICAgIHBhcnNlci0+aW5zZXJ0KG1hcmt1
cCk7IC8vIFVzZSBpbnNlcnQoKSBzbyB0aGF0IHRoZSBwYXJzZXIgd2lsbCBub3QgeWllbGQuCiAg
ICAgcGFyc2VyLT5maW5pc2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKaW5kZXggZjVjN2E3MjY2YTYwMGRlYTUyOWJmOWQxM2MxN2JkZTYyMGVhOWQyNy4uYmU4
MTAyODdhNzBkNTVlOGU2NTZiZmYzZDY0MGFhZmE1MzNiMTA2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTMxMSwxMiArMzExLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVD
b250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtV
UkwmKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KICAgICAgICAgdmlydHVhbCBib29s
IGFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgU2Vj
dXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9
CiAKLSAgICAgICAgdmlydHVhbCBib29sIGFsbG93U2hhZG93RE9NKGJvb2wgZW5hYmxlZEFzUnVu
dGltZUZlYXR1cmVzKSB7IHJldHVybiBlbmFibGVkQXNSdW50aW1lRmVhdHVyZXM7IH0KLSAgICAg
ICAgdmlydHVhbCBib29sIGFsbG93U3R5bGVTY29wZWQoYm9vbCBlbmFibGVkQXNSdW50aW1lRmVh
dHVyZXMpIHsgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlczsgfQotI2lmIEVOQUJMRShQ
QUdFX1BPUFVQKQotICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dQYWdlUG9wdXAoKSB7IHJldHVy
biBmYWxzZTsgfQotI2VuZGlmCi0KICAgICAgICAgLy8gVGhpcyBjYWxsYmFjayBub3RpZmllcyB0
aGUgY2xpZW50IHRoYXQgdGhlIGZyYW1lIHdhcyBhYm91dCB0byBydW4KICAgICAgICAgLy8gSmF2
YVNjcmlwdCBidXQgZGlkIG5vdCBiZWNhdXNlIGFsbG93U2NyaXB0IHJldHVybmVkIGZhbHNlLiBX
ZQogICAgICAgICAvLyBoYXZlIGEgc2VwYXJhdGUgY2FsbGJhY2sgaGVyZSBiZWNhdXNlIHRoZXJl
IGFyZSBhIG51bWJlciBvZiBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
CmluZGV4IDdjNWU1YjVmMDg3YjA1ODg4NTU0NjU0MTU3MjhiOWRjZjYyMDY1NGUuLmQ1MjQ4MWYz
MTg2ZmRkNjVkODRiZGJkNDc5Y2U0ZWRmMjA2ZGU0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcApAQCAtMjUzLDYgKzI1Myw3IEBAIERvY3VtZW50KiBYTUxIdHRwUmVxdWVz
dDo6cmVzcG9uc2VYTUwoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICAvLyBGSVhNRTog
U2V0IExhc3QtTW9kaWZpZWQuCiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldENv
bnRlbnQobV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwogICAg
ICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRTZWN1cml0eU9yaWdpbihzZWN1cml0eU9y
aWdpbigpKTsKKyAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0RmVhdHVyZVN3aXRj
aChkb2N1bWVudCgpLT5mZWF0dXJlU3dpdGNoKCkpOwogICAgICAgICAgICAgaWYgKCFtX3Jlc3Bv
bnNlRG9jdW1lbnQtPndlbGxGb3JtZWQoKSkKICAgICAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9j
dW1lbnQgPSAwOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggOTky
MDRiODg2YWI3ZWMxY2Y0ZDI0YTU5M2NjZGNkMDI3ZDU0OTkwMS4uY2ZhYjNjYjJhMTM2ZmFjMWI1
N2U5ZTk3ZDhmOGU4MjY3NTFjMzY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAt
MzcxLDYgKzM3MSw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9Db21wb3NpdGlvblVuZGVybGlu
ZUJ1aWxkZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Db21wb3NpdGlvblVuZGVybGluZVZl
Y3RvckJ1aWxkZXIuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0NvbXBvc2l0aW9uVW5kZXJs
aW5lVmVjdG9yQnVpbGRlci5oJywKKyAgICAgICAgICAgICAgICAnc3JjL0NvbnRleHRGZWF0dXJl
U3dpdGNoQ2xpZW50SW1wbC5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvQ29udGV4dEZlYXR1
cmVTd2l0Y2hDbGllbnRJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvQ29udGV4dE1lbnVD
bGllbnRJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Db250ZXh0TWVudUNsaWVudElt
cGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9EYXRhYmFzZU9ic2VydmVyLmNwcCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgK
aW5kZXggMTE2YTM4M2NhOGMyOGI0Nzg5YWU3MzVmZjFlNDRjZDMyN2RkZWM4My4uMDE0YzJjM2Y0
NDAyMzU0MmQ2MWIxODljNTIyNWY3NDA0NjVjYzhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaApAQCAtMzMsNiArMzMsNyBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViRG9jdW1lbnQ7CiBjbGFzcyBXZWJG
cmFtZTsKIGNsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOwogY2xhc3MgV2ViU3RyaW5nOwpAQCAtOTAs
NyArOTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFsbG93V3JpdGVUb0NsaXBib2Fy
ZChXZWJGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0K
IAogICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgZW5hYmxpbmcgV2ViIENvbXBvbmVudHMgQVBJIGZv
ciB0aGlzIGZyYW1lLgotICAgIHZpcnR1YWwgYm9vbCBhbGxvd1dlYkNvbXBvbmVudHMoV2ViRnJh
bWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CisgICAgdmly
dHVhbCBib29sIGFsbG93V2ViQ29tcG9uZW50cyhjb25zdCBXZWJEb2N1bWVudCYsIGJvb2wgZGVm
YXVsdFZhbHVlKSB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0KIAogICAgIC8vIE5vdGlmaWVzIHRo
ZSBjbGllbnQgdGhhdCB0aGUgZnJhbWUgd291bGQgaGF2ZSBpbnN0YW50aWF0ZWQgYSBwbHVnLWlu
IGlmIHBsdWctaW5zIHdlcmUgZW5hYmxlZC4KICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQ
bHVnaW5zKFdlYkZyYW1lKikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9Db250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44ZDRhMGY4N2QzN2IwNmRiYjQxYjEwMzhjNDliNDAxNjUwZDRhZDMyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGll
bnRJbXBsLmNwcApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkNvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJXZWJEb2N1bWVudC5oIgorI2luY2x1ZGUgIldlYlBlcm1pc3Npb25DbGll
bnQuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgQ29udGV4dEZlYXR1cmVTd2l0Y2hD
bGllbnRJbXBsOjppc0VuYWJsZWQoV2ViQ29yZTo6RG9jdW1lbnQqIGRvY3VtZW50LCBXZWJDb3Jl
OjpDb250ZXh0RmVhdHVyZVN3aXRjaDo6RmVhdHVyZVR5cGUgdHlwZSwgYm9vbCBkZWZhdWx0VmFs
dWUpCit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsK
KworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVT
d2l0Y2g6OlNoYWRvd0RPTToKKyAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlU3dpdGNo
OjpTdHlsZVNjb3BlZDoKKyAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5hbGxvd1dlYkNvbXBvbmVu
dHMoV2ViRG9jdW1lbnQoZG9jdW1lbnQpLCBkZWZhdWx0VmFsdWUpOworICAgIGRlZmF1bHQ6Cisg
ICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0
dXJlU3dpdGNoQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4
dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY3MzA3ZWI4ZjY2ODJkZWMw
NWIzYjE1Y2JhMTU5ZDA5MTUzYWQwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbC5oCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIENvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbF9oCisjZGVmaW5lIENv
bnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50SW1wbF9oCisKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVy
ZVN3aXRjaC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGVybWlzc2lvbkNs
aWVudDsKKworY2xhc3MgQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsIDogcHVibGljIFdl
YkNvcmU6OkNvbnRleHRGZWF0dXJlU3dpdGNoQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBDb250ZXh0
RmVhdHVyZVN3aXRjaENsaWVudEltcGwoKQorICAgICAgICA6IG1fY2xpZW50KDApCisgICAgeyB9
CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKFdlYkNvcmU6OkRvY3VtZW50KiwgV2ViQ29y
ZTo6Q29udGV4dEZlYXR1cmVTd2l0Y2g6OkZlYXR1cmVUeXBlLCBib29sIGRlZmF1bHRWYWx1ZSkg
T1ZFUlJJREU7CisgICAgdm9pZCBzZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGll
bnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQorCitwcml2YXRlOgorICAgIFdlYlBl
cm1pc3Npb25DbGllbnQqIG1fY2xpZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGxfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKaW5kZXgg
ZGUzZjIyNzg5ZjVmYTE1YjBhY2Q4ZWQ3NGQxZTVhZjkwZTk2OWYyYy4uZDA2MDJhOWEwZTcwNGVj
ZDkxMmY2ZGNhZmMxY2NjNWY5YTJhZjlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCkBAIC0yMzksMjQgKzIzOSw2IEBA
IGJvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQo
Ym9vbCBlbmFibGVkUGVyU2V0dGluZ3MsCiAgICAgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsK
IH0KIAotYm9vbCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93U2hhZG93RE9NKGJvb2wgZW5h
YmxlZEFzUnVudGltZUZlYXR1cmUpCi17Ci0gICAgV2ViVmlld0ltcGwqIHdlYnZpZXcgPSBtX3dl
YkZyYW1lLT52aWV3SW1wbCgpOwotICAgIGlmICh3ZWJ2aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Np
b25DbGllbnQoKSkKLSAgICAgICAgcmV0dXJuIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+
YWxsb3dXZWJDb21wb25lbnRzKG1fd2ViRnJhbWUsIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlKTsK
LQotICAgIHJldHVybiBlbmFibGVkQXNSdW50aW1lRmVhdHVyZTsKLX0KLQotYm9vbCBGcmFtZUxv
YWRlckNsaWVudEltcGw6OmFsbG93U3R5bGVTY29wZWQoYm9vbCBlbmFibGVkQXNSdW50aW1lRmVh
dHVyZSkKLXsKLSAgICBXZWJWaWV3SW1wbCogd2VidmlldyA9IG1fd2ViRnJhbWUtPnZpZXdJbXBs
KCk7Ci0gICAgaWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQotICAg
ICAgICByZXR1cm4gd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5hbGxvd1dlYkNvbXBvbmVu
dHMobV93ZWJGcmFtZSwgZW5hYmxlZEFzUnVudGltZUZlYXR1cmUpOwotCi0gICAgcmV0dXJuIGVu
YWJsZWRBc1J1bnRpbWVGZWF0dXJlOwotfQotCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6
ZGlkTm90QWxsb3dTY3JpcHQoKQogewogICAgIFdlYlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJG
cmFtZS0+dmlld0ltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJh
bWVMb2FkZXJDbGllbnRJbXBsLmgKaW5kZXggMjM2YTAxYjY1MzAyOTUxNDZhY2VhMTNiZGU1ZDBm
MjM4MzdhOWZhZi4uZWNiMjBhMmZiMjVlZmU2NGFmZTYwZDQyNDZlNmM5OTNhZjVmMzEyOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBs
LmgKQEAgLTE5OSw4ICsxOTksNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFsbG93SW1h
Z2UoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIGNvbnN0IFdlYkNvcmU6OktVUkwmIGltYWdlVVJM
KTsKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGJvb2wg
ZW5hYmxlZFBlclNldHRpbmdzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdlYkNv
cmU6OktVUkwmKTsKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50
KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0
IFdlYkNvcmU6OktVUkwmKTsKLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTaGFkb3dET00oYm9vbCBl
bmFibGVkQXNSdW50aW1lRmVhdHVyZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGFsbG93
U3R5bGVTY29wZWQoYm9vbCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZSkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGRpZE5vdEFsbG93U2NyaXB0KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZE5v
dEFsbG93UGx1Z2lucygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQYWdlUG9wdXBJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBh
Z2VQb3B1cEltcGwuY3BwCmluZGV4IGFlNWFhYzhhNDA3M2ZiNTg3MWQ5NzM0ZDdmNDQ3N2NhYmZj
ZWMzNmQuLjA2NWY2MGU2MTUxMjcyMTZiZWQzMzk1MDU3YThiOTdkNTE1MmVmNmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViUGFnZVBvcHVwSW1wbC5oIgogCiAjaW5jbHVkZSAiQ2hy
b21lLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2guaCIKICNpbmNsdWRlICJET01X
aW5kb3dQYWdlUG9wdXAuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUg
IkVtcHR5Q2xpZW50cy5oIgpAQCAtMTI3LDEwICsxMjgsMTcgQEAgcHJpdmF0ZToKICAgICBXZWJQ
YWdlUG9wdXBJbXBsKiBtX3BvcHVwOwogfTsKIAotY2xhc3MgUGFnZVBvcHVwRnJhbWVMb2FkZXJD
bGllbnQgOiBwdWJsaWMgRW1wdHlGcmFtZUxvYWRlckNsaWVudCB7Ci0gICAgdmlydHVhbCBib29s
IGFsbG93UGFnZVBvcHVwKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorY2xhc3MgUGFnZVBv
cHVwRmVhdHVyZVN3aXRjaENsaWVudCA6IHB1YmxpYyBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVu
dCB7CisgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZChEb2N1bWVudCosIENvbnRleHRGZWF0dXJl
U3dpdGNoOjpGZWF0dXJlVHlwZSwgYm9vbCkgT1ZFUlJJREU7CiB9OwogCitib29sIFBhZ2VQb3B1
cEZlYXR1cmVTd2l0Y2hDbGllbnQ6OmlzRW5hYmxlZChEb2N1bWVudCosIENvbnRleHRGZWF0dXJl
U3dpdGNoOjpGZWF0dXJlVHlwZSB0eXBlLCBib29sIGRlZmF1bHRWYWx1ZSkKK3sKKyAgICBpZiAo
dHlwZSA9PSBDb250ZXh0RmVhdHVyZVN3aXRjaDo6UGFnZVBvcHVwKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworfQorCiAvLyBXZWJQYWdlUG9wdXBJbXBs
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIAogV2ViUGFnZVBvcHVwSW1wbDo6V2ViUGFnZVBvcHVwSW1wbChXZWJXaWRnZXRD
bGllbnQqIGNsaWVudCkKQEAgLTE4NSw4ICsxOTMsMTAgQEAgYm9vbCBXZWJQYWdlUG9wdXBJbXBs
Ojppbml0UGFnZSgpCiAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTY3JpcHRFbmFibGVkKHRy
dWUpOwogICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0QWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRv
d3ModHJ1ZSk7CiAKLSAgICBzdGF0aWMgRnJhbWVMb2FkZXJDbGllbnQqIHBhZ2VQb3B1cEZyYW1l
TG9hZGVyQ2xpZW50ID0gIG5ldyBQYWdlUG9wdXBGcmFtZUxvYWRlckNsaWVudDsKLSAgICBSZWZQ
dHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShtX3BhZ2UuZ2V0KCksIDAsIHBhZ2VQb3B1
cEZyYW1lTG9hZGVyQ2xpZW50KTsKKyAgICBzdGF0aWMgQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGll
bnQqIHBhZ2VQb3B1cEZlYXR1cmVTd2l0Y2hDbGllbnQgPSAgbmV3IFBhZ2VQb3B1cEZlYXR1cmVT
d2l0Y2hDbGllbnQoKTsKKyAgICBwcm92aWRlQ29udGV4dEZlYXR1cmVTd2l0Y2hUbyhtX3BhZ2Uu
Z2V0KCksIHBhZ2VQb3B1cEZlYXR1cmVTd2l0Y2hDbGllbnQpOworICAgIHN0YXRpYyBGcmFtZUxv
YWRlckNsaWVudCogZW1wdHlGcmFtZUxvYWRlckNsaWVudCA9ICBuZXcgRW1wdHlGcmFtZUxvYWRl
ckNsaWVudCgpOworICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBGcmFtZTo6Y3JlYXRlKG1fcGFn
ZS5nZXQoKSwgMCwgZW1wdHlGcmFtZUxvYWRlckNsaWVudCk7CiAgICAgZnJhbWUtPnNldFZpZXco
RnJhbWVWaWV3OjpjcmVhdGUoZnJhbWUuZ2V0KCkpKTsKICAgICBmcmFtZS0+aW5pdCgpOwogICAg
IGZyYW1lLT52aWV3KCktPnJlc2l6ZShtX3BvcHVwQ2xpZW50LT5jb250ZW50U2l6ZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBmOTBiMWY4YWY3
YmQzZWE5YzIyYjZjMWRmZWU3ZDY2MGFhZDE4MDllLi5iNmRlZDU0ZmQ4ZGJlZGIwNjc0NTAyOWQ0
MGU4OTliZTAwNjNmMzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJD
b2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRpb25VbmRlcmxpbmVWZWN0b3JCdWlsZGVy
LmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsLmgiCiAjaW5jbHVk
ZSAiQ29udGV4dE1lbnUuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIKQEAgLTMzNyw2ICszMzgsNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXREZXZUb29sc0FnZW50Q2xpZW50KFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRl
dlRvb2xzQ2xpZW50KQogdm9pZCBXZWJWaWV3SW1wbDo6c2V0UGVybWlzc2lvbkNsaWVudChXZWJQ
ZXJtaXNzaW9uQ2xpZW50KiBwZXJtaXNzaW9uQ2xpZW50KQogewogICAgIG1fcGVybWlzc2lvbkNs
aWVudCA9IHBlcm1pc3Npb25DbGllbnQ7CisgICAgbV9mZWF0dXJlU3dpdGNoQ2xpZW50LT5zZXRQ
ZXJtaXNzaW9uQ2xpZW50KHBlcm1pc3Npb25DbGllbnQpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBs
OjpzZXRQcmVyZW5kZXJlckNsaWVudChXZWJQcmVyZW5kZXJlckNsaWVudCogcHJlcmVuZGVyZXJD
bGllbnQpCkBAIC0zOTIsNiArMzk0LDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZp
ZXdDbGllbnQqIGNsaWVudCkKICAgICAsIG1faW1lQWNjZXB0RXZlbnRzKHRydWUpCiAgICAgLCBt
X29wZXJhdGlvbnNBbGxvd2VkKFdlYkRyYWdPcGVyYXRpb25Ob25lKQogICAgICwgbV9kcmFnT3Bl
cmF0aW9uKFdlYkRyYWdPcGVyYXRpb25Ob25lKQorICAgICwgbV9mZWF0dXJlU3dpdGNoQ2xpZW50
KGFkb3B0UHRyKG5ldyBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGwoKSkpCiAgICAgLCBt
X2F1dG9maWxsUG9wdXBTaG93aW5nKGZhbHNlKQogICAgICwgbV9hdXRvZmlsbFBvcHVwKDApCiAg
ICAgLCBtX2lzVHJhbnNwYXJlbnQoZmFsc2UpCkBAIC00NTEsNiArNDU0LDcgQEAgV2ViVmlld0lt
cGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKICAgICBwcm92aWRlTm90aWZp
Y2F0aW9uKG1fcGFnZS5nZXQoKSwgbm90aWZpY2F0aW9uUHJlc2VudGVySW1wbCgpKTsKICNlbmRp
ZgogCisgICAgcHJvdmlkZUNvbnRleHRGZWF0dXJlU3dpdGNoVG8obV9wYWdlLmdldCgpLCBtX2Zl
YXR1cmVTd2l0Y2hDbGllbnQuZ2V0KCkpOwogICAgIHByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRv
KG1fcGFnZS5nZXQoKSwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmdldCgpKTsKICAg
ICBwcm92aWRlR2VvbG9jYXRpb25UbyhtX3BhZ2UuZ2V0KCksIG1fZ2VvbG9jYXRpb25DbGllbnRQ
cm94eS5nZXQoKSk7CiAgICAgbV9nZW9sb2NhdGlvbkNsaWVudFByb3h5LT5zZXRDb250cm9sbGVy
KEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShtX3BhZ2UuZ2V0KCkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IGEwODg5Njc4YTE0MDA3NDJjYzI2ZTBl
YmZiYmUyM2UxOThiOTJkMmUuLjcxZmZhNTI1NGFjOTRmNzk1MjQ5NTBjMTJhNDM1OWNiODQ0ODI3
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtODYsNiAr
ODYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIEF1dG9jb21wbGV0ZVBvcHVwTWVudUNs
aWVudDsKIGNsYXNzIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50OwogY2xhc3MgQmF0dGVyeUNsaWVu
dEltcGw7CitjbGFzcyBDb250ZXh0RmVhdHVyZVN3aXRjaENsaWVudEltcGw7CiBjbGFzcyBDb250
ZXh0TWVudUNsaWVudEltcGw7CiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5Owog
Y2xhc3MgRHJhZ1Njcm9sbFRpbWVyOwpAQCAtNzMzLDYgKzczNCw5IEBAIHByaXZhdGU6CiAgICAg
Ly8gY3VycmVudCBkcm9wIHRhcmdldCBpbiB0aGlzIFdlYlZpZXcgKHRoZSBkcm9wIHRhcmdldCBj
YW4gYWNjZXB0IHRoZSBkcm9wKS4KICAgICBXZWJEcmFnT3BlcmF0aW9uIG1fZHJhZ09wZXJhdGlv
bjsKIAorICAgIC8vIENvbnRleHQtYmFzZWQgZmVhdHVyZSBzd2l0Y2hlcy4KKyAgICBPd25QdHI8
Q29udGV4dEZlYXR1cmVTd2l0Y2hDbGllbnRJbXBsPiBtX2ZlYXR1cmVTd2l0Y2hDbGllbnQ7CisK
ICAgICAvLyBXaGV0aGVyIGFuIEF1dG9maWxsIHBvcHVwIGlzIGN1cnJlbnRseSBzaG93aW5nLgog
ICAgIGJvb2wgbV9hdXRvZmlsbFBvcHVwU2hvd2luZzsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE0YzNjMDhmMWJlZmZk
NGE2MzE0NDFjMDQ0ZDIyZGVjZTg4YjBiNzQuLjcyMmJkYjRjY2JkYmY5MmM0YmQwOWM3NGI1OTlk
MDY2OTdiM2ViM2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0wNyAgSGFqaW1lIE1v
cnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMTgw
OTgpOiA8Y29udGVudD4gZWxlbWVudCBkb2VzIG5vdCByZW5kZXIgZGlzdHJpYnV0ZWQgY2hpbGRy
ZW4gd2hlbiBjbG9uZWQgZnJvbSBhbm90aGVyIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODE0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWlu
LWZyYW1lbGVzcy1kb2N1bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbDogQWRkZWQuCisK
IDIwMTItMDYtMDcgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBN
YXJrIGZhc3QvdGFibGUvbXVsdGlwbGUtY2FwdGlvbnMtZGlzcGxheS54aHRtbCBhcyBmbGFreSBv
biBDaHJvbWl1bS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVt
ZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1bWVudC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjY0MzA3NTNmMjk1MzJlMWY1MjIxNTAwYTk5MjBjMTJmODM3NmEyYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1m
cmFtZWxlc3MtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVz
dCBlbnN1cmUgdGhhdCB0aGUgc2hhZG93IHJlbGF0ZWQgZWxlbWVudHMgYXJlIGluc3RhbnRpYXRl
ZCBldmVuIGluc2lkZSBmcmFtZWxlc3MgZG9jdW1lbnRzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworVGVzdGluZyBvbiB0aGUgZnJhbWUtbGVzcyBkb2N1bWVudC4KK1BBU1Mgd2lu
ZG93LkhUTUxDb250ZW50RWxlbWVudCBpcyBjb250ZW50LmNvbnN0cnVjdG9yCitQQVNTIHdpbmRv
dy5IVE1MU2hhZG93RWxlbWVudCBpcyBzaGFkb3cuY29uc3RydWN0b3IKK01vdmluZyB0byB0aGUg
bWFpbiBkb2N1bWVudC4KK1BBU1Mgd2luZG93LkhUTUxDb250ZW50RWxlbWVudCBpcyBjb250ZW50
LmNvbnN0cnVjdG9yCitQQVNTIHdpbmRvdy5IVE1MU2hhZG93RWxlbWVudCBpcyBzaGFkb3cuY29u
c3RydWN0b3IKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQoreCsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50cy1p
bi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9l
bGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGI2YmU4MWVm
NTdkY2IyMWZmNTU2NTY3ZDRiNDZmMGU5MzZlMjliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1bWVudC5odG1s
CkBAIC0wLDAgKzEsMzAgQEAKK3grPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZSB0
aGF0IHRoZSBzaGFkb3cgcmVsYXRlZCBlbGVtZW50cyBhcmUgaW5zdGFudGlhdGVkIGV2ZW4gaW5z
aWRlIGZyYW1lbGVzcyBkb2N1bWVudHMuIik7CisKK3ZhciBkb2MgPSBkb2N1bWVudC5pbXBsZW1l
bnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKK3ZhciBjb250YWluZXIgPSBkb2MuY3JlYXRl
RWxlbWVudCgic3BhbiIpOworZG9jLmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKK2NvbnRh
aW5lci5pbm5lckhUTUwgPSAiPGNvbnRlbnQgaWQ9J2NvbnRlbnRFbGVtZW50Jz48L2NvbnRlbnQ+
PHNoYWRvdyBpZD0nc2hhZG93RWxlbWVudCc+PC9zaGFkb3c+IjsKKwordmFyIGNvbnRlbnQgPSBj
b250YWluZXIucXVlcnlTZWxlY3RvcigiI2NvbnRlbnRFbGVtZW50Iik7Cit2YXIgc2hhZG93ID0g
Y29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIiNzaGFkb3dFbGVtZW50Iik7CisKK2RlYnVnKCJUZXN0
aW5nIG9uIHRoZSBmcmFtZS1sZXNzIGRvY3VtZW50LiIpOworc2hvdWxkQmUoIndpbmRvdy5IVE1M
Q29udGVudEVsZW1lbnQiLCAiY29udGVudC5jb25zdHJ1Y3RvciIpOworc2hvdWxkQmUoIndpbmRv
dy5IVE1MU2hhZG93RWxlbWVudCIsICJzaGFkb3cuY29uc3RydWN0b3IiKTsKKworZGVidWcoIk1v
dmluZyB0byB0aGUgbWFpbiBkb2N1bWVudC4iKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
Y29udGFpbmVyKTsKK3Nob3VsZEJlKCJ3aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IiwgImNvbnRl
bnQuY29uc3RydWN0b3IiKTsKK3Nob3VsZEJlKCJ3aW5kb3cuSFRNTFNoYWRvd0VsZW1lbnQiLCAi
c2hhZG93LmNvbnN0cnVjdG9yIik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146791</attachid>
            <date>2012-06-10 23:19:19 -0700</date>
            <delta_ts>2012-06-11 00:25:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88148-20120611151918.patch</filename>
            <type>text/plain</type>
            <size>73257</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5NzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDkwZTY5MzQ1MTQ4N2Ri
YjMzYjZkZWM0NDUwMmU2MWMyMDIyMmFlNy4uZDBmNWJlMGE5MjI2NjkyMGU1OWMwMjE5YmRlNTE2
MWFhNDY4YWMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOCBAQAorMjAxMi0wNi0xMCAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIx
MTgwOTgpOiA8Y29udGVudD4gZWxlbWVudCBkb2VzIG5vdCByZW5kZXIgZGlzdHJpYnV0ZWQgY2hp
bGRyZW4gd2hlbiBjbG9uZWQgZnJvbSBhbm90aGVyIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODE0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBzaGFkb3cgRE9NIGF2YWlsYWJpbGl0
eSB3YXMgZGVjaWRlZCB0aHJvdWdoIEZyYW1lTG9hZGVyQ2xpZW50LgorICAgICAgICBCdXQgdGhl
cmUgYXJlIGRvY3VtZW50cyB3aGljaCBkb24ndCBoYXZlIGFueSBhc3NvY2lhdGVkIGZyYW1lcywg
aW4KKyAgICAgICAgd2hpY2ggYW55IHNoYWRvdyBET00gcmVsYXRlZCBlbGVtZW50cyBjYW5ub3Qg
YmUgY29uc3RydWN0ZWQuICBUaGF0CisgICAgICAgIHJlc3Vsc3RlZCB0aGUgcmVncmVzc2lvbi4K
KworICAgICAgICBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGEgUGFnZS1iYXNlZCBjbGllbnQgY2Fs
bGVkCisgICAgICAgIENvbnRleHRGZWF0dXJlc0NsaWVudCB3aGljaCB0YWtlcyB0aGUgcm9sZSBm
cm9tIEZyYW1lTG9hZGVyQ2xpZW50CisgICAgICAgIHRvIGRlY2lkZSB0aGUgZmVhdHVyZSBhdmFp
bGFiaWxpdHksIGFuZCBDb250ZXh0RmVhdHVyZXMgd2hpY2ggaXMgYQorICAgICAgICBwcm94eSBv
ZiBDb250ZXh0RmVhdHVyZXNDbGllbnQuICBDb250ZXh0RW5hYmxlZEZlYXR1cmVzIGlzIGlzCisg
ICAgICAgIHJlcGxhY2VkIHdpdGggQ29udGV4dEZlYXR1cmVzLgorCisgICAgICAgIEVhY2ggQ29u
dGV4dEZlYXR1cmVzIG9iamVjdCBpcyBvd25lZCBieSBhIFBhZ2UsIGFuZCBpcyBhdHRhY2hlZCB0
bworICAgICAgICBlYWNoIERvY3VtZW50IGluIHRoZSBwYWdlIGV2ZW4gaWYgdGhlIHBhZ2UgaXRz
ZWxmIGhhcyBubyByZWZlcmVuY3QKKyAgICAgICAgdG8gRnJhbWVzIG9yIFBhZ2VzLiBXaXRoIENv
bnRleHRGZWF0dXJlcywgZWFjaCBEb2N1bWVudCBjYW4gZGVjaWRlCisgICAgICAgIHRoZSBmZWF0
dXJlIGF2YWlsYWJpbGl0eSBldmVuIGlmIGl0IGNhbm5vdCByZWFjaCBQYWdlIG9yIEZyYW1lLgor
CisgICAgICAgIE9uIFJlZkNvdW50ZWRTdXBwbGVtZW50OiBEb2N1bWVudCBpbnN0YW5jZSBjYW4g
bGl2ZSBsb25nZXIgdGhhbiBhCisgICAgICAgIFBhZ2Ugd2hlcmUgaXQgaXMgc2h3b24uIFRoaXMg
bWVhbnMgdGhhdCBDb250ZXh0RmVhdHVyZXMgaW5zdGFuY2UKKyAgICAgICAgbmVlZHMgdG8gc3Vy
dml2ZSBhZnRlciBvd25lciBQYWdlIGRlc3RydWN0aW9uIGJlY2F1c2UgaXQncworICAgICAgICBy
ZWZlcmVuY2VkIGZyb20gcG9zc2libHkgc3Vydml2aW5nIERvY3VtZW50cy4gUmVmQ291bnRlZFN1
cHBsZW1lbnQKKyAgICAgICAgaXMgaW50cm9kdWNlZCB0byBjb3ZlciB0aGlzIHNjZW5hcmlvOiBJ
dCBhbGxvd3Mgc3VwcGxlbWVudCBjbGFzc2VzCisgICAgICAgIHRvIGxpdmUgYWZ0ZXIgUGFnZSdz
IGRlc3RydWN0aW9uLgorCisgICAgICAgIFJlZkNvdW50ZWRTdXBwbGVtZW50Ojpob3N0RGVzdHJv
eWVkKCkgaXMgbm90aWZpZWQgd2hlbiB0aGUgaG9zdGluZworICAgICAgICBwYWdlIGlzIGdvbmUu
IENvbnRleHRGZWF0dXJlcyBjbGVhcnMgaXRzIHJlZmVyZW5jZSB0byB0aGUgY2xpZW50CisgICAg
ICAgIHVzaW5nIHRoaXMgbm90aWZpY2F0aW9uLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3No
YWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbAorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBU
YXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06
CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBjc3MvU3R5bGVS
ZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpkZXRlcm1pbmVT
Y29wZSk6CisgICAgICAgICogZG9tL0NvbnRleHRGZWF0dXJlcy5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXNDbGllbnQ6OmVt
cHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlczo6c3VwcGxlbWVudE5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpwcm92aWRlVG8pOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpkZWZhdWx0U3dpdGNoKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRleHRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0RmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0RmVhdHVyZXM6OnBhZ2VQb3B1cEVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6cHJvdmlkZUNvbnRleHRGZWF0dXJlc1RvKToKKyAgICAgICAgKiBkb20vQ29udGV4dEZlYXR1
cmVzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDb250ZXh0RmVhdHVy
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpDb250ZXh0RmVhdHVyZXMp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpob3N0RGVzdHJveWVkKToKKyAg
ICAgICAgKENvbnRleHRGZWF0dXJlc0NsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
RmVhdHVyZXNDbGllbnQ6On5Db250ZXh0RmVhdHVyZXNDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGV4dEZlYXR1cmVzQ2xpZW50Ojppc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGV4dEZlYXR1cmVzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1
cmVzOjppc0VuYWJsZWQpOgorICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAg
ICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1l
bnRhdGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKiBkb20v
UG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OlBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpmaW5kUGFyZW50KToKKyAgICAgICAgKiBkb20vU2Vj
dXJpdHlDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5Q29udGV4dDo6U2Vj
dXJpdHlDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5Q29udGV4dDo6c2V0RmVh
dHVyZVN3aXRjaCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vU2VjdXJpdHlD
b250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5
Q29udGV4dDo6ZmVhdHVyZVN3aXRjaCk6CisgICAgICAgIChTZWN1cml0eUNvbnRleHQpOgorICAg
ICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpn
ZXRTZWxlY3Rpb24pOgorICAgICAgICAqIGRvbS9tYWtlX25hbWVzLnBsOgorICAgICAgICAocHJp
bnRDb25zdHJ1Y3RvckludGVyaW9yKToKKyAgICAgICAgKHByaW50RmFjdG9yeUNwcEZpbGUpOgor
ICAgICAgICAocHJpbnRXcmFwcGVyRnVuY3Rpb25zKToKKyAgICAgICAgKHByaW50V3JhcHBlckZh
Y3RvcnlDcHBGaWxlKToKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVGcmFnbWVudEZyb21NYXJrdXBXaXRoQ29udGV4dCk6CisgICAgICAgICog
aHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdHlsZUVs
ZW1lbnQ6OnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
dHlsZUVsZW1lbnQ6OnVucmVnaXN0ZXJXaXRoU2NvcGluZ05vZGUpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZW50
VGFnTmFtZSk6CisgICAgICAgICogaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01QYXRjaFN1cHBvcnQ6OnBhdGNoRG9jdW1lbnQpOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1JlZkNvdW50
ZWRTdXBwbGVtZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBs
ZW1lbnRhYmxlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJlZkNvdW50ZWRTdXBw
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlZkNvdW50ZWRTdXBwbGVtZW50Ojpob3N0RGVz
dHJveWVkKToKKyAgICAgICAgKFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVmQ291bnRl
ZFN1cHBsZW1lbnQ6OldyYXBwZXI6OldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVmQ291
bnRlZFN1cHBsZW1lbnQ6OldyYXBwZXI6On5XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
ZkNvdW50ZWRTdXBwbGVtZW50OjpXcmFwcGVyOjp3cmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlZkNvdW50ZWRTdXBwbGVtZW50Ojpwcm92aWRlVG8pOgorICAgICAgICAoV2ViQ29yZTo6UmVm
Q291bnRlZFN1cHBsZW1lbnQ6OmZyb20pOgorICAgICAgICAqIHBsYXRmb3JtL1N1cHBsZW1lbnRh
YmxlLmg6CisgICAgICAgIChXZWJDb3JlOjpTdXBwbGVtZW50Ojppc1JlZkNvdW50ZWRXcmFwcGVy
KToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1MKToKKwogMjAxMi0wNi0wNyAgVGFrYXNoaSBTYWth
bW90byAgPHRhc2FrQGdvb2dsZS5jb20+CiAKICAgICAgICAgSW1wcm92ZSB0aGUgcGVyZm9ybWFu
Y2Ugb2YgcHVzaFNjb3BlIGluIFN0eWxlUmVzb2x2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggYjJlMzdlOTM1OGU1ZTg5OWEyM2YzZjhiNjIzNGNjNTE1M2E2ZjE1OS4uZWQ5N2Y0NmNi
ZDZiM2UwOTAwYjU3MTEzNjVjNzk0NzkyMGEwMjJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMi0wNi0xMCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFA
Z29vZ2xlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMTgwOTgpOiA8Y29udGVudD4gZWxl
bWVudCBkb2VzIG5vdCByZW5kZXIgZGlzdHJpYnV0ZWQgY2hpbGRyZW4gd2hlbiBjbG9uZWQgZnJv
bSBhbm90aGVyIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04ODE0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIC0gQWRkZWQgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbCB3aGljaCBpbXBsZW1l
bnRzIFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlc0NsaWVudC4KKyAgICAgICAgLSBSZXBsYWNlZCBQ
YWdlUG9wdXBGcmFtZUxvYWRlckNsaWVudCB3aXRoIFBhZ2VQb3B1cEZlYXR1cmVzQ2xpZW50Lgor
CisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViUGVybWlzc2lvbkNs
aWVudC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVybWlzc2lv
bkNsaWVudDo6YWxsb3dXZWJDb21wb25lbnRzKToKKyAgICAgICAgKiBzcmMvQ29udGV4dEZlYXR1
cmVzQ2xpZW50SW1wbC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9n
ZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwLgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYktpdDo6Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbDo6aXNFbmFibGVkKToKKyAg
ICAgICAgKiBzcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5oOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmguCisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbCk6Cisg
ICAgICAgIChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OkNvbnRleHRGZWF0dXJl
c0NsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBs
OjpzZXRQZXJtaXNzaW9uQ2xpZW50KToKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJ
bXBsLmNwcDoKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmg6CisgICAgICAg
IChGcmFtZUxvYWRlckNsaWVudEltcGwpOgorICAgICAgICAqIHNyYy9XZWJQYWdlUG9wdXBJbXBs
LmNwcDoKKyAgICAgICAgKFBhZ2VQb3B1cEZlYXR1cmVzQ2xpZW50KToKKyAgICAgICAgKFdlYktp
dDo6UGFnZVBvcHVwRmVhdHVyZXNDbGllbnQ6OmlzRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUG9wdXBJbXBsOjppbml0UGFnZSk6CisgICAgICAg
ICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNl
dFBlcm1pc3Npb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmll
d0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViS2l0KToK
KwogMjAxMi0wNi0wNyAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0Nocm9taXVtXSBNb3ZlIGRpZFN0YXJ0V29ya2VyUnVuTG9vcCB0byBQbGF0Zm9ybS5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDdiOTc3ODM0NjM5MWU2MDQ0OTI5ZGM0MGQyNjM1OTlh
YjcwYjkzYTcuLjk1M2RkZTQ5ODY2YTU3MTQ0NWQyY2E4OGM2YWM3MmQ2OGFlZDkyMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC00NTksNyArNDU5LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
ICAgIGJpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcAogCiAgICAgYmluZGluZ3MvZ2Vu
ZXJpYy9BY3RpdmVET01DYWxsYmFjay5jcHAKLSAgICBiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRF
bmFibGVkRmVhdHVyZXMuY3BwCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmNwcAogCiAgICAgY3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3BwCkBAIC01NTksNiAr
NTU4LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9Db250YWluZXJOb2RlLmNwcAog
ICAgIGRvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAKICAgICBkb20vQ29udGV4dERlc3Ry
dWN0aW9uT2JzZXJ2ZXIuY3BwCisgICAgZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAKICAgICBkb20v
Q3VzdG9tRXZlbnQuY3BwCiAgICAgZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCiAgICAgZG9t
L0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCBhOWM3NWUyNjAzNzJkMGMzYmFmMGNiMWYyOTJmZTUwODAzYTA1MDZmLi5jZjNlNzEw
MDdkNzczMjJlMGJmMjJlNzYzYmE1NDllNGU2NDg5MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KQEAgLTEzMDcsOCArMTMwNyw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggXAogCVNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmggXAotCVNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgXAotCVNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaCBc
CiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHkuaCBcCkBA
IC0xODAwLDYgKzE3OTgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9Db250YWluZXJOb2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmNwcCBc
CisJU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vQ3Jvc3NUaHJlYWRUYXNrLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FdmVu
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FdmVudC5oIFwKQEAgLTM1ODEsNiAr
MzU4MSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UHJlcmVuZGVySGFuZGxlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlYWJsZUJ1
ZmZlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZVByaW9yaXR5LmggXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlZkNvdW50ZWRTdXBwbGVtZW50LmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1JlZmVycmVyUG9saWN5LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1J1bkxvb3AuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKaW5kZXggMTUzZjEzOWMzM2ViN2JjZDA4M2YyYjQyZDE4ZjMyOTExYWZkODJkZS4u
NGZkMDZmOTkwNzkyMTFhNDcxZWE0ZjI3NmJjYTVkNWJiZGMxZjRhZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBA
IC03Miw3ICs3Miw2IEBAIFNPVVJDRVMgKz0gXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlUm93LmNwcCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBc
CiAgICAgYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5jcHAgXAotICAgIGJpbmRp
bmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgXAogICAgIGJpbmRpbmdzL2dl
bmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKIAogdjggewpAQCAtNTI4LDYgKzUyNyw3
IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Db250YWluZXJOb2RlLmNwcCBcCiAgICAgZG9tL0Nv
bnRhaW5lck5vZGVBbGdvcml0aG1zLmNwcCBcCiAgICAgZG9tL0NvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyLmNwcCBcCisgICAgZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAgXAogICAgIGRvbS9DdXN0
b21FdmVudC5jcHAgXAogICAgIGRvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCBcCiAg
ICAgZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBi
M2U2NjI3ZWNkMjQ0ZjRkN2M3Mzc0ZTJjNGQ2ODc0ODc1YTM0NDlmLi5jODdkNjRlYzRjYTBiNGZi
ZmI5MzBlNjk3ZDYwODgxNDA4NTdlOWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMDksNiArMzA5
LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9QdXJnZVByaW9yaXR5LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9SZWZDb3Vu
dGVkU3VwcGxlbWVudC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9TY3JvbGxWaWV3LmgnLApAQCAtNjE2LDYgKzYxNyw4IEBACiAgICAgICAgICAgICAn
ZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oJywKICAgICAgICAgICAgICdkb20vQ29udGFp
bmVyTm9kZS5oJywKICAgICAgICAgICAgICdkb20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIu
aCcsCisgICAgICAgICAgICAnZG9tL0NvbnRleHRGZWF0dXJlcy5oJywKKyAgICAgICAgICAgICdk
b20vQ29udGV4dEZlYXR1cmVzLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RPTUltcGxlbWVudGF0
aW9uLmgnLAogICAgICAgICAgICAgJ2RvbS9ET01UaW1lU3RhbXAuaCcsCiAgICAgICAgICAgICAn
ZG9tL0RldmljZU9yaWVudGF0aW9uLmgnLApAQCAtMTg0OCw4ICsxODUxLDYgQEAKICAgICAgICAg
ICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eS5oJywKICAgICAgICAgICAgICdi
aW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaCcsCi0gICAgICAgICAgICAnYmlu
ZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCcsCi0gICAgICAgICAgICAn
YmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmgnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBiMTZhOTYyZTBlYjIwZGUwNzY3
MzAxM2Y4MDgwNzhiNmNmNzZjMDdjLi4zMmY3NDkwNTU2YjVlNWExNjNkMjZjOWVhOGY4ZjUxYTYz
MGE1OWIyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtNjMxNzAsMTQgKzYzMTcwLDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8Rmls
ZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQ29udGV4dEVuYWJsZWRG
ZWF0dXJlcy5jcHAiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKLQkJ
CQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGdlbmVyaWNcR2VuZXJpY0JpbmRpbmcuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBi
MWQwY2ZiZmQxOGRkNmM3NzcxMzgxMmYyNmUwMTdmNTNjOWI0YjVkLi4yNTg4MWMxMThlODMxYzJh
YTZlNzY1NGJlYWZiYjQyZTE5ZWExZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzQ5LDggKzM3NDksNiBAQAogCQlBNzNG
OTVGRjEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBS
b3VuZGVkUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE3NDBCNUE1MTRDOTM1QUIwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc5MTRD
OTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCAqLzsgfTsKIAkJQTc0MEI1QTcx
NEM5MzVBRjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0RUE3ODE0QzkzNDg0MDBDOEY1QkYg
LyogSlNJbnRlcm5hbFNldHRpbmdzLmNwcCAqLzsgfTsKLQkJQTc0N0EwN0YxNTZCMjg2OTAwMjQz
RUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0N0EwN0QxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRl
eHRFbmFibGVkRmVhdHVyZXMuY3BwICovOyB9OwotCQlBNzQ3QTA4MDE1NkIyODY5MDAyNDNFRUQg
LyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc0N0EwN0UxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFi
bGVkRmVhdHVyZXMuaCAqLzsgfTsKIAkJQTc0QkI3NkIxM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2Vw
dGlvbkNvZGVQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFj
ZWhvbGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc0MTA3
NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzVFNDk3NzEwNzUyQUNCMDBDOUI4
OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwICovOyB9OwpAQCAtMzgwMiw2ICszODAwLDggQEAKIAkJQTdEMjBG
NjIxMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDIwRjYwMTA3RjQwNjkwMEE4MDM5
MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5jcHAgKi87IH07CiAJCUE3RDIwRjYzMTA3RjQwNjkwMEE4
MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTdEMjBGNjExMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3Rp
dmVJbmZvLmggKi87IH07CiAJCUE3RDIwRjZEMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2
ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
RDIwRjZCMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCAqLzsgfTsKKwkJQTdE
M0NBMTAxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0QzQ0EwRTE1N0RGOEU5MDA4NjBB
OTcgLyogQ29udGV4dEZlYXR1cmVzLmNwcCAqLzsgfTsKKwkJQTdEM0NBMTExNTdERjhFOTAwODYw
QTk3IC8qIENvbnRleHRGZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTdEM0NBMEYxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJl
cy5oICovOyB9OwogCQlBN0Q2QjM0OTBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9h
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q2
QjM0NzBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmggKi87IH07CiAJCUE3
RDZCMzRBMEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdENkIzNDgwRjYxMTA0NTAw
Qjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5jcHAgKi87IH07CiAJCUE3REJGOEREMTI3Njkx
OUMwMDZCNjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEQkY4REIxMjc2OTE5QzAwNkI2MDA4IC8qIFRl
eHRDaGVja2luZ0hlbHBlci5jcHAgKi87IH07CkBAIC0xMDgzNiw4ICsxMDgzNiw2IEBACiAJCUE3
MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRl
ZFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUm91bmRlZFJl
Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGRDEyQzk3QkZFMDAz
MUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Um91bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTc0N0EwN0QxNTZC
Mjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHA7IHBhdGgg
PSBnZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlBNzQ3QTA3RTE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0
dXJlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDb250ZXh0RW5hYmxlZEZl
YXR1cmVzLmg7IHBhdGggPSBnZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2Vw
dGlvbkNvZGVQbGFjZWhvbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTc1RTQ5NzQxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTA4OTUsNiArMTA4OTMsOCBAQAogCQlBN0QyMEY2MDEwN0Y0MDY5MDBBODAzOTIgLyog
SlNXZWJHTEFjdGl2ZUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNXZWJHTEFjdGl2ZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
N0QyMEY2MTEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTEFjdGl2ZUluZm8uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTdEMjBGNkIxMDdGNDM4QjAwQTgwMzkyIC8qIFdlYkdMQWN0aXZl
SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJHTEFjdGl2ZUluZm8u
aDsgcGF0aCA9IGNhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTdEM0NBMEUxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb250ZXh0RmVhdHVyZXMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0QzQ0EwRjE1N0RGOEU5MDA4NjBBOTcg
LyogQ29udGV4dEZlYXR1cmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
bnRleHRGZWF0dXJlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0Q2QjM0NzBG
NjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFdvcmtlclNjcmlwdExvYWRlci5oOyBwYXRoID0gd29ya2Vycy9Xb3Jr
ZXJTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdENkIzNDgw
RjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXb3JrZXJTY3JpcHRMb2FkZXIuY3BwOyBwYXRoID0gd29y
a2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBN0RCNDE4MTE0Q0UxRjBBMDBBMkUzMTYgLyogU2hhZG93Um9vdC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU2hhZG93Um9vdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xOTcwNyw4ICsxOTcwNyw2IEBACiAJCQkJQTYyMkE4RjUxMjJDNDRBNjAwQTc4NUIzIC8qIEJp
bmRpbmdTZWN1cml0eS5oICovLAogCQkJCUE2MjJBOEY2MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5k
aW5nU2VjdXJpdHlCYXNlLmNwcCAqLywKIAkJCQlBNjIyQThGNzEyMkM0NEE2MDBBNzg1QjMgLyog
QmluZGluZ1NlY3VyaXR5QmFzZS5oICovLAotCQkJCUE3NDdBMDdEMTU2QjI4NjkwMDI0M0VFRCAv
KiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCAqLywKLQkJCQlBNzQ3QTA3RTE1NkIyODY5MDAy
NDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oICovLAogCQkJCUE2MjJBOEY5MTIyQzQ0
QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBnZW5l
cmljOwpAQCAtMjExNDUsNiArMjExNDMsOCBAQAogCQkJCUUxQTE0NzA3MTExMDJCMTUwMEVFQzBG
MyAvKiBDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oICovLAogCQkJCTk3NjI3QjhCMTRGQjNDRUUw
MDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgKi8sCiAJCQkJOTc2MjdC
OEMxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmggKi8sCisJ
CQkJQTdEM0NBMEUxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlcy5jcHAgKi8sCisJ
CQkJQTdEM0NBMEYxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlcy5oICovLAogCQkJ
CTJFM0ZBQTA4MTFBMzZCRjEwMDU3NjYyNCAvKiBDcm9zc1RocmVhZFRhc2suaCAqLywKIAkJCQk2
MkNEMzI1NjExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3BwICovLAogCQkJCTYyQ0Qz
MjU3MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5oICovLApAQCAtMjE5OTUsNyArMjE5
OTUsNyBAQAogCQkJCTQxRDAxNUNBMEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMzcwRDZFREIxMzg0NTQ1NTAwNDQxMDNFIC8qIENvbnRlbnRUeXBl
UGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzYyN0I4RTE0RkIzQ0VFMDAyQ0RDQTEgLyog
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUE3NDdBMDgw
MTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBN0QzQ0ExMTE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5M0I2QTBFNjBCMEJDQTVDMDBGNTAyN0EgLyogQ29udGV4dE1lbnUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY1MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0
TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDY1QUQ0RjcwQjBDMkVEQTAwNUEyQjFE
IC8qIENvbnRleHRNZW51Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTUxNCw3ICsy
NTUxNCw3IEBACiAJCQkJNDFEMDE1Q0IwRjRCNUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTM3MEQ2RURBMTM4NDU0NTUwMDQ0MTAzRSAvKiBDb250ZW50
VHlwZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzYyN0I4RDE0RkIzQ0VFMDAyQ0RD
QTEgLyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
QTc0N0EwN0YxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQTdEM0NBMTAxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0
dXJlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNjVBRDRGNjBCMEMyRURBMDA1QTJCMUQgLyog
Q29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA2MDI3Q0IzMEIx
Q0MwM0QwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW1NYWMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk5M0I2QTBFQTBCMEJDQTg0MDBGNTAyN0EgLyogQ29udGV4dE1lbnVNYWMubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4
dEVuYWJsZWRGZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0Nv
bnRleHRFbmFibGVkRmVhdHVyZXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
MjYyMmIzNzNlYjIxNzg1YmNjMWMwNzhiYmVhMjI4ZDAzYmMxY2I2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0g
KgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVy
ZXMuaCIKLQotI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0j
aW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgotI2luY2x1ZGUgIkZy
YW1lTG9hZGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLWJvb2wgQ29u
dGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChET01XaW5kb3cqIHdpbmRvdykK
LXsKLSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChGcmFt
ZSogZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFtZS0+bG9hZGVy
KCktPmNsaWVudCgpLT5hbGxvd1NoYWRvd0RPTShSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFk
b3dET01FbmFibGVkKCkpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLSNlbmRpZgotCi0jaWYgRU5B
QkxFKFNUWUxFX1NDT1BFRCkKLWJvb2wgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29w
ZWRFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICBpZiAoIWRvY3VtZW50KQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFt
ZSgpKQotICAgICAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+YWxsb3dTdHls
ZVNjb3BlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoKSk7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotI2VuZGlmICAgCi0KLSNpZiBFTkFCTEUoUEFHRV9QT1BVUCkK
LWJvb2wgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6cGFnZVBvcHVwRW5hYmxlZChET01XaW5kb3cq
IHdpbmRvdykKLXsKLSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmIChGcmFtZSogZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFt
ZS0+bG9hZGVyKCktPmNsaWVudCgpLT5hbGxvd1BhZ2VQb3B1cCgpOwotICAgIHJldHVybiBmYWxz
ZTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTdmYTRiNzU4NWVhNzdhNzE5YmUzYjRkMzM0
NDhiMjgyZjQ5OTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJl
cy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ29udGV4dEVuYWJsZWRG
ZWF0dXJlc19oCi0jZGVmaW5lIENvbnRleHRFbmFibGVkRmVhdHVyZXNfaAotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIERPTVdpbmRvdzsKLWNsYXNzIERvY3VtZW50OwotCi0vLyBBIGNs
YXNzIHRoYXQgc3RvcmVzIHN0YXRpYyBlbmFibGVycyBmb3IgYWxsIGV4cGVyaW1lbnRhbCBmZWF0
dXJlcy4gTm90ZSB0aGF0Ci0vLyB0aGUgbWV0aG9kIG5hbWVzIG11c3QgbGluZSB1cCB3aXRoIHRo
ZSBKYXZhU2NyaXB0IG1ldGhvZCB0aGV5IGVuYWJsZSBmb3IgY29kZQotLy8gZ2VuZXJhdGlvbiB0
byB3b3JrIHByb3Blcmx5LgotCi1jbGFzcyBDb250ZXh0RW5hYmxlZEZlYXR1cmVzIHsKLXB1Ymxp
YzoKLSNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBzdGF0aWMgYm9vbCBzaGFkb3dET01FbmFi
bGVkKERPTVdpbmRvdyopOwotI2VuZGlmCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLSAgICBz
dGF0aWMgYm9vbCBzdHlsZVNjb3BlZEVuYWJsZWQoRG9jdW1lbnQqKTsKLSNlbmRpZgotI2lmIEVO
QUJMRShQQUdFX1BPUFVQKQotICAgIHN0YXRpYyBib29sIHBhZ2VQb3B1cEVuYWJsZWQoRE9NV2lu
ZG93Kik7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IENvbnRleHRFbmFibGVkRmVhdHVyZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA2MWI5N2JlM2Q5NmUzYTliOTBlYzRi
YzRiZWM1OTBlYjc1ZTdhZWNhLi4wMDgyNGFiYzIyNDM0MjE4OGIwNGVkY2NhMTMyNTRmNWZiMDBi
NzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQpAQCAtMjQxNyw3ICsyNDE3LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KICAgICBwdXNoKEBpbXBsRml4ZWRIZWFkZXIsIEdlbmVyYXRlSW1wbGVtZW50YXRpb25Db250
ZW50SGVhZGVyKCRkYXRhTm9kZSkpOwogCiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaCIpOwotICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJDb250ZXh0RW5hYmxl
ZEZlYXR1cmVzLmgiKTsKKyAgICBBZGRUb0ltcGxJbmNsdWRlcygiQ29udGV4dEZlYXR1cmVzLmgi
KTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhQcm94eS5oIik7CiAgICAgQWRkVG9JbXBsSW5j
bHVkZXMoIlY4QmluZGluZy5oIik7CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4QmluZGluZ1N0
YXRlLmgiKTsKQEAgLTI4NjYsNyArMjg2Niw3IEBAIEVORAogICAgICAgICAgICAgbXkgJGVuYWJs
ZUZ1bmN0aW9uID0gR2V0Q29udGV4dEVuYWJsZUZ1bmN0aW9uKCRydW50aW1lQXR0ci0+c2lnbmF0
dXJlKTsKICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9y
LT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRydW50aW1lQXR0ci0+c2lnbmF0dXJlKTsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4jaWYgJHtjb25kaXRpb25hbFN0cmluZ31c
biIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGlmIChDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjoke2VuYWJsZUZ1bmN0aW9ufShpbXBs
KSkge1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoQ29udGV4
dEZlYXR1cmVzOjoke2VuYWJsZUZ1bmN0aW9ufShpbXBsLT5kb2N1bWVudCgpKSkge1xuIik7CiAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc3RhdGljIGNvbnN0IEJhdGNo
ZWRBdHRyaWJ1dGUgYXR0ckRhdGEgPVxcXG4iKTsKICAgICAgICAgICAgIEdlbmVyYXRlU2luZ2xl
QmF0Y2hlZEF0dHJpYnV0ZSgkaW50ZXJmYWNlTmFtZSwgJHJ1bnRpbWVBdHRyLCAiOyIsICIgICAg
Iik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDY0OGY2MWJiYWU5NDcxNzA2NDU5MzFkZjdjNTk0ODkw
YWJkMGNiNDYuLjgxZTk1MmRhNTY3OGFmNTVjYTUyNzc2NDlmZGJmNDA3ZGMxNDI3MzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTUyLDcgKzUyLDcgQEAKICNpbmNsdWRl
ICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhbGN1bGF0aW9uVmFsdWUuaCIKICNpbmNsdWRl
ICJDb250ZW50RGF0YS5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNp
bmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJDb3VudGVyLmgiCiAjaW5jbHVk
ZSAiQ291bnRlckNvbnRlbnQuaCIKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCkBAIC00OTAsNyAr
NDkwLDcgQEAgY29uc3QgQ29udGFpbmVyTm9kZSogU3R5bGVSZXNvbHZlcjo6ZGV0ZXJtaW5lU2Nv
cGUoY29uc3QgQ1NTU3R5bGVTaGVldCogc2hlZXQpCiB7CiAgICAgQVNTRVJUKHNoZWV0KTsKIAot
ICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKGRvY3Vt
ZW50KCkpKQorICAgIGlmICghQ29udGV4dEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9j
dW1lbnQoKSkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgTm9kZSogb3duZXJOb2RlID0gc2hl
ZXQtPm93bmVyTm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRG
ZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMThlOTI1NWM4ZjJjNDMxNDUwZjMyOTEyMTFkY2RmYzY5NTcxNGVmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAKQEAgLTAs
MCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1
cmVzLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNs
dWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Q29udGV4dEZlYXR1cmVzQ2xpZW50KiBDb250ZXh0RmVhdHVyZXNDbGllbnQ6OmVtcHR5KCkKK3sK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbnRleHRGZWF0dXJlc0NsaWVudCwgZW1wdHksICgp
KTsKKyAgICByZXR1cm4gJmVtcHR5OworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIENvbnRleHRG
ZWF0dXJlczo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBuYW1lLCAoIkNvbnRleHRGZWF0dXJlcyIpKTsKKyAgICByZXR1cm4gbmFtZTsK
K30KKwordm9pZCBDb250ZXh0RmVhdHVyZXM6OnByb3ZpZGVUbyhEb2N1bWVudCogZG9jdW1lbnQs
IFBhZ2UqIHBhZ2UpCit7CisgICAgQ29udGV4dEZlYXR1cmVzKiBwcm92aWRlZCA9IHN0YXRpY19j
YXN0PENvbnRleHRGZWF0dXJlcyo+KGZyb20ocGFnZSwgc3VwcGxlbWVudE5hbWUoKSkpOworICAg
IGlmICghcHJvdmlkZWQpCisgICAgICAgIHJldHVybjsKKyAgICBkb2N1bWVudC0+c2V0RmVhdHVy
ZVN3aXRjaChwcm92aWRlZCk7Cit9CisKK0NvbnRleHRGZWF0dXJlcyogQ29udGV4dEZlYXR1cmVz
OjpkZWZhdWx0U3dpdGNoKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJlZlB0cjxDb250
ZXh0RmVhdHVyZXM+LCBpbnN0YW5jZSwgKENvbnRleHRGZWF0dXJlczo6Y3JlYXRlKENvbnRleHRG
ZWF0dXJlc0NsaWVudDo6ZW1wdHkoKSkpKTsKKyAgICByZXR1cm4gaW5zdGFuY2UuZ2V0KCk7Cit9
CisKK2Jvb2wgQ29udGV4dEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKERvY3VtZW50KiBkb2N1
bWVudCkKK3sKKyNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKKyAgICBpZiAoIWRvY3VtZW50KQorICAg
ICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCgpOwor
ICAgIHJldHVybiBkb2N1bWVudC0+ZmVhdHVyZVN3aXRjaCgpLT5pc0VuYWJsZWQoZG9jdW1lbnQs
IFNoYWRvd0RPTSwgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCgpKTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKKyAgICByZXR1cm4gZmFsc2U7Cisj
ZW5kaWYKK30KKworYm9vbCBDb250ZXh0RmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChEb2N1
bWVudCogZG9jdW1lbnQpCit7CisjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKKyAgICBpZiAoIWRv
Y3VtZW50KQorICAgICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29w
ZWRFbmFibGVkKCk7CisgICAgcmV0dXJuIGRvY3VtZW50LT5mZWF0dXJlU3dpdGNoKCktPmlzRW5h
YmxlZChkb2N1bWVudCwgU3R5bGVTY29wZWQsIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnN0eWxl
U2NvcGVkRW5hYmxlZCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKKyAg
ICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworYm9vbCBDb250ZXh0RmVhdHVyZXM6OnBhZ2VQ
b3B1cEVuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50KQoreworI2lmIEVOQUJMRShQQUdFX1BPUFVQ
KQorICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
ZG9jdW1lbnQtPmZlYXR1cmVTd2l0Y2goKS0+aXNFbmFibGVkKGRvY3VtZW50LCBQYWdlUG9wdXAs
IGZhbHNlKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKKyAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKK30KKwordm9pZCBwcm92aWRlQ29udGV4dEZlYXR1cmVzVG8oUGFnZSog
cGFnZSwgQ29udGV4dEZlYXR1cmVzQ2xpZW50KiBjbGllbnQpCit7CisgICAgUmVmQ291bnRlZFN1
cHBsZW1lbnQ8UGFnZSwgQ29udGV4dEZlYXR1cmVzPjo6cHJvdmlkZVRvKHBhZ2UsIENvbnRleHRG
ZWF0dXJlczo6c3VwcGxlbWVudE5hbWUoKSwgQ29udGV4dEZlYXR1cmVzOjpjcmVhdGUoY2xpZW50
KSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVy
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NDE1MzZjNDA2NWY0MjRlN2M1YWNlNDdiODk1YTA5ZTdjNDZiZDg2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oCkBAIC0wLDAgKzEsOTkgQEAK
KworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgQ29udGV4dEZlYXR1cmVzX2gKKyNkZWZpbmUgQ29udGV4dEZlYXR1cmVzX2gK
KworI2luY2x1ZGUgIlJlZkNvdW50ZWRTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDb250ZXh0RmVhdHVyZXND
bGllbnQ7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIENvbnRleHRGZWF0
dXJlcyA6IHB1YmxpYyBSZWZDb3VudGVkU3VwcGxlbWVudDxQYWdlLCBDb250ZXh0RmVhdHVyZXM+
IHsKK3B1YmxpYzoKKyAgICBlbnVtIEZlYXR1cmVUeXBlIHsKKyAgICAgICAgU2hhZG93RE9NLAor
ICAgICAgICBTdHlsZVNjb3BlZCwKKyAgICAgICAgUGFnZVBvcHVwCisgICAgfTsKKworICAgIHN0
YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIHZv
aWQgcHJvdmlkZVRvKERvY3VtZW50KiwgUGFnZSopOworICAgIHN0YXRpYyBDb250ZXh0RmVhdHVy
ZXMqIGRlZmF1bHRTd2l0Y2goKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb250ZXh0RmVhdHVy
ZXM+IGNyZWF0ZShDb250ZXh0RmVhdHVyZXNDbGllbnQqKTsKKworICAgIHN0YXRpYyBib29sIHNo
YWRvd0RPTUVuYWJsZWQoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgYm9vbCBzdHlsZVNjb3BlZEVu
YWJsZWQoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgYm9vbCBwYWdlUG9wdXBFbmFibGVkKERvY3Vt
ZW50Kik7CisKKyAgICBib29sIGlzRW5hYmxlZChEb2N1bWVudCosIEZlYXR1cmVUeXBlLCBib29s
KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBDb250ZXh0RmVhdHVyZXMoQ29udGV4
dEZlYXR1cmVzQ2xpZW50KiBjbGllbnQpCisgICAgICAgIDogbV9jbGllbnQoY2xpZW50KQorICAg
IHsgfQorCisgICAgdmlydHVhbCB2b2lkIGhvc3REZXN0cm95ZWQoKSBPVkVSUklERTsKKworICAg
IENvbnRleHRGZWF0dXJlc0NsaWVudCogbV9jbGllbnQ7Cit9OworCitpbmxpbmUgdm9pZCBDb250
ZXh0RmVhdHVyZXM6Omhvc3REZXN0cm95ZWQoKQoreworICAgIG1fY2xpZW50ID0gMDsKK30KKwor
CitjbGFzcyBDb250ZXh0RmVhdHVyZXNDbGllbnQgeworcHVibGljOgorICAgIHN0YXRpYyBDb250
ZXh0RmVhdHVyZXNDbGllbnQqIGVtcHR5KCk7CisKKyAgICB2aXJ0dWFsIH5Db250ZXh0RmVhdHVy
ZXNDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKERvY3VtZW50KiwgQ29u
dGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRl
ZmF1bHRWYWx1ZTsgfQorfTsKKwordm9pZCBwcm92aWRlQ29udGV4dEZlYXR1cmVzVG8oUGFnZSos
IENvbnRleHRGZWF0dXJlc0NsaWVudCopOworCitpbmxpbmUgUGFzc1JlZlB0cjxDb250ZXh0RmVh
dHVyZXM+IENvbnRleHRGZWF0dXJlczo6Y3JlYXRlKENvbnRleHRGZWF0dXJlc0NsaWVudCogY2xp
ZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ29udGV4dEZlYXR1cmVzKGNsaWVudCkp
OworfQorCitpbmxpbmUgYm9vbCBDb250ZXh0RmVhdHVyZXM6OmlzRW5hYmxlZChEb2N1bWVudCog
ZG9jdW1lbnQsIEZlYXR1cmVUeXBlIHR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKSBjb25zdAorewor
ICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgcmV0
dXJuIG1fY2xpZW50LT5pc0VuYWJsZWQoZG9jdW1lbnQsIHR5cGUsIGRlZmF1bHRWYWx1ZSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENvbnRleHRGZWF0dXJlc19o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCAzMjBhZWY5ODIwOWE1ZWI4NGE3ZTc1
MjhmY2IzYjU2NDk2ODU4Nzc4Li4xNDhmYzNlYzk4MmM5OGY2ZmJkMjQ5YmNiYmNlNTE5M2JjM2I3
OWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNp
bmNsdWRlICJDb250YWluZXJOb2RlLmNwcCIKICNpbmNsdWRlICJDb250YWluZXJOb2RlQWxnb3Jp
dGhtcy5jcHAiCiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwIgorI2lu
Y2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5jcHAiCiAjaW5jbHVkZSAiQ3VzdG9tRXZlbnQuY3BwIgog
I2luY2x1ZGUgIkRPTUNvcmVFeGNlcHRpb24uY3BwIgogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0
aW9uLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IGRk
MTk3YzZlMjE3ZDcxYjU4NGRmNDQ0MTg5YmM1YjQyOGM2ZmYzZTcuLmMwOWFmMmQyZjkyMWFhMjc3
NDkwMTI2ZWE0ZDNmMDVmZGM4OGE3N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmNwcApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQ29udGVudFR5cGUuaCIK
ICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTI5NSw2ICsyOTYsOCBAQCBQYXNzUmVmUHRyPERvY3Vt
ZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBuYW1l
c3BhY2VVUgogICAgICAgICBkb2MgPSBEb2N1bWVudDo6Y3JlYXRlKDAsIEtVUkwoKSk7CiAKICAg
ICBkb2MtPnNldFNlY3VyaXR5T3JpZ2luKG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpOwor
ICAgIGRvYy0+c2V0RmVhdHVyZVN3aXRjaChtX2RvY3VtZW50LT5mZWF0dXJlU3dpdGNoKCkpOwor
ICAgIENvbnRleHRGZWF0dXJlczo6cHJvdmlkZVRvKGRvYy5nZXQoKSwgbV9kb2N1bWVudC0+cGFn
ZSgpKTsKIAogICAgIFJlZlB0cjxOb2RlPiBkb2N1bWVudEVsZW1lbnQ7CiAgICAgaWYgKCFxdWFs
aWZpZWROYW1lLmlzRW1wdHkoKSkgewpAQCAtMzcyLDYgKzM3NSw3IEBAIFBhc3NSZWZQdHI8SFRN
TERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50KGNvbnN0IFN0
cmluZyYgdGl0CiAgICAgZC0+d3JpdGUoIjwhZG9jdHlwZSBodG1sPjxodG1sPjxib2R5PjwvYm9k
eT48L2h0bWw+Iik7CiAgICAgZC0+c2V0VGl0bGUodGl0bGUpOwogICAgIGQtPnNldFNlY3VyaXR5
T3JpZ2luKG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpOworICAgIGQtPnNldEZlYXR1cmVT
d2l0Y2gobV9kb2N1bWVudC0+ZmVhdHVyZVN3aXRjaCgpKTsKICAgICByZXR1cm4gZC5yZWxlYXNl
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDNhOWJhZmYxZTEwYjY2MjhmMTdh
NTFjZmQ2Y2Q3MTdjZDNiZWEwMDcuLmU4NWFlZDIwMzMwZWJmZDEzY2MyY2M0N2JiMmVlMmFlOTE1
ZmNkMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1
ZGUgIkNvbW1lbnQuaCIKICNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiQ29udGVudFNl
Y3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAi
Q29va2llSmFyLmgiCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKICNpbmNsdWRlICJE
T01TZWxlY3Rpb24uaCIKQEAgLTUwMiw2ICs1MDMsOCBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAg
ICAgbV9pZ25vcmVBdXRvZm9jdXMgPSBmYWxzZTsKIAogICAgIG1fZnJhbWUgPSBmcmFtZTsKKyAg
ICBpZiAobV9mcmFtZSkKKyAgICAgICAgQ29udGV4dEZlYXR1cmVzOjpwcm92aWRlVG8odGhpcywg
bV9mcmFtZS0+cGFnZSgpKTsKIAogICAgIC8vIFdlIGRlcGVuZCBvbiB0aGUgdXJsIGdldHRpbmcg
aW1tZWRpYXRlbHkgc2V0IGluIHN1YmZyYW1lcywgYnV0IHdlCiAgICAgLy8gYWxzbyBkZXBlbmQg
b24gdGhlIHVybCBOT1QgZ2V0dGluZyBpbW1lZGlhdGVseSBzZXQgaW4gb3BlbmVkIHdpbmRvd3Mu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCBhMDZmZmQ0NWYzOWYyMDMzMjM2NzNiYjJjZDFj
MzdjYzk5NDBmMzlhLi44ODkxNDM1MzAwOGRlZjk2NzRhNzE1NjU0OTBmNWY4MTU1MTdjMzEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJQb3Np
dGlvbi5oIgogCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCi0jaW5j
bHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJl
cy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklubGluZVRleHRCb3guaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC04Miw3ICs4Miw3IEBAIFBvc2l0aW9uOjpQb3NpdGlv
bihQYXNzUmVmUHRyPE5vZGU+IGFuY2hvck5vZGUsIExlZ2FjeUVkaXRpbmdPZmZzZXQgb2Zmc2V0
KQogICAgICwgbV9pc0xlZ2FjeUVkaXRpbmdQb3NpdGlvbih0cnVlKQogewogI2lmIEVOQUJMRShT
SEFET1dfRE9NKQotICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIENvbnRleHRFbmFibGVkRmVh
dHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpLT5kb21XaW5k
b3coKSkpCisgICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYgQ29udGV4dEZlYXR1cmVzOjpzaGFk
b3dET01FbmFibGVkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKSkpCiAgICAgICAgICAgIHx8ICFt
X2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2Vsc2UKICAg
ICBBU1NFUlQoIW1fYW5jaG9yTm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7
CkBAIC05Niw3ICs5Niw3IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IGFu
Y2hvck5vZGUsIEFuY2hvclR5cGUgYW5jaG9yVHlwZSkKICAgICAsIG1faXNMZWdhY3lFZGl0aW5n
UG9zaXRpb24oZmFsc2UpCiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgQVNTRVJUKCht
X2FuY2hvck5vZGUgJiYgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCht
X2FuY2hvck5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAgICBBU1NFUlQoKG1fYW5j
aG9yTm9kZSAmJiBDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2Rl
LT5kb2N1bWVudCgpKSkKICAgICAgICAgICAgfHwgIW1fYW5jaG9yTm9kZSB8fCAhbV9hbmNob3JO
b2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZWxzZQogICAgIEFTU0VSVCghbV9hbmNob3JOb2RlIHx8
ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKQEAgLTExNCw3ICsxMTQsNyBAQCBQb3Np
dGlvbjo6UG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBhbmNob3JOb2RlLCBpbnQgb2Zmc2V0LCBB
bmNob3JUeXBlIGFuY2hvclR5cAogICAgICwgbV9pc0xlZ2FjeUVkaXRpbmdQb3NpdGlvbihmYWxz
ZSkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAm
JiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKG1fYW5jaG9yTm9kZS0+
ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIENv
bnRleHRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUtPmRvY3VtZW50KCkp
KQogICAgICAgICAgICB8fCAhbV9hbmNob3JOb2RlIHx8ICFlZGl0aW5nSWdub3Jlc0NvbnRlbnQo
bV9hbmNob3JOb2RlLmdldCgpKSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAj
ZWxzZQogICAgIEFTU0VSVCghbV9hbmNob3JOb2RlIHx8ICFlZGl0aW5nSWdub3Jlc0NvbnRlbnQo
bV9hbmNob3JOb2RlLmdldCgpKSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CkBA
IC04NTcsNyArODU3LDcgQEAgQ29udGFpbmVyTm9kZSogUG9zaXRpb246OmZpbmRQYXJlbnQoY29u
c3QgTm9kZSogbm9kZSkKICAgICAvLyBGSVhNRTogU2VlIGh0dHA6Ly93ZWIudWcvODI2OTcKIAog
I2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIGlmIChDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpz
aGFkb3dET01FbmFibGVkKG5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAgICBpZiAo
Q29udGV4dEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKG5vZGUtPmRvY3VtZW50KCkpKQogICAg
ICAgICByZXR1cm4gbm9kZS0+cGFyZW50Tm9kZSgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NlY3VyaXR5Q29udGV4dC5jcHAKaW5kZXggODAwMjIwMWMxZTAzNDViZTJmMzcyMDM0Mzc2YmUx
NmMyMzVjMTg5NC4uYWRmZmE1YTMxMWQ4MzczM2Y3YjFiOGM1ZTEzYThiZTE0ZjMyOTc3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJTZWN1cml0eUNvbnRleHQuaCIKIAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBv
bGljeS5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJz
ZXJJZGlvbXMuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCkBAIC0zNyw2ICszOCw3
IEBAIFNlY3VyaXR5Q29udGV4dDo6U2VjdXJpdHlDb250ZXh0KCkKICAgICA6IG1fbWF5RGlzcGxh
eVNlYW1sZXNzV2l0aFBhcmVudChmYWxzZSkKICAgICAsIG1faGF2ZUluaXRpYWxpemVkU2VjdXJp
dHlPcmlnaW4oZmFsc2UpCiAgICAgLCBtX3NhbmRib3hGbGFncyhTYW5kYm94Tm9uZSkKKyAgICAs
IG1fZmVhdHVyZVN3aXRjaChDb250ZXh0RmVhdHVyZXM6OmRlZmF1bHRTd2l0Y2goKSkKIHsKIH0K
IApAQCAtMTE5LDQgKzEyMSw5IEBAIFNhbmRib3hGbGFncyBTZWN1cml0eUNvbnRleHQ6OnBhcnNl
U2FuZGJveFBvbGljeShjb25zdCBTdHJpbmcmIHBvbGljeSkKICAgICByZXR1cm4gZmxhZ3M7CiB9
CiAKK3ZvaWQgU2VjdXJpdHlDb250ZXh0OjpzZXRGZWF0dXJlU3dpdGNoKFBhc3NSZWZQdHI8Q29u
dGV4dEZlYXR1cmVzPiBmZWF0dXJlKQoreworICAgIG1fZmVhdHVyZVN3aXRjaCA9IGZlYXR1cmU7
Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuaAppbmRleCBmYzlkZjNlMzQy
NWUwNjI4NDllMGFkYzg3MTRiZWY5Y2FkNjAxN2U2Li45Y2VhN2MxZjg5ODA0ZDYyZGRmM2Q1ODIw
NjA1NzYwOTliYzM0MjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5oCkBAIC0z
NSw2ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2VjdXJpdHlPcmlnaW47
CiBjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3k7CitjbGFzcyBDb250ZXh0RmVhdHVyZXM7CiBj
bGFzcyBLVVJMOwogCiBlbnVtIFNhbmRib3hGbGFnIHsKQEAgLTU5LDYgKzYwLDcgQEAgcHVibGlj
OgogICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1f
c2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KICAgICBTYW5kYm94RmxhZ3Mgc2FuZGJveEZsYWdzKCkg
Y29uc3QgeyByZXR1cm4gbV9zYW5kYm94RmxhZ3M7IH0KICAgICBDb250ZW50U2VjdXJpdHlQb2xp
Y3kqIGNvbnRlbnRTZWN1cml0eVBvbGljeSgpIHsgcmV0dXJuIG1fY29udGVudFNlY3VyaXR5UG9s
aWN5LmdldCgpOyB9CisgICAgQ29udGV4dEZlYXR1cmVzKiBmZWF0dXJlU3dpdGNoKCkgeyByZXR1
cm4gbV9mZWF0dXJlU3dpdGNoLmdldCgpOyB9CiAKICAgICBib29sIGlzU2VjdXJlVHJhbnNpdGlv
blRvKGNvbnN0IEtVUkwmKSBjb25zdDsKIApAQCAtNjksNiArNzEsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gTm90ZTogSXQgaXMgZGFuZ2Vyb3VzIHRvIGNoYW5nZSB0aGUgc2VjdXJpdHkgb3JpZ2luIG9m
IGEgc2NyaXB0IGNvbnRleHQKICAgICAvLyAgICAgICB0aGF0IGFscmVhZHkgY29udGFpbnMgY29u
dGVudC4KICAgICB2b2lkIHNldFNlY3VyaXR5T3JpZ2luKFBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+KTsKKyAgICB2b2lkIHNldEZlYXR1cmVTd2l0Y2goUGFzc1JlZlB0cjxDb250ZXh0RmVhdHVy
ZXM+KTsKIAogICAgIHN0YXRpYyBTYW5kYm94RmxhZ3MgcGFyc2VTYW5kYm94UG9saWN5KGNvbnN0
IFN0cmluZyYgcG9saWN5KTsKIApAQCAtOTIsNiArOTUsNyBAQCBwcml2YXRlOgogICAgIFNhbmRi
b3hGbGFncyBtX3NhbmRib3hGbGFnczsKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fc2Vj
dXJpdHlPcmlnaW47CiAgICAgT3duUHRyPENvbnRlbnRTZWN1cml0eVBvbGljeT4gbV9jb250ZW50
U2VjdXJpdHlQb2xpY3k7CisgICAgUmVmUHRyPENvbnRleHRGZWF0dXJlcz4gbV9mZWF0dXJlU3dp
dGNoOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNw
cAppbmRleCBkNzBiOTAwNTlkYmRlZWJlMWQ3MDdiYjMzNDYwN2QzNjhhZTM3YTEyLi5kMjgyMjQ0
OTFjZWY5MGI3NWQ5YThiYTI3OGNmZjE2NTdjZjhlYzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
LmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIlRyZWVTY29wZS5oIgogCiAjaW5jbHVk
ZSAiQ29udGFpbmVyTm9kZS5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIK
KyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJET01TZWxlY3Rpb24uaCIK
ICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgpAQCAtMTUwLDcg
KzE1MCw3IEBAIERPTVNlbGVjdGlvbiogVHJlZVNjb3BlOjpnZXRTZWxlY3Rpb24oKSBjb25zdAog
ICAgIC8vIGFzIGEgY29udGFpbmVyLiBJdCBpcyBub3cgZW5hYmxlZCBvbmx5IGlmIHJ1bnRpbWUg
U2hhZG93IERPTSBmZWF0dXJlIGlzIGVuYWJsZWQuCiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjY5NwogI2lmIEVOQUJMRShTSEFET1dfRE9NKQot
ICAgIGlmIChDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKHJvb3ROb2Rl
KCktPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkgeworICAgIGlmIChDb250ZXh0RmVhdHVyZXM6
OnNoYWRvd0RPTUVuYWJsZWQocm9vdE5vZGUoKS0+ZG9jdW1lbnQoKSkpIHsKICAgICAgICAgbV9z
ZWxlY3Rpb24gPSBET01TZWxlY3Rpb246OmNyZWF0ZSh0aGlzKTsKICAgICAgICAgcmV0dXJuIG1f
c2VsZWN0aW9uLmdldCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9t
YWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKaW5kZXggYTZj
YjA0MmRmZTAyNmM1ODg0YWY3MDA3YzBhNjM2YjEzYWM5MTg1Zi4uNmUwYTA2MWM4NmY5MzM2MzE3
ZjkwNTVkYTY0MTdiZTAxMzhiYmM0YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL21h
a2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKQEAgLTM3
OCw3ICszNzgsNyBAQCBFTkQKICAgICBteSAkY29udGV4dENvbmRpdGlvbmFsID0gJGVuYWJsZWRU
YWdzeyR0YWdOYW1lfXtjb250ZXh0Q29uZGl0aW9uYWx9OwogICAgIGlmICgkY29udGV4dENvbmRp
dGlvbmFsKSB7CiAgICAgICAgIHByaW50IEYgPDxFTkQKLSAgICBpZiAoIUNvbnRleHRFbmFibGVk
RmVhdHVyZXM6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQoZG9jdW1lbnQtPmRvbVdpbmRv
dygpKSkKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlczo6JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5h
YmxlZChkb2N1bWVudCkpCiAgICAgICAgIHJldHVybiAwOwogRU5ECiA7CkBAIC04MDQsNyArODA0
LDcgQEAgcHJpbnRDb25kaXRpb25hbEVsZW1lbnRJbmNsdWRlcygkRik7CiAKIHByaW50IEYgPDxF
TkQKIAotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250
ZXh0RmVhdHVyZXMuaCIKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkgfHwgRU5BQkxF
KFZJREVPKQogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0xMDEzLDcgKzEwMTMsNyBAQCBFTkQK
ICAgICAgICAgICAgICAgICBwcmludCBGIDw8RU5ECiBzdGF0aWMgSlNET01XcmFwcGVyKiBjcmVh
dGUke0pTSW50ZXJmYWNlTmFtZX1XcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjwkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxl
bWVudD4gZWxlbWVudCkKIHsKLSAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7Y29u
dGV4dENvbmRpdGlvbmFsfUVuYWJsZWQoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkp
KSB7CisgICAgaWYgKCFDb250ZXh0RmVhdHVyZXM6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVuYWJs
ZWQoZWxlbWVudC0+ZG9jdW1lbnQoKSkpIHsKICAgICAgICAgQVNTRVJUKCFlbGVtZW50IHx8IGVs
ZW1lbnQtPmlzJHBhcmFtZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfSgpKTsKICAgICAgICAg
cmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsICRwYXJhbWV0ZXJz
e2ZhbGxiYWNrSW50ZXJmYWNlTmFtZX0sIGVsZW1lbnQuZ2V0KCkpOwogICAgIH0KQEAgLTEwNTAs
NyArMTA1MCw3IEBAIEVORAogICAgICAgICAgICAgICAgIHByaW50IEYgPDxFTkQKIHN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY3JlYXRlJHtKU0ludGVyZmFjZU5hbWV9V3JhcHBlcigkcGFy
YW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudCogZWxlbWVudCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUp
CiB7Ci0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjoke2NvbnRleHRDb25kaXRpb25h
bH1FbmFibGVkKGVsZW1lbnQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAgICBpZiAoIUNv
bnRleHRGZWF0dXJlczo6JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChlbGVtZW50LT5kb2N1
bWVudCgpKSkKICAgICAgICAgcmV0dXJuIFY4JHBhcmFtZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VO
YW1lfTo6d3JhcCh0byRwYXJhbWV0ZXJze2ZhbGxiYWNrSW50ZXJmYWNlTmFtZX0oZWxlbWVudCks
IGlzb2xhdGUpOwogICAgIHJldHVybiB0b1Y4KHN0YXRpY19jYXN0PCR7SlNJbnRlcmZhY2VOYW1l
fSo+KGVsZW1lbnQpLCBpc29sYXRlKTsKIH0KQEAgLTExMTEsNyArMTExMSw3IEBAIHN1YiBwcmlu
dFdyYXBwZXJGYWN0b3J5Q3BwRmlsZQogCiAgICAgcHJpbnQgRiA8PEVORAogCi0jaW5jbHVkZSAi
Q29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgog
CiAjaWYgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIkRvY3VtZW50LmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAKaW5kZXggOWFlN2U3MmMyZjI2ZTk3NDBhZDRhNWYwY2IyNGIxOTk0NDhkODA3
MS4uMjJhOThkYjA3ZGQ1Yjg3NDY0YWUzN2FjNGJjOWI4OWFmMWE4MTgyZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlLmgi
CiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNoaWxkTGlzdE11dGF0
aW9uU2NvcGUuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJEZWxl
dGVCdXR0b25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50VHlwZS5oIgpAQCAtNzMwLDYgKzczMSw3IEBAIFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwV2l0aENvbnRleHQoRG9jdW1l
bnQqIGRvY3VtCiAKICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gdGFnZ2VkRnJhZ21lbnQg
PSBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXAoZG9jdW1lbnQsIHRhZ2dlZE1hcmt1cC50b1N0cmlu
ZygpLCBiYXNlVVJMLCBzY3JpcHRpbmdQZXJtaXNzaW9uKTsKICAgICBSZWZQdHI8RG9jdW1lbnQ+
IHRhZ2dlZERvY3VtZW50ID0gRG9jdW1lbnQ6OmNyZWF0ZSgwLCBLVVJMKCkpOworICAgIHRhZ2dl
ZERvY3VtZW50LT5zZXRGZWF0dXJlU3dpdGNoKGRvY3VtZW50LT5mZWF0dXJlU3dpdGNoKCkpOwog
ICAgIHRhZ2dlZERvY3VtZW50LT50YWtlQWxsQ2hpbGRyZW5Gcm9tKHRhZ2dlZEZyYWdtZW50Lmdl
dCgpKTsKIAogICAgIFJlZlB0cjxOb2RlPiBub2RlQmVmb3JlQ29udGV4dDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCmluZGV4IDY3ZGRjZWI0ZmFhM2ZhN2VjZGE1MzQ1
NzczNmZjNWQ2Y2UzOGVmNGMuLmYwNzNhMGQxOWJmMTk3MzQxMzBhZTZhNmY2YjliNTIyZGU1NjFl
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcApAQCAtMjUsNyAr
MjUsNyBAQAogI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkF0dHJp
YnV0ZS5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJD
b250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50
LmgiCiAjaW5jbHVkZSAiRXZlbnRTZW5kZXIuaCIKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIEhU
TUxTdHlsZUVsZW1lbnQ6OnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKCkKICAgICBBU1NFUlQoaW5E
b2N1bWVudCgpKTsKICAgICBpZiAobV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05vZGUpCiAgICAg
ICAgIHJldHVybjsKLSAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVk
RW5hYmxlZChkb2N1bWVudCgpKSkKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlczo6c3R5bGVTY29w
ZWRFbmFibGVkKGRvY3VtZW50KCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBDb250YWluZXJO
b2RlKiBzY29wZSA9IHBhcmVudE5vZGUoKTsKQEAgLTEzMCwxMCArMTMwLDEwIEBAIHZvaWQgSFRN
TFN0eWxlRWxlbWVudDo6dW5yZWdpc3RlcldpdGhTY29waW5nTm9kZShDb250YWluZXJOb2RlKiBz
Y29wZSkKIHsKICAgICAvLyBOb3RlOiBXZSBjYW5ub3QgcmVseSBvbiB0aGUgJ3Njb3BlZCcgZWxl
bWVudCBzdGlsbCBiZWluZyBwcmVzZW50IHdoZW4gdGhpcyBtZXRob2QgaXMgaW52b2tlZC4KICAg
ICAvLyBUaGVyZWZvcmUgd2UgY2Fubm90IHJlbHkgb24gc2NvcGVkKCkhCi0gICAgQVNTRVJUKG1f
aXNSZWdpc3RlcmVkV2l0aFNjb3BpbmdOb2RlIHx8ICFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpz
dHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpOworICAgIEFTU0VSVChtX2lzUmVnaXN0ZXJl
ZFdpdGhTY29waW5nTm9kZSB8fCAhQ29udGV4dEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQo
ZG9jdW1lbnQoKSkpOwogICAgIGlmICghbV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05vZGUpCiAg
ICAgICAgIHJldHVybjsKLSAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2Nv
cGVkRW5hYmxlZChkb2N1bWVudCgpKSkKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlczo6c3R5bGVT
Y29wZWRFbmFibGVkKGRvY3VtZW50KCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQo
c2NvcGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRl
bnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5jcHAKaW5kZXggMDhiNDVkNGFiZjU5YmZjNzZlOGU3NDAwM2MxNzZkZGM5NjBlNGJlZi4u
YjBiZGQ4ODVmNzhlYzY3MGY4ZTc1YzQ4OTMwMTJhNjIxZDk1NTRkZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCkBAIC0yOSw3ICsy
OSw3IEBACiAKICNpbmNsdWRlICJDb250ZW50RGlzdHJpYnV0b3IuaCIKICNpbmNsdWRlICJDb250
ZW50U2VsZWN0b3JRdWVyeS5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIK
KyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgpAQCAt
NDMsNyArNDMsNyBAQCB1c2luZyBIVE1MTmFtZXM6OnNlbGVjdEF0dHI7CiBzdGF0aWMgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgY29udGVudFRhZ05hbWUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogI2lm
IEVOQUJMRShTSEFET1dfRE9NKQotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hh
ZG93RE9NRW5hYmxlZChkb2N1bWVudC0+ZG9tV2luZG93KCkpKQorICAgIGlmICghQ29udGV4dEZl
YXR1cmVzOjpzaGFkb3dET01FbmFibGVkKGRvY3VtZW50KSkKICAgICAgICAgcmV0dXJuIEhUTUxO
YW1lczo6d2Via2l0U2hhZG93Q29udGVudFRhZzsKICAgICByZXR1cm4gSFRNTE5hbWVzOjpjb250
ZW50VGFnOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Q
YXRjaFN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9y
dC5jcHAKaW5kZXggYmEwZDhjODZjNTU4YzhmYThlMjUzZWU5NjFiMDA4YmQwNjUzZTI1MC4uMjBl
ZDkwYmVhYmFmMGUzN2YwNjNiN2E2ZDI5YjAxOTg0YjQxYmEwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKIAogI2lu
Y2x1ZGUgIkF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkJhc2U2NC5oIgorI2luY2x1ZGUgIkNvbnRl
eHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkRPTUVkaXRvci5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgpAQCAtODksNiArOTAsNyBAQCBET01Q
YXRjaFN1cHBvcnQ6On5ET01QYXRjaFN1cHBvcnQoKSB7IH0KIHZvaWQgRE9NUGF0Y2hTdXBwb3J0
OjpwYXRjaERvY3VtZW50KGNvbnN0IFN0cmluZyYgbWFya3VwKQogewogICAgIFJlZlB0cjxIVE1M
RG9jdW1lbnQ+IG5ld0RvY3VtZW50ID0gSFRNTERvY3VtZW50OjpjcmVhdGUoMCwgS1VSTCgpKTsK
KyAgICBuZXdEb2N1bWVudC0+c2V0RmVhdHVyZVN3aXRjaChtX2RvY3VtZW50LT5mZWF0dXJlU3dp
dGNoKCkpOwogICAgIFJlZlB0cjxEb2N1bWVudFBhcnNlcj4gcGFyc2VyID0gSFRNTERvY3VtZW50
UGFyc2VyOjpjcmVhdGUobmV3RG9jdW1lbnQuZ2V0KCksIGZhbHNlKTsKICAgICBwYXJzZXItPmlu
c2VydChtYXJrdXApOyAvLyBVc2UgaW5zZXJ0KCkgc28gdGhhdCB0aGUgcGFyc2VyIHdpbGwgbm90
IHlpZWxkLgogICAgIHBhcnNlci0+ZmluaXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IGY1YzdhNzI2NmE2MDBkZWE1MjliZjlkMTNjMTdiZGU2MjBl
YTlkMjcuLmJlODEwMjg3YTcwZDU1ZThlNjU2YmZmM2Q2NDBhYWZhNTMzYjEwNmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zMTEsMTIgKzMxMSw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGFsbG93RGlzcGxheWlu
Z0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgU2VjdXJpdHlPcmlnaW4q
LCBjb25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0
dGluZ3MsIFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpIHsgcmV0dXJuIGVuYWJsZWRQZXJT
ZXR0aW5nczsgfQogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd1NoYWRvd0RPTShib29sIGVu
YWJsZWRBc1J1bnRpbWVGZWF0dXJlcykgeyByZXR1cm4gZW5hYmxlZEFzUnVudGltZUZlYXR1cmVz
OyB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd1N0eWxlU2NvcGVkKGJvb2wgZW5hYmxlZEFz
UnVudGltZUZlYXR1cmVzKSB7IHJldHVybiBlbmFibGVkQXNSdW50aW1lRmVhdHVyZXM7IH0KLSNp
ZiBFTkFCTEUoUEFHRV9QT1BVUCkKLSAgICAgICAgdmlydHVhbCBib29sIGFsbG93UGFnZVBvcHVw
KCkgeyByZXR1cm4gZmFsc2U7IH0KLSNlbmRpZgotCiAgICAgICAgIC8vIFRoaXMgY2FsbGJhY2sg
bm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBmcmFtZSB3YXMgYWJvdXQgdG8gcnVuCiAgICAg
ICAgIC8vIEphdmFTY3JpcHQgYnV0IGRpZCBub3QgYmVjYXVzZSBhbGxvd1NjcmlwdCByZXR1cm5l
ZCBmYWxzZS4gV2UKICAgICAgICAgLy8gaGF2ZSBhIHNlcGFyYXRlIGNhbGxiYWNrIGhlcmUgYmVj
YXVzZSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SZWZDb3VudGVkU3VwcGxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUmVmQ291bnRlZFN1cHBsZW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjRhY2M2OGZkMzhjOWY4
MDY3YjJmYjNiYTM0NjUxNGJhMDllNzI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUmVmQ291bnRlZFN1cHBsZW1lbnQuaApAQCAtMCwwICsxLDcwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJlZkNv
dW50ZWRTdXBwbGVtZW50X2gKKyNkZWZpbmUgUmVmQ291bnRlZFN1cHBsZW1lbnRfSAorCisjaW5j
bHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZTxj
bGFzcyBULCBjbGFzcyBTPgorY2xhc3MgUmVmQ291bnRlZFN1cHBsZW1lbnQgOiBwdWJsaWMgUmVm
Q291bnRlZDxTPiB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBSZWZDb3VudGVkU3VwcGxlbWVudDxU
LCBTPiBUaGlzVHlwZTsKKworICAgIHZpcnR1YWwgdm9pZCBob3N0RGVzdHJveWVkKCkgeyB9CisK
KyAgICBjbGFzcyBXcmFwcGVyIDogcHVibGljIFN1cHBsZW1lbnQ8VD4geworICAgIHB1YmxpYzoK
KyAgICAgICAgZXhwbGljaXQgV3JhcHBlcihQYXNzUmVmUHRyPFRoaXNUeXBlPiB3cmFwcGVkKSA6
IG1fd3JhcHBlZCh3cmFwcGVkKSB7IH0KKyAgICAgICAgdmlydHVhbCB+V3JhcHBlcigpIHsgbV93
cmFwcGVkLT5ob3N0RGVzdHJveWVkKCk7ICB9CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1JlZkNv
dW50ZWRXcmFwcGVyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBU
aGlzVHlwZSogd3JhcHBlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd3JhcHBlZC5nZXQoKTsgfQorICAg
IHByaXZhdGU6CisKKyAgICAgICAgUmVmUHRyPFRoaXNUeXBlPiBtX3dyYXBwZWQ7CisgICAgfTsK
KworICAgIHN0YXRpYyB2b2lkIHByb3ZpZGVUbyhTdXBwbGVtZW50YWJsZTxUPiogaG9zdCwgY29u
c3QgQXRvbWljU3RyaW5nJiBrZXksIFBhc3NSZWZQdHI8VGhpc1R5cGU+IHN1cHBsZW1lbnQpCisg
ICAgeworICAgICAgICBob3N0LT5wcm92aWRlU3VwcGxlbWVudChrZXksIGFkb3B0UHRyKG5ldyBX
cmFwcGVyKHN1cHBsZW1lbnQpKSk7CisgICAgfQorCisgICAgc3RhdGljIFRoaXNUeXBlKiBmcm9t
KFN1cHBsZW1lbnRhYmxlPFQ+KiBob3N0LCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSkKKyAgICB7
CisgICAgICAgIFN1cHBsZW1lbnQ8VD4qIGZvdW5kID0gaG9zdC0+cmVxdWlyZVN1cHBsZW1lbnQo
a2V5KTsKKyAgICAgICAgaWYgKCFmb3VuZCkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAg
ICBBU1NFUlQoZm91bmQtPmlzUmVmQ291bnRlZFdyYXBwZXIoKSk7CisgICAgICAgIHJldHVybiBz
dGF0aWNfY2FzdDxXcmFwcGVyKj4oZm91bmQpLT53cmFwcGVkKCk7CisgICAgfQorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVmQ291bnRlZFN1cHBsZW1lbnRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxlbWVudGFibGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmgKaW5kZXggODRkYzkwNmUyYWYz
NDhhMzRkODViNmI5ZDgzYzY5NzJlYzJkNjZlMS4uYjBkZjZjZmM1YjkxOTdmYjA0ODJhY2Y1M2Rh
NzlhMmVhZmRhZTBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxl
bWVudGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5o
CkBAIC00MCw2ICs0MCw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBjbGFzcyBTdXBwbGVtZW50
IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TdXBwbGVtZW50KCkgeyB9CisgICAgdmlydHVhbCBi
b29sIGlzUmVmQ291bnRlZFdyYXBwZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
c3RhdGljIHZvaWQgcHJvdmlkZVRvKFN1cHBsZW1lbnRhYmxlPFQ+KiBob3N0LCBjb25zdCBBdG9t
aWNTdHJpbmcmIGtleSwgUGFzc093blB0cjxTdXBwbGVtZW50PFQ+ID4gc3VwcGxlbWVudCkKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA3YzVlNWI1ZjA4N2Iw
NTg4ODU1NDY1NDE1NzI4YjlkY2Y2MjA2NTRlLi45MGVjNWMwMWVhODEwNzRhMGQwNjRmNTQ1ZjNm
YTcxYjA3YTNhMDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTI1
LDYgKzI1LDcgQEAKICNpbmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiQmxvYkRhdGEuaCIKICNp
bmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVy
ZXMuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJE
T01Gb3JtRGF0YS5oIgogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCkBAIC0yNTMsNiAr
MjU0LDcgQEAgRG9jdW1lbnQqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTChFeGNlcHRpb25D
b2RlJiBlYykKICAgICAgICAgICAgIC8vIEZJWE1FOiBTZXQgTGFzdC1Nb2RpZmllZC4KICAgICAg
ICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudC0+c2V0Q29udGVudChtX3Jlc3BvbnNlQnVpbGRlci50
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSk7CiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1l
bnQtPnNldFNlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKCkpOworICAgICAgICAgICAgbV9y
ZXNwb25zZURvY3VtZW50LT5zZXRGZWF0dXJlU3dpdGNoKGRvY3VtZW50KCktPmZlYXR1cmVTd2l0
Y2goKSk7CiAgICAgICAgICAgICBpZiAoIW1fcmVzcG9uc2VEb2N1bWVudC0+d2VsbEZvcm1lZCgp
KQogICAgICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudCA9IDA7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCA5OTIwNGI4ODZhYjdlYzFjZjRkMjRhNTkzY2Nk
Y2QwMjdkNTQ5OTAxLi5iMTliM2RmZTI0ZTg5NzE1ZWNkY2E5MjM5MjJjNjRlY2RiZTI0NmVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0zNzEsNiArMzcxLDggQEAKICAgICAgICAg
ICAgICAgICAnc3JjL0NvbXBvc2l0aW9uVW5kZXJsaW5lQnVpbGRlci5oJywKICAgICAgICAgICAg
ICAgICAnc3JjL0NvbXBvc2l0aW9uVW5kZXJsaW5lVmVjdG9yQnVpbGRlci5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvQ29tcG9zaXRpb25VbmRlcmxpbmVWZWN0b3JCdWlsZGVyLmgnLAorICAg
ICAgICAgICAgICAgICdzcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAnLAorICAgICAg
ICAgICAgICAgICdzcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5oJywKICAgICAgICAgICAg
ICAgICAnc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvRGF0YWJh
c2VPYnNlcnZlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViUGVybWlzc2lvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViUGVybWlzc2lvbkNsaWVudC5oCmluZGV4IDExNmEzODNjYThjMjhiNDc4OWFlNzM1ZmYxZTQ0
Y2QzMjdkZGVjODMuLjAxNGMyYzNmNDQwMjM1NDJkNjFiMTg5YzUyMjVmNzQwNDY1Y2M4ZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xp
ZW50LmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdl
YkRvY3VtZW50OwogY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKIGNs
YXNzIFdlYlN0cmluZzsKQEAgLTkwLDcgKzkxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBhbGxvd1dyaXRlVG9DbGlwYm9hcmQoV2ViRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgeyBy
ZXR1cm4gZGVmYXVsdFZhbHVlOyB9CiAKICAgICAvLyBDb250cm9scyB3aGV0aGVyIGVuYWJsaW5n
IFdlYiBDb21wb25lbnRzIEFQSSBmb3IgdGhpcyBmcmFtZS4KLSAgICB2aXJ0dWFsIGJvb2wgYWxs
b3dXZWJDb21wb25lbnRzKFdlYkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRl
ZmF1bHRWYWx1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBhbGxvd1dlYkNvbXBvbmVudHMoY29uc3Qg
V2ViRG9jdW1lbnQmLCBib29sIGRlZmF1bHRWYWx1ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9
CiAKICAgICAvLyBOb3RpZmllcyB0aGUgY2xpZW50IHRoYXQgdGhlIGZyYW1lIHdvdWxkIGhhdmUg
aW5zdGFudGlhdGVkIGEgcGx1Zy1pbiBpZiBwbHVnLWlucyB3ZXJlIGVuYWJsZWQuCiAgICAgdmly
dHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucyhXZWJGcmFtZSopIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hYWRhMDc3ODc2NGYwMjZlYTg2NmU3OWE2ZmE5YzE1NjhkYmRkZmE3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1
cmVzQ2xpZW50SW1wbC5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgiCisKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIldlYkRvY3VtZW50LmgiCisjaW5jbHVkZSAiV2ViUGVybWlzc2lvbkNs
aWVudC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBDb250ZXh0RmVhdHVyZXNDbGll
bnRJbXBsOjppc0VuYWJsZWQoV2ViQ29yZTo6RG9jdW1lbnQqIGRvY3VtZW50LCBXZWJDb3JlOjpD
b250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlIHR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKQorewor
ICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisKKyAgICBz
d2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlczo6U2hhZG93
RE9NOgorICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpTdHlsZVNjb3BlZDoKKyAg
ICAgICAgcmV0dXJuIG1fY2xpZW50LT5hbGxvd1dlYkNvbXBvbmVudHMoV2ViRG9jdW1lbnQoZG9j
dW1lbnQpLCBkZWZhdWx0VmFsdWUpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBkZWZh
dWx0VmFsdWU7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lYTFmOTU0OGQ5MjgwMjBjNjA2ZDRmZGJlZjQ5NDE1NDNiYjJiYjg5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVz
Q2xpZW50SW1wbC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbnRleHRGZWF0dXJlc0NsaWVu
dEltcGxfaAorI2RlZmluZSBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsX2gKKworI2luY2x1ZGUg
IkNvbnRleHRGZWF0dXJlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGVy
bWlzc2lvbkNsaWVudDsKKworY2xhc3MgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbCA6IHB1Ymxp
YyBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXNDbGllbnQgeworcHVibGljOgorICAgIENvbnRleHRG
ZWF0dXJlc0NsaWVudEltcGwoKQorICAgICAgICA6IG1fY2xpZW50KDApCisgICAgeyB9CisKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKFdlYkNvcmU6OkRvY3VtZW50KiwgV2ViQ29yZTo6Q29u
dGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSwgYm9vbCBkZWZhdWx0VmFsdWUpIE9WRVJSSURFOwor
ICAgIHZvaWQgc2V0UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNzaW9uQ2xpZW50KiBjbGllbnQp
IHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKworcHJpdmF0ZToKKyAgICBXZWJQZXJtaXNzaW9uQ2xp
ZW50KiBtX2NsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCBkZTNmMjI3ODlmNWZhMTVi
MGFjZDhlZDc0ZDFlNWFmOTBlOTY5ZjJjLi5kMDYwMmE5YTBlNzA0ZWNkOTEyZjZkY2FmYzFjY2M1
ZjlhMmFmOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxv
YWRlckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1l
TG9hZGVyQ2xpZW50SW1wbC5jcHAKQEAgLTIzOSwyNCArMjM5LDYgQEAgYm9vbCBGcmFtZUxvYWRl
ckNsaWVudEltcGw6OmFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJT
ZXR0aW5ncywKICAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOwogfQogCi1ib29sIEZyYW1l
TG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dTaGFkb3dET00oYm9vbCBlbmFibGVkQXNSdW50aW1lRmVh
dHVyZSkKLXsKLSAgICBXZWJWaWV3SW1wbCogd2VidmlldyA9IG1fd2ViRnJhbWUtPnZpZXdJbXBs
KCk7Ci0gICAgaWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQotICAg
ICAgICByZXR1cm4gd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5hbGxvd1dlYkNvbXBvbmVu
dHMobV93ZWJGcmFtZSwgZW5hYmxlZEFzUnVudGltZUZlYXR1cmUpOwotCi0gICAgcmV0dXJuIGVu
YWJsZWRBc1J1bnRpbWVGZWF0dXJlOwotfQotCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6
YWxsb3dTdHlsZVNjb3BlZChib29sIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlKQotewotICAgIFdl
YlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwoKTsKLSAgICBpZiAod2Vi
dmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCkpCi0gICAgICAgIHJldHVybiB3ZWJ2
aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93V2ViQ29tcG9uZW50cyhtX3dlYkZyYW1lLCBl
bmFibGVkQXNSdW50aW1lRmVhdHVyZSk7Ci0KLSAgICByZXR1cm4gZW5hYmxlZEFzUnVudGltZUZl
YXR1cmU7Ci19Ci0KIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaWROb3RBbGxvd1Njcmlw
dCgpCiB7CiAgICAgV2ViVmlld0ltcGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudElt
cGwuaAppbmRleCAyMzZhMDFiNjUzMDI5NTE0NmFjZWExM2JkZTVkMGYyMzgzN2E5ZmFmLi5lY2Iy
MGEyZmIyNWVmZTY0YWZlNjBkNDI0NmU2Yzk5M2FmNWYzMTI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaApAQCAtMTk5LDggKzE5
OSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dJbWFnZShib29sIGVuYWJsZWRQ
ZXJTZXR0aW5ncywgY29uc3QgV2ViQ29yZTo6S1VSTCYgaW1hZ2VVUkwpOwogICAgIHZpcnR1YWwg
Ym9vbCBhbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGlu
Z3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOwogICAg
IHZpcnR1YWwgYm9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVy
U2V0dGluZ3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6S1VSTCYp
OwotICAgIHZpcnR1YWwgYm9vbCBhbGxvd1NoYWRvd0RPTShib29sIGVuYWJsZWRBc1J1bnRpbWVG
ZWF0dXJlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTdHlsZVNjb3BlZChib29s
IGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
Tm90QWxsb3dTY3JpcHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cElt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAK
aW5kZXggYWU1YWFjOGE0MDczZmI1ODcxZDk3MzRkN2Y0NDc3Y2FiZmNlYzM2ZC4uMzVhZWNkOTNl
ZDA2ZDVjZDU5YjhhOTUwZmE1YmExYzg3ODkyZGM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJXZWJQYWdlUG9wdXBJbXBsLmgiCiAKICNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRl
ICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJET01XaW5kb3dQYWdlUG9wdXAuaCIKICNp
bmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVtcHR5Q2xpZW50cy5oIgpAQCAt
MTI3LDEwICsxMjgsMTcgQEAgcHJpdmF0ZToKICAgICBXZWJQYWdlUG9wdXBJbXBsKiBtX3BvcHVw
OwogfTsKIAotY2xhc3MgUGFnZVBvcHVwRnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRW1wdHlG
cmFtZUxvYWRlckNsaWVudCB7Ci0gICAgdmlydHVhbCBib29sIGFsbG93UGFnZVBvcHVwKCkgT1ZF
UlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorY2xhc3MgUGFnZVBvcHVwRmVhdHVyZXNDbGllbnQgOiBw
dWJsaWMgQ29udGV4dEZlYXR1cmVzQ2xpZW50IHsKKyAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVk
KERvY3VtZW50KiwgQ29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSwgYm9vbCkgT1ZFUlJJREU7
CiB9OwogCitib29sIFBhZ2VQb3B1cEZlYXR1cmVzQ2xpZW50Ojppc0VuYWJsZWQoRG9jdW1lbnQq
LCBDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlIHR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKQor
eworICAgIGlmICh0eXBlID09IENvbnRleHRGZWF0dXJlczo6UGFnZVBvcHVwKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworfQorCiAvLyBXZWJQYWdlUG9w
dXBJbXBsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAogV2ViUGFnZVBvcHVwSW1wbDo6V2ViUGFnZVBvcHVwSW1wbChXZWJX
aWRnZXRDbGllbnQqIGNsaWVudCkKQEAgLTE4NSw4ICsxOTMsMTAgQEAgYm9vbCBXZWJQYWdlUG9w
dXBJbXBsOjppbml0UGFnZSgpCiAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTY3JpcHRFbmFi
bGVkKHRydWUpOwogICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0QWxsb3dTY3JpcHRzVG9DbG9z
ZVdpbmRvd3ModHJ1ZSk7CiAKLSAgICBzdGF0aWMgRnJhbWVMb2FkZXJDbGllbnQqIHBhZ2VQb3B1
cEZyYW1lTG9hZGVyQ2xpZW50ID0gIG5ldyBQYWdlUG9wdXBGcmFtZUxvYWRlckNsaWVudDsKLSAg
ICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShtX3BhZ2UuZ2V0KCksIDAsIHBh
Z2VQb3B1cEZyYW1lTG9hZGVyQ2xpZW50KTsKKyAgICBzdGF0aWMgQ29udGV4dEZlYXR1cmVzQ2xp
ZW50KiBwYWdlUG9wdXBGZWF0dXJlc0NsaWVudCA9ICBuZXcgUGFnZVBvcHVwRmVhdHVyZXNDbGll
bnQoKTsKKyAgICBwcm92aWRlQ29udGV4dEZlYXR1cmVzVG8obV9wYWdlLmdldCgpLCBwYWdlUG9w
dXBGZWF0dXJlc0NsaWVudCk7CisgICAgc3RhdGljIEZyYW1lTG9hZGVyQ2xpZW50KiBlbXB0eUZy
YW1lTG9hZGVyQ2xpZW50ID0gIG5ldyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50KCk7CisgICAgUmVm
UHRyPEZyYW1lPiBmcmFtZSA9IEZyYW1lOjpjcmVhdGUobV9wYWdlLmdldCgpLCAwLCBlbXB0eUZy
YW1lTG9hZGVyQ2xpZW50KTsKICAgICBmcmFtZS0+c2V0VmlldyhGcmFtZVZpZXc6OmNyZWF0ZShm
cmFtZS5nZXQoKSkpOwogICAgIGZyYW1lLT5pbml0KCk7CiAgICAgZnJhbWUtPnZpZXcoKS0+cmVz
aXplKG1fcG9wdXBDbGllbnQtPmNvbnRlbnRTaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGY5MGIxZjhhZjdiZDNlYTljMjJiNmMxZGZlZTdk
NjYwYWFkMTgwOWUuLjk3YjJhNTlhMTA4ZWQ4MWI4YzQ3YmIxYzBhMzI3ZDA2ZDliZGZjMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTQxLDYgKzQx
LDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkNvbG9yU3BhY2UuaCIKICNpbmNs
dWRlICJDb21wb3NpdGlvblVuZGVybGluZVZlY3RvckJ1aWxkZXIuaCIKKyNpbmNsdWRlICJDb250
ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKICNpbmNs
dWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0u
aCIKQEAgLTMzNyw2ICszMzgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXREZXZUb29sc0FnZW50
Q2xpZW50KFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xzQ2xpZW50KQogdm9pZCBXZWJW
aWV3SW1wbDo6c2V0UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNzaW9uQ2xpZW50KiBwZXJtaXNz
aW9uQ2xpZW50KQogewogICAgIG1fcGVybWlzc2lvbkNsaWVudCA9IHBlcm1pc3Npb25DbGllbnQ7
CisgICAgbV9mZWF0dXJlU3dpdGNoQ2xpZW50LT5zZXRQZXJtaXNzaW9uQ2xpZW50KHBlcm1pc3Np
b25DbGllbnQpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQcmVyZW5kZXJlckNsaWVudChX
ZWJQcmVyZW5kZXJlckNsaWVudCogcHJlcmVuZGVyZXJDbGllbnQpCkBAIC0zOTIsNiArMzk0LDcg
QEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKICAgICAs
IG1faW1lQWNjZXB0RXZlbnRzKHRydWUpCiAgICAgLCBtX29wZXJhdGlvbnNBbGxvd2VkKFdlYkRy
YWdPcGVyYXRpb25Ob25lKQogICAgICwgbV9kcmFnT3BlcmF0aW9uKFdlYkRyYWdPcGVyYXRpb25O
b25lKQorICAgICwgbV9mZWF0dXJlU3dpdGNoQ2xpZW50KGFkb3B0UHRyKG5ldyBDb250ZXh0RmVh
dHVyZXNDbGllbnRJbXBsKCkpKQogICAgICwgbV9hdXRvZmlsbFBvcHVwU2hvd2luZyhmYWxzZSkK
ICAgICAsIG1fYXV0b2ZpbGxQb3B1cCgwKQogICAgICwgbV9pc1RyYW5zcGFyZW50KGZhbHNlKQpA
QCAtNDUxLDYgKzQ1NCw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50
KiBjbGllbnQpCiAgICAgcHJvdmlkZU5vdGlmaWNhdGlvbihtX3BhZ2UuZ2V0KCksIG5vdGlmaWNh
dGlvblByZXNlbnRlckltcGwoKSk7CiAjZW5kaWYKIAorICAgIHByb3ZpZGVDb250ZXh0RmVhdHVy
ZXNUbyhtX3BhZ2UuZ2V0KCksIG1fZmVhdHVyZVN3aXRjaENsaWVudC5nZXQoKSk7CiAgICAgcHJv
dmlkZURldmljZU9yaWVudGF0aW9uVG8obV9wYWdlLmdldCgpLCBtX2RldmljZU9yaWVudGF0aW9u
Q2xpZW50UHJveHkuZ2V0KCkpOwogICAgIHByb3ZpZGVHZW9sb2NhdGlvblRvKG1fcGFnZS5nZXQo
KSwgbV9nZW9sb2NhdGlvbkNsaWVudFByb3h5LmdldCgpKTsKICAgICBtX2dlb2xvY2F0aW9uQ2xp
ZW50UHJveHktPnNldENvbnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9sbGVyOjpmcm9tKG1fcGFn
ZS5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXgg
YTA4ODk2NzhhMTQwMDc0MmNjMjZlMGViZmJiZTIzZTE5OGI5MmQyZS4uN2JkZGE5MGY0MGQ4ZThh
Y2U1YjFhNmI2N2M2OGVjY2Y3YTZlZWYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCkBAIC04Niw2ICs4Niw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3Mg
QXV0b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50OwogY2xhc3MgQXV0b2ZpbGxQb3B1cE1lbnVDbGll
bnQ7CiBjbGFzcyBCYXR0ZXJ5Q2xpZW50SW1wbDsKK2NsYXNzIENvbnRleHRGZWF0dXJlc0NsaWVu
dEltcGw7CiBjbGFzcyBDb250ZXh0TWVudUNsaWVudEltcGw7CiBjbGFzcyBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudFByb3h5OwogY2xhc3MgRHJhZ1Njcm9sbFRpbWVyOwpAQCAtNzMzLDYgKzczNCw5
IEBAIHByaXZhdGU6CiAgICAgLy8gY3VycmVudCBkcm9wIHRhcmdldCBpbiB0aGlzIFdlYlZpZXcg
KHRoZSBkcm9wIHRhcmdldCBjYW4gYWNjZXB0IHRoZSBkcm9wKS4KICAgICBXZWJEcmFnT3BlcmF0
aW9uIG1fZHJhZ09wZXJhdGlvbjsKIAorICAgIC8vIENvbnRleHQtYmFzZWQgZmVhdHVyZSBzd2l0
Y2hlcy4KKyAgICBPd25QdHI8Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbD4gbV9mZWF0dXJlU3dp
dGNoQ2xpZW50OworCiAgICAgLy8gV2hldGhlciBhbiBBdXRvZmlsbCBwb3B1cCBpcyBjdXJyZW50
bHkgc2hvd2luZy4KICAgICBib29sIG1fYXV0b2ZpbGxQb3B1cFNob3dpbmc7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBh
NGMzYzA4ZjFiZWZmZDRhNjMxNDQxYzA0NGQyMmRlY2U4OGIwYjc0Li43MjJiZGI0Y2NiZGJmOTJj
NGJkMDljNzRiNTk5ZDA2Njk3YjNlYjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYt
MDcgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUkVH
UkVTU0lPTihyMTE4MDk4KTogPGNvbnRlbnQ+IGVsZW1lbnQgZG9lcyBub3QgcmVuZGVyIGRpc3Ry
aWJ1dGVkIGNoaWxkcmVuIHdoZW4gY2xvbmVkIGZyb20gYW5vdGhlciBkb2N1bWVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxNDgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRv
dy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0
bWw6IEFkZGVkLgorCiAyMDEyLTA2LTA3ICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgTWFyayBmYXN0L3RhYmxlL211bHRpcGxlLWNhcHRpb25zLWRpc3BsYXkueGh0
bWwgYXMgZmxha3kgb24gQ2hyb21pdW0uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2NDMwNzUzZjI5NTMyZTFmNTIyMTUwMGE5OTIwYzEy
ZjgzNzZhMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
ZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1
IEBACitUaGlzIHRlc3QgZW5zdXJlIHRoYXQgdGhlIHNoYWRvdyByZWxhdGVkIGVsZW1lbnRzIGFy
ZSBpbnN0YW50aWF0ZWQgZXZlbiBpbnNpZGUgZnJhbWVsZXNzIGRvY3VtZW50cy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3Rpbmcgb24gdGhlIGZyYW1lLWxlc3MgZG9jdW1l
bnQuCitQQVNTIHdpbmRvdy5IVE1MQ29udGVudEVsZW1lbnQgaXMgY29udGVudC5jb25zdHJ1Y3Rv
cgorUEFTUyB3aW5kb3cuSFRNTFNoYWRvd0VsZW1lbnQgaXMgc2hhZG93LmNvbnN0cnVjdG9yCitN
b3ZpbmcgdG8gdGhlIG1haW4gZG9jdW1lbnQuCitQQVNTIHdpbmRvdy5IVE1MQ29udGVudEVsZW1l
bnQgaXMgY29udGVudC5jb25zdHJ1Y3RvcgorUEFTUyB3aW5kb3cuSFRNTFNoYWRvd0VsZW1lbnQg
aXMgc2hhZG93LmNvbnN0cnVjdG9yCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKK3grCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzBiNmJlODFlZjU3ZGNiMjFmZjU1NjU2N2Q0YjQ2ZjBlOTM2ZTI5YgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3Mt
ZG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDMwIEBACit4KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMg
dGVzdCBlbnN1cmUgdGhhdCB0aGUgc2hhZG93IHJlbGF0ZWQgZWxlbWVudHMgYXJlIGluc3RhbnRp
YXRlZCBldmVuIGluc2lkZSBmcmFtZWxlc3MgZG9jdW1lbnRzLiIpOworCit2YXIgZG9jID0gZG9j
dW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7Cit2YXIgY29udGFpbmVy
ID0gZG9jLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKK2RvYy5ib2R5LmFwcGVuZENoaWxkKGNvbnRh
aW5lcik7Citjb250YWluZXIuaW5uZXJIVE1MID0gIjxjb250ZW50IGlkPSdjb250ZW50RWxlbWVu
dCc+PC9jb250ZW50PjxzaGFkb3cgaWQ9J3NoYWRvd0VsZW1lbnQnPjwvc2hhZG93PiI7CisKK3Zh
ciBjb250ZW50ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIiNjb250ZW50RWxlbWVudCIpOwor
dmFyIHNoYWRvdyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCIjc2hhZG93RWxlbWVudCIpOwor
CitkZWJ1ZygiVGVzdGluZyBvbiB0aGUgZnJhbWUtbGVzcyBkb2N1bWVudC4iKTsKK3Nob3VsZEJl
KCJ3aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IiwgImNvbnRlbnQuY29uc3RydWN0b3IiKTsKK3No
b3VsZEJlKCJ3aW5kb3cuSFRNTFNoYWRvd0VsZW1lbnQiLCAic2hhZG93LmNvbnN0cnVjdG9yIik7
CisKK2RlYnVnKCJNb3ZpbmcgdG8gdGhlIG1haW4gZG9jdW1lbnQuIik7Citkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CitzaG91bGRCZSgid2luZG93LkhUTUxDb250ZW50RWxl
bWVudCIsICJjb250ZW50LmNvbnN0cnVjdG9yIik7CitzaG91bGRCZSgid2luZG93LkhUTUxTaGFk
b3dFbGVtZW50IiwgInNoYWRvdy5jb25zdHJ1Y3RvciIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146798</attachid>
            <date>2012-06-11 00:25:59 -0700</date>
            <delta_ts>2012-06-11 20:23:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88148-20120611162558.patch</filename>
            <type>text/plain</type>
            <size>75714</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQyYTBhODNiY2I3M2Yz
NmYwOWRiODdiM2MzNmM4MTYxODkzZGE3ZS4uZWMxZmE5NTRhNTY2Y2NkMTMzZGJkYTZjOTE1NTY1
NWUxMjFkNmQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOCBAQAorMjAxMi0wNi0xMCAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIx
MTgwOTgpOiA8Y29udGVudD4gZWxlbWVudCBkb2VzIG5vdCByZW5kZXIgZGlzdHJpYnV0ZWQgY2hp
bGRyZW4gd2hlbiBjbG9uZWQgZnJvbSBhbm90aGVyIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODE0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBzaGFkb3cgRE9NIGF2YWlsYWJpbGl0
eSB3YXMgZGVjaWRlZCB0aHJvdWdoIEZyYW1lTG9hZGVyQ2xpZW50LgorICAgICAgICBCdXQgdGhl
cmUgYXJlIGRvY3VtZW50cyB3aGljaCBkb24ndCBoYXZlIGFueSBhc3NvY2lhdGVkIGZyYW1lcywg
aW4KKyAgICAgICAgd2hpY2ggYW55IHNoYWRvdyBET00gcmVsYXRlZCBlbGVtZW50cyBjYW5ub3Qg
YmUgY29uc3RydWN0ZWQuICBUaGF0CisgICAgICAgIHJlc3Vsc3RlZCB0aGUgcmVncmVzc2lvbi4K
KworICAgICAgICBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGEgUGFnZS1iYXNlZCBjbGllbnQgY2Fs
bGVkCisgICAgICAgIENvbnRleHRGZWF0dXJlc0NsaWVudCB3aGljaCB0YWtlcyB0aGUgcm9sZSBm
cm9tIEZyYW1lTG9hZGVyQ2xpZW50CisgICAgICAgIHRvIGRlY2lkZSB0aGUgZmVhdHVyZSBhdmFp
bGFiaWxpdHksIGFuZCBDb250ZXh0RmVhdHVyZXMgd2hpY2ggaXMgYQorICAgICAgICBwcm94eSBv
ZiBDb250ZXh0RmVhdHVyZXNDbGllbnQuICBDb250ZXh0RW5hYmxlZEZlYXR1cmVzIGlzIGlzCisg
ICAgICAgIHJlcGxhY2VkIHdpdGggQ29udGV4dEZlYXR1cmVzLgorCisgICAgICAgIEVhY2ggQ29u
dGV4dEZlYXR1cmVzIG9iamVjdCBpcyBvd25lZCBieSBhIFBhZ2UsIGFuZCBpcyBhdHRhY2hlZCB0
bworICAgICAgICBlYWNoIERvY3VtZW50IGluIHRoZSBwYWdlIGV2ZW4gaWYgdGhlIHBhZ2UgaXRz
ZWxmIGhhcyBubyByZWZlcmVuY3QKKyAgICAgICAgdG8gRnJhbWVzIG9yIFBhZ2VzLiBXaXRoIENv
bnRleHRGZWF0dXJlcywgZWFjaCBEb2N1bWVudCBjYW4gZGVjaWRlCisgICAgICAgIHRoZSBmZWF0
dXJlIGF2YWlsYWJpbGl0eSBldmVuIGlmIGl0IGNhbm5vdCByZWFjaCBQYWdlIG9yIEZyYW1lLgor
CisgICAgICAgIE9uIFJlZkNvdW50ZWRTdXBwbGVtZW50OiBEb2N1bWVudCBpbnN0YW5jZSBjYW4g
bGl2ZSBsb25nZXIgdGhhbiBhCisgICAgICAgIFBhZ2Ugd2hlcmUgaXQgaXMgc2h3b24uIFRoaXMg
bWVhbnMgdGhhdCBDb250ZXh0RmVhdHVyZXMgaW5zdGFuY2UKKyAgICAgICAgbmVlZHMgdG8gc3Vy
dml2ZSBhZnRlciBvd25lciBQYWdlIGRlc3RydWN0aW9uIGJlY2F1c2UgaXQncworICAgICAgICBy
ZWZlcmVuY2VkIGZyb20gcG9zc2libHkgc3Vydml2aW5nIERvY3VtZW50cy4gUmVmQ291bnRlZFN1
cHBsZW1lbnQKKyAgICAgICAgaXMgaW50cm9kdWNlZCB0byBjb3ZlciB0aGlzIHNjZW5hcmlvOiBJ
dCBhbGxvd3Mgc3VwcGxlbWVudCBjbGFzc2VzCisgICAgICAgIHRvIGxpdmUgYWZ0ZXIgUGFnZSdz
IGRlc3RydWN0aW9uLgorCisgICAgICAgIFJlZkNvdW50ZWRTdXBwbGVtZW50Ojpob3N0RGVzdHJv
eWVkKCkgaXMgbm90aWZpZWQgd2hlbiB0aGUgaG9zdGluZworICAgICAgICBwYWdlIGlzIGdvbmUu
IENvbnRleHRGZWF0dXJlcyBjbGVhcnMgaXRzIHJlZmVyZW5jZSB0byB0aGUgY2xpZW50CisgICAg
ICAgIHVzaW5nIHRoaXMgbm90aWZpY2F0aW9uLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3No
YWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbAorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBU
YXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06
CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBjc3MvU3R5bGVS
ZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpkZXRlcm1pbmVT
Y29wZSk6CisgICAgICAgICogZG9tL0NvbnRleHRGZWF0dXJlcy5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXNDbGllbnQ6OmVt
cHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlczo6c3VwcGxlbWVudE5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpwcm92aWRlVG8pOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpkZWZhdWx0U3dpdGNoKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRleHRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0RmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0RmVhdHVyZXM6OnBhZ2VQb3B1cEVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6cHJvdmlkZUNvbnRleHRGZWF0dXJlc1RvKToKKyAgICAgICAgKiBkb20vQ29udGV4dEZlYXR1
cmVzLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDb250ZXh0RmVhdHVy
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpDb250ZXh0RmVhdHVyZXMp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpob3N0RGVzdHJveWVkKToKKyAg
ICAgICAgKENvbnRleHRGZWF0dXJlc0NsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
RmVhdHVyZXNDbGllbnQ6On5Db250ZXh0RmVhdHVyZXNDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGV4dEZlYXR1cmVzQ2xpZW50Ojppc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGV4dEZlYXR1cmVzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1
cmVzOjppc0VuYWJsZWQpOgorICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAg
ICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1l
bnRhdGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKiBkb20v
UG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OlBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpmaW5kUGFyZW50KToKKyAgICAgICAgKiBkb20vU2Vj
dXJpdHlDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5Q29udGV4dDo6U2Vj
dXJpdHlDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5Q29udGV4dDo6c2V0RmVh
dHVyZVN3aXRjaCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vU2VjdXJpdHlD
b250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5
Q29udGV4dDo6ZmVhdHVyZVN3aXRjaCk6CisgICAgICAgIChTZWN1cml0eUNvbnRleHQpOgorICAg
ICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpn
ZXRTZWxlY3Rpb24pOgorICAgICAgICAqIGRvbS9tYWtlX25hbWVzLnBsOgorICAgICAgICAocHJp
bnRDb25zdHJ1Y3RvckludGVyaW9yKToKKyAgICAgICAgKHByaW50RmFjdG9yeUNwcEZpbGUpOgor
ICAgICAgICAocHJpbnRXcmFwcGVyRnVuY3Rpb25zKToKKyAgICAgICAgKHByaW50V3JhcHBlckZh
Y3RvcnlDcHBGaWxlKToKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVGcmFnbWVudEZyb21NYXJrdXBXaXRoQ29udGV4dCk6CisgICAgICAgICog
aHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdHlsZUVs
ZW1lbnQ6OnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
dHlsZUVsZW1lbnQ6OnVucmVnaXN0ZXJXaXRoU2NvcGluZ05vZGUpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb250ZW50
VGFnTmFtZSk6CisgICAgICAgICogaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpET01QYXRjaFN1cHBvcnQ6OnBhdGNoRG9jdW1lbnQpOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1JlZkNvdW50
ZWRTdXBwbGVtZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBs
ZW1lbnRhYmxlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJlZkNvdW50ZWRTdXBw
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlZkNvdW50ZWRTdXBwbGVtZW50Ojpob3N0RGVz
dHJveWVkKToKKyAgICAgICAgKFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVmQ291bnRl
ZFN1cHBsZW1lbnQ6OldyYXBwZXI6OldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVmQ291
bnRlZFN1cHBsZW1lbnQ6OldyYXBwZXI6On5XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
ZkNvdW50ZWRTdXBwbGVtZW50OjpXcmFwcGVyOjp3cmFwcGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlZkNvdW50ZWRTdXBwbGVtZW50Ojpwcm92aWRlVG8pOgorICAgICAgICAoV2ViQ29yZTo6UmVm
Q291bnRlZFN1cHBsZW1lbnQ6OmZyb20pOgorICAgICAgICAqIHBsYXRmb3JtL1N1cHBsZW1lbnRh
YmxlLmg6CisgICAgICAgIChXZWJDb3JlOjpTdXBwbGVtZW50Ojppc1JlZkNvdW50ZWRXcmFwcGVy
KToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1MKToKKwogMjAxMi0wNi0wOCAgS2ludWtvIFlhc3Vk
YSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXNpbmcgQmxvYkJ1aWxkZXIgc2hv
dWxkIHNob3cgYSBkZXByZWNhdGlvbiB3YXJuaW5nIG1lc3NhZ2UgKGlmIGl0IGlzIGVuYWJsZWQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGYwMjFhMWVlNzg5NWU1MzllY2I4NjNlOTA1
Y2EwMWZjMWQ1YzUxZjEuLjY0ZGJiNTA2YzBjZGVmMWY2OTAxZjI1YTI2Mjc5OWZmMWM3YmNmMGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTItMDYtMTAg
IE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TihyMTE4MDk4KTogPGNvbnRlbnQ+IGVsZW1lbnQgZG9lcyBub3QgcmVuZGVyIGRpc3RyaWJ1dGVk
IGNoaWxkcmVuIHdoZW4gY2xvbmVkIGZyb20gYW5vdGhlciBkb2N1bWVudAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxNDgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIEFkZGVkIENvbnRleHRGZWF0dXJl
c0NsaWVudEltcGwgd2hpY2ggaW1wbGVtZW50cyBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXNDbGll
bnQuCisgICAgICAgIC0gUmVwbGFjZWQgUGFnZVBvcHVwRnJhbWVMb2FkZXJDbGllbnQgd2l0aCBQ
YWdlUG9wdXBGZWF0dXJlc0NsaWVudC4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAg
ICogcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBlcm1pc3Npb25DbGllbnQ6OmFsbG93V2ViQ29tcG9uZW50cyk6Cisg
ICAgICAgICogc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNw
cC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0Ns
aWVudEltcGw6OmlzRW5hYmxlZCk6CisgICAgICAgICogc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVu
dEltcGwuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29u
dGV4dEVuYWJsZWRGZWF0dXJlcy5oLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKENvbnRl
eHRGZWF0dXJlc0NsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXND
bGllbnRJbXBsOjpDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsKToKKyAgICAgICAgKFdlYktpdDo6
Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbDo6c2V0UGVybWlzc2lvbkNsaWVudCk6CisgICAgICAg
ICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgICogc3JjL0ZyYW1lTG9h
ZGVyQ2xpZW50SW1wbC5oOgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRJbXBsKToKKyAgICAg
ICAgKiBzcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHA6CisgICAgICAgIChQYWdlUG9wdXBGZWF0dXJl
c0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VQb3B1cEZlYXR1cmVzQ2xpZW50Ojppc0Vu
YWJsZWQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBvcHVw
SW1wbDo6aW5pdFBhZ2UpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRQZXJtaXNzaW9uQ2xpZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuaDoKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTItMDYtMDkgIEV1Z2VuZSBLbHl1Y2huaWtv
diAgPGV1c3Rhcy5idWdAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBt
ZXNzYWdlIGxvb3AgaW5zdHJ1bWVudGF0aW9uIHRvIHB1YmxpYyBBUEkgYW5kIHRpbWVsaW5lIGFn
ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGU0YzA0Y2MyNDAzZjUzNzBiY2QwOTU2NmUyMjlj
NDc4ZjdiY2VkN2MuLjViZDViMDA1ZTdjYmUzMjE0YWRlNGMxZmI0Y2NlNTQwNjYyM2NlOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NTksNyArNDU5LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIGJpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcAogCiAgICAgYmluZGluZ3Mv
Z2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5jcHAKLSAgICBiaW5kaW5ncy9nZW5lcmljL0NvbnRl
eHRFbmFibGVkRmVhdHVyZXMuY3BwCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmNwcAogCiAgICAgY3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3BwCkBAIC01NTks
NiArNTU4LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9Db250YWluZXJOb2RlLmNw
cAogICAgIGRvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAKICAgICBkb20vQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIuY3BwCisgICAgZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAKICAgICBk
b20vQ3VzdG9tRXZlbnQuY3BwCiAgICAgZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwCiAgICAg
ZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQppbmRleCA3NTY4NWY3ODFhNTY5ZDk2NTcwY2RiMzEyNjc4N2YxNDkwZTU1ZTY1Li4xMDZh
ZjcyODY3M2QwYWZiMTAwMjAyNjQ1ZTRkMGEwZDE1YWQ2NTNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KQEAgLTEzMDYsOCArMTMwNiw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmggXAotCVNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgXAotCVNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2Uu
aCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHkuaCBc
CkBAIC0xNzk5LDYgKzE3OTcsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9kb20vQ3Jvc3NUaHJlYWRUYXNrLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21F
dmVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FdmVudC5oIFwKQEAgLTM1ODQs
NiArMzU4NCw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUHJlcmVuZGVySGFuZGxlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlYWJs
ZUJ1ZmZlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZVByaW9yaXR5LmggXAor
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlZkNvdW50ZWRTdXBwbGVtZW50LmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1JlZmVycmVyUG9saWN5LmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1J1bkxvb3AuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKaW5kZXggMDkwNjA2MTY0ZTYwOThlNDNmOGQyNjJjNGU0MTcyZDZhNWI2MTdk
ZC4uZWVhNzY2MDQzM2I5NmUyMTQ4YjQyMjA2ODM1MTU2Y2Q4MDEyNTBhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CkBAIC03Miw3ICs3Miw2IEBAIFNPVVJDRVMgKz0gXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlUm93LmNwcCBcCiAgICAgYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCBcCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5jcHAgXAotICAgIGJp
bmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgXAogICAgIGJpbmRpbmdz
L2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKIAogdjggewpAQCAtNTI5LDYgKzUy
OCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Db250YWluZXJOb2RlLmNwcCBcCiAgICAgZG9t
L0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmNwcCBcCiAgICAgZG9tL0NvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyLmNwcCBcCisgICAgZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAgXAogICAgIGRvbS9D
dXN0b21FdmVudC5jcHAgXAogICAgIGRvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCBc
CiAgICAgZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCA1MjM1MTIyZjkxY2M5YjFiY2U2OGUzY2VhYjRiMDNkMGVlMTg3NTEwLi5kNGIwZjg5NWEwYTYw
MWMxODkxZjk2MTEzZjU1NGE4ZWE1NzJjNWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMDksNiAr
MzA5LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9QdXJnZVByaW9yaXR5LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9SZWZD
b3VudGVkU3VwcGxlbWVudC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9TY2hlbWVSZWdpc3Ry
eS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9TY3JvbGxUeXBlcy5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9TY3JvbGxWaWV3LmgnLApAQCAtNjE2LDYgKzYxNyw4IEBACiAgICAgICAgICAg
ICAnZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oJywKICAgICAgICAgICAgICdkb20vQ29u
dGFpbmVyTm9kZS5oJywKICAgICAgICAgICAgICdkb20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIuaCcsCisgICAgICAgICAgICAnZG9tL0NvbnRleHRGZWF0dXJlcy5oJywKKyAgICAgICAgICAg
ICdkb20vQ29udGV4dEZlYXR1cmVzLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmgnLAogICAgICAgICAgICAgJ2RvbS9ET01UaW1lU3RhbXAuaCcsCiAgICAgICAgICAg
ICAnZG9tL0RldmljZU9yaWVudGF0aW9uLmgnLApAQCAtMTg1Myw4ICsxODU2LDYgQEAKICAgICAg
ICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eS5oJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaCcsCi0gICAgICAgICAgICAn
YmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCcsCi0gICAgICAgICAg
ICAnYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1MTlhNjg5ZDJiZDQ1ZmJh
NDczYWY5ZDMyYTE1ZGZiMDkwMTFjN2MxLi40MTNmYzFlOWNkOTgyYTViYzI4NmRlZTUyYjFhMDc5
YjA1MWQ5NGY1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagpAQCAtNjMyMTAsMTQgKzYzMjEwLDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8
RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQ29udGV4dEVuYWJs
ZWRGZWF0dXJlcy5jcHAiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIK
LQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJp
bmRpbmdzXGdlbmVyaWNcR2VuZXJpY0JpbmRpbmcuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAwYzcwMzczNDZmOGVjNjM0YzVjOWY3ZmEwZTI1OTFjM2UwMmU3YmYxLi4xNGQwNDRkZTJhYWRi
NDRiMWQxM2RkOWNjZDBhZmJlOTIyMzU0OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzUzLDEyICszNzUzLDExIEBACiAJ
CUE3MTg3NjBFMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNF
IC8qIERyYWdBY3Rpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTcxODc4OTAwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc4
OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovOyB9OwogCQlBNzIz
Rjc3QjE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MjNGNzdBMTQ4NENBNEMwMDhD
NkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3MkVBM0JCMTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZD
b3VudGVkU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTcyRUEzQkExNTg1Q0Y1NTAwNEZBQTI2IC8qIFJlZkNvdW50ZWRTdXBwbGVtZW50
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcz
Rjk1RkUxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAv
KiBSb3VuZGVkUmVjdC5jcHAgKi87IH07CiAJCUE3M0Y5NUZGMTJDOTdCRkUwMDMxQUFGOSAvKiBS
b3VuZGVkUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTczRjk1RkQxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc0MEI1QTUxNEM5MzVBQjAw
QTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNEVBNzkxNEM5MzQ4NDAwQzhGNUJGIC8qIEpTSW50ZXJu
YWxTZXR0aW5ncy5oICovOyB9OwogCQlBNzQwQjVBNzE0QzkzNUFGMDBBNzdGQTQgLyogSlNJbnRl
cm5hbFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3QjRFQTc4MTRDOTM0ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuY3Bw
ICovOyB9OwotCQlBNzQ3QTA3RjE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0
dXJlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzQ3QTA3RDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgKi87
IH07Ci0JCUE3NDdBMDgwMTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzQ3QTA3
RTE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oICovOyB9OwogCQlB
NzRCQjc2QjEzQkRBODYzMDBGRjdCRjAgLyogRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzRCQjc2QTEzQkRB
ODYzMDBGRjdCRjAgLyogRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc1RTQ5NzYxMDc1MkFDQjAwQzlC
ODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RTQ5NzQxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE3NUU0OTc3MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1
RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKi87IH07
CkBAIC0zODEwLDYgKzM4MDksOCBAQAogCQlBN0QyMEY2MjEwN0Y0MDY5MDBBODAzOTIgLyogSlNX
ZWJHTEFjdGl2ZUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTdEMjBGNjAxMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmNw
cCAqLzsgfTsKIAkJQTdEMjBGNjMxMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZv
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0QyMEY2
MTEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uaCAqLzsgfTsKIAkJQTdEMjBG
NkQxMDdGNDM4QjAwQTgwMzkyIC8qIFdlYkdMQWN0aXZlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEMjBGNkIxMDdGNDM4QjAwQTgwMzkyIC8q
IFdlYkdMQWN0aXZlSW5mby5oICovOyB9OworCQlBN0QzQ0ExMDE1N0RGOEU5MDA4NjBBOTcgLyog
Q29udGV4dEZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3RDNDQTBFMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZXMuY3Bw
ICovOyB9OworCQlBN0QzQ0ExMTE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0QzQ0EwRjE1
N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVzLmggKi87IH07CiAJCUE3RDZCMzQ5MEY2
MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDZCMzQ3MEY2MTEwNDUwMEI3OUZEMSAvKiBX
b3JrZXJTY3JpcHRMb2FkZXIuaCAqLzsgfTsKIAkJQTdENkIzNEEwRjYxMTA0NTAwQjc5RkQxIC8q
IFdvcmtlclNjcmlwdExvYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBN0Q2QjM0ODBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9h
ZGVyLmNwcCAqLzsgfTsKIAkJQTdEQkY4REQxMjc2OTE5QzAwNkI2MDA4IC8qIFRleHRDaGVja2lu
Z0hlbHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBN0RCRjhEQjEyNzY5MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmNwcCAqLzsg
fTsKQEAgLTEwODUzLDEwICsxMDg1NCw5IEBACiAJCUE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAv
KiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IERyYWdDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNzFBNzBDOTExQUZCMDIwMDA5ODlENkQgLyogSFRNTE1ldGVyRWxlbWVudC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1ldGVyRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1h
Y3Jvcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUV4cG9ydE1h
Y3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzJFQTNCQTE1ODVDRjU1MDA0
RkFBMjYgLyogUmVmQ291bnRlZFN1cHBsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVmQ291bnRlZFN1cHBsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJvdW5kZWRSZWN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTczRjk1RkQxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRS
ZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJvdW5kZWRSZWN0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3NDdBMDdEMTU2QjI4NjkwMDI0M0VFRCAvKiBD
b250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwOyBwYXRoID0gZ2VuZXJpYy9Db250ZXh0
RW5hYmxlZEZlYXR1cmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTc0N0Ew
N0UxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oOyBwYXRoID0g
Z2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3NEJCNzZBMTNCREE4NjMwMEZGN0JGMCAvKiBFeGNlcHRpb25Db2RlUGxhY2Vob2xk
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjZXB0aW9uQ29kZVBsYWNl
aG9sZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU0OTc0MTA3NTJBQ0Iw
MEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwOTE0LDYgKzEw
OTE0LDggQEAKIAkJQTdEMjBGNjAxMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZv
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xBY3RpdmVJ
bmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdEMjBGNjExMDdGNDA2OTAw
QTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTV2ViR0xBY3RpdmVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE3RDIwRjZCMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xBY3RpdmVJbmZvLmg7IHBhdGggPSBjYW52YXMv
V2ViR0xBY3RpdmVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3RDNDQTBF
MTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGV4dEZlYXR1cmVzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTdEM0NBMEYxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZXh0RmVhdHVyZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdENkIzNDcwRjYxMTA0NTAwQjc5RkQxIC8q
IFdvcmtlclNjcmlwdExvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
b3JrZXJTY3JpcHRMb2FkZXIuaDsgcGF0aCA9IHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDZCMzQ4MEY2MTEwNDUwMEI3OUZEMSAv
KiBXb3JrZXJTY3JpcHRMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gV29ya2VyU2NyaXB0TG9hZGVyLmNwcDsgcGF0aCA9IHdvcmtlcnMvV29ya2VyU2NyaXB0
TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdEQjQxODExNENFMUYw
QTAwQTJFMzE2IC8qIFNoYWRvd1Jvb3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNoYWRv
d1Jvb3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk3NjMsOCArMTk3NjUs
NiBAQAogCQkJCUE2MjJBOEY1MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAq
LywKIAkJCQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5j
cHAgKi8sCiAJCQkJQTYyMkE4RjcxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJh
c2UuaCAqLywKLQkJCQlBNzQ3QTA3RDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRG
ZWF0dXJlcy5jcHAgKi8sCi0JCQkJQTc0N0EwN0UxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRF
bmFibGVkRmVhdHVyZXMuaCAqLywKIAkJCQlBNjIyQThGOTEyMkM0NEE2MDBBNzg1QjMgLyogR2Vu
ZXJpY0JpbmRpbmcuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gZ2VuZXJpYzsKQEAgLTIwNDgwLDYg
KzIwNDgwLDcgQEAKIAkJCQlCQzNCRTEyQTBFOTgwOTJGMDA4MzU1ODggLyogUG9wdXBNZW51U3R5
bGUuaCAqLywKIAkJCQlFNEQ2ODc3ODBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVy
LmggKi8sCiAJCQkJN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAq
LywKKwkJCQlBNzJFQTNCQTE1ODVDRjU1MDA0RkFBMjYgLyogUmVmQ291bnRlZFN1cHBsZW1lbnQu
aCAqLywKIAkJCQk5ODMxQUU0OTE1NDIyNUEyMDBGRTI2NDQgLyogUmVmZXJyZXJQb2xpY3kuaCAq
LywKIAkJCQlCQzBCMzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi8sCiAJCQkJ
QkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLywKQEAgLTIxMjAxLDYgKzIx
MjAyLDggQEAKIAkJCQlFMUExNDcwNzExMTAyQjE1MDBFRUMwRjMgLyogQ29udGFpbmVyTm9kZUFs
Z29yaXRobXMuaCAqLywKIAkJCQk5NzYyN0I4QjE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3NjI3QjhDMTRGQjNDRUUwMDJDRENBMSAv
KiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oICovLAorCQkJCUE3RDNDQTBFMTU3REY4RTkw
MDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZXMuY3BwICovLAorCQkJCUE3RDNDQTBGMTU3REY4RTkw
MDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZXMuaCAqLywKIAkJCQkyRTNGQUEwODExQTM2QkYxMDA1
NzY2MjQgLyogQ3Jvc3NUaHJlYWRUYXNrLmggKi8sCiAJCQkJNjJDRDMyNTYxMTU3RTU3QzAwNjNC
MEE3IC8qIEN1c3RvbUV2ZW50LmNwcCAqLywKIAkJCQk2MkNEMzI1NzExNTdFNTdDMDA2M0IwQTcg
LyogQ3VzdG9tRXZlbnQuaCAqLywKQEAgLTIyMDU0LDcgKzIyMDU3LDcgQEAKIAkJCQk0MUQwMTVD
QTBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3
MEQ2RURCMTM4NDU0NTUwMDQ0MTAzRSAvKiBDb250ZW50VHlwZVBhcnNlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTc2MjdCOEUxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBNzQ3QTA4MDE1NkIyODY5MDAyNDNFRUQgLyog
Q29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTdEM0NBMTExNTdE
RjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNC
NkEwRTYwQjBCQ0E1QzAwRjUwMjdBIC8qIENvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwNjVBRDRGNTBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA2NUFENEY3MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjQxNjMsNiArMjQxNjYsNyBAQAogCQkJCUZEMzE2
MDNDMTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRDMxNjAzRTEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlck5vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNDM2OEU4MEMyMjZFMzIwMDVFRkI1RiAvKiBSZWN0LmggaW4g
SGVhZGVycyAqLywKKwkJCQlBNzJFQTNCQjE1ODVDRjU1MDA0RkFBMjYgLyogUmVmQ291bnRlZFN1
cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk4MzFBRTRBMTU0MjI1QzkwMEZFMjY0NCAv
KiBSZWZlcnJlclBvbGljeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBQjQxODIxM0UzNTZFODAw
RDhBQUYzIC8qIFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNEMwQTQ0RUZDNzAw
Rjk5MkUwIC8qIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI1
NTc1LDcgKzI1NTc5LDcgQEAKIAkJCQk0MUQwMTVDQjBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVu
dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzcwRDZFREExMzg0NTQ1NTAwNDQxMDNFIC8q
IENvbnRlbnRUeXBlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NjI3QjhEMTRGQjND
RUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlBNzQ3QTA3RjE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJl
cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBN0QzQ0ExMDE1N0RGOEU5MDA4NjBBOTcgLyogQ29u
dGV4dEZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA2NUFENEY2MEIwQzJFREEwMDVB
MkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDYw
MjdDQjMwQjFDQzAzRDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbU1hYy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzQjZBMEVBMEIwQkNBODQwMEY1MDI3QSAvKiBDb250ZXh0TWVudU1hYy5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGUyNjIyYjM3M2ViMjE3ODViY2MxYzA3OGJiZWEyMjhkMDNiYzFjYjYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDc2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAq
IG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0g
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ29udGV4dEVuYWJs
ZWRGZWF0dXJlcy5oIgotCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiRG9jdW1l
bnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCi0jaW5j
bHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKLSNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotI2lmIEVOQUJMRShTSEFET1dfRE9NKQot
Ym9vbCBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKERPTVdpbmRvdyog
d2luZG93KQotewotICAgIGlmICghd2luZG93KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
aWYgKEZyYW1lKiBmcmFtZSA9IHdpbmRvdy0+ZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIGZyYW1l
LT5sb2FkZXIoKS0+Y2xpZW50KCktPmFsbG93U2hhZG93RE9NKFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotI2VuZGlmCi0K
LSNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQotYm9vbCBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpz
dHlsZVNjb3BlZEVuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50KQotewotICAgIGlmICghZG9jdW1l
bnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1l
bnQtPmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5h
bGxvd1N0eWxlU2NvcGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxl
ZCgpKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0jZW5kaWYgICAKLQotI2lmIEVOQUJMRShQQUdF
X1BPUFVQKQotYm9vbCBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpwYWdlUG9wdXBFbmFibGVkKERP
TVdpbmRvdyogd2luZG93KQotewotICAgIGlmICghd2luZG93KQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IHdpbmRvdy0+ZnJhbWUoKSkKLSAgICAgICAgcmV0
dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmFsbG93UGFnZVBvcHVwKCk7Ci0gICAgcmV0
dXJuIGZhbHNlOwotfQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJl
cy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1
cmVzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVhN2ZhNGI3NTg1ZWE3N2E3MTli
ZTNiNGQzMzQ0OGIyODJmNDk5N2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxl
ZEZlYXR1cmVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlv
bi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDb250ZXh0
RW5hYmxlZEZlYXR1cmVzX2gKLSNkZWZpbmUgQ29udGV4dEVuYWJsZWRGZWF0dXJlc19oCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRE9NV2luZG93OwotY2xhc3MgRG9jdW1lbnQ7Ci0K
LS8vIEEgY2xhc3MgdGhhdCBzdG9yZXMgc3RhdGljIGVuYWJsZXJzIGZvciBhbGwgZXhwZXJpbWVu
dGFsIGZlYXR1cmVzLiBOb3RlIHRoYXQKLS8vIHRoZSBtZXRob2QgbmFtZXMgbXVzdCBsaW5lIHVw
IHdpdGggdGhlIEphdmFTY3JpcHQgbWV0aG9kIHRoZXkgZW5hYmxlIGZvciBjb2RlCi0vLyBnZW5l
cmF0aW9uIHRvIHdvcmsgcHJvcGVybHkuCi0KLWNsYXNzIENvbnRleHRFbmFibGVkRmVhdHVyZXMg
ewotcHVibGljOgotI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIHN0YXRpYyBib29sIHNoYWRv
d0RPTUVuYWJsZWQoRE9NV2luZG93Kik7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoU1RZTEVfU0NPUEVE
KQotICAgIHN0YXRpYyBib29sIHN0eWxlU2NvcGVkRW5hYmxlZChEb2N1bWVudCopOwotI2VuZGlm
Ci0jaWYgRU5BQkxFKFBBR0VfUE9QVVApCi0gICAgc3RhdGljIGJvb2wgcGFnZVBvcHVwRW5hYmxl
ZChET01XaW5kb3cqKTsKLSNlbmRpZgotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gQ29udGV4dEVuYWJsZWRGZWF0dXJlc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDYxYjk3YmUzZDk2ZTNh
OWI5MGVjNGJjNGJlYzU5MGViNzVlN2FlY2EuLjAwODI0YWJjMjI0MzQyMTg4YjA0ZWRjY2ExMzI1
NGY1ZmIwMGI3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtCkBAIC0yNDE3LDcgKzI0MTcsNyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxGaXhlZEhlYWRlciwgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbkNvbnRlbnRIZWFkZXIoJGRhdGFOb2RlKSk7CiAKICAgICBBZGRUb0ltcGxJbmNsdWRlcygi
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIik7Ci0gICAgQWRkVG9JbXBsSW5jbHVkZXMoIkNvbnRl
eHRFbmFibGVkRmVhdHVyZXMuaCIpOworICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJDb250ZXh0RmVh
dHVyZXMuaCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOFByb3h5LmgiKTsKICAgICBBZGRU
b0ltcGxJbmNsdWRlcygiVjhCaW5kaW5nLmgiKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhC
aW5kaW5nU3RhdGUuaCIpOwpAQCAtMjg2Niw3ICsyODY2LDcgQEAgRU5ECiAgICAgICAgICAgICBt
eSAkZW5hYmxlRnVuY3Rpb24gPSBHZXRDb250ZXh0RW5hYmxlRnVuY3Rpb24oJHJ1bnRpbWVBdHRy
LT5zaWduYXR1cmUpOwogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVH
ZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJHJ1bnRpbWVBdHRyLT5zaWduYXR1
cmUpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiNpZiAke2NvbmRpdGlvbmFs
U3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgaWYgKENvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7ZW5hYmxlRnVuY3Rp
b259KGltcGwpKSB7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlm
IChDb250ZXh0RmVhdHVyZXM6OiR7ZW5hYmxlRnVuY3Rpb259KGltcGwtPmRvY3VtZW50KCkpKSB7
XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzdGF0aWMgY29u
c3QgQmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XFxcbiIpOwogICAgICAgICAgICAgR2VuZXJh
dGVTaW5nbGVCYXRjaGVkQXR0cmlidXRlKCRpbnRlcmZhY2VOYW1lLCAkcnVudGltZUF0dHIsICI7
IiwgIiAgICAiKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNDVlN2QxMjM0Y2FhMTYxNjQxZjkxNDFl
ZDQyMDg5MTk1N2Q4NGViYy4uY2JiM2RiNWNiYmZmODJmNGFmZjg0Yzg2ZTA3YmY5NmU2MDllYzQ1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtNTIsNyArNTIsNyBAQAog
I2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FsY3VsYXRpb25WYWx1ZS5oIgog
I2luY2x1ZGUgIkNvbnRlbnREYXRhLmgiCi0jaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJl
cy5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkNvdW50ZXIuaCIK
ICNpbmNsdWRlICJDb3VudGVyQ29udGVudC5oIgogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKQEAg
LTQ5MSw3ICs0OTEsNyBAQCBjb25zdCBDb250YWluZXJOb2RlKiBTdHlsZVJlc29sdmVyOjpkZXRl
cm1pbmVTY29wZShjb25zdCBDU1NTdHlsZVNoZWV0KiBzaGVldCkKIHsKICAgICBBU1NFUlQoc2hl
ZXQpOwogCi0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJs
ZWQoZG9jdW1lbnQoKSkpCisgICAgaWYgKCFDb250ZXh0RmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5h
YmxlZChkb2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBOb2RlKiBvd25lck5v
ZGUgPSBzaGVldC0+b3duZXJOb2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Q29udGV4dEZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmExOGU5MjU1YzhmMmM0MzE0NTBmMzI5MTIxMWRjZGZjNjk1NzE0ZWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmNw
cApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb250
ZXh0RmVhdHVyZXMuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiUGFnZS5o
IgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitDb250ZXh0RmVhdHVyZXNDbGllbnQqIENvbnRleHRGZWF0dXJlc0NsaWVudDo6ZW1w
dHkoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQ29udGV4dEZlYXR1cmVzQ2xpZW50LCBl
bXB0eSwgKCkpOworICAgIHJldHVybiAmZW1wdHk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYg
Q29udGV4dEZlYXR1cmVzOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiQ29udGV4dEZlYXR1cmVzIikpOworICAgIHJldHVy
biBuYW1lOworfQorCit2b2lkIENvbnRleHRGZWF0dXJlczo6cHJvdmlkZVRvKERvY3VtZW50KiBk
b2N1bWVudCwgUGFnZSogcGFnZSkKK3sKKyAgICBDb250ZXh0RmVhdHVyZXMqIHByb3ZpZGVkID0g
c3RhdGljX2Nhc3Q8Q29udGV4dEZlYXR1cmVzKj4oZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgp
KSk7CisgICAgaWYgKCFwcm92aWRlZCkKKyAgICAgICAgcmV0dXJuOworICAgIGRvY3VtZW50LT5z
ZXRGZWF0dXJlU3dpdGNoKHByb3ZpZGVkKTsKK30KKworQ29udGV4dEZlYXR1cmVzKiBDb250ZXh0
RmVhdHVyZXM6OmRlZmF1bHRTd2l0Y2goKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVm
UHRyPENvbnRleHRGZWF0dXJlcz4sIGluc3RhbmNlLCAoQ29udGV4dEZlYXR1cmVzOjpjcmVhdGUo
Q29udGV4dEZlYXR1cmVzQ2xpZW50OjplbXB0eSgpKSkpOworICAgIHJldHVybiBpbnN0YW5jZS5n
ZXQoKTsKK30KKworYm9vbCBDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoRG9jdW1l
bnQqIGRvY3VtZW50KQoreworI2lmIEVOQUJMRShTSEFET1dfRE9NKQorICAgIGlmICghZG9jdW1l
bnQpCisgICAgICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFi
bGVkKCk7CisgICAgcmV0dXJuIGRvY3VtZW50LT5mZWF0dXJlU3dpdGNoKCktPmlzRW5hYmxlZChk
b2N1bWVudCwgU2hhZG93RE9NLCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFi
bGVkKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOworICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZgorfQorCitib29sIENvbnRleHRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFi
bGVkKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQorICAg
IGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
dHlsZVNjb3BlZEVuYWJsZWQoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQtPmZlYXR1cmVTd2l0Y2go
KS0+aXNFbmFibGVkKGRvY3VtZW50LCBTdHlsZVNjb3BlZCwgUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c3R5bGVTY29wZWRFbmFibGVkKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1l
bnQpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCitib29sIENvbnRleHRGZWF0dXJl
czo6cGFnZVBvcHVwRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQpCit7CisjaWYgRU5BQkxFKFBB
R0VfUE9QVVApCisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBkb2N1bWVudC0+ZmVhdHVyZVN3aXRjaCgpLT5pc0VuYWJsZWQoZG9jdW1lbnQsIFBh
Z2VQb3B1cCwgZmFsc2UpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOworICAg
IHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCit2b2lkIHByb3ZpZGVDb250ZXh0RmVhdHVyZXNU
byhQYWdlKiBwYWdlLCBDb250ZXh0RmVhdHVyZXNDbGllbnQqIGNsaWVudCkKK3sKKyAgICBSZWZD
b3VudGVkU3VwcGxlbWVudDxQYWdlLCBDb250ZXh0RmVhdHVyZXM+Ojpwcm92aWRlVG8ocGFnZSwg
Q29udGV4dEZlYXR1cmVzOjpzdXBwbGVtZW50TmFtZSgpLCBDb250ZXh0RmVhdHVyZXM6OmNyZWF0
ZShjbGllbnQpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRl
eHRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY0MTUzNmM0MDY1ZjQyNGU3YzVhY2U0N2I4OTVhMDllN2M0NmJkODYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmgKQEAgLTAsMCAr
MSw5OSBAQAorCisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBDb250ZXh0RmVhdHVyZXNfaAorI2RlZmluZSBDb250ZXh0RmVh
dHVyZXNfaAorCisjaW5jbHVkZSAiUmVmQ291bnRlZFN1cHBsZW1lbnQuaCIKKyNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENvbnRleHRG
ZWF0dXJlc0NsaWVudDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgUGFnZTsKKworY2xhc3MgQ29u
dGV4dEZlYXR1cmVzIDogcHVibGljIFJlZkNvdW50ZWRTdXBwbGVtZW50PFBhZ2UsIENvbnRleHRG
ZWF0dXJlcz4geworcHVibGljOgorICAgIGVudW0gRmVhdHVyZVR5cGUgeworICAgICAgICBTaGFk
b3dET00sCisgICAgICAgIFN0eWxlU2NvcGVkLAorICAgICAgICBQYWdlUG9wdXAKKyAgICB9Owor
CisgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgc3VwcGxlbWVudE5hbWUoKTsKKyAgICBz
dGF0aWMgdm9pZCBwcm92aWRlVG8oRG9jdW1lbnQqLCBQYWdlKik7CisgICAgc3RhdGljIENvbnRl
eHRGZWF0dXJlcyogZGVmYXVsdFN3aXRjaCgpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbnRl
eHRGZWF0dXJlcz4gY3JlYXRlKENvbnRleHRGZWF0dXJlc0NsaWVudCopOworCisgICAgc3RhdGlj
IGJvb2wgc2hhZG93RE9NRW5hYmxlZChEb2N1bWVudCopOworICAgIHN0YXRpYyBib29sIHN0eWxl
U2NvcGVkRW5hYmxlZChEb2N1bWVudCopOworICAgIHN0YXRpYyBib29sIHBhZ2VQb3B1cEVuYWJs
ZWQoRG9jdW1lbnQqKTsKKworICAgIGJvb2wgaXNFbmFibGVkKERvY3VtZW50KiwgRmVhdHVyZVR5
cGUsIGJvb2wpIGNvbnN0OworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IENvbnRleHRGZWF0dXJl
cyhDb250ZXh0RmVhdHVyZXNDbGllbnQqIGNsaWVudCkKKyAgICAgICAgOiBtX2NsaWVudChjbGll
bnQpCisgICAgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgaG9zdERlc3Ryb3llZCgpIE9WRVJSSURF
OworCisgICAgQ29udGV4dEZlYXR1cmVzQ2xpZW50KiBtX2NsaWVudDsKK307CisKK2lubGluZSB2
b2lkIENvbnRleHRGZWF0dXJlczo6aG9zdERlc3Ryb3llZCgpCit7CisgICAgbV9jbGllbnQgPSAw
OworfQorCisKK2NsYXNzIENvbnRleHRGZWF0dXJlc0NsaWVudCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIENvbnRleHRGZWF0dXJlc0NsaWVudCogZW1wdHkoKTsKKworICAgIHZpcnR1YWwgfkNvbnRl
eHRGZWF0dXJlc0NsaWVudCgpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0VuYWJsZWQoRG9jdW1l
bnQqLCBDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlLCBib29sIGRlZmF1bHRWYWx1ZSkgeyBy
ZXR1cm4gZGVmYXVsdFZhbHVlOyB9Cit9OworCit2b2lkIHByb3ZpZGVDb250ZXh0RmVhdHVyZXNU
byhQYWdlKiwgQ29udGV4dEZlYXR1cmVzQ2xpZW50Kik7CisKK2lubGluZSBQYXNzUmVmUHRyPENv
bnRleHRGZWF0dXJlcz4gQ29udGV4dEZlYXR1cmVzOjpjcmVhdGUoQ29udGV4dEZlYXR1cmVzQ2xp
ZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb250ZXh0RmVhdHVyZXMo
Y2xpZW50KSk7Cit9CisKK2lubGluZSBib29sIENvbnRleHRGZWF0dXJlczo6aXNFbmFibGVkKERv
Y3VtZW50KiBkb2N1bWVudCwgRmVhdHVyZVR5cGUgdHlwZSwgYm9vbCBkZWZhdWx0VmFsdWUpIGNv
bnN0Cit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsK
KyAgICByZXR1cm4gbV9jbGllbnQtPmlzRW5hYmxlZChkb2N1bWVudCwgdHlwZSwgZGVmYXVsdFZh
bHVlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ29udGV4dEZl
YXR1cmVzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IDMyMGFlZjk4MjA5YTVl
Yjg0YTdlNzUyOGZjYjNiNTY0OTY4NTg3NzguLjE0OGZjM2VjOTgyYzk4ZjZmYmQyNDliY2JiY2U1
MTkzYmMzYjc5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtNDQsNiArNDQs
NyBAQAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuY3BwIgogI2luY2x1ZGUgIkNvbnRhaW5lck5v
ZGVBbGdvcml0aG1zLmNwcCIKICNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5j
cHAiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmNwcCIKICNpbmNsdWRlICJDdXN0b21FdmVu
dC5jcHAiCiAjaW5jbHVkZSAiRE9NQ29yZUV4Y2VwdGlvbi5jcHAiCiAjaW5jbHVkZSAiRE9NSW1w
bGVtZW50YXRpb24uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxl
bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAK
aW5kZXggNGQzZDg1MzNhZDBhMmQzZDk3NGNlYzY5NjRmMjI3Mjg4YjZlNjFjNy4uNjM1ZTliNWZm
N2VmZjNmYTM3MjI0ZDk2YmZiMzNiMGQxZjQ5ODFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
SW1wbGVtZW50YXRpb24uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJDb250ZW50
VHlwZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVh
dHVyZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtMjk1LDYgKzI5Niw4IEBAIFBhc3NSZWZQ
dHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25zdCBTdHJp
bmcmIG5hbWVzcGFjZVVSCiAgICAgICAgIGRvYyA9IERvY3VtZW50OjpjcmVhdGUoMCwgS1VSTCgp
KTsKIAogICAgIGRvYy0+c2V0U2VjdXJpdHlPcmlnaW4obV9kb2N1bWVudC0+c2VjdXJpdHlPcmln
aW4oKSk7CisgICAgZG9jLT5zZXRGZWF0dXJlU3dpdGNoKG1fZG9jdW1lbnQtPmZlYXR1cmVTd2l0
Y2goKSk7CisgICAgQ29udGV4dEZlYXR1cmVzOjpwcm92aWRlVG8oZG9jLmdldCgpLCBtX2RvY3Vt
ZW50LT5wYWdlKCkpOwogCiAgICAgUmVmUHRyPE5vZGU+IGRvY3VtZW50RWxlbWVudDsKICAgICBp
ZiAoIXF1YWxpZmllZE5hbWUuaXNFbXB0eSgpKSB7CkBAIC0zNzIsNiArMzc1LDcgQEAgUGFzc1Jl
ZlB0cjxIVE1MRG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVIVE1MRG9jdW1lbnQo
Y29uc3QgU3RyaW5nJiB0aXQKICAgICBkLT53cml0ZSgiPCFkb2N0eXBlIGh0bWw+PGh0bWw+PGJv
ZHk+PC9ib2R5PjwvaHRtbD4iKTsKICAgICBkLT5zZXRUaXRsZSh0aXRsZSk7CiAgICAgZC0+c2V0
U2VjdXJpdHlPcmlnaW4obV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgZC0+c2V0
RmVhdHVyZVN3aXRjaChtX2RvY3VtZW50LT5mZWF0dXJlU3dpdGNoKCkpOwogICAgIHJldHVybiBk
LnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjZlYWU4Yzc4YTgw
MWQ1MTIzY2VjOWRhYzhkNDA5YjYzMTdkMjU4Ny4uMmJjZGE3YmEyNTUwMjJiZWFlYmUyYzlhMzhh
NTMxZjM4YmE5Mzc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00NCw2ICs0NCw3IEBA
CiAjaW5jbHVkZSAiQ29tbWVudC5oIgogI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJD
b250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNp
bmNsdWRlICJDb29raWVKYXIuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIkRPTVNlbGVjdGlvbi5oIgpAQCAtNTA1LDYgKzUwNiw4IEBAIERvY3VtZW50OjpEb2N1
bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlz
SFRNTCkKICAgICBtX2lnbm9yZUF1dG9mb2N1cyA9IGZhbHNlOwogCiAgICAgbV9mcmFtZSA9IGZy
YW1lOworICAgIGlmIChtX2ZyYW1lKQorICAgICAgICBDb250ZXh0RmVhdHVyZXM6OnByb3ZpZGVU
byh0aGlzLCBtX2ZyYW1lLT5wYWdlKCkpOwogCiAgICAgLy8gV2UgZGVwZW5kIG9uIHRoZSB1cmwg
Z2V0dGluZyBpbW1lZGlhdGVseSBzZXQgaW4gc3ViZnJhbWVzLCBidXQgd2UKICAgICAvLyBhbHNv
IGRlcGVuZCBvbiB0aGUgdXJsIE5PVCBnZXR0aW5nIGltbWVkaWF0ZWx5IHNldCBpbiBvcGVuZWQg
d2luZG93cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCmluZGV4IGEwNmZmZDQ1ZjM5ZjIwMzMyMzY3
M2JiMmNkMWMzN2NjOTk0MGYzOWEuLjg4OTE0MzUzMDA4ZGVmOTY3NGE3MTU2NTQ5MGY1ZjgxNTUx
N2MzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1
ZGUgIlBvc2l0aW9uLmgiCiAKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
aCIKLSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4
dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4
dEJveC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTgyLDcgKzgyLDcgQEAgUG9zaXRpb246
OlBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgTGVnYWN5RWRpdGluZ09mZnNl
dCBvZmZzZXQpCiAgICAgLCBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKHRydWUpCiB7CiAjaWYg
RU5BQkxFKFNIQURPV19ET00pCi0gICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYgQ29udGV4dEVu
YWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUtPmRvY3VtZW50KCkt
PmRvbVdpbmRvdygpKSkKKyAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBDb250ZXh0RmVhdHVy
ZXM6OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpKSkKICAgICAgICAg
ICAgfHwgIW1fYW5jaG9yTm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAj
ZWxzZQogICAgIEFTU0VSVCghbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93
Um9vdCgpKTsKQEAgLTk2LDcgKzk2LDcgQEAgUG9zaXRpb246OlBvc2l0aW9uKFBhc3NSZWZQdHI8
Tm9kZT4gYW5jaG9yTm9kZSwgQW5jaG9yVHlwZSBhbmNob3JUeXBlKQogICAgICwgbV9pc0xlZ2Fj
eUVkaXRpbmdQb3NpdGlvbihmYWxzZSkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBB
U1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01F
bmFibGVkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgIEFTU0VS
VCgobV9hbmNob3JOb2RlICYmIENvbnRleHRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2Fu
Y2hvck5vZGUtPmRvY3VtZW50KCkpKQogICAgICAgICAgICB8fCAhbV9hbmNob3JOb2RlIHx8ICFt
X2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbHNlCiAgICAgQVNTRVJUKCFtX2FuY2hv
ck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwpAQCAtMTE0LDcgKzExNCw3
IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IGFuY2hvck5vZGUsIGludCBv
ZmZzZXQsIEFuY2hvclR5cGUgYW5jaG9yVHlwCiAgICAgLCBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0
aW9uKGZhbHNlKQogewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIEFTU0VSVCgobV9hbmNo
b3JOb2RlICYmIENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNo
b3JOb2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAgQVNTRVJUKChtX2FuY2hvck5v
ZGUgJiYgQ29udGV4dEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKG1fYW5jaG9yTm9kZS0+ZG9j
dW1lbnQoKSkpCiAgICAgICAgICAgIHx8ICFtX2FuY2hvck5vZGUgfHwgIWVkaXRpbmdJZ25vcmVz
Q29udGVudChtX2FuY2hvck5vZGUuZ2V0KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9v
dCgpKTsKICNlbHNlCiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwgIWVkaXRpbmdJZ25vcmVz
Q29udGVudChtX2FuY2hvck5vZGUuZ2V0KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9v
dCgpKTsKQEAgLTg1Nyw3ICs4NTcsNyBAQCBDb250YWluZXJOb2RlKiBQb3NpdGlvbjo6ZmluZFBh
cmVudChjb25zdCBOb2RlKiBub2RlKQogICAgIC8vIEZJWE1FOiBTZWUgaHR0cDovL3dlYi51Zy84
MjY5NwogCiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgaWYgKENvbnRleHRFbmFibGVkRmVh
dHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQor
ICAgIGlmIChDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobm9kZS0+ZG9jdW1lbnQo
KSkpCiAgICAgICAgIHJldHVybiBub2RlLT5wYXJlbnROb2RlKCk7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAppbmRleCA4MDAyMjAxYzFlMDM0NWJlMmYzNzIw
MzQzNzZiZTE2YzIzNWMxODk0Li5hZGZmYTVhMzExZDgzNzMzZjdiMWI4YzVlMTNhOGJlMTRmMzI5
Nzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5oIgogCiAjaW5jbHVkZSAiQ29udGVudFNl
Y3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAi
SFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKQEAgLTM3
LDYgKzM4LDcgQEAgU2VjdXJpdHlDb250ZXh0OjpTZWN1cml0eUNvbnRleHQoKQogICAgIDogbV9t
YXlEaXNwbGF5U2VhbWxlc3NXaXRoUGFyZW50KGZhbHNlKQogICAgICwgbV9oYXZlSW5pdGlhbGl6
ZWRTZWN1cml0eU9yaWdpbihmYWxzZSkKICAgICAsIG1fc2FuZGJveEZsYWdzKFNhbmRib3hOb25l
KQorICAgICwgbV9mZWF0dXJlU3dpdGNoKENvbnRleHRGZWF0dXJlczo6ZGVmYXVsdFN3aXRjaCgp
KQogewogfQogCkBAIC0xMTksNCArMTIxLDkgQEAgU2FuZGJveEZsYWdzIFNlY3VyaXR5Q29udGV4
dDo6cGFyc2VTYW5kYm94UG9saWN5KGNvbnN0IFN0cmluZyYgcG9saWN5KQogICAgIHJldHVybiBm
bGFnczsKIH0KIAordm9pZCBTZWN1cml0eUNvbnRleHQ6OnNldEZlYXR1cmVTd2l0Y2goUGFzc1Jl
ZlB0cjxDb250ZXh0RmVhdHVyZXM+IGZlYXR1cmUpCit7CisgICAgbV9mZWF0dXJlU3dpdGNoID0g
ZmVhdHVyZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5oCmluZGV4IGZj
OWRmM2UzNDI1ZTA2Mjg0OWUwYWRjODcxNGJlZjljYWQ2MDE3ZTYuLjljZWE3YzFmODk4MDRkNjJk
ZGYzZDU4MjA2MDU3NjA5OWJjMzQyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
ZWN1cml0eUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0
LmgKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTZWN1cml0
eU9yaWdpbjsKIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGljeTsKK2NsYXNzIENvbnRleHRGZWF0
dXJlczsKIGNsYXNzIEtVUkw7CiAKIGVudW0gU2FuZGJveEZsYWcgewpAQCAtNTksNiArNjAsNyBA
QCBwdWJsaWM6CiAgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyBy
ZXR1cm4gbV9zZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIFNhbmRib3hGbGFncyBzYW5kYm94
RmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX3NhbmRib3hGbGFnczsgfQogICAgIENvbnRlbnRTZWN1
cml0eVBvbGljeSogY29udGVudFNlY3VyaXR5UG9saWN5KCkgeyByZXR1cm4gbV9jb250ZW50U2Vj
dXJpdHlQb2xpY3kuZ2V0KCk7IH0KKyAgICBDb250ZXh0RmVhdHVyZXMqIGZlYXR1cmVTd2l0Y2go
KSB7IHJldHVybiBtX2ZlYXR1cmVTd2l0Y2guZ2V0KCk7IH0KIAogICAgIGJvb2wgaXNTZWN1cmVU
cmFuc2l0aW9uVG8oY29uc3QgS1VSTCYpIGNvbnN0OwogCkBAIC02OSw2ICs3MSw3IEBAIHB1Ymxp
YzoKICAgICAvLyBOb3RlOiBJdCBpcyBkYW5nZXJvdXMgdG8gY2hhbmdlIHRoZSBzZWN1cml0eSBv
cmlnaW4gb2YgYSBzY3JpcHQgY29udGV4dAogICAgIC8vICAgICAgIHRoYXQgYWxyZWFkeSBjb250
YWlucyBjb250ZW50LgogICAgIHZvaWQgc2V0U2VjdXJpdHlPcmlnaW4oUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4pOworICAgIHZvaWQgc2V0RmVhdHVyZVN3aXRjaChQYXNzUmVmUHRyPENvbnRl
eHRGZWF0dXJlcz4pOwogCiAgICAgc3RhdGljIFNhbmRib3hGbGFncyBwYXJzZVNhbmRib3hQb2xp
Y3koY29uc3QgU3RyaW5nJiBwb2xpY3kpOwogCkBAIC05Miw2ICs5NSw3IEBAIHByaXZhdGU6CiAg
ICAgU2FuZGJveEZsYWdzIG1fc2FuZGJveEZsYWdzOwogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4gbV9zZWN1cml0eU9yaWdpbjsKICAgICBPd25QdHI8Q29udGVudFNlY3VyaXR5UG9saWN5PiBt
X2NvbnRlbnRTZWN1cml0eVBvbGljeTsKKyAgICBSZWZQdHI8Q29udGV4dEZlYXR1cmVzPiBtX2Zl
YXR1cmVTd2l0Y2g7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGUuY3BwCmluZGV4IDgzMjJmY2IzOGFmNTk2MDg2OTBkMTgyNzg2Y2M4OTc4ZTk2NjRhZGUu
LmI1NDY1OTFmN2ViMTJkODA4YTIzZWEyNjM0Y2Q4ODRjNTNhMzA3ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCiAK
ICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCi0jaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0
dXJlcy5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkRPTVNlbGVj
dGlvbi5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBA
IC0xNTAsNyArMTUwLDcgQEAgRE9NU2VsZWN0aW9uKiBUcmVlU2NvcGU6OmdldFNlbGVjdGlvbigp
IGNvbnN0CiAgICAgLy8gYXMgYSBjb250YWluZXIuIEl0IGlzIG5vdyBlbmFibGVkIG9ubHkgaWYg
cnVudGltZSBTaGFkb3cgRE9NIGZlYXR1cmUgaXMgZW5hYmxlZC4KICAgICAvLyBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyNjk3CiAjaWYgRU5BQkxFKFNIQURP
V19ET00pCi0gICAgaWYgKENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQo
cm9vdE5vZGUoKS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKSB7CisgICAgaWYgKENvbnRleHRG
ZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChyb290Tm9kZSgpLT5kb2N1bWVudCgpKSkgewogICAg
ICAgICBtX3NlbGVjdGlvbiA9IERPTVNlbGVjdGlvbjo6Y3JlYXRlKHRoaXMpOwogICAgICAgICBy
ZXR1cm4gbV9zZWxlY3Rpb24uZ2V0KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL21ha2VfbmFtZXMucGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbApp
bmRleCBhNmNiMDQyZGZlMDI2YzU4ODRhZjcwMDdjMGE2MzZiMTNhYzkxODVmLi42ZTBhMDYxYzg2
ZjkzMzYzMTdmOTA1NWRhNjQxN2JlMDEzOGJiYzRhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vbWFrZV9uYW1lcy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5w
bApAQCAtMzc4LDcgKzM3OCw3IEBAIEVORAogICAgIG15ICRjb250ZXh0Q29uZGl0aW9uYWwgPSAk
ZW5hYmxlZFRhZ3N7JHRhZ05hbWV9e2NvbnRleHRDb25kaXRpb25hbH07CiAgICAgaWYgKCRjb250
ZXh0Q29uZGl0aW9uYWwpIHsKICAgICAgICAgcHJpbnQgRiA8PEVORAotICAgIGlmICghQ29udGV4
dEVuYWJsZWRGZWF0dXJlczo6JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChkb2N1bWVudC0+
ZG9tV2luZG93KCkpKQorICAgIGlmICghQ29udGV4dEZlYXR1cmVzOjoke2NvbnRleHRDb25kaXRp
b25hbH1FbmFibGVkKGRvY3VtZW50KSkKICAgICAgICAgcmV0dXJuIDA7CiBFTkQKIDsKQEAgLTgw
NCw3ICs4MDQsNyBAQCBwcmludENvbmRpdGlvbmFsRWxlbWVudEluY2x1ZGVzKCRGKTsKIAogcHJp
bnQgRiA8PEVORAogCi0jaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1
ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKSB8
fCBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTEwMTMsNyArMTAxMyw3
IEBAIEVORAogICAgICAgICAgICAgICAgIHByaW50IEYgPDxFTkQKIHN0YXRpYyBKU0RPTVdyYXBw
ZXIqIGNyZWF0ZSR7SlNJbnRlcmZhY2VOYW1lfVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVz
cGFjZX1FbGVtZW50PiBlbGVtZW50KQogewotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJl
czo6JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChlbGVtZW50LT5kb2N1bWVudCgpLT5kb21X
aW5kb3coKSkpIHsKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlczo6JHtjb250ZXh0Q29uZGl0aW9u
YWx9RW5hYmxlZChlbGVtZW50LT5kb2N1bWVudCgpKSkgewogICAgICAgICBBU1NFUlQoIWVsZW1l
bnQgfHwgZWxlbWVudC0+aXMkcGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9KCkpOwog
ICAgICAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgJHBh
cmFtZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfSwgZWxlbWVudC5nZXQoKSk7CiAgICAgfQpA
QCAtMTA1MCw3ICsxMDUwLDcgQEAgRU5ECiAgICAgICAgICAgICAgICAgcHJpbnQgRiA8PEVORAog
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjcmVhdGUke0pTSW50ZXJmYWNlTmFtZX1XcmFw
cGVyKCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50KiBlbGVtZW50LCB2ODo6SXNvbGF0ZSog
aXNvbGF0ZSkKIHsKLSAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7Y29udGV4dENv
bmRpdGlvbmFsfUVuYWJsZWQoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAg
IGlmICghQ29udGV4dEZlYXR1cmVzOjoke2NvbnRleHRDb25kaXRpb25hbH1FbmFibGVkKGVsZW1l
bnQtPmRvY3VtZW50KCkpKQogICAgICAgICByZXR1cm4gVjgkcGFyYW1ldGVyc3tmYWxsYmFja0lu
dGVyZmFjZU5hbWV9Ojp3cmFwKHRvJHBhcmFtZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfShl
bGVtZW50KSwgaXNvbGF0ZSk7CiAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8JHtKU0ludGVy
ZmFjZU5hbWV9Kj4oZWxlbWVudCksIGlzb2xhdGUpOwogfQpAQCAtMTExMSw3ICsxMTExLDcgQEAg
c3ViIHByaW50V3JhcHBlckZhY3RvcnlDcHBGaWxlCiAKICAgICBwcmludCBGIDw8RU5ECiAKLSNp
bmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1
cmVzLmgiCiAKICNpZiBFTkFCTEUoVklERU8pCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFya3VwLmNwcAppbmRleCA5YWU3ZTcyYzJmMjZlOTc0MGFkNGE1ZjBjYjI0YjE5
OTQ0OGQ4MDcxLi4yMmE5OGRiMDdkZDViODc0NjRhZTM3YWM0YmM5Yjg5YWYxYTgxODJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiQ1NT
VmFsdWUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2hpbGRM
aXN0TXV0YXRpb25TY29wZS5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1
ZGUgIkRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCkBAIC03MzAsNiArNzMxLDcgQEAgUGFzc1Jl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXBXaXRoQ29udGV4
dChEb2N1bWVudCogZG9jdW0KIAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiB0YWdnZWRG
cmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cChkb2N1bWVudCwgdGFnZ2VkTWFya3Vw
LnRvU3RyaW5nKCksIGJhc2VVUkwsIHNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIFJlZlB0cjxE
b2N1bWVudD4gdGFnZ2VkRG9jdW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlKDAsIEtVUkwoKSk7Cisg
ICAgdGFnZ2VkRG9jdW1lbnQtPnNldEZlYXR1cmVTd2l0Y2goZG9jdW1lbnQtPmZlYXR1cmVTd2l0
Y2goKSk7CiAgICAgdGFnZ2VkRG9jdW1lbnQtPnRha2VBbGxDaGlsZHJlbkZyb20odGFnZ2VkRnJh
Z21lbnQuZ2V0KCkpOwogCiAgICAgUmVmUHRyPE5vZGU+IG5vZGVCZWZvcmVDb250ZXh0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKaW5kZXggNjdkZGNlYjRmYWEzZmE3
ZWNkYTUzNDU3NzM2ZmM1ZDZjZTM4ZWY0Yy4uZjA3M2EwZDE5YmYxOTczNDEzMGFlNmE2ZjZiOWI1
MjJkZTU2MWUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCkBA
IC0yNSw3ICsyNSw3IEBACiAjaW5jbHVkZSAiSFRNTFN0eWxlRWxlbWVudC5oIgogCiAjaW5jbHVk
ZSAiQXR0cmlidXRlLmgiCi0jaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorI2lu
Y2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudFNlbmRlci5oIgpAQCAtMTA1LDcgKzEwNSw3IEBA
IHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0ZXJXaXRoU2NvcGluZ05vZGUoKQogICAgIEFT
U0VSVChpbkRvY3VtZW50KCkpOwogICAgIGlmIChtX2lzUmVnaXN0ZXJlZFdpdGhTY29waW5nTm9k
ZSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c3R5
bGVTY29wZWRFbmFibGVkKGRvY3VtZW50KCkpKQorICAgIGlmICghQ29udGV4dEZlYXR1cmVzOjpz
dHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIENv
bnRhaW5lck5vZGUqIHNjb3BlID0gcGFyZW50Tm9kZSgpOwpAQCAtMTMwLDEwICsxMzAsMTAgQEAg
dm9pZCBIVE1MU3R5bGVFbGVtZW50Ojp1bnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKENvbnRhaW5l
ck5vZGUqIHNjb3BlKQogewogICAgIC8vIE5vdGU6IFdlIGNhbm5vdCByZWx5IG9uIHRoZSAnc2Nv
cGVkJyBlbGVtZW50IHN0aWxsIGJlaW5nIHByZXNlbnQgd2hlbiB0aGlzIG1ldGhvZCBpcyBpbnZv
a2VkLgogICAgIC8vIFRoZXJlZm9yZSB3ZSBjYW5ub3QgcmVseSBvbiBzY29wZWQoKSEKLSAgICBB
U1NFUlQobV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05vZGUgfHwgIUNvbnRleHRFbmFibGVkRmVh
dHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSk7CisgICAgQVNTRVJUKG1faXNS
ZWdpc3RlcmVkV2l0aFNjb3BpbmdOb2RlIHx8ICFDb250ZXh0RmVhdHVyZXM6OnN0eWxlU2NvcGVk
RW5hYmxlZChkb2N1bWVudCgpKSk7CiAgICAgaWYgKCFtX2lzUmVnaXN0ZXJlZFdpdGhTY29waW5n
Tm9kZSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6
c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50KCkpKQorICAgIGlmICghQ29udGV4dEZlYXR1cmVz
OjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IEFTU0VSVChzY29wZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9I
VE1MQ29udGVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENv
bnRlbnRFbGVtZW50LmNwcAppbmRleCAwOGI0NWQ0YWJmNTliZmM3NmU4ZTc0MDAzYzE3NmRkYzk2
MGU0YmVmLi5iMGJkZDg4NWY3OGVjNjcwZjhlNzVjNDg5MzAxMmE2MjFkOTU1NGRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKQEAg
LTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnREaXN0cmlidXRvci5oIgogI2luY2x1
ZGUgIkNvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCi0jaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0
dXJlcy5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRT
aGFkb3cuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJRdWFsaWZpZWROYW1l
LmgiCkBAIC00Myw3ICs0Myw3IEBAIHVzaW5nIEhUTUxOYW1lczo6c2VsZWN0QXR0cjsKIHN0YXRp
YyBjb25zdCBRdWFsaWZpZWROYW1lJiBjb250ZW50VGFnTmFtZShEb2N1bWVudCogZG9jdW1lbnQp
CiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1
cmVzOjpzaGFkb3dET01FbmFibGVkKGRvY3VtZW50LT5kb21XaW5kb3coKSkpCisgICAgaWYgKCFD
b250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoZG9jdW1lbnQpKQogICAgICAgICByZXR1
cm4gSFRNTE5hbWVzOjp3ZWJraXRTaGFkb3dDb250ZW50VGFnOwogICAgIHJldHVybiBIVE1MTmFt
ZXM6OmNvbnRlbnRUYWc7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0
Y2hTdXBwb3J0LmNwcAppbmRleCBiYTBkOGM4NmM1NThjOGZhOGUyNTNlZTk2MWIwMDhiZDA2NTNl
MjUwLi4yMGVkOTBiZWFiYWYwZTM3ZjA2M2I3YTZkMjliMDE5ODRiNDFiYTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcApAQCAtMzYsNiArMzYsNyBA
QAogCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQmFzZTY0LmgiCisjaW5jbHVk
ZSAiQ29udGV4dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiRE9NRWRpdG9yLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCkBAIC04OSw2ICs5MCw3
IEBAIERPTVBhdGNoU3VwcG9ydDo6fkRPTVBhdGNoU3VwcG9ydCgpIHsgfQogdm9pZCBET01QYXRj
aFN1cHBvcnQ6OnBhdGNoRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXApCiB7CiAgICAgUmVm
UHRyPEhUTUxEb2N1bWVudD4gbmV3RG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6OmNyZWF0ZSgwLCBL
VVJMKCkpOworICAgIG5ld0RvY3VtZW50LT5zZXRGZWF0dXJlU3dpdGNoKG1fZG9jdW1lbnQtPmZl
YXR1cmVTd2l0Y2goKSk7CiAgICAgUmVmUHRyPERvY3VtZW50UGFyc2VyPiBwYXJzZXIgPSBIVE1M
RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZShuZXdEb2N1bWVudC5nZXQoKSwgZmFsc2UpOwogICAgIHBh
cnNlci0+aW5zZXJ0KG1hcmt1cCk7IC8vIFVzZSBpbnNlcnQoKSBzbyB0aGF0IHRoZSBwYXJzZXIg
d2lsbCBub3QgeWllbGQuCiAgICAgcGFyc2VyLT5maW5pc2goKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZjVjN2E3MjY2YTYwMGRlYTUyOWJmOWQxM2Mx
N2JkZTYyMGVhOWQyNy4uYmU4MTAyODdhNzBkNTVlOGU2NTZiZmYzZDY0MGFhZmE1MzNiMTA2YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTMxMSwxMiAr
MzExLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dE
aXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBTZWN1cml0
eU9yaWdpbiosIGNvbnN0IEtVUkwmKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KICAg
ICAgICAgdmlydHVhbCBib29sIGFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJs
ZWRQZXJTZXR0aW5ncywgU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJikgeyByZXR1cm4gZW5h
YmxlZFBlclNldHRpbmdzOyB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGFsbG93U2hhZG93RE9N
KGJvb2wgZW5hYmxlZEFzUnVudGltZUZlYXR1cmVzKSB7IHJldHVybiBlbmFibGVkQXNSdW50aW1l
RmVhdHVyZXM7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGFsbG93U3R5bGVTY29wZWQoYm9vbCBl
bmFibGVkQXNSdW50aW1lRmVhdHVyZXMpIHsgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJl
czsgfQotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dQ
YWdlUG9wdXAoKSB7IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCi0KICAgICAgICAgLy8gVGhpcyBj
YWxsYmFjayBub3RpZmllcyB0aGUgY2xpZW50IHRoYXQgdGhlIGZyYW1lIHdhcyBhYm91dCB0byBy
dW4KICAgICAgICAgLy8gSmF2YVNjcmlwdCBidXQgZGlkIG5vdCBiZWNhdXNlIGFsbG93U2NyaXB0
IHJldHVybmVkIGZhbHNlLiBXZQogICAgICAgICAvLyBoYXZlIGEgc2VwYXJhdGUgY2FsbGJhY2sg
aGVyZSBiZWNhdXNlIHRoZXJlIGFyZSBhIG51bWJlciBvZiBwbGFjZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlZkNvdW50ZWRTdXBwbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SZWZDb3VudGVkU3VwcGxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxN2Q1OTVk
YTNhYmIxYjZmYWMwOTc0YTQ3NWMzZTFlM2U4YjUwNmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWZDb3VudGVkU3VwcGxlbWVudC5oCkBAIC0wLDAgKzEsNzEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgUmVmQ291bnRlZFN1cHBsZW1lbnRfaAorI2RlZmluZSBSZWZDb3VudGVkU3VwcGxlbWVudF9I
CisKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Rl
bXBsYXRlPGNsYXNzIFQsIGNsYXNzIFM+CitjbGFzcyBSZWZDb3VudGVkU3VwcGxlbWVudCA6IHB1
YmxpYyBSZWZDb3VudGVkPFM+IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIFJlZkNvdW50ZWRTdXBw
bGVtZW50PFQsIFM+IFRoaXNUeXBlOworCisgICAgdmlydHVhbCB+UmVmQ291bnRlZFN1cHBsZW1l
bnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaG9zdERlc3Ryb3llZCgpIHsgfQorCisgICAgY2xh
c3MgV3JhcHBlciA6IHB1YmxpYyBTdXBwbGVtZW50PFQ+IHsKKyAgICBwdWJsaWM6CisgICAgICAg
IGV4cGxpY2l0IFdyYXBwZXIoUGFzc1JlZlB0cjxUaGlzVHlwZT4gd3JhcHBlZCkgOiBtX3dyYXBw
ZWQod3JhcHBlZCkgeyB9CisgICAgICAgIHZpcnR1YWwgfldyYXBwZXIoKSB7IG1fd3JhcHBlZC0+
aG9zdERlc3Ryb3llZCgpOyAgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNSZWZDb3VudGVkV3Jh
cHBlcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgVGhpc1R5cGUq
IHdyYXBwZWQoKSBjb25zdCB7IHJldHVybiBtX3dyYXBwZWQuZ2V0KCk7IH0KKyAgICBwcml2YXRl
OgorCisgICAgICAgIFJlZlB0cjxUaGlzVHlwZT4gbV93cmFwcGVkOworICAgIH07CisKKyAgICBz
dGF0aWMgdm9pZCBwcm92aWRlVG8oU3VwcGxlbWVudGFibGU8VD4qIGhvc3QsIGNvbnN0IEF0b21p
Y1N0cmluZyYga2V5LCBQYXNzUmVmUHRyPFRoaXNUeXBlPiBzdXBwbGVtZW50KQorICAgIHsKKyAg
ICAgICAgaG9zdC0+cHJvdmlkZVN1cHBsZW1lbnQoa2V5LCBhZG9wdFB0cihuZXcgV3JhcHBlcihz
dXBwbGVtZW50KSkpOworICAgIH0KKworICAgIHN0YXRpYyBUaGlzVHlwZSogZnJvbShTdXBwbGVt
ZW50YWJsZTxUPiogaG9zdCwgY29uc3QgQXRvbWljU3RyaW5nJiBrZXkpCisgICAgeworICAgICAg
ICBTdXBwbGVtZW50PFQ+KiBmb3VuZCA9IGhvc3QtPnJlcXVpcmVTdXBwbGVtZW50KGtleSk7Cisg
ICAgICAgIGlmICghZm91bmQpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgQVNTRVJU
KGZvdW5kLT5pc1JlZkNvdW50ZWRXcmFwcGVyKCkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8V3JhcHBlcio+KGZvdW5kKS0+d3JhcHBlZCgpOworICAgIH0KK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlZkNvdW50ZWRTdXBwbGVtZW50X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oCmluZGV4IDg0ZGM5MDZlMmFmMzQ4YTM0ZDg1
YjZiOWQ4M2M2OTcyZWMyZDY2ZTEuLmIwZGY2Y2ZjNWI5MTk3ZmIwNDgyYWNmNTNkYTc5YTJlYWZk
YWUwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxlbWVudGFibGUuaApAQCAtNDAs
NiArNDAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogY2xhc3MgU3VwcGxlbWVudCB7CiBwdWJs
aWM6CiAgICAgdmlydHVhbCB+U3VwcGxlbWVudCgpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1Jl
ZkNvdW50ZWRXcmFwcGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHN0YXRpYyB2
b2lkIHByb3ZpZGVUbyhTdXBwbGVtZW50YWJsZTxUPiogaG9zdCwgY29uc3QgQXRvbWljU3RyaW5n
JiBrZXksIFBhc3NPd25QdHI8U3VwcGxlbWVudDxUPiA+IHN1cHBsZW1lbnQpCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggN2M1ZTViNWYwODdiMDU4ODg1NTQ2
NTQxNTcyOGI5ZGNmNjIwNjU0ZS4uOTBlYzVjMDFlYTgxMDc0YTBkMDY0ZjU0NWYzZmE3MWIwN2Ez
YTAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yNSw2ICsyNSw3
IEBACiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkJsb2JEYXRhLmgiCiAjaW5jbHVkZSAi
Q29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRE9NRm9ybURh
dGEuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgpAQCAtMjUzLDYgKzI1NCw3IEBA
IERvY3VtZW50KiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoRXhjZXB0aW9uQ29kZSYgZWMp
CiAgICAgICAgICAgICAvLyBGSVhNRTogU2V0IExhc3QtTW9kaWZpZWQuCiAgICAgICAgICAgICBt
X3Jlc3BvbnNlRG9jdW1lbnQtPnNldENvbnRlbnQobV9yZXNwb25zZUJ1aWxkZXIudG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkpOwogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRT
ZWN1cml0eU9yaWdpbihzZWN1cml0eU9yaWdpbigpKTsKKyAgICAgICAgICAgIG1fcmVzcG9uc2VE
b2N1bWVudC0+c2V0RmVhdHVyZVN3aXRjaChkb2N1bWVudCgpLT5mZWF0dXJlU3dpdGNoKCkpOwog
ICAgICAgICAgICAgaWYgKCFtX3Jlc3BvbnNlRG9jdW1lbnQtPndlbGxGb3JtZWQoKSkKICAgICAg
ICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSAwOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXAKaW5kZXggOTkyMDRiODg2YWI3ZWMxY2Y0ZDI0YTU5M2NjZGNkMDI3ZDU0
OTkwMS4uYjE5YjNkZmUyNGU4OTcxNWVjZGNhOTIzOTIyYzY0ZWNkYmUyNDZlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMzcxLDYgKzM3MSw4IEBACiAgICAgICAgICAgICAgICAg
J3NyYy9Db21wb3NpdGlvblVuZGVybGluZUJ1aWxkZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9Db21wb3NpdGlvblVuZGVybGluZVZlY3RvckJ1aWxkZXIuY3BwJywKICAgICAgICAgICAgICAg
ICAnc3JjL0NvbXBvc2l0aW9uVW5kZXJsaW5lVmVjdG9yQnVpbGRlci5oJywKKyAgICAgICAgICAg
ICAgICAnc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwJywKKyAgICAgICAgICAgICAg
ICAnc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0NvbnRl
eHRNZW51Q2xpZW50SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL0RhdGFiYXNlT2JzZXJ2
ZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBl
cm1pc3Npb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1p
c3Npb25DbGllbnQuaAppbmRleCAxMTZhMzgzY2E4YzI4YjQ3ODlhZTczNWZmMWU0NGNkMzI3ZGRl
YzgzLi4wMTRjMmMzZjQ0MDIzNTQyZDYxYjE4OWM1MjI1Zjc0MDQ2NWNjOGU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCkBA
IC0zMyw2ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJEb2N1bWVu
dDsKIGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBXZWJT
dHJpbmc7CkBAIC05MCw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dX
cml0ZVRvQ2xpcGJvYXJkKFdlYkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRl
ZmF1bHRWYWx1ZTsgfQogCiAgICAgLy8gQ29udHJvbHMgd2hldGhlciBlbmFibGluZyBXZWIgQ29t
cG9uZW50cyBBUEkgZm9yIHRoaXMgZnJhbWUuCi0gICAgdmlydHVhbCBib29sIGFsbG93V2ViQ29t
cG9uZW50cyhXZWJGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBkZWZhdWx0VmFs
dWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dXZWJDb21wb25lbnRzKGNvbnN0IFdlYkRvY3Vt
ZW50JiwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQogCiAgICAg
Ly8gTm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBmcmFtZSB3b3VsZCBoYXZlIGluc3RhbnRp
YXRlZCBhIHBsdWctaW4gaWYgcGx1Zy1pbnMgd2VyZSBlbmFibGVkLgogICAgIHZpcnR1YWwgdm9p
ZCBkaWROb3RBbGxvd1BsdWdpbnMoV2ViRnJhbWUqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWFkYTA3Nzg3NjRmMDI2ZWE4NjZlNzlhNmZhOWMxNTY4ZGJkZGZhNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVu
dEltcGwuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJXZWJEb2N1bWVudC5oIgorI2luY2x1ZGUgIldlYlBlcm1pc3Npb25DbGllbnQuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbDo6
aXNFbmFibGVkKFdlYkNvcmU6OkRvY3VtZW50KiBkb2N1bWVudCwgV2ViQ29yZTo6Q29udGV4dEZl
YXR1cmVzOjpGZWF0dXJlVHlwZSB0eXBlLCBib29sIGRlZmF1bHRWYWx1ZSkKK3sKKyAgICBpZiAo
IW1fY2xpZW50KQorICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworCisgICAgc3dpdGNoICh0
eXBlKSB7CisgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OlNoYWRvd0RPTToKKyAg
ICBjYXNlIFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlczo6U3R5bGVTY29wZWQ6CisgICAgICAgIHJl
dHVybiBtX2NsaWVudC0+YWxsb3dXZWJDb21wb25lbnRzKFdlYkRvY3VtZW50KGRvY3VtZW50KSwg
ZGVmYXVsdFZhbHVlKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVl
OworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWExZjk1NDhkOTI4MDIwYzYwNmQ0ZmRiZWY0OTQxNTQzYmIyYmI4OQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudElt
cGwuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsX2gK
KyNkZWZpbmUgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbF9oCisKKyNpbmNsdWRlICJDb250ZXh0
RmVhdHVyZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBlcm1pc3Npb25D
bGllbnQ7CisKK2NsYXNzIENvbnRleHRGZWF0dXJlc0NsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29y
ZTo6Q29udGV4dEZlYXR1cmVzQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBDb250ZXh0RmVhdHVyZXND
bGllbnRJbXBsKCkKKyAgICAgICAgOiBtX2NsaWVudCgwKQorICAgIHsgfQorCisgICAgdmlydHVh
bCBib29sIGlzRW5hYmxlZChXZWJDb3JlOjpEb2N1bWVudCosIFdlYkNvcmU6OkNvbnRleHRGZWF0
dXJlczo6RmVhdHVyZVR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKSBPVkVSUklERTsKKyAgICB2b2lk
IHNldFBlcm1pc3Npb25DbGllbnQoV2ViUGVybWlzc2lvbkNsaWVudCogY2xpZW50KSB7IG1fY2xp
ZW50ID0gY2xpZW50OyB9CisKK3ByaXZhdGU6CisgICAgV2ViUGVybWlzc2lvbkNsaWVudCogbV9j
bGllbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIENvbnRleHRG
ZWF0dXJlc0NsaWVudEltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKaW5kZXggZGUzZjIyNzg5ZjVmYTE1YjBhY2Q4ZWQ3
NGQxZTVhZjkwZTk2OWYyYy4uZDA2MDJhOWEwZTcwNGVjZDkxMmY2ZGNhZmMxY2NjNWY5YTJhZjlm
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNs
aWVudEltcGwuY3BwCkBAIC0yMzksMjQgKzIzOSw2IEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRJ
bXBsOjphbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3Ms
CiAgICAgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsKIH0KIAotYm9vbCBGcmFtZUxvYWRlckNs
aWVudEltcGw6OmFsbG93U2hhZG93RE9NKGJvb2wgZW5hYmxlZEFzUnVudGltZUZlYXR1cmUpCi17
Ci0gICAgV2ViVmlld0ltcGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOwotICAg
IGlmICh3ZWJ2aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKLSAgICAgICAgcmV0
dXJuIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+YWxsb3dXZWJDb21wb25lbnRzKG1fd2Vi
RnJhbWUsIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlKTsKLQotICAgIHJldHVybiBlbmFibGVkQXNS
dW50aW1lRmVhdHVyZTsKLX0KLQotYm9vbCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93U3R5
bGVTY29wZWQoYm9vbCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZSkKLXsKLSAgICBXZWJWaWV3SW1w
bCogd2VidmlldyA9IG1fd2ViRnJhbWUtPnZpZXdJbXBsKCk7Ci0gICAgaWYgKHdlYnZpZXcgJiYg
d2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQotICAgICAgICByZXR1cm4gd2Vidmlldy0+cGVy
bWlzc2lvbkNsaWVudCgpLT5hbGxvd1dlYkNvbXBvbmVudHMobV93ZWJGcmFtZSwgZW5hYmxlZEFz
UnVudGltZUZlYXR1cmUpOwotCi0gICAgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlOwot
fQotCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkTm90QWxsb3dTY3JpcHQoKQogewog
ICAgIFdlYlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKaW5k
ZXggMjM2YTAxYjY1MzAyOTUxNDZhY2VhMTNiZGU1ZDBmMjM4MzdhOWZhZi4uZWNiMjBhMmZiMjVl
ZmU2NGFmZTYwZDQyNDZlNmM5OTNhZjVmMzEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKQEAgLTE5OSw4ICsxOTksNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFsbG93SW1hZ2UoYm9vbCBlbmFibGVkUGVyU2V0dGlu
Z3MsIGNvbnN0IFdlYkNvcmU6OktVUkwmIGltYWdlVVJMKTsKICAgICB2aXJ0dWFsIGJvb2wgYWxs
b3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKICAgICB2aXJ0dWFs
IGJvb2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdz
LCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKLSAgICB2
aXJ0dWFsIGJvb2wgYWxsb3dTaGFkb3dET00oYm9vbCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZSkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGFsbG93U3R5bGVTY29wZWQoYm9vbCBlbmFibGVk
QXNSdW50aW1lRmVhdHVyZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93
U2NyaXB0KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucygpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCmluZGV4IGFl
NWFhYzhhNDA3M2ZiNTg3MWQ5NzM0ZDdmNDQ3N2NhYmZjZWMzNmQuLjM1YWVjZDkzZWQwNmQ1Y2Q1
OWI4YTk1MGZhNWJhMWM4Nzg5MmRjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2Vi
UGFnZVBvcHVwSW1wbC5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29udGV4
dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93UGFnZVBvcHVwLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFbXB0eUNsaWVudHMuaCIKQEAgLTEyNywxMCAr
MTI4LDE3IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZVBvcHVwSW1wbCogbV9wb3B1cDsKIH07CiAK
LWNsYXNzIFBhZ2VQb3B1cEZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIEVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQgewotICAgIHZpcnR1YWwgYm9vbCBhbGxvd1BhZ2VQb3B1cCgpIE9WRVJSSURFIHsg
cmV0dXJuIHRydWU7IH0KK2NsYXNzIFBhZ2VQb3B1cEZlYXR1cmVzQ2xpZW50IDogcHVibGljIENv
bnRleHRGZWF0dXJlc0NsaWVudCB7CisgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZChEb2N1bWVu
dCosIENvbnRleHRGZWF0dXJlczo6RmVhdHVyZVR5cGUsIGJvb2wpIE9WRVJSSURFOwogfTsKIAor
Ym9vbCBQYWdlUG9wdXBGZWF0dXJlc0NsaWVudDo6aXNFbmFibGVkKERvY3VtZW50KiwgQ29udGV4
dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSB0eXBlLCBib29sIGRlZmF1bHRWYWx1ZSkKK3sKKyAgICBp
ZiAodHlwZSA9PSBDb250ZXh0RmVhdHVyZXM6OlBhZ2VQb3B1cCkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKK30KKwogLy8gV2ViUGFnZVBvcHVwSW1wbCAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKIFdlYlBhZ2VQb3B1cEltcGw6OldlYlBhZ2VQb3B1cEltcGwoV2ViV2lkZ2V0Q2xp
ZW50KiBjbGllbnQpCkBAIC0xODUsOCArMTkzLDEwIEBAIGJvb2wgV2ViUGFnZVBvcHVwSW1wbDo6
aW5pdFBhZ2UoKQogICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0U2NyaXB0RW5hYmxlZCh0cnVl
KTsKICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldEFsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dz
KHRydWUpOwogCi0gICAgc3RhdGljIEZyYW1lTG9hZGVyQ2xpZW50KiBwYWdlUG9wdXBGcmFtZUxv
YWRlckNsaWVudCA9ICBuZXcgUGFnZVBvcHVwRnJhbWVMb2FkZXJDbGllbnQ7Ci0gICAgUmVmUHRy
PEZyYW1lPiBmcmFtZSA9IEZyYW1lOjpjcmVhdGUobV9wYWdlLmdldCgpLCAwLCBwYWdlUG9wdXBG
cmFtZUxvYWRlckNsaWVudCk7CisgICAgc3RhdGljIENvbnRleHRGZWF0dXJlc0NsaWVudCogcGFn
ZVBvcHVwRmVhdHVyZXNDbGllbnQgPSAgbmV3IFBhZ2VQb3B1cEZlYXR1cmVzQ2xpZW50KCk7Cisg
ICAgcHJvdmlkZUNvbnRleHRGZWF0dXJlc1RvKG1fcGFnZS5nZXQoKSwgcGFnZVBvcHVwRmVhdHVy
ZXNDbGllbnQpOworICAgIHN0YXRpYyBGcmFtZUxvYWRlckNsaWVudCogZW1wdHlGcmFtZUxvYWRl
ckNsaWVudCA9ICBuZXcgRW1wdHlGcmFtZUxvYWRlckNsaWVudCgpOworICAgIFJlZlB0cjxGcmFt
ZT4gZnJhbWUgPSBGcmFtZTo6Y3JlYXRlKG1fcGFnZS5nZXQoKSwgMCwgZW1wdHlGcmFtZUxvYWRl
ckNsaWVudCk7CiAgICAgZnJhbWUtPnNldFZpZXcoRnJhbWVWaWV3OjpjcmVhdGUoZnJhbWUuZ2V0
KCkpKTsKICAgICBmcmFtZS0+aW5pdCgpOwogICAgIGZyYW1lLT52aWV3KCktPnJlc2l6ZShtX3Bv
cHVwQ2xpZW50LT5jb250ZW50U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmNwcAppbmRleCBhNDQwOTdiYTRiODdhOTI3ZmM4MzAyODljYmE0ZjhmZTliZDc3
NmIwLi5kNGQ1NmE3YTNkMGJlOTFkOGFmZmU0ZDlmOGVhYzhiN2Q1NjQzMjIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAj
aW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiQ29t
cG9zaXRpb25VbmRlcmxpbmVWZWN0b3JCdWlsZGVyLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1
cmVzQ2xpZW50SW1wbC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCiAjaW5jbHVkZSAiQ29u
dGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCkBAIC0z
MzcsNiArMzM4LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0RGV2VG9vbHNBZ2VudENsaWVudChX
ZWJEZXZUb29sc0FnZW50Q2xpZW50KiBkZXZUb29sc0NsaWVudCkKIHZvaWQgV2ViVmlld0ltcGw6
OnNldFBlcm1pc3Npb25DbGllbnQoV2ViUGVybWlzc2lvbkNsaWVudCogcGVybWlzc2lvbkNsaWVu
dCkKIHsKICAgICBtX3Blcm1pc3Npb25DbGllbnQgPSBwZXJtaXNzaW9uQ2xpZW50OworICAgIG1f
ZmVhdHVyZVN3aXRjaENsaWVudC0+c2V0UGVybWlzc2lvbkNsaWVudChwZXJtaXNzaW9uQ2xpZW50
KTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0UHJlcmVuZGVyZXJDbGllbnQoV2ViUHJlcmVu
ZGVyZXJDbGllbnQqIHByZXJlbmRlcmVyQ2xpZW50KQpAQCAtMzkyLDYgKzM5NCw3IEBAIFdlYlZp
ZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAgICAgLCBtX2ltZUFj
Y2VwdEV2ZW50cyh0cnVlKQogICAgICwgbV9vcGVyYXRpb25zQWxsb3dlZChXZWJEcmFnT3BlcmF0
aW9uTm9uZSkKICAgICAsIG1fZHJhZ09wZXJhdGlvbihXZWJEcmFnT3BlcmF0aW9uTm9uZSkKKyAg
ICAsIG1fZmVhdHVyZVN3aXRjaENsaWVudChhZG9wdFB0cihuZXcgQ29udGV4dEZlYXR1cmVzQ2xp
ZW50SW1wbCgpKSkKICAgICAsIG1fYXV0b2ZpbGxQb3B1cFNob3dpbmcoZmFsc2UpCiAgICAgLCBt
X2F1dG9maWxsUG9wdXAoMCkKICAgICAsIG1faXNUcmFuc3BhcmVudChmYWxzZSkKQEAgLTQ1MSw2
ICs0NTQsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50
KQogICAgIHByb3ZpZGVOb3RpZmljYXRpb24obV9wYWdlLmdldCgpLCBub3RpZmljYXRpb25QcmVz
ZW50ZXJJbXBsKCkpOwogI2VuZGlmCiAKKyAgICBwcm92aWRlQ29udGV4dEZlYXR1cmVzVG8obV9w
YWdlLmdldCgpLCBtX2ZlYXR1cmVTd2l0Y2hDbGllbnQuZ2V0KCkpOwogICAgIHByb3ZpZGVEZXZp
Y2VPcmllbnRhdGlvblRvKG1fcGFnZS5nZXQoKSwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudFBy
b3h5LmdldCgpKTsKICAgICBwcm92aWRlR2VvbG9jYXRpb25UbyhtX3BhZ2UuZ2V0KCksIG1fZ2Vv
bG9jYXRpb25DbGllbnRQcm94eS5nZXQoKSk7CiAgICAgbV9nZW9sb2NhdGlvbkNsaWVudFByb3h5
LT5zZXRDb250cm9sbGVyKEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShtX3BhZ2UuZ2V0KCkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IGEwODg5Njc4
YTE0MDA3NDJjYzI2ZTBlYmZiYmUyM2UxOThiOTJkMmUuLjdiZGRhOTBmNDBkOGU4YWNlNWIxYTZi
NjdjNjhlY2NmN2E2ZWVmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaApAQCAtODYsNiArODYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIEF1dG9jb21w
bGV0ZVBvcHVwTWVudUNsaWVudDsKIGNsYXNzIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50OwogY2xh
c3MgQmF0dGVyeUNsaWVudEltcGw7CitjbGFzcyBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOwog
Y2xhc3MgQ29udGV4dE1lbnVDbGllbnRJbXBsOwogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGll
bnRQcm94eTsKIGNsYXNzIERyYWdTY3JvbGxUaW1lcjsKQEAgLTczMyw2ICs3MzQsOSBAQCBwcml2
YXRlOgogICAgIC8vIGN1cnJlbnQgZHJvcCB0YXJnZXQgaW4gdGhpcyBXZWJWaWV3ICh0aGUgZHJv
cCB0YXJnZXQgY2FuIGFjY2VwdCB0aGUgZHJvcCkuCiAgICAgV2ViRHJhZ09wZXJhdGlvbiBtX2Ry
YWdPcGVyYXRpb247CiAKKyAgICAvLyBDb250ZXh0LWJhc2VkIGZlYXR1cmUgc3dpdGNoZXMuCisg
ICAgT3duUHRyPENvbnRleHRGZWF0dXJlc0NsaWVudEltcGw+IG1fZmVhdHVyZVN3aXRjaENsaWVu
dDsKKwogICAgIC8vIFdoZXRoZXIgYW4gQXV0b2ZpbGwgcG9wdXAgaXMgY3VycmVudGx5IHNob3dp
bmcuCiAgICAgYm9vbCBtX2F1dG9maWxsUG9wdXBTaG93aW5nOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWExMDBiZDcz
YmUzMWI4NDBmYWM4YWRhMzFkNDBjZDJlYzk0OGI2Yy4uZWFhOTg0MjcxZjdhMjQ4MGQzMjVkYmVj
N2NmOGFlYWNkMzYzMTZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA2LTEwICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04o
cjExODA5OCk6IDxjb250ZW50PiBlbGVtZW50IGRvZXMgbm90IHJlbmRlciBkaXN0cmlidXRlZCBj
aGlsZHJlbiB3aGVuIGNsb25lZCBmcm9tIGFub3RoZXIgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTQ4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvZWxlbWVu
dHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1bWVudC5odG1sOiBBZGRl
ZC4KKwogMjAxMi0wNi0wOCAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgVXNpbmcgQmxvYkJ1aWxkZXIgc2hvdWxkIHNob3cgYSBkZXByZWNhdGlvbiB3YXJu
aW5nIG1lc3NhZ2UgKGlmIGl0IGlzIGVuYWJsZWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9j
dW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2NDMwNzUzZjI5NTMyZTFmNTIyMTUwMGE5
OTIwYzEyZjgzNzZhMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE1IEBACitUaGlzIHRlc3QgZW5zdXJlIHRoYXQgdGhlIHNoYWRvdyByZWxhdGVkIGVsZW1l
bnRzIGFyZSBpbnN0YW50aWF0ZWQgZXZlbiBpbnNpZGUgZnJhbWVsZXNzIGRvY3VtZW50cy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3Rpbmcgb24gdGhlIGZyYW1lLWxlc3Mg
ZG9jdW1lbnQuCitQQVNTIHdpbmRvdy5IVE1MQ29udGVudEVsZW1lbnQgaXMgY29udGVudC5jb25z
dHJ1Y3RvcgorUEFTUyB3aW5kb3cuSFRNTFNoYWRvd0VsZW1lbnQgaXMgc2hhZG93LmNvbnN0cnVj
dG9yCitNb3ZpbmcgdG8gdGhlIG1haW4gZG9jdW1lbnQuCitQQVNTIHdpbmRvdy5IVE1MQ29udGVu
dEVsZW1lbnQgaXMgY29udGVudC5jb25zdHJ1Y3RvcgorUEFTUyB3aW5kb3cuSFRNTFNoYWRvd0Vs
ZW1lbnQgaXMgc2hhZG93LmNvbnN0cnVjdG9yCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKK3grCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzBiNmJlODFlZjU3ZGNiMjFmZjU1NjU2N2Q0YjQ2ZjBlOTM2ZTI5YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFt
ZWxlc3MtZG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDMwIEBACit4KzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCBlbnN1cmUgdGhhdCB0aGUgc2hhZG93IHJlbGF0ZWQgZWxlbWVudHMgYXJlIGlu
c3RhbnRpYXRlZCBldmVuIGluc2lkZSBmcmFtZWxlc3MgZG9jdW1lbnRzLiIpOworCit2YXIgZG9j
ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCk7Cit2YXIgY29u
dGFpbmVyID0gZG9jLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKK2RvYy5ib2R5LmFwcGVuZENoaWxk
KGNvbnRhaW5lcik7Citjb250YWluZXIuaW5uZXJIVE1MID0gIjxjb250ZW50IGlkPSdjb250ZW50
RWxlbWVudCc+PC9jb250ZW50PjxzaGFkb3cgaWQ9J3NoYWRvd0VsZW1lbnQnPjwvc2hhZG93PiI7
CisKK3ZhciBjb250ZW50ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIiNjb250ZW50RWxlbWVu
dCIpOwordmFyIHNoYWRvdyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCIjc2hhZG93RWxlbWVu
dCIpOworCitkZWJ1ZygiVGVzdGluZyBvbiB0aGUgZnJhbWUtbGVzcyBkb2N1bWVudC4iKTsKK3No
b3VsZEJlKCJ3aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IiwgImNvbnRlbnQuY29uc3RydWN0b3Ii
KTsKK3Nob3VsZEJlKCJ3aW5kb3cuSFRNTFNoYWRvd0VsZW1lbnQiLCAic2hhZG93LmNvbnN0cnVj
dG9yIik7CisKK2RlYnVnKCJNb3ZpbmcgdG8gdGhlIG1haW4gZG9jdW1lbnQuIik7Citkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CitzaG91bGRCZSgid2luZG93LkhUTUxDb250
ZW50RWxlbWVudCIsICJjb250ZW50LmNvbnN0cnVjdG9yIik7CitzaG91bGRCZSgid2luZG93LkhU
TUxTaGFkb3dFbGVtZW50IiwgInNoYWRvdy5jb25zdHJ1Y3RvciIpOworCis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146997</attachid>
            <date>2012-06-11 20:23:55 -0700</date>
            <delta_ts>2012-06-11 23:14:03 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-88148-20120612122353.patch</filename>
            <type>text/plain</type>
            <size>75716</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQyYTBhODNiY2I3M2Yz
NmYwOWRiODdiM2MzNmM4MTYxODkzZGE3ZS4uNjY1NjIyZmFhY2E1ZjQ1NzMzZDc3MWU0YzU3NTli
YzJlZDg2YjRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOCBAQAorMjAxMi0wNi0xMCAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIx
MTgwOTgpOiA8Y29udGVudD4gZWxlbWVudCBkb2VzIG5vdCByZW5kZXIgZGlzdHJpYnV0ZWQgY2hp
bGRyZW4gd2hlbiBjbG9uZWQgZnJvbSBhbm90aGVyIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODE0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KKworICAgICAgICBUaGUgc2hhZG93IERPTSBhdmFpbGFiaWxp
dHkgd2FzIGRlY2lkZWQgdGhyb3VnaCBGcmFtZUxvYWRlckNsaWVudC4KKyAgICAgICAgQnV0IHRo
ZXJlIGFyZSBkb2N1bWVudHMgd2hpY2ggZG9uJ3QgaGF2ZSBhbnkgYXNzb2NpYXRlZCBmcmFtZXMs
IGluCisgICAgICAgIHdoaWNoIGFueSBzaGFkb3cgRE9NIHJlbGF0ZWQgZWxlbWVudHMgY2Fubm90
IGJlIGNvbnN0cnVjdGVkLiAgVGhhdAorICAgICAgICByZXN1bHN0ZWQgdGhlIHJlZ3Jlc3Npb24u
CisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaW50cm9kdWNlcyBhIFBhZ2UtYmFzZWQgY2xpZW50IGNh
bGxlZAorICAgICAgICBDb250ZXh0RmVhdHVyZXNDbGllbnQgd2hpY2ggdGFrZXMgdGhlIHJvbGUg
ZnJvbSBGcmFtZUxvYWRlckNsaWVudAorICAgICAgICB0byBkZWNpZGUgdGhlIGZlYXR1cmUgYXZh
aWxhYmlsaXR5LCBhbmQgQ29udGV4dEZlYXR1cmVzIHdoaWNoIGlzIGEKKyAgICAgICAgcHJveHkg
b2YgQ29udGV4dEZlYXR1cmVzQ2xpZW50LiAgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyBpcyBpcwor
ICAgICAgICByZXBsYWNlZCB3aXRoIENvbnRleHRGZWF0dXJlcy4KKworICAgICAgICBFYWNoIENv
bnRleHRGZWF0dXJlcyBvYmplY3QgaXMgb3duZWQgYnkgYSBQYWdlLCBhbmQgaXMgYXR0YWNoZWQg
dG8KKyAgICAgICAgZWFjaCBEb2N1bWVudCBpbiB0aGUgcGFnZSBldmVuIGlmIHRoZSBwYWdlIGl0
c2VsZiBoYXMgbm8gcmVmZXJlbmN0CisgICAgICAgIHRvIEZyYW1lcyBvciBQYWdlcy4gV2l0aCBD
b250ZXh0RmVhdHVyZXMsIGVhY2ggRG9jdW1lbnQgY2FuIGRlY2lkZQorICAgICAgICB0aGUgZmVh
dHVyZSBhdmFpbGFiaWxpdHkgZXZlbiBpZiBpdCBjYW5ub3QgcmVhY2ggUGFnZSBvciBGcmFtZS4K
KworICAgICAgICBPbiBSZWZDb3VudGVkU3VwcGxlbWVudDogRG9jdW1lbnQgaW5zdGFuY2UgY2Fu
IGxpdmUgbG9uZ2VyIHRoYW4gYQorICAgICAgICBQYWdlIHdoZXJlIGl0IGlzIHNod29uLiBUaGlz
IG1lYW5zIHRoYXQgQ29udGV4dEZlYXR1cmVzIGluc3RhbmNlCisgICAgICAgIG5lZWRzIHRvIHN1
cnZpdmUgYWZ0ZXIgb3duZXIgUGFnZSBkZXN0cnVjdGlvbiBiZWNhdXNlIGl0J3MKKyAgICAgICAg
cmVmZXJlbmNlZCBmcm9tIHBvc3NpYmx5IHN1cnZpdmluZyBEb2N1bWVudHMuIFJlZkNvdW50ZWRT
dXBwbGVtZW50CisgICAgICAgIGlzIGludHJvZHVjZWQgdG8gY292ZXIgdGhpcyBzY2VuYXJpbzog
SXQgYWxsb3dzIHN1cHBsZW1lbnQgY2xhc3NlcworICAgICAgICB0byBsaXZlIGFmdGVyIFBhZ2Un
cyBkZXN0cnVjdGlvbi4KKworICAgICAgICBSZWZDb3VudGVkU3VwcGxlbWVudDo6aG9zdERlc3Ry
b3llZCgpIGlzIG5vdGlmaWVkIHdoZW4gdGhlIGhvc3RpbmcKKyAgICAgICAgcGFnZSBpcyBnb25l
LiBDb250ZXh0RmVhdHVyZXMgY2xlYXJzIGl0cyByZWZlcmVuY2UgdG8gdGhlIGNsaWVudAorICAg
ICAgICB1c2luZyB0aGlzIG5vdGlmaWNhdGlvbi4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9z
aGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
OgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6ZGV0ZXJtaW5l
U2NvcGUpOgorICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZXMuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzQ2xpZW50Ojpl
bXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OnN1cHBsZW1lbnROYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlczo6ZGVmYXVsdFN3aXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpwYWdlUG9wdXBFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OnByb3ZpZGVDb250ZXh0RmVhdHVyZXNUbyk6CisgICAgICAgIChXZWJDb3Jl
Ojpwcm92aWRlQ29udGV4dEZlYXR1cmVzVG9Eb2N1bWVudEZyb20pOgorICAgICAgICAqIGRvbS9D
b250ZXh0RmVhdHVyZXMuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENv
bnRleHRGZWF0dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OkNvbnRl
eHRGZWF0dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6Omhvc3REZXN0
cm95ZWQpOgorICAgICAgICAoQ29udGV4dEZlYXR1cmVzQ2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRleHRGZWF0dXJlc0NsaWVudDo6fkNvbnRleHRGZWF0dXJlc0NsaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXNDbGllbnQ6OmlzRW5hYmxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0RmVhdHVyZXM6OmlzRW5hYmxlZCk6CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNw
cDoKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVIVE1MRG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAg
ICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6UG9z
aXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmZpbmRQYXJlbnQpOgorICAgICAg
ICAqIGRvbS9TZWN1cml0eUNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlD
b250ZXh0OjpTZWN1cml0eUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlDb250
ZXh0OjpzZXRGZWF0dXJlcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vU2Vj
dXJpdHlDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
Y3VyaXR5Q29udGV4dDo6ZmVhdHVyZVN3aXRjaCk6CisgICAgICAgIChTZWN1cml0eUNvbnRleHQp
OgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNj
b3BlOjpnZXRTZWxlY3Rpb24pOgorICAgICAgICAqIGRvbS9tYWtlX25hbWVzLnBsOgorICAgICAg
ICAocHJpbnRDb25zdHJ1Y3RvckludGVyaW9yKToKKyAgICAgICAgKHByaW50RmFjdG9yeUNwcEZp
bGUpOgorICAgICAgICAocHJpbnRXcmFwcGVyRnVuY3Rpb25zKToKKyAgICAgICAgKHByaW50V3Jh
cHBlckZhY3RvcnlDcHBGaWxlKToKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVGcmFnbWVudEZyb21NYXJrdXBXaXRoQ29udGV4dCk6CisgICAg
ICAgICogaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
dHlsZUVsZW1lbnQ6OnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxTdHlsZUVsZW1lbnQ6OnVucmVnaXN0ZXJXaXRoU2NvcGluZ05vZGUpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZW50VGFnTmFtZSk6CisgICAgICAgICogaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01QYXRjaFN1cHBvcnQ6OnBhdGNoRG9jdW1lbnQpOgorICAg
ICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL1Jl
ZkNvdW50ZWRTdXBwbGVtZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1N1cHBsZW1lbnRhYmxlLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJlZkNvdW50
ZWRTdXBwbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlZkNvdW50ZWRTdXBwbGVtZW50Ojpo
b3N0RGVzdHJveWVkKToKKyAgICAgICAgKFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVm
Q291bnRlZFN1cHBsZW1lbnQ6OldyYXBwZXI6OldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6
UmVmQ291bnRlZFN1cHBsZW1lbnQ6OldyYXBwZXI6On5XcmFwcGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlZkNvdW50ZWRTdXBwbGVtZW50OjpXcmFwcGVyOjp3cmFwcGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlZkNvdW50ZWRTdXBwbGVtZW50Ojpwcm92aWRlVG8pOgorICAgICAgICAoV2ViQ29y
ZTo6UmVmQ291bnRlZFN1cHBsZW1lbnQ6OmZyb20pOgorICAgICAgICAqIHBsYXRmb3JtL1N1cHBs
ZW1lbnRhYmxlLmg6CisgICAgICAgIChXZWJDb3JlOjpTdXBwbGVtZW50Ojppc1JlZkNvdW50ZWRX
cmFwcGVyKToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1MKToKKwogMjAxMi0wNi0wOCAgS2ludWtv
IFlhc3VkYSAgPGtpbnVrb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXNpbmcgQmxvYkJ1aWxk
ZXIgc2hvdWxkIHNob3cgYSBkZXByZWNhdGlvbiB3YXJuaW5nIG1lc3NhZ2UgKGlmIGl0IGlzIGVu
YWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGYwMjFhMWVlNzg5NWU1MzllY2I4
NjNlOTA1Y2EwMWZjMWQ1YzUxZjEuLjVmMmRlMDMzNWY0MDhkOTVhYmUzYjQwODc5NzM5YzM2NGEx
NjIzMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTIt
MDYtMTAgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTihyMTE4MDk4KTogPGNvbnRlbnQ+IGVsZW1lbnQgZG9lcyBub3QgcmVuZGVyIGRpc3Ry
aWJ1dGVkIGNoaWxkcmVuIHdoZW4gY2xvbmVkIGZyb20gYW5vdGhlciBkb2N1bWVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgxNDgKKworICAgICAg
ICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgLSBBZGRlZCBDb250ZXh0
RmVhdHVyZXNDbGllbnRJbXBsIHdoaWNoIGltcGxlbWVudHMgV2ViQ29yZTo6Q29udGV4dEZlYXR1
cmVzQ2xpZW50LgorICAgICAgICAtIFJlcGxhY2VkIFBhZ2VQb3B1cEZyYW1lTG9hZGVyQ2xpZW50
IHdpdGggUGFnZVBvcHVwRmVhdHVyZXNDbGllbnQuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgor
ICAgICAgICAqIHB1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50OjphbGxvd1dlYkNvbXBvbmVu
dHMpOgorICAgICAgICAqIHNyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0
dXJlcy5jcHAuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0RmVh
dHVyZXNDbGllbnRJbXBsOjppc0VuYWJsZWQpOgorICAgICAgICAqIHNyYy9Db250ZXh0RmVhdHVy
ZXNDbGllbnRJbXBsLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5l
cmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsKToKKyAgICAgICAgKFdlYktpdDo6Q29udGV4dEZl
YXR1cmVzQ2xpZW50SW1wbDo6Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbCk6CisgICAgICAgIChX
ZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OnNldFBlcm1pc3Npb25DbGllbnQpOgor
ICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwOgorICAgICAgICAqIHNyYy9G
cmFtZUxvYWRlckNsaWVudEltcGwuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50SW1wbCk6
CisgICAgICAgICogc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwOgorICAgICAgICAoUGFnZVBvcHVw
RmVhdHVyZXNDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlUG9wdXBGZWF0dXJlc0NsaWVu
dDo6aXNFbmFibGVkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQb3B1cEltcGw6OmluaXRQYWdlKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UGVybWlzc2lvbkNsaWVudCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisgICAgICAgICogc3JjL1dl
YlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQpOgorCiAyMDEyLTA2LTA5ICBFdWdlbmUgS2x5
dWNobmlrb3YgIDxldXN0YXMuYnVnQGdtYWlsLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBBZGQgbWVzc2FnZSBsb29wIGluc3RydW1lbnRhdGlvbiB0byBwdWJsaWMgQVBJIGFuZCB0aW1l
bGluZSBhZ2VudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBlNGMwNGNjMjQwM2Y1MzcwYmNkMDk1
NjZlMjI5YzQ3OGY3YmNlZDdjLi41YmQ1YjAwNWU3Y2JlMzIxNGFkZTRjMWZiNGNjZTU0MDY2MjNj
ZTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDU5LDcgKzQ1OSw2IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBiaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHAKIAogICAgIGJp
bmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suY3BwCi0gICAgYmluZGluZ3MvZ2VuZXJp
Yy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcAogICAgIGJpbmRpbmdzL2dlbmVyaWMvUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5jcHAKIAogICAgIGNzcy9DU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcApA
QCAtNTU5LDYgKzU1OCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vQ29udGFpbmVy
Tm9kZS5jcHAKICAgICBkb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwCiAgICAgZG9tL0Nv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcAorICAgIGRvbS9Db250ZXh0RmVhdHVyZXMuY3Bw
CiAgICAgZG9tL0N1c3RvbUV2ZW50LmNwcAogICAgIGRvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNw
cAogICAgIGRvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggNzU2ODVmNzgxYTU2OWQ5NjU3MGNkYjMxMjY3ODdmMTQ5MGU1NWU2
NS4uMTA2YWY3Mjg2NzNkMGFmYjEwMDIwMjY0NWU0ZDBhMGQxNWFkNjUzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMzA2LDggKzEzMDYsNiBAQCB3ZWJjb3JlX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5oIFwKLQlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3Bw
IFwKLQlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVy
ZXMuaCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlC
YXNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJp
dHlCYXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3Vy
aXR5LmggXApAQCAtMTc5OSw2ICsxNzk3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0
dXJlcy5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL0Nyb3NzVGhyZWFkVGFzay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
Q3VzdG9tRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRXZlbnQuaCBcCkBA
IC0zNTg0LDYgKzM1ODQsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1ByZXJlbmRlckhhbmRsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
dXJnZWFibGVCdWZmZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VQcmlvcml0
eS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWZDb3VudGVkU3VwcGxlbWVudC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWZlcnJlclBvbGljeS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVu
TG9vcC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDA5MDYwNjE2NGU2MDk4ZTQzZjhkMjYyYzRlNDE3MmQ2
YTViNjE3ZGQuLmVlYTc2NjA0MzNiOTZlMjE0OGI0MjIwNjgzNTE1NmNkODAxMjUwYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtNzIsNyArNzIsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAgXAogICAgIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAgXAogICAgIGJpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suY3BwIFwK
LSAgICBiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIFwKICAgICBi
aW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCiAKIHY4IHsKQEAgLTUy
OSw2ICs1MjgsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vQ29udGFpbmVyTm9kZS5jcHAgXAog
ICAgIGRvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAgXAogICAgIGRvbS9Db250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlci5jcHAgXAorICAgIGRvbS9Db250ZXh0RmVhdHVyZXMuY3BwIFwKICAg
ICBkb20vQ3VzdG9tRXZlbnQuY3BwIFwKICAgICBkb20vRGVjb2RlZERhdGFEb2N1bWVudFBhcnNl
ci5jcHAgXAogICAgIGRvbS9EZXZpY2VNb3Rpb25Db250cm9sbGVyLmNwcCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggNTIzNTEyMmY5MWNjOWIxYmNlNjhlM2NlYWI0YjAzZDBlZTE4NzUxMC4uZDRiMGY4
OTVhMGE2MDFjMTg5MWY5NjExM2Y1NTRhOGVhNTcyYzVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
MzA5LDYgKzMwOSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaCcs
CiAgICAgICAgICAgICAncGxhdGZvcm0vUHVyZ2VQcmlvcml0eS5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCcsCisgICAgICAgICAgICAncGxhdGZv
cm0vUmVmQ291bnRlZFN1cHBsZW1lbnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vU2NoZW1l
UmVnaXN0cnkuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vU2Nyb2xsVmlldy5oJywKQEAgLTYxNiw2ICs2MTcsOCBAQAogICAg
ICAgICAgICAgJ2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaCcsCiAgICAgICAgICAgICAn
ZG9tL0NvbnRhaW5lck5vZGUuaCcsCiAgICAgICAgICAgICAnZG9tL0NvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyLmgnLAorICAgICAgICAgICAgJ2RvbS9Db250ZXh0RmVhdHVyZXMuaCcsCisgICAg
ICAgICAgICAnZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAnLAogICAgICAgICAgICAgJ2RvbS9ET01J
bXBsZW1lbnRhdGlvbi5oJywKICAgICAgICAgICAgICdkb20vRE9NVGltZVN0YW1wLmgnLAogICAg
ICAgICAgICAgJ2RvbS9EZXZpY2VPcmllbnRhdGlvbi5oJywKQEAgLTE4NTMsOCArMTg1Niw2IEBA
CiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHkuaCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmgnLAotICAgICAg
ICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAnLAotICAg
ICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0dlbmVyaWNCaW5kaW5nLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNTE5YTY4OWQy
YmQ0NWZiYTQ3M2FmOWQzMmExNWRmYjA5MDExYzdjMS4uNDEzZmMxZTljZDk4MmE1YmMyODZkZWU1
MmIxYTA3OWIwNTFkOTRmNSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTYzMjEwLDE0ICs2MzIxMCw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXENvbnRl
eHRFbmFibGVkRmVhdHVyZXMuY3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCi0J
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xDb250ZXh0RW5hYmxlZEZlYXR1
cmVzLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xnZW5lcmljXEdlbmVyaWNCaW5kaW5nLmgiCiAJCQkJCT4KIAkJCQk8L0Zp
bGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMGM3MDM3MzQ2ZjhlYzYzNGM1YzlmN2ZhMGUyNTkxYzNlMDJlN2JmMS4uMTRkMDQ0
ZGUyYWFkYjQ0YjFkMTNkZDljY2QwYWZiZTkyMjM1NDlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzc1MywxMiArMzc1Mywx
MSBAQAogCQlBNzE4NzYwRTBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3NjBEMEIyQTEyMDEw
MEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUE3MTg3ODkwMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJv
bGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLzsgfTsK
IAkJQTcyM0Y3N0IxNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzIzRjc3QTE0ODRD
QTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzJFQTNCQjE1ODVDRjU1MDA0RkFBMjYg
LyogUmVmQ291bnRlZFN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3MkVBM0JBMTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3Vw
cGxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE3M0Y5NUZFMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGQzEyQzk3QkZFMDAz
MUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovOyB9OwogCQlBNzNGOTVGRjEyQzk3QkZFMDAzMUFB
RjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NDBCNUE1MTRD
OTM1QUIwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc5MTRDOTM0ODQwMEM4RjVCRiAvKiBK
U0ludGVybmFsU2V0dGluZ3MuaCAqLzsgfTsKIAkJQTc0MEI1QTcxNEM5MzVBRjAwQTc3RkE0IC8q
IEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBN0I0RUE3ODE0QzkzNDg0MDBDOEY1QkYgLyogSlNJbnRlcm5hbFNldHRp
bmdzLmNwcCAqLzsgfTsKLQkJQTc0N0EwN0YxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFi
bGVkRmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTc0N0EwN0QxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMu
Y3BwICovOyB9OwotCQlBNzQ3QTA4MDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRG
ZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTc0N0EwN0UxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCAqLzsg
fTsKIAkJQTc0QkI3NkIxM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0QkI3
NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NUU0OTc2MTA3NTJB
Q0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc0MTA3NTJBQ0IwMEM5Qjg5NiAvKiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBNzVFNDk3NzEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
ICovOyB9OwpAQCAtMzgxMCw2ICszODA5LDggQEAKIAkJQTdEMjBGNjIxMDdGNDA2OTAwQTgwMzky
IC8qIEpTV2ViR0xBY3RpdmVJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3RDIwRjYwMTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZl
SW5mby5jcHAgKi87IH07CiAJCUE3RDIwRjYzMTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0
aXZlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTdEMjBGNjExMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmggKi87IH07CiAJ
CUE3RDIwRjZEMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDIwRjZCMTA3RjQzOEIwMEE4
MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCAqLzsgfTsKKwkJQTdEM0NBMTAxNTdERjhFOTAwODYw
QTk3IC8qIENvbnRleHRGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBN0QzQ0EwRTE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1
cmVzLmNwcCAqLzsgfTsKKwkJQTdEM0NBMTExNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0
dXJlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdE
M0NBMEYxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlcy5oICovOyB9OwogCQlBN0Q2
QjM0OTBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q2QjM0NzBGNjExMDQ1MDBCNzlG
RDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmggKi87IH07CiAJCUE3RDZCMzRBMEY2MTEwNDUwMEI3
OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTdENkIzNDgwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNj
cmlwdExvYWRlci5jcHAgKi87IH07CiAJCUE3REJGOEREMTI3NjkxOUMwMDZCNjAwOCAvKiBUZXh0
Q2hlY2tpbmdIZWxwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTdEQkY4REIxMjc2OTE5QzAwNkI2MDA4IC8qIFRleHRDaGVja2luZ0hlbHBlci5j
cHAgKi87IH07CkBAIC0xMDg1MywxMCArMTA4NTQsOSBAQAogCQlBNzE4Nzg4RjBCMkQwNEFDMDBB
MTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBEcmFnQ29udHJvbGxlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTcxQTcwQzkxMUFGQjAyMDAwOTg5RDZEIC8qIEhUTUxNZXRlckVsZW1lbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxNZXRlckVsZW1lbnQuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1F
eHBvcnRNYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1F
eHBvcnRNYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTcyRUEzQkExNTg1
Q0Y1NTAwNEZBQTI2IC8qIFJlZkNvdW50ZWRTdXBwbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlZkNvdW50ZWRTdXBwbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSb3VuZGVkUmVjdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBS
b3VuZGVkUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSb3VuZGVkUmVj
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzQ3QTA3RDE1NkIyODY5MDAyNDNF
RUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcDsgcGF0aCA9IGdlbmVyaWMv
Q29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUE3NDdBMDdFMTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENvbnRleHRFbmFibGVkRmVhdHVyZXMuaDsg
cGF0aCA9IGdlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNzRCQjc2QTEzQkRBODYzMDBGRjdCRjAgLyogRXhjZXB0aW9uQ29kZVBs
YWNlaG9sZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbkNv
ZGVQbGFjZWhvbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzVFNDk3NDEw
NzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNzVFNDk3NTEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDkx
NCw2ICsxMDkxNCw4IEBACiAJCUE3RDIwRjYwMTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0
aXZlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdM
QWN0aXZlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDIwRjYxMTA3
RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1dlYkdMQWN0aXZlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBN0QyMEY2QjEwN0Y0MzhCMDBBODAzOTIgLyogV2ViR0xBY3RpdmVJbmZvLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdMQWN0aXZlSW5mby5oOyBwYXRoID0g
Y2FudmFzL1dlYkdMQWN0aXZlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
N0QzQ0EwRTE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnRleHRGZWF0dXJlcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3RDNDQTBGMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0
RmVhdHVyZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGV4dEZlYXR1
cmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDZCMzQ3MEY2MTEwNDUwMEI3
OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV29ya2VyU2NyaXB0TG9hZGVyLmg7IHBhdGggPSB3b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0Q2QjM0ODBGNjExMDQ1MDBC
NzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFdvcmtlclNjcmlwdExvYWRlci5jcHA7IHBhdGggPSB3b3JrZXJzL1dvcmtl
clNjcmlwdExvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3REI0MTgx
MTRDRTFGMEEwMEEyRTMxNiAvKiBTaGFkb3dSb290LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBTaGFkb3dSb290LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NzYzLDgg
KzE5NzY1LDYgQEAKIAkJCQlBNjIyQThGNTEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3Vy
aXR5LmggKi8sCiAJCQkJQTYyMkE4RjYxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0
eUJhc2UuY3BwICovLAogCQkJCUE2MjJBOEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2Vj
dXJpdHlCYXNlLmggKi8sCi0JCQkJQTc0N0EwN0QxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRF
bmFibGVkRmVhdHVyZXMuY3BwICovLAotCQkJCUE3NDdBMDdFMTU2QjI4NjkwMDI0M0VFRCAvKiBD
b250ZXh0RW5hYmxlZEZlYXR1cmVzLmggKi8sCiAJCQkJQTYyMkE4RjkxMjJDNDRBNjAwQTc4NUIz
IC8qIEdlbmVyaWNCaW5kaW5nLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGdlbmVyaWM7CkBAIC0y
MDQ4MCw2ICsyMDQ4MCw3IEBACiAJCQkJQkMzQkUxMkEwRTk4MDkyRjAwODM1NTg4IC8qIFBvcHVw
TWVudVN0eWxlLmggKi8sCiAJCQkJRTRENjg3NzgwRUQ3QUU0RjAwNkVBOTc4IC8qIFB1cmdlYWJs
ZUJ1ZmZlci5oICovLAogCQkJCTdFMzNDRDAwMTI3RjM0MEQwMEJFOEYxNyAvKiBQdXJnZVByaW9y
aXR5LmggKi8sCisJCQkJQTcyRUEzQkExNTg1Q0Y1NTAwNEZBQTI2IC8qIFJlZkNvdW50ZWRTdXBw
bGVtZW50LmggKi8sCiAJCQkJOTgzMUFFNDkxNTQyMjVBMjAwRkUyNjQ0IC8qIFJlZmVycmVyUG9s
aWN5LmggKi8sCiAJCQkJQkMwQjM1ODUxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwICov
LAogCQkJCUJDMEIzNTg2MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggKi8sCkBAIC0yMTIw
MSw2ICsyMTIwMiw4IEBACiAJCQkJRTFBMTQ3MDcxMTEwMkIxNTAwRUVDMEYzIC8qIENvbnRhaW5l
ck5vZGVBbGdvcml0aG1zLmggKi8sCiAJCQkJOTc2MjdCOEIxNEZCM0NFRTAwMkNEQ0ExIC8qIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCAqLywKIAkJCQk5NzYyN0I4QzE0RkIzQ0VFMDAy
Q0RDQTEgLyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCAqLywKKwkJCQlBN0QzQ0EwRTE1
N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVzLmNwcCAqLywKKwkJCQlBN0QzQ0EwRjE1
N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVzLmggKi8sCiAJCQkJMkUzRkFBMDgxMUEz
NkJGMTAwNTc2NjI0IC8qIENyb3NzVGhyZWFkVGFzay5oICovLAogCQkJCTYyQ0QzMjU2MTE1N0U1
N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5jcHAgKi8sCiAJCQkJNjJDRDMyNTcxMTU3RTU3QzAw
NjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggKi8sCkBAIC0yMjA1NCw3ICsyMjA1Nyw3IEBACiAJCQkJ
NDFEMDE1Q0EwRjRCNUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzNzBENkVEQjEzODQ1NDU1MDA0NDEwM0UgLyogQ29udGVudFR5cGVQYXJzZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3NjI3QjhFMTRGQjNDRUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTc0N0EwODAxNTZCMjg2OTAwMjQz
RUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3RDND
QTExMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzQjZBMEU2MEIwQkNBNUMwMEY1MDI3QSAvKiBDb250ZXh0TWVudS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDY1QUQ0RjUwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwNjVBRDRGNzBCMEMyRURBMDA1QTJCMUQgLyogQ29udGV4dE1l
bnVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTI0MTYzLDYgKzI0MTY2LDcgQEAKIAkJ
CQlGRDMxNjAzQzEyQjAyNjc2MDBDMUEzNTkgLyogUmVhbHRpbWVBbmFseXNlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRkQzMTYwM0UxMkIwMjY3NjAwQzFBMzU5IC8qIFJlYWx0aW1lQW5hbHlzZXJO
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQzNjhFODBDMjI2RTMyMDA1RUZCNUYgLyogUmVj
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTcyRUEzQkIxNTg1Q0Y1NTAwNEZBQTI2IC8qIFJlZkNv
dW50ZWRTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5ODMxQUU0QTE1NDIyNUM5MDBG
RTI2NDQgLyogUmVmZXJyZXJQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQUI0MTgyMTNF
MzU2RTgwMEQ4QUFGMyAvKiBSZWdpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg1MDMxQjRDMEE0
NEVGQzcwMEY5OTJFMCAvKiBSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNTU3NSw3ICsyNTU3OSw3IEBACiAJCQkJNDFEMDE1Q0IwRjRCNUM3MTAwNEE2NjJGIC8q
IENvbnRlbnRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3MEQ2RURBMTM4NDU0NTUwMDQ0
MTAzRSAvKiBDb250ZW50VHlwZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzYyN0I4
RDE0RkIzQ0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQTc0N0EwN0YxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVk
RmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTdEM0NBMTAxNTdERjhFOTAwODYwQTk3
IC8qIENvbnRleHRGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNjVBRDRGNjBCMEMy
RURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA2MDI3Q0IzMEIxQ0MwM0QwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW1NYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCQk5M0I2QTBFQTBCMEJDQTg0MDBGNTAyN0EgLyogQ29udGV4dE1lbnVN
YWMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlMjYyMmIzNzNlYjIxNzg1YmNjMWMwNzhiYmVhMjI4ZDAzYmMxY2I2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw3NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNvbnRl
eHRFbmFibGVkRmVhdHVyZXMuaCIKLQotI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUg
IkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgotI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLSNpZiBFTkFCTEUoU0hBRE9X
X0RPTSkKLWJvb2wgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChET01X
aW5kb3cqIHdpbmRvdykKLXsKLSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGlmIChGcmFtZSogZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCkpCi0gICAgICAgIHJldHVy
biBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5hbGxvd1NoYWRvd0RPTShSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCkpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLSNl
bmRpZgotCi0jaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKLWJvb2wgQ29udGV4dEVuYWJsZWRGZWF0
dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICBpZiAo
IWRvY3VtZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9
IGRvY3VtZW50LT5mcmFtZSgpKQotICAgICAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLT5jbGll
bnQoKS0+YWxsb3dTdHlsZVNjb3BlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3Bl
ZEVuYWJsZWQoKSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotI2VuZGlmICAgCi0KLSNpZiBFTkFC
TEUoUEFHRV9QT1BVUCkKLWJvb2wgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6cGFnZVBvcHVwRW5h
YmxlZChET01XaW5kb3cqIHdpbmRvdykKLXsKLSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIGlmIChGcmFtZSogZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCkpCi0gICAg
ICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5hbGxvd1BhZ2VQb3B1cCgpOwot
ICAgIHJldHVybiBmYWxzZTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVk
RmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJs
ZWRGZWF0dXJlcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTdmYTRiNzU4NWVh
NzdhNzE5YmUzYjRkMzM0NDhiMjgyZjQ5OTdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4
dEVuYWJsZWRGZWF0dXJlcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0
cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0g
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
Q29udGV4dEVuYWJsZWRGZWF0dXJlc19oCi0jZGVmaW5lIENvbnRleHRFbmFibGVkRmVhdHVyZXNf
aAotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERPTVdpbmRvdzsKLWNsYXNzIERvY3Vt
ZW50OwotCi0vLyBBIGNsYXNzIHRoYXQgc3RvcmVzIHN0YXRpYyBlbmFibGVycyBmb3IgYWxsIGV4
cGVyaW1lbnRhbCBmZWF0dXJlcy4gTm90ZSB0aGF0Ci0vLyB0aGUgbWV0aG9kIG5hbWVzIG11c3Qg
bGluZSB1cCB3aXRoIHRoZSBKYXZhU2NyaXB0IG1ldGhvZCB0aGV5IGVuYWJsZSBmb3IgY29kZQot
Ly8gZ2VuZXJhdGlvbiB0byB3b3JrIHByb3Blcmx5LgotCi1jbGFzcyBDb250ZXh0RW5hYmxlZEZl
YXR1cmVzIHsKLXB1YmxpYzoKLSNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBzdGF0aWMgYm9v
bCBzaGFkb3dET01FbmFibGVkKERPTVdpbmRvdyopOwotI2VuZGlmCi0jaWYgRU5BQkxFKFNUWUxF
X1NDT1BFRCkKLSAgICBzdGF0aWMgYm9vbCBzdHlsZVNjb3BlZEVuYWJsZWQoRG9jdW1lbnQqKTsK
LSNlbmRpZgotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotICAgIHN0YXRpYyBib29sIHBhZ2VQb3B1
cEVuYWJsZWQoRE9NV2luZG93Kik7Ci0jZW5kaWYKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIENvbnRleHRFbmFibGVkRmVhdHVyZXNfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA2MWI5N2Jl
M2Q5NmUzYTliOTBlYzRiYzRiZWM1OTBlYjc1ZTdhZWNhLi4wMDgyNGFiYzIyNDM0MjE4OGIwNGVk
Y2NhMTMyNTRmNWZiMDBiNzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjQxNyw3ICsyNDE3LDcgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICBwdXNoKEBpbXBsRml4ZWRIZWFkZXIsIEdlbmVyYXRlSW1w
bGVtZW50YXRpb25Db250ZW50SGVhZGVyKCRkYXRhTm9kZSkpOwogCiAgICAgQWRkVG9JbXBsSW5j
bHVkZXMoIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIpOwotICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiKTsKKyAgICBBZGRUb0ltcGxJbmNsdWRlcygiQ29u
dGV4dEZlYXR1cmVzLmgiKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhQcm94eS5oIik7CiAg
ICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4QmluZGluZy5oIik7CiAgICAgQWRkVG9JbXBsSW5jbHVk
ZXMoIlY4QmluZGluZ1N0YXRlLmgiKTsKQEAgLTI4NjYsNyArMjg2Niw3IEBAIEVORAogICAgICAg
ICAgICAgbXkgJGVuYWJsZUZ1bmN0aW9uID0gR2V0Q29udGV4dEVuYWJsZUZ1bmN0aW9uKCRydW50
aW1lQXR0ci0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9
ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRydW50aW1lQXR0ci0+
c2lnbmF0dXJlKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4jaWYgJHtjb25k
aXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKLSAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmIChDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjoke2VuYWJs
ZUZ1bmN0aW9ufShpbXBsKSkge1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpZiAoQ29udGV4dEZlYXR1cmVzOjoke2VuYWJsZUZ1bmN0aW9ufShpbXBsLT5kb2N1bWVu
dCgpKSkge1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc3Rh
dGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgYXR0ckRhdGEgPVxcXG4iKTsKICAgICAgICAgICAg
IEdlbmVyYXRlU2luZ2xlQmF0Y2hlZEF0dHJpYnV0ZSgkaW50ZXJmYWNlTmFtZSwgJHJ1bnRpbWVB
dHRyLCAiOyIsICIgICAgIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDQ1ZTdkMTIzNGNhYTE2MTY0
MWY5MTQxZWQ0MjA4OTE5NTdkODRlYmMuLmNiYjNkYjVjYmJmZjgyZjRhZmY4NGM4NmUwN2JmOTZl
NjA5ZWM0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTUyLDcgKzUy
LDcgQEAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhbGN1bGF0aW9uVmFs
dWUuaCIKICNpbmNsdWRlICJDb250ZW50RGF0YS5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVk
RmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJDb3Vu
dGVyLmgiCiAjaW5jbHVkZSAiQ291bnRlckNvbnRlbnQuaCIKICNpbmNsdWRlICJDdXJzb3JMaXN0
LmgiCkBAIC00OTEsNyArNDkxLDcgQEAgY29uc3QgQ29udGFpbmVyTm9kZSogU3R5bGVSZXNvbHZl
cjo6ZGV0ZXJtaW5lU2NvcGUoY29uc3QgQ1NTU3R5bGVTaGVldCogc2hlZXQpCiB7CiAgICAgQVNT
RVJUKHNoZWV0KTsKIAotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29w
ZWRFbmFibGVkKGRvY3VtZW50KCkpKQorICAgIGlmICghQ29udGV4dEZlYXR1cmVzOjpzdHlsZVNj
b3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgTm9kZSog
b3duZXJOb2RlID0gc2hlZXQtPm93bmVyTm9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZl
YXR1cmVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjBlMTU1YzFlYThhZThmNjFkYmJhYjY1ZWMxYTViNzI2
ODY2NDJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0
dXJlcy5jcHAKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiQ29udGV4dEZlYXR1cmVzLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IlBhZ2UuaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworQ29udGV4dEZlYXR1cmVzQ2xpZW50KiBDb250ZXh0RmVhdHVyZXNDbGll
bnQ6OmVtcHR5KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKENvbnRleHRGZWF0dXJlc0Ns
aWVudCwgZW1wdHksICgpKTsKKyAgICByZXR1cm4gJmVtcHR5OworfQorCitjb25zdCBBdG9taWNT
dHJpbmcmIENvbnRleHRGZWF0dXJlczo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIERFRklORV9T
VEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIkNvbnRleHRGZWF0dXJlcyIpKTsKKyAg
ICByZXR1cm4gbmFtZTsKK30KKworQ29udGV4dEZlYXR1cmVzKiBDb250ZXh0RmVhdHVyZXM6OmRl
ZmF1bHRTd2l0Y2goKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPENvbnRleHRG
ZWF0dXJlcz4sIGluc3RhbmNlLCAoQ29udGV4dEZlYXR1cmVzOjpjcmVhdGUoQ29udGV4dEZlYXR1
cmVzQ2xpZW50OjplbXB0eSgpKSkpOworICAgIHJldHVybiBpbnN0YW5jZS5nZXQoKTsKK30KKwor
Ym9vbCBDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50
KQoreworI2lmIEVOQUJMRShTSEFET1dfRE9NKQorICAgIGlmICghZG9jdW1lbnQpCisgICAgICAg
IHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCk7CisgICAg
cmV0dXJuIGRvY3VtZW50LT5mZWF0dXJlU3dpdGNoKCktPmlzRW5hYmxlZChkb2N1bWVudCwgU2hh
ZG93RE9NLCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCkpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgorfQorCitib29sIENvbnRleHRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKERvY3VtZW50
KiBkb2N1bWVudCkKK3sKKyNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQorICAgIGlmICghZG9jdW1l
bnQpCisgICAgICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVu
YWJsZWQoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQtPmZlYXR1cmVTd2l0Y2goKS0+aXNFbmFibGVk
KGRvY3VtZW50LCBTdHlsZVNjb3BlZCwgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29w
ZWRFbmFibGVkKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOworICAgIHJl
dHVybiBmYWxzZTsKKyNlbmRpZgorfQorCitib29sIENvbnRleHRGZWF0dXJlczo6cGFnZVBvcHVw
RW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQpCit7CisjaWYgRU5BQkxFKFBBR0VfUE9QVVApCisg
ICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBkb2N1
bWVudC0+ZmVhdHVyZVN3aXRjaCgpLT5pc0VuYWJsZWQoZG9jdW1lbnQsIFBhZ2VQb3B1cCwgZmFs
c2UpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOworICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgorfQorCit2b2lkIHByb3ZpZGVDb250ZXh0RmVhdHVyZXNUbyhQYWdlKiBwYWdl
LCBDb250ZXh0RmVhdHVyZXNDbGllbnQqIGNsaWVudCkKK3sKKyAgICBSZWZDb3VudGVkU3VwcGxl
bWVudDxQYWdlLCBDb250ZXh0RmVhdHVyZXM+Ojpwcm92aWRlVG8ocGFnZSwgQ29udGV4dEZlYXR1
cmVzOjpzdXBwbGVtZW50TmFtZSgpLCBDb250ZXh0RmVhdHVyZXM6OmNyZWF0ZShjbGllbnQpKTsK
K30KKwordm9pZCBwcm92aWRlQ29udGV4dEZlYXR1cmVzVG9Eb2N1bWVudEZyb20oRG9jdW1lbnQq
IGRvY3VtZW50LCBQYWdlKiBwYWdlKQoreworICAgIENvbnRleHRGZWF0dXJlcyogcHJvdmlkZWQg
PSBzdGF0aWNfY2FzdDxDb250ZXh0RmVhdHVyZXMqPihSZWZDb3VudGVkU3VwcGxlbWVudDxQYWdl
LCBDb250ZXh0RmVhdHVyZXM+Ojpmcm9tKHBhZ2UsIENvbnRleHRGZWF0dXJlczo6c3VwcGxlbWVu
dE5hbWUoKSkpOworICAgIGlmICghcHJvdmlkZWQpCisgICAgICAgIHJldHVybjsKKyAgICBkb2N1
bWVudC0+c2V0RmVhdHVyZXMocHJvdmlkZWQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4
dEZlYXR1cmVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY2NjIyMDdlN2Y2YmIyYjBlYTg3NjE0OGY0MTI5MWQy
NmQyMTYyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVh
dHVyZXMuaApAQCAtMCwwICsxLDk5IEBACisKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbnRleHRGZWF0dXJlc19oCisj
ZGVmaW5lIENvbnRleHRGZWF0dXJlc19oCisKKyNpbmNsdWRlICJSZWZDb3VudGVkU3VwcGxlbWVu
dC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgQ29udGV4dEZlYXR1cmVzQ2xpZW50OworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQ
YWdlOworCitjbGFzcyBDb250ZXh0RmVhdHVyZXMgOiBwdWJsaWMgUmVmQ291bnRlZFN1cHBsZW1l
bnQ8UGFnZSwgQ29udGV4dEZlYXR1cmVzPiB7CitwdWJsaWM6CisgICAgZW51bSBGZWF0dXJlVHlw
ZSB7CisgICAgICAgIFNoYWRvd0RPTSwKKyAgICAgICAgU3R5bGVTY29wZWQsCisgICAgICAgIFBh
Z2VQb3B1cAorICAgIH07CisKKyAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVt
ZW50TmFtZSgpOworICAgIHN0YXRpYyBDb250ZXh0RmVhdHVyZXMqIGRlZmF1bHRTd2l0Y2goKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb250ZXh0RmVhdHVyZXM+IGNyZWF0ZShDb250ZXh0RmVh
dHVyZXNDbGllbnQqKTsKKworICAgIHN0YXRpYyBib29sIHNoYWRvd0RPTUVuYWJsZWQoRG9jdW1l
bnQqKTsKKyAgICBzdGF0aWMgYm9vbCBzdHlsZVNjb3BlZEVuYWJsZWQoRG9jdW1lbnQqKTsKKyAg
ICBzdGF0aWMgYm9vbCBwYWdlUG9wdXBFbmFibGVkKERvY3VtZW50Kik7CisKKyAgICBib29sIGlz
RW5hYmxlZChEb2N1bWVudCosIEZlYXR1cmVUeXBlLCBib29sKSBjb25zdDsKKworcHJpdmF0ZToK
KyAgICBleHBsaWNpdCBDb250ZXh0RmVhdHVyZXMoQ29udGV4dEZlYXR1cmVzQ2xpZW50KiBjbGll
bnQpCisgICAgICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgIHsgfQorCisgICAgdmlydHVhbCB2
b2lkIGhvc3REZXN0cm95ZWQoKSBPVkVSUklERTsKKworICAgIENvbnRleHRGZWF0dXJlc0NsaWVu
dCogbV9jbGllbnQ7Cit9OworCitpbmxpbmUgdm9pZCBDb250ZXh0RmVhdHVyZXM6Omhvc3REZXN0
cm95ZWQoKQoreworICAgIG1fY2xpZW50ID0gMDsKK30KKworCitjbGFzcyBDb250ZXh0RmVhdHVy
ZXNDbGllbnQgeworcHVibGljOgorICAgIHN0YXRpYyBDb250ZXh0RmVhdHVyZXNDbGllbnQqIGVt
cHR5KCk7CisKKyAgICB2aXJ0dWFsIH5Db250ZXh0RmVhdHVyZXNDbGllbnQoKSB7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNFbmFibGVkKERvY3VtZW50KiwgQ29udGV4dEZlYXR1cmVzOjpGZWF0dXJl
VHlwZSwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQorfTsKKwor
dm9pZCBwcm92aWRlQ29udGV4dEZlYXR1cmVzVG8oUGFnZSosIENvbnRleHRGZWF0dXJlc0NsaWVu
dCopOwordm9pZCBwcm92aWRlQ29udGV4dEZlYXR1cmVzVG9Eb2N1bWVudEZyb20oRG9jdW1lbnQq
LCBQYWdlKik7CisKK2lubGluZSBQYXNzUmVmUHRyPENvbnRleHRGZWF0dXJlcz4gQ29udGV4dEZl
YXR1cmVzOjpjcmVhdGUoQ29udGV4dEZlYXR1cmVzQ2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBDb250ZXh0RmVhdHVyZXMoY2xpZW50KSk7Cit9CisKK2lubGluZSBi
b29sIENvbnRleHRGZWF0dXJlczo6aXNFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgRmVhdHVy
ZVR5cGUgdHlwZSwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0Cit7CisgICAgaWYgKCFtX2NsaWVu
dCkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKyAgICByZXR1cm4gbV9jbGllbnQtPmlz
RW5hYmxlZChkb2N1bWVudCwgdHlwZSwgZGVmYXVsdFZhbHVlKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ29udGV4dEZlYXR1cmVzX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
QWxsSW5PbmUuY3BwCmluZGV4IDMyMGFlZjk4MjA5YTVlYjg0YTdlNzUyOGZjYjNiNTY0OTY4NTg3
NzguLjE0OGZjM2VjOTgyYzk4ZjZmYmQyNDliY2JiY2U1MTkzYmMzYjc5ZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUFsbEluT25lLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkNvbnRhaW5l
ck5vZGUuY3BwIgogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGVBbGdvcml0aG1zLmNwcCIKICNpbmNs
dWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAiCisjaW5jbHVkZSAiQ29udGV4dEZl
YXR1cmVzLmNwcCIKICNpbmNsdWRlICJDdXN0b21FdmVudC5jcHAiCiAjaW5jbHVkZSAiRE9NQ29y
ZUV4Y2VwdGlvbi5jcHAiCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uY3BwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggNGQzZDg1MzNhZDBhMmQzZDk3
NGNlYzY5NjRmMjI3Mjg4YjZlNjFjNy4uMTg2YTNkODQ1NDQ3ZjcyOTQxYmQxNjc5OTg3YmZmYzE5
Yzg1NjdmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkNTU1N0
eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJEb2N1
bWVudFR5cGUuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29k
ZS5oIgpAQCAtMjk1LDYgKzI5Niw3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVu
dGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSCiAgICAgICAg
IGRvYyA9IERvY3VtZW50OjpjcmVhdGUoMCwgS1VSTCgpKTsKIAogICAgIGRvYy0+c2V0U2VjdXJp
dHlPcmlnaW4obV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgZG9jLT5zZXRGZWF0
dXJlcyhtX2RvY3VtZW50LT5mZWF0dXJlU3dpdGNoKCkpOwogCiAgICAgUmVmUHRyPE5vZGU+IGRv
Y3VtZW50RWxlbWVudDsKICAgICBpZiAoIXF1YWxpZmllZE5hbWUuaXNFbXB0eSgpKSB7CkBAIC0z
NzIsNiArMzc0LDcgQEAgUGFzc1JlZlB0cjxIVE1MRG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9u
OjpjcmVhdGVIVE1MRG9jdW1lbnQoY29uc3QgU3RyaW5nJiB0aXQKICAgICBkLT53cml0ZSgiPCFk
b2N0eXBlIGh0bWw+PGh0bWw+PGJvZHk+PC9ib2R5PjwvaHRtbD4iKTsKICAgICBkLT5zZXRUaXRs
ZSh0aXRsZSk7CiAgICAgZC0+c2V0U2VjdXJpdHlPcmlnaW4obV9kb2N1bWVudC0+c2VjdXJpdHlP
cmlnaW4oKSk7CisgICAgZC0+c2V0RmVhdHVyZXMobV9kb2N1bWVudC0+ZmVhdHVyZVN3aXRjaCgp
KTsKICAgICByZXR1cm4gZC5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDI2ZWFlOGM3OGE4MDFkNTEyM2NlYzlkYWM4ZDQwOWI2MzE3ZDI1ODcuLjRjZjZiN2Y3MTU5
ZDU3ZDU1MDY5YWVmZDhmNGJmOTg4MmM4MTM0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIkNvbW1lbnQuaCIKICNpbmNsdWRlICJDb25zb2xl
LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAiQ29udGV4
dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRE9NSW1wbGVt
ZW50YXRpb24uaCIKICNpbmNsdWRlICJET01TZWxlY3Rpb24uaCIKQEAgLTUwNSw2ICs1MDYsOCBA
QCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wg
aXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgbV9pZ25vcmVBdXRvZm9jdXMgPSBmYWxzZTsKIAog
ICAgIG1fZnJhbWUgPSBmcmFtZTsKKyAgICBpZiAobV9mcmFtZSkKKyAgICAgICAgcHJvdmlkZUNv
bnRleHRGZWF0dXJlc1RvRG9jdW1lbnRGcm9tKHRoaXMsIG1fZnJhbWUtPnBhZ2UoKSk7CiAKICAg
ICAvLyBXZSBkZXBlbmQgb24gdGhlIHVybCBnZXR0aW5nIGltbWVkaWF0ZWx5IHNldCBpbiBzdWJm
cmFtZXMsIGJ1dCB3ZQogICAgIC8vIGFsc28gZGVwZW5kIG9uIHRoZSB1cmwgTk9UIGdldHRpbmcg
aW1tZWRpYXRlbHkgc2V0IGluIG9wZW5lZCB3aW5kb3dzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAK
aW5kZXggYTA2ZmZkNDVmMzlmMjAzMzIzNjczYmIyY2QxYzM3Y2M5OTQwZjM5YS4uODg5MTQzNTMw
MDhkZWY5Njc0YTcxNTY1NDkwZjVmODE1NTE3YzMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3Bw
CkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiUG9zaXRpb24uaCIKIAogI2luY2x1ZGUgIkNT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVh
dHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlICJJbmxpbmVUZXh0Qm94LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpA
QCAtODIsNyArODIsNyBAQCBQb3NpdGlvbjo6UG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBhbmNo
b3JOb2RlLCBMZWdhY3lFZGl0aW5nT2Zmc2V0IG9mZnNldCkKICAgICAsIG1faXNMZWdhY3lFZGl0
aW5nUG9zaXRpb24odHJ1ZSkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBBU1NFUlQo
KG1fYW5jaG9yTm9kZSAmJiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVk
KG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgIEFTU0VSVCgobV9h
bmNob3JOb2RlICYmIENvbnRleHRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5v
ZGUtPmRvY3VtZW50KCkpKQogICAgICAgICAgICB8fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hv
ck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbHNlCiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUg
fHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwpAQCAtOTYsNyArOTYsNyBAQCBQb3Np
dGlvbjo6UG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBhbmNob3JOb2RlLCBBbmNob3JUeXBlIGFu
Y2hvclR5cGUpCiAgICAgLCBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKGZhbHNlKQogewogI2lm
IEVOQUJMRShTSEFET1dfRE9NKQotICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIENvbnRleHRF
bmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgp
LT5kb21XaW5kb3coKSkpCisgICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYgQ29udGV4dEZlYXR1
cmVzOjpzaGFkb3dET01FbmFibGVkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKSkpCiAgICAgICAg
ICAgIHx8ICFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwog
I2Vsc2UKICAgICBBU1NFUlQoIW1fYW5jaG9yTm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRv
d1Jvb3QoKSk7CkBAIC0xMTQsNyArMTE0LDcgQEAgUG9zaXRpb246OlBvc2l0aW9uKFBhc3NSZWZQ
dHI8Tm9kZT4gYW5jaG9yTm9kZSwgaW50IG9mZnNldCwgQW5jaG9yVHlwZSBhbmNob3JUeXAKICAg
ICAsIG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFsc2UpCiB7CiAjaWYgRU5BQkxFKFNIQURP
V19ET00pCi0gICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYgQ29udGV4dEVuYWJsZWRGZWF0dXJl
czo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygp
KSkKKyAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RP
TUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpKSkKICAgICAgICAgICAgfHwgIW1fYW5j
aG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZS5nZXQoKSkgfHwg
IW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2Vsc2UKICAgICBBU1NFUlQoIW1fYW5j
aG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZS5nZXQoKSkgfHwg
IW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwpAQCAtODU3LDcgKzg1Nyw3IEBAIENvbnRh
aW5lck5vZGUqIFBvc2l0aW9uOjpmaW5kUGFyZW50KGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgLy8g
RklYTUU6IFNlZSBodHRwOi8vd2ViLnVnLzgyNjk3CiAKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkK
LSAgICBpZiAoQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChub2RlLT5k
b2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAgaWYgKENvbnRleHRGZWF0dXJlczo6c2hhZG93
RE9NRW5hYmxlZChub2RlLT5kb2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJuIG5vZGUtPnBhcmVu
dE5vZGUoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJp
dHlDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwCmlu
ZGV4IDgwMDIyMDFjMWUwMzQ1YmUyZjM3MjAzNDM3NmJlMTZjMjM1YzE4OTQuLjFlYzg4NjFiZTBj
MWMzMjAwM2I4NzRmNDhkNDY5MjA5YWMzYjI1ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TZWN1cml0eUNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0
eUNvbnRleHQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlDb250ZXh0
LmgiCiAKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJDb250
ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKIApAQCAtMzcsNiArMzgsNyBAQCBTZWN1cml0eUNvbnRleHQ6OlNl
Y3VyaXR5Q29udGV4dCgpCiAgICAgOiBtX21heURpc3BsYXlTZWFtbGVzc1dpdGhQYXJlbnQoZmFs
c2UpCiAgICAgLCBtX2hhdmVJbml0aWFsaXplZFNlY3VyaXR5T3JpZ2luKGZhbHNlKQogICAgICwg
bV9zYW5kYm94RmxhZ3MoU2FuZGJveE5vbmUpCisgICAgLCBtX2ZlYXR1cmVTd2l0Y2goQ29udGV4
dEZlYXR1cmVzOjpkZWZhdWx0U3dpdGNoKCkpCiB7CiB9CiAKQEAgLTExOSw0ICsxMjEsOSBAQCBT
YW5kYm94RmxhZ3MgU2VjdXJpdHlDb250ZXh0OjpwYXJzZVNhbmRib3hQb2xpY3koY29uc3QgU3Ry
aW5nJiBwb2xpY3kpCiAgICAgcmV0dXJuIGZsYWdzOwogfQogCit2b2lkIFNlY3VyaXR5Q29udGV4
dDo6c2V0RmVhdHVyZXMoUGFzc1JlZlB0cjxDb250ZXh0RmVhdHVyZXM+IGZlYXR1cmUpCit7Cisg
ICAgbV9mZWF0dXJlU3dpdGNoID0gZmVhdHVyZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3Vy
aXR5Q29udGV4dC5oCmluZGV4IGZjOWRmM2UzNDI1ZTA2Mjg0OWUwYWRjODcxNGJlZjljYWQ2MDE3
ZTYuLjVlNWE3ODU4N2ZmOWYyNDFmNWZlYTA4M2MzMmI4ZWQ0YjllNzE4ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2VjdXJpdHlDb250ZXh0LmgKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIGNsYXNzIENvbnRlbnRTZWN1cml0eVBvbGlj
eTsKK2NsYXNzIENvbnRleHRGZWF0dXJlczsKIGNsYXNzIEtVUkw7CiAKIGVudW0gU2FuZGJveEZs
YWcgewpAQCAtNTksNiArNjAsNyBAQCBwdWJsaWM6CiAgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3Vy
aXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAg
IFNhbmRib3hGbGFncyBzYW5kYm94RmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX3NhbmRib3hGbGFn
czsgfQogICAgIENvbnRlbnRTZWN1cml0eVBvbGljeSogY29udGVudFNlY3VyaXR5UG9saWN5KCkg
eyByZXR1cm4gbV9jb250ZW50U2VjdXJpdHlQb2xpY3kuZ2V0KCk7IH0KKyAgICBDb250ZXh0RmVh
dHVyZXMqIGZlYXR1cmVTd2l0Y2goKSB7IHJldHVybiBtX2ZlYXR1cmVTd2l0Y2guZ2V0KCk7IH0K
IAogICAgIGJvb2wgaXNTZWN1cmVUcmFuc2l0aW9uVG8oY29uc3QgS1VSTCYpIGNvbnN0OwogCkBA
IC02OSw2ICs3MSw3IEBAIHB1YmxpYzoKICAgICAvLyBOb3RlOiBJdCBpcyBkYW5nZXJvdXMgdG8g
Y2hhbmdlIHRoZSBzZWN1cml0eSBvcmlnaW4gb2YgYSBzY3JpcHQgY29udGV4dAogICAgIC8vICAg
ICAgIHRoYXQgYWxyZWFkeSBjb250YWlucyBjb250ZW50LgogICAgIHZvaWQgc2V0U2VjdXJpdHlP
cmlnaW4oUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4pOworICAgIHZvaWQgc2V0RmVhdHVyZXMo
UGFzc1JlZlB0cjxDb250ZXh0RmVhdHVyZXM+KTsKIAogICAgIHN0YXRpYyBTYW5kYm94RmxhZ3Mg
cGFyc2VTYW5kYm94UG9saWN5KGNvbnN0IFN0cmluZyYgcG9saWN5KTsKIApAQCAtOTIsNiArOTUs
NyBAQCBwcml2YXRlOgogICAgIFNhbmRib3hGbGFncyBtX3NhbmRib3hGbGFnczsKICAgICBSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+IG1fc2VjdXJpdHlPcmlnaW47CiAgICAgT3duUHRyPENvbnRlbnRT
ZWN1cml0eVBvbGljeT4gbV9jb250ZW50U2VjdXJpdHlQb2xpY3k7CisgICAgUmVmUHRyPENvbnRl
eHRGZWF0dXJlcz4gbV9mZWF0dXJlU3dpdGNoOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCA4MzIyZmNiMzhhZjU5NjA4NjkwZDE4Mjc4
NmNjODk3OGU5NjY0YWRlLi5iNTQ2NTkxZjdlYjEyZDgwOGEyM2VhMjYzNGNkODg0YzUzYTMwN2Qz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUg
IlRyZWVTY29wZS5oIgogCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgotI2luY2x1ZGUgIkNv
bnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNp
bmNsdWRlICJET01TZWxlY3Rpb24uaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgpAQCAtMTUwLDcgKzE1MCw3IEBAIERPTVNlbGVjdGlvbiogVHJlZVNjb3Bl
OjpnZXRTZWxlY3Rpb24oKSBjb25zdAogICAgIC8vIGFzIGEgY29udGFpbmVyLiBJdCBpcyBub3cg
ZW5hYmxlZCBvbmx5IGlmIHJ1bnRpbWUgU2hhZG93IERPTSBmZWF0dXJlIGlzIGVuYWJsZWQuCiAg
ICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjY5Nwog
I2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIGlmIChDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpz
aGFkb3dET01FbmFibGVkKHJvb3ROb2RlKCktPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkgewor
ICAgIGlmIChDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQocm9vdE5vZGUoKS0+ZG9j
dW1lbnQoKSkpIHsKICAgICAgICAgbV9zZWxlY3Rpb24gPSBET01TZWxlY3Rpb246OmNyZWF0ZSh0
aGlzKTsKICAgICAgICAgcmV0dXJuIG1fc2VsZWN0aW9uLmdldCgpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUvZG9t
L21ha2VfbmFtZXMucGwKaW5kZXggYTZjYjA0MmRmZTAyNmM1ODg0YWY3MDA3YzBhNjM2YjEzYWM5
MTg1Zi4uNmUwYTA2MWM4NmY5MzM2MzE3ZjkwNTVkYTY0MTdiZTAxMzhiYmM0YSAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL21ha2VfbmFtZXMucGwKQEAgLTM3OCw3ICszNzgsNyBAQCBFTkQKICAgICBteSAkY29udGV4
dENvbmRpdGlvbmFsID0gJGVuYWJsZWRUYWdzeyR0YWdOYW1lfXtjb250ZXh0Q29uZGl0aW9uYWx9
OwogICAgIGlmICgkY29udGV4dENvbmRpdGlvbmFsKSB7CiAgICAgICAgIHByaW50IEYgPDxFTkQK
LSAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVu
YWJsZWQoZG9jdW1lbnQtPmRvbVdpbmRvdygpKSkKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlczo6
JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChkb2N1bWVudCkpCiAgICAgICAgIHJldHVybiAw
OwogRU5ECiA7CkBAIC04MDQsNyArODA0LDcgQEAgcHJpbnRDb25kaXRpb25hbEVsZW1lbnRJbmNs
dWRlcygkRik7CiAKIHByaW50IEYgPDxFTkQKIAotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVh
dHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKIAogI2lmIEVOQUJMRShEQVNI
Qk9BUkRfU1VQUE9SVCkgfHwgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBA
IC0xMDEzLDcgKzEwMTMsNyBAQCBFTkQKICAgICAgICAgICAgICAgICBwcmludCBGIDw8RU5ECiBz
dGF0aWMgSlNET01XcmFwcGVyKiBjcmVhdGUke0pTSW50ZXJmYWNlTmFtZX1XcmFwcGVyKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjwk
cGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudD4gZWxlbWVudCkKIHsKLSAgICBpZiAoIUNvbnRl
eHRFbmFibGVkRmVhdHVyZXM6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQoZWxlbWVudC0+
ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKSB7CisgICAgaWYgKCFDb250ZXh0RmVhdHVyZXM6OiR7
Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQoZWxlbWVudC0+ZG9jdW1lbnQoKSkpIHsKICAgICAg
ICAgQVNTRVJUKCFlbGVtZW50IHx8IGVsZW1lbnQtPmlzJHBhcmFtZXRlcnN7ZmFsbGJhY2tJbnRl
cmZhY2VOYW1lfSgpKTsKICAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBn
bG9iYWxPYmplY3QsICRwYXJhbWV0ZXJze2ZhbGxiYWNrSW50ZXJmYWNlTmFtZX0sIGVsZW1lbnQu
Z2V0KCkpOwogICAgIH0KQEAgLTEwNTAsNyArMTA1MCw3IEBAIEVORAogICAgICAgICAgICAgICAg
IHByaW50IEYgPDxFTkQKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY3JlYXRlJHtKU0lu
dGVyZmFjZU5hbWV9V3JhcHBlcigkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudCogZWxlbWVu
dCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7Ci0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1
cmVzOjoke2NvbnRleHRDb25kaXRpb25hbH1FbmFibGVkKGVsZW1lbnQtPmRvY3VtZW50KCktPmRv
bVdpbmRvdygpKSkKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlczo6JHtjb250ZXh0Q29uZGl0aW9u
YWx9RW5hYmxlZChlbGVtZW50LT5kb2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJuIFY4JHBhcmFt
ZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfTo6d3JhcCh0byRwYXJhbWV0ZXJze2ZhbGxiYWNr
SW50ZXJmYWNlTmFtZX0oZWxlbWVudCksIGlzb2xhdGUpOwogICAgIHJldHVybiB0b1Y4KHN0YXRp
Y19jYXN0PCR7SlNJbnRlcmZhY2VOYW1lfSo+KGVsZW1lbnQpLCBpc29sYXRlKTsKIH0KQEAgLTEx
MTEsNyArMTExMSw3IEBAIHN1YiBwcmludFdyYXBwZXJGYWN0b3J5Q3BwRmlsZQogCiAgICAgcHJp
bnQgRiA8PEVORAogCi0jaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1
ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogCiAjaWYgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggOWFlN2U3MmMyZjI2ZTk3
NDBhZDRhNWYwY2IyNGIxOTk0NDhkODA3MS4uMDAwOWEyMzFjYzc0YWY1ZWQxMWViMzhiM2U2YmY4
YjJiZTI1NTBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgog
I2luY2x1ZGUgIkNoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVh
dHVyZXMuaCIKICNpbmNsdWRlICJEZWxldGVCdXR0b25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgpAQCAtNzMwLDYg
KzczMSw3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9t
TWFya3VwV2l0aENvbnRleHQoRG9jdW1lbnQqIGRvY3VtCiAKICAgICBSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gdGFnZ2VkRnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXAoZG9jdW1l
bnQsIHRhZ2dlZE1hcmt1cC50b1N0cmluZygpLCBiYXNlVVJMLCBzY3JpcHRpbmdQZXJtaXNzaW9u
KTsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IHRhZ2dlZERvY3VtZW50ID0gRG9jdW1lbnQ6OmNyZWF0
ZSgwLCBLVVJMKCkpOworICAgIHRhZ2dlZERvY3VtZW50LT5zZXRGZWF0dXJlcyhkb2N1bWVudC0+
ZmVhdHVyZVN3aXRjaCgpKTsKICAgICB0YWdnZWREb2N1bWVudC0+dGFrZUFsbENoaWxkcmVuRnJv
bSh0YWdnZWRGcmFnbWVudC5nZXQoKSk7CiAKICAgICBSZWZQdHI8Tm9kZT4gbm9kZUJlZm9yZUNv
bnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAppbmRleCA2N2Rk
Y2ViNGZhYTNmYTdlY2RhNTM0NTc3MzZmYzVkNmNlMzhlZjRjLi5mMDczYTBkMTliZjE5NzM0MTMw
YWU2YTZmNmI5YjUyMmRlNTYxZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxl
bWVudC5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50Lmgi
CiAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKLSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1
cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50U2VuZGVyLmgiCkBAIC0xMDUs
NyArMTA1LDcgQEAgdm9pZCBIVE1MU3R5bGVFbGVtZW50OjpyZWdpc3RlcldpdGhTY29waW5nTm9k
ZSgpCiAgICAgQVNTRVJUKGluRG9jdW1lbnQoKSk7CiAgICAgaWYgKG1faXNSZWdpc3RlcmVkV2l0
aFNjb3BpbmdOb2RlKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZl
YXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpCisgICAgaWYgKCFDb250ZXh0
RmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgQ29udGFpbmVyTm9kZSogc2NvcGUgPSBwYXJlbnROb2RlKCk7CkBAIC0xMzAsMTAg
KzEzMCwxMCBAQCB2b2lkIEhUTUxTdHlsZUVsZW1lbnQ6OnVucmVnaXN0ZXJXaXRoU2NvcGluZ05v
ZGUoQ29udGFpbmVyTm9kZSogc2NvcGUpCiB7CiAgICAgLy8gTm90ZTogV2UgY2Fubm90IHJlbHkg
b24gdGhlICdzY29wZWQnIGVsZW1lbnQgc3RpbGwgYmVpbmcgcHJlc2VudCB3aGVuIHRoaXMgbWV0
aG9kIGlzIGludm9rZWQuCiAgICAgLy8gVGhlcmVmb3JlIHdlIGNhbm5vdCByZWx5IG9uIHNjb3Bl
ZCgpIQotICAgIEFTU0VSVChtX2lzUmVnaXN0ZXJlZFdpdGhTY29waW5nTm9kZSB8fCAhQ29udGV4
dEVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50KCkpKTsKKyAgICBB
U1NFUlQobV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05vZGUgfHwgIUNvbnRleHRGZWF0dXJlczo6
c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50KCkpKTsKICAgICBpZiAoIW1faXNSZWdpc3RlcmVk
V2l0aFNjb3BpbmdOb2RlKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFDb250ZXh0RW5hYmxl
ZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpCisgICAgaWYgKCFDb250
ZXh0RmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgQVNTRVJUKHNjb3BlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4IDA4YjQ1ZDRhYmY1OWJmYzc2ZThlNzQw
MDNjMTc2ZGRjOTYwZTRiZWYuLmIwYmRkODg1Zjc4ZWM2NzBmOGU3NWM0ODkzMDEyYTYyMWQ5NTU0
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVt
ZW50LmNwcApAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAiQ29udGVudERpc3RyaWJ1dG9y
LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlbGVjdG9yUXVlcnkuaCIKLSNpbmNsdWRlICJDb250ZXh0
RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlF1
YWxpZmllZE5hbWUuaCIKQEAgLTQzLDcgKzQzLDcgQEAgdXNpbmcgSFRNTE5hbWVzOjpzZWxlY3RB
dHRyOwogc3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUmIGNvbnRlbnRUYWdOYW1lKERvY3VtZW50
KiBkb2N1bWVudCkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoIUNvbnRleHRF
bmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoZG9jdW1lbnQtPmRvbVdpbmRvdygpKSkK
KyAgICBpZiAoIUNvbnRleHRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChkb2N1bWVudCkpCiAg
ICAgICAgIHJldHVybiBIVE1MTmFtZXM6OndlYmtpdFNoYWRvd0NvbnRlbnRUYWc7CiAgICAgcmV0
dXJuIEhUTUxOYW1lczo6Y29udGVudFRhZzsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwCmluZGV4IGJhMGQ4Yzg2YzU1OGM4ZmE4ZTI1M2VlOTYx
YjAwOGJkMDY1M2UyNTAuLjAwNThhYmE3MjNlNzM4YTc3Y2NmYjVkYzBlY2JiODU1YTk2OGE1Njcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3BwCkBAIC0z
Niw2ICszNiw3IEBACiAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJCYXNlNjQu
aCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJET01FZGl0b3IuaCIK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKQEAg
LTg5LDYgKzkwLDcgQEAgRE9NUGF0Y2hTdXBwb3J0Ojp+RE9NUGF0Y2hTdXBwb3J0KCkgeyB9CiB2
b2lkIERPTVBhdGNoU3VwcG9ydDo6cGF0Y2hEb2N1bWVudChjb25zdCBTdHJpbmcmIG1hcmt1cCkK
IHsKICAgICBSZWZQdHI8SFRNTERvY3VtZW50PiBuZXdEb2N1bWVudCA9IEhUTUxEb2N1bWVudDo6
Y3JlYXRlKDAsIEtVUkwoKSk7CisgICAgbmV3RG9jdW1lbnQtPnNldEZlYXR1cmVzKG1fZG9jdW1l
bnQtPmZlYXR1cmVTd2l0Y2goKSk7CiAgICAgUmVmUHRyPERvY3VtZW50UGFyc2VyPiBwYXJzZXIg
PSBIVE1MRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZShuZXdEb2N1bWVudC5nZXQoKSwgZmFsc2UpOwog
ICAgIHBhcnNlci0+aW5zZXJ0KG1hcmt1cCk7IC8vIFVzZSBpbnNlcnQoKSBzbyB0aGF0IHRoZSBw
YXJzZXIgd2lsbCBub3QgeWllbGQuCiAgICAgcGFyc2VyLT5maW5pc2goKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggZjVjN2E3MjY2YTYwMGRlYTUyOWJm
OWQxM2MxN2JkZTYyMGVhOWQyNy4uYmU4MTAyODdhNzBkNTVlOGU2NTZiZmYzZDY0MGFhZmE1MzNi
MTA2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTMx
MSwxMiArMzExLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wg
YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBT
ZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7
IH0KICAgICAgICAgdmlydHVhbCBib29sIGFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29s
IGVuYWJsZWRQZXJTZXR0aW5ncywgU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJikgeyByZXR1
cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGFsbG93U2hh
ZG93RE9NKGJvb2wgZW5hYmxlZEFzUnVudGltZUZlYXR1cmVzKSB7IHJldHVybiBlbmFibGVkQXNS
dW50aW1lRmVhdHVyZXM7IH0KLSAgICAgICAgdmlydHVhbCBib29sIGFsbG93U3R5bGVTY29wZWQo
Ym9vbCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZXMpIHsgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVG
ZWF0dXJlczsgfQotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotICAgICAgICB2aXJ0dWFsIGJvb2wg
YWxsb3dQYWdlUG9wdXAoKSB7IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCi0KICAgICAgICAgLy8g
VGhpcyBjYWxsYmFjayBub3RpZmllcyB0aGUgY2xpZW50IHRoYXQgdGhlIGZyYW1lIHdhcyBhYm91
dCB0byBydW4KICAgICAgICAgLy8gSmF2YVNjcmlwdCBidXQgZGlkIG5vdCBiZWNhdXNlIGFsbG93
U2NyaXB0IHJldHVybmVkIGZhbHNlLiBXZQogICAgICAgICAvLyBoYXZlIGEgc2VwYXJhdGUgY2Fs
bGJhY2sgaGVyZSBiZWNhdXNlIHRoZXJlIGFyZSBhIG51bWJlciBvZiBwbGFjZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlZkNvdW50ZWRTdXBwbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWZDb3VudGVkU3VwcGxlbWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIx
N2Q1OTVkYTNhYmIxYjZmYWMwOTc0YTQ3NWMzZTFlM2U4YjUwNmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWZDb3VudGVkU3VwcGxlbWVudC5oCkBAIC0wLDAg
KzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlLCBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgUmVmQ291bnRlZFN1cHBsZW1lbnRfaAorI2RlZmluZSBSZWZDb3VudGVkU3VwcGxl
bWVudF9ICisKKyNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNzIFM+CitjbGFzcyBSZWZDb3VudGVkU3VwcGxlbWVu
dCA6IHB1YmxpYyBSZWZDb3VudGVkPFM+IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIFJlZkNvdW50
ZWRTdXBwbGVtZW50PFQsIFM+IFRoaXNUeXBlOworCisgICAgdmlydHVhbCB+UmVmQ291bnRlZFN1
cHBsZW1lbnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaG9zdERlc3Ryb3llZCgpIHsgfQorCisg
ICAgY2xhc3MgV3JhcHBlciA6IHB1YmxpYyBTdXBwbGVtZW50PFQ+IHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIGV4cGxpY2l0IFdyYXBwZXIoUGFzc1JlZlB0cjxUaGlzVHlwZT4gd3JhcHBlZCkgOiBt
X3dyYXBwZWQod3JhcHBlZCkgeyB9CisgICAgICAgIHZpcnR1YWwgfldyYXBwZXIoKSB7IG1fd3Jh
cHBlZC0+aG9zdERlc3Ryb3llZCgpOyAgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNSZWZDb3Vu
dGVkV3JhcHBlcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgVGhp
c1R5cGUqIHdyYXBwZWQoKSBjb25zdCB7IHJldHVybiBtX3dyYXBwZWQuZ2V0KCk7IH0KKyAgICBw
cml2YXRlOgorCisgICAgICAgIFJlZlB0cjxUaGlzVHlwZT4gbV93cmFwcGVkOworICAgIH07CisK
KyAgICBzdGF0aWMgdm9pZCBwcm92aWRlVG8oU3VwcGxlbWVudGFibGU8VD4qIGhvc3QsIGNvbnN0
IEF0b21pY1N0cmluZyYga2V5LCBQYXNzUmVmUHRyPFRoaXNUeXBlPiBzdXBwbGVtZW50KQorICAg
IHsKKyAgICAgICAgaG9zdC0+cHJvdmlkZVN1cHBsZW1lbnQoa2V5LCBhZG9wdFB0cihuZXcgV3Jh
cHBlcihzdXBwbGVtZW50KSkpOworICAgIH0KKworICAgIHN0YXRpYyBUaGlzVHlwZSogZnJvbShT
dXBwbGVtZW50YWJsZTxUPiogaG9zdCwgY29uc3QgQXRvbWljU3RyaW5nJiBrZXkpCisgICAgewor
ICAgICAgICBTdXBwbGVtZW50PFQ+KiBmb3VuZCA9IGhvc3QtPnJlcXVpcmVTdXBwbGVtZW50KGtl
eSk7CisgICAgICAgIGlmICghZm91bmQpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
QVNTRVJUKGZvdW5kLT5pc1JlZkNvdW50ZWRXcmFwcGVyKCkpOworICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8V3JhcHBlcio+KGZvdW5kKS0+d3JhcHBlZCgpOworICAgIH0KK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlZkNvdW50ZWRTdXBwbGVtZW50X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oCmluZGV4IDg0ZGM5MDZlMmFmMzQ4
YTM0ZDg1YjZiOWQ4M2M2OTcyZWMyZDY2ZTEuLmIwZGY2Y2ZjNWI5MTk3ZmIwNDgyYWNmNTNkYTc5
YTJlYWZkYWUwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1l
bnRhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxlbWVudGFibGUuaApA
QCAtNDAsNiArNDAsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogY2xhc3MgU3VwcGxlbWVudCB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U3VwcGxlbWVudCgpIHsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc1JlZkNvdW50ZWRXcmFwcGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHN0
YXRpYyB2b2lkIHByb3ZpZGVUbyhTdXBwbGVtZW50YWJsZTxUPiogaG9zdCwgY29uc3QgQXRvbWlj
U3RyaW5nJiBrZXksIFBhc3NPd25QdHI8U3VwcGxlbWVudDxUPiA+IHN1cHBsZW1lbnQpCiAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggN2M1ZTViNWYwODdiMDU4
ODg1NTQ2NTQxNTcyOGI5ZGNmNjIwNjU0ZS4uODExMjUwMWE2M2FhNzgzMDc1ZDdlMmMyY2M1NmFl
YmJkZTFhZjliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yNSw2
ICsyNSw3IEBACiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkJsb2JEYXRhLmgiCiAjaW5j
bHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVz
LmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiRE9N
Rm9ybURhdGEuaCIKICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgpAQCAtMjUzLDYgKzI1
NCw3IEBAIERvY3VtZW50KiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoRXhjZXB0aW9uQ29k
ZSYgZWMpCiAgICAgICAgICAgICAvLyBGSVhNRTogU2V0IExhc3QtTW9kaWZpZWQuCiAgICAgICAg
ICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldENvbnRlbnQobV9yZXNwb25zZUJ1aWxkZXIudG9T
dHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkpOwogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50
LT5zZXRTZWN1cml0eU9yaWdpbihzZWN1cml0eU9yaWdpbigpKTsKKyAgICAgICAgICAgIG1fcmVz
cG9uc2VEb2N1bWVudC0+c2V0RmVhdHVyZXMoZG9jdW1lbnQoKS0+ZmVhdHVyZVN3aXRjaCgpKTsK
ICAgICAgICAgICAgIGlmICghbV9yZXNwb25zZURvY3VtZW50LT53ZWxsRm9ybWVkKCkpCiAgICAg
ICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50ID0gMDsKICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCmluZGV4IDk5MjA0Yjg4NmFiN2VjMWNmNGQyNGE1OTNjY2RjZDAyN2Q1
NDk5MDEuLmIxOWIzZGZlMjRlODk3MTVlY2RjYTkyMzkyMmM2NGVjZGJlMjQ2ZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTM3MSw2ICszNzEsOCBAQAogICAgICAgICAgICAgICAg
ICdzcmMvQ29tcG9zaXRpb25VbmRlcmxpbmVCdWlsZGVyLmgnLAogICAgICAgICAgICAgICAgICdz
cmMvQ29tcG9zaXRpb25VbmRlcmxpbmVWZWN0b3JCdWlsZGVyLmNwcCcsCiAgICAgICAgICAgICAg
ICAgJ3NyYy9Db21wb3NpdGlvblVuZGVybGluZVZlY3RvckJ1aWxkZXIuaCcsCisgICAgICAgICAg
ICAgICAgJ3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNwcCcsCisgICAgICAgICAgICAg
ICAgJ3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgnLAogICAgICAgICAgICAgICAgICdz
cmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9Db250
ZXh0TWVudUNsaWVudEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9EYXRhYmFzZU9ic2Vy
dmVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQ
ZXJtaXNzaW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJt
aXNzaW9uQ2xpZW50LmgKaW5kZXggMTE2YTM4M2NhOGMyOGI0Nzg5YWU3MzVmZjFlNDRjZDMyN2Rk
ZWM4My4uMDE0YzJjM2Y0NDAyMzU0MmQ2MWIxODljNTIyNWY3NDA0NjVjYzhlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaApA
QCAtMzMsNiArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViRG9jdW1l
bnQ7CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYlNlY3VyaXR5T3JpZ2luOwogY2xhc3MgV2Vi
U3RyaW5nOwpAQCAtOTAsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGFsbG93
V3JpdGVUb0NsaXBib2FyZChXZWJGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBk
ZWZhdWx0VmFsdWU7IH0KIAogICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgZW5hYmxpbmcgV2ViIENv
bXBvbmVudHMgQVBJIGZvciB0aGlzIGZyYW1lLgotICAgIHZpcnR1YWwgYm9vbCBhbGxvd1dlYkNv
bXBvbmVudHMoV2ViRnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgeyByZXR1cm4gZGVmYXVsdFZh
bHVlOyB9CisgICAgdmlydHVhbCBib29sIGFsbG93V2ViQ29tcG9uZW50cyhjb25zdCBXZWJEb2N1
bWVudCYsIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0KIAogICAg
IC8vIE5vdGlmaWVzIHRoZSBjbGllbnQgdGhhdCB0aGUgZnJhbWUgd291bGQgaGF2ZSBpbnN0YW50
aWF0ZWQgYSBwbHVnLWluIGlmIHBsdWctaW5zIHdlcmUgZW5hYmxlZC4KICAgICB2aXJ0dWFsIHZv
aWQgZGlkTm90QWxsb3dQbHVnaW5zKFdlYkZyYW1lKikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFhZGEwNzc4NzY0ZjAyNmVhODY2ZTc5YTZmYTljMTU2OGRiZGRmYTcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGll
bnRJbXBsLmNwcApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiV2ViRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJXZWJQZXJtaXNzaW9uQ2xpZW50Lmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIENvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6
OmlzRW5hYmxlZChXZWJDb3JlOjpEb2N1bWVudCogZG9jdW1lbnQsIFdlYkNvcmU6OkNvbnRleHRG
ZWF0dXJlczo6RmVhdHVyZVR5cGUgdHlwZSwgYm9vbCBkZWZhdWx0VmFsdWUpCit7CisgICAgaWYg
KCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKKworICAgIHN3aXRjaCAo
dHlwZSkgeworICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpTaGFkb3dET006Cisg
ICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OlN0eWxlU2NvcGVkOgorICAgICAgICBy
ZXR1cm4gbV9jbGllbnQtPmFsbG93V2ViQ29tcG9uZW50cyhXZWJEb2N1bWVudChkb2N1bWVudCks
IGRlZmF1bHRWYWx1ZSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1
ZTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVhMWY5NTQ4ZDkyODAyMGM2MDZkNGZkYmVmNDk0MTU0M2JiMmJiODkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJ
bXBsLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbF9o
CisjZGVmaW5lIENvbnRleHRGZWF0dXJlc0NsaWVudEltcGxfaAorCisjaW5jbHVkZSAiQ29udGV4
dEZlYXR1cmVzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQZXJtaXNzaW9u
Q2xpZW50OworCitjbGFzcyBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsIDogcHVibGljIFdlYkNv
cmU6OkNvbnRleHRGZWF0dXJlc0NsaWVudCB7CitwdWJsaWM6CisgICAgQ29udGV4dEZlYXR1cmVz
Q2xpZW50SW1wbCgpCisgICAgICAgIDogbV9jbGllbnQoMCkKKyAgICB7IH0KKworICAgIHZpcnR1
YWwgYm9vbCBpc0VuYWJsZWQoV2ViQ29yZTo6RG9jdW1lbnQqLCBXZWJDb3JlOjpDb250ZXh0RmVh
dHVyZXM6OkZlYXR1cmVUeXBlLCBib29sIGRlZmF1bHRWYWx1ZSkgT1ZFUlJJREU7CisgICAgdm9p
ZCBzZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGllbnQqIGNsaWVudCkgeyBtX2Ns
aWVudCA9IGNsaWVudDsgfQorCitwcml2YXRlOgorICAgIFdlYlBlcm1pc3Npb25DbGllbnQqIG1f
Y2xpZW50OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBDb250ZXh0
RmVhdHVyZXNDbGllbnRJbXBsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCmluZGV4IGRlM2YyMjc4OWY1ZmExNWIwYWNkOGVk
NzRkMWU1YWY5MGU5NjlmMmMuLmQwNjAyYTlhMGU3MDRlY2Q5MTJmNmRjYWZjMWNjYzVmOWEyYWY5
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJD
bGllbnRJbXBsLmNwcApAQCAtMjM5LDI0ICsyMzksNiBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50
SW1wbDo6YWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdz
LAogICAgIHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7CiB9CiAKLWJvb2wgRnJhbWVMb2FkZXJD
bGllbnRJbXBsOjphbGxvd1NoYWRvd0RPTShib29sIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlKQot
ewotICAgIFdlYlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwoKTsKLSAg
ICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCkpCi0gICAgICAgIHJl
dHVybiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93V2ViQ29tcG9uZW50cyhtX3dl
YkZyYW1lLCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZSk7Ci0KLSAgICByZXR1cm4gZW5hYmxlZEFz
UnVudGltZUZlYXR1cmU7Ci19Ci0KLWJvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxvd1N0
eWxlU2NvcGVkKGJvb2wgZW5hYmxlZEFzUnVudGltZUZlYXR1cmUpCi17Ci0gICAgV2ViVmlld0lt
cGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOwotICAgIGlmICh3ZWJ2aWV3ICYm
IHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKLSAgICAgICAgcmV0dXJuIHdlYnZpZXctPnBl
cm1pc3Npb25DbGllbnQoKS0+YWxsb3dXZWJDb21wb25lbnRzKG1fd2ViRnJhbWUsIGVuYWJsZWRB
c1J1bnRpbWVGZWF0dXJlKTsKLQotICAgIHJldHVybiBlbmFibGVkQXNSdW50aW1lRmVhdHVyZTsK
LX0KLQogdm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZE5vdEFsbG93U2NyaXB0KCkKIHsK
ICAgICBXZWJWaWV3SW1wbCogd2VidmlldyA9IG1fd2ViRnJhbWUtPnZpZXdJbXBsKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCmlu
ZGV4IDIzNmEwMWI2NTMwMjk1MTQ2YWNlYTEzYmRlNWQwZjIzODM3YTlmYWYuLmVjYjIwYTJmYjI1
ZWZlNjRhZmU2MGQ0MjQ2ZTZjOTkzYWY1ZjMxMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCkBAIC0xOTksOCArMTk5LDYgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ltYWdlKGJvb2wgZW5hYmxlZFBlclNldHRp
bmdzLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBpbWFnZVVSTCk7CiAgICAgdmlydHVhbCBib29sIGFs
bG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXZWJDb3JlOjpLVVJMJik7CiAgICAgdmlydHVh
bCBib29sIGFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5n
cywgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXZWJDb3JlOjpLVVJMJik7Ci0gICAg
dmlydHVhbCBib29sIGFsbG93U2hhZG93RE9NKGJvb2wgZW5hYmxlZEFzUnVudGltZUZlYXR1cmUp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhbGxvd1N0eWxlU2NvcGVkKGJvb2wgZW5hYmxl
ZEFzUnVudGltZUZlYXR1cmUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxv
d1NjcmlwdCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RBbGxvd1BsdWdpbnMoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcAppbmRleCBh
ZTVhYWM4YTQwNzNmYjU4NzFkOTczNGQ3ZjQ0NzdjYWJmY2VjMzZkLi4zNWFlY2Q5M2VkMDZkNWNk
NTliOGE5NTBmYTViYTFjODc4OTJkYzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldl
YlBhZ2VQb3B1cEltcGwuaCIKIAogI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNvbnRl
eHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkRPTVdpbmRvd1BhZ2VQb3B1cC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVkZSAiRW1wdHlDbGllbnRzLmgiCkBAIC0xMjcsMTAg
KzEyOCwxNyBAQCBwcml2YXRlOgogICAgIFdlYlBhZ2VQb3B1cEltcGwqIG1fcG9wdXA7CiB9Owog
Ci1jbGFzcyBQYWdlUG9wdXBGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBFbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50IHsKLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dQYWdlUG9wdXAoKSBPVkVSUklERSB7
IHJldHVybiB0cnVlOyB9CitjbGFzcyBQYWdlUG9wdXBGZWF0dXJlc0NsaWVudCA6IHB1YmxpYyBD
b250ZXh0RmVhdHVyZXNDbGllbnQgeworICAgIHZpcnR1YWwgYm9vbCBpc0VuYWJsZWQoRG9jdW1l
bnQqLCBDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlLCBib29sKSBPVkVSUklERTsKIH07CiAK
K2Jvb2wgUGFnZVBvcHVwRmVhdHVyZXNDbGllbnQ6OmlzRW5hYmxlZChEb2N1bWVudCosIENvbnRl
eHRGZWF0dXJlczo6RmVhdHVyZVR5cGUgdHlwZSwgYm9vbCBkZWZhdWx0VmFsdWUpCit7CisgICAg
aWYgKHR5cGUgPT0gQ29udGV4dEZlYXR1cmVzOjpQYWdlUG9wdXApCisgICAgICAgIHJldHVybiB0
cnVlOworICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Cit9CisKIC8vIFdlYlBhZ2VQb3B1cEltcGwg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCiBXZWJQYWdlUG9wdXBJbXBsOjpXZWJQYWdlUG9wdXBJbXBsKFdlYldpZGdldENs
aWVudCogY2xpZW50KQpAQCAtMTg1LDggKzE5MywxMCBAQCBib29sIFdlYlBhZ2VQb3B1cEltcGw6
OmluaXRQYWdlKCkKICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldFNjcmlwdEVuYWJsZWQodHJ1
ZSk7CiAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRBbGxvd1NjcmlwdHNUb0Nsb3NlV2luZG93
cyh0cnVlKTsKIAotICAgIHN0YXRpYyBGcmFtZUxvYWRlckNsaWVudCogcGFnZVBvcHVwRnJhbWVM
b2FkZXJDbGllbnQgPSAgbmV3IFBhZ2VQb3B1cEZyYW1lTG9hZGVyQ2xpZW50OwotICAgIFJlZlB0
cjxGcmFtZT4gZnJhbWUgPSBGcmFtZTo6Y3JlYXRlKG1fcGFnZS5nZXQoKSwgMCwgcGFnZVBvcHVw
RnJhbWVMb2FkZXJDbGllbnQpOworICAgIHN0YXRpYyBDb250ZXh0RmVhdHVyZXNDbGllbnQqIHBh
Z2VQb3B1cEZlYXR1cmVzQ2xpZW50ID0gIG5ldyBQYWdlUG9wdXBGZWF0dXJlc0NsaWVudCgpOwor
ICAgIHByb3ZpZGVDb250ZXh0RmVhdHVyZXNUbyhtX3BhZ2UuZ2V0KCksIHBhZ2VQb3B1cEZlYXR1
cmVzQ2xpZW50KTsKKyAgICBzdGF0aWMgRnJhbWVMb2FkZXJDbGllbnQqIGVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQgPSAgbmV3IEVtcHR5RnJhbWVMb2FkZXJDbGllbnQoKTsKKyAgICBSZWZQdHI8RnJh
bWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShtX3BhZ2UuZ2V0KCksIDAsIGVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQpOwogICAgIGZyYW1lLT5zZXRWaWV3KEZyYW1lVmlldzo6Y3JlYXRlKGZyYW1lLmdl
dCgpKSk7CiAgICAgZnJhbWUtPmluaXQoKTsKICAgICBmcmFtZS0+dmlldygpLT5yZXNpemUobV9w
b3B1cENsaWVudC0+Y29udGVudFNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKaW5kZXggYTQ0MDk3YmE0Yjg3YTkyN2ZjODMwMjg5Y2JhNGY4ZmU5YmQ3
NzZiMC4uZDRkNTZhN2EzZDBiZTkxZDhhZmZlNGQ5ZjhlYWM4YjdkNTY0MzIyMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNDEsNiArNDEsNyBAQAog
I2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAiQ29sb3JTcGFjZS5oIgogI2luY2x1ZGUgIkNv
bXBvc2l0aW9uVW5kZXJsaW5lVmVjdG9yQnVpbGRlci5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0
dXJlc0NsaWVudEltcGwuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudS5oIgogI2luY2x1ZGUgIkNv
bnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5oIgpAQCAt
MzM3LDYgKzMzOCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldERldlRvb2xzQWdlbnRDbGllbnQo
V2ViRGV2VG9vbHNBZ2VudENsaWVudCogZGV2VG9vbHNDbGllbnQpCiB2b2lkIFdlYlZpZXdJbXBs
OjpzZXRQZXJtaXNzaW9uQ2xpZW50KFdlYlBlcm1pc3Npb25DbGllbnQqIHBlcm1pc3Npb25DbGll
bnQpCiB7CiAgICAgbV9wZXJtaXNzaW9uQ2xpZW50ID0gcGVybWlzc2lvbkNsaWVudDsKKyAgICBt
X2ZlYXR1cmVTd2l0Y2hDbGllbnQtPnNldFBlcm1pc3Npb25DbGllbnQocGVybWlzc2lvbkNsaWVu
dCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldFByZXJlbmRlcmVyQ2xpZW50KFdlYlByZXJl
bmRlcmVyQ2xpZW50KiBwcmVyZW5kZXJlckNsaWVudCkKQEAgLTM5Miw2ICszOTQsNyBAQCBXZWJW
aWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50KQogICAgICwgbV9pbWVB
Y2NlcHRFdmVudHModHJ1ZSkKICAgICAsIG1fb3BlcmF0aW9uc0FsbG93ZWQoV2ViRHJhZ09wZXJh
dGlvbk5vbmUpCiAgICAgLCBtX2RyYWdPcGVyYXRpb24oV2ViRHJhZ09wZXJhdGlvbk5vbmUpCisg
ICAgLCBtX2ZlYXR1cmVTd2l0Y2hDbGllbnQoYWRvcHRQdHIobmV3IENvbnRleHRGZWF0dXJlc0Ns
aWVudEltcGwoKSkpCiAgICAgLCBtX2F1dG9maWxsUG9wdXBTaG93aW5nKGZhbHNlKQogICAgICwg
bV9hdXRvZmlsbFBvcHVwKDApCiAgICAgLCBtX2lzVHJhbnNwYXJlbnQoZmFsc2UpCkBAIC00NTEs
NiArNDU0LDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVu
dCkKICAgICBwcm92aWRlTm90aWZpY2F0aW9uKG1fcGFnZS5nZXQoKSwgbm90aWZpY2F0aW9uUHJl
c2VudGVySW1wbCgpKTsKICNlbmRpZgogCisgICAgcHJvdmlkZUNvbnRleHRGZWF0dXJlc1RvKG1f
cGFnZS5nZXQoKSwgbV9mZWF0dXJlU3dpdGNoQ2xpZW50LmdldCgpKTsKICAgICBwcm92aWRlRGV2
aWNlT3JpZW50YXRpb25UbyhtX3BhZ2UuZ2V0KCksIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRQ
cm94eS5nZXQoKSk7CiAgICAgcHJvdmlkZUdlb2xvY2F0aW9uVG8obV9wYWdlLmdldCgpLCBtX2dl
b2xvY2F0aW9uQ2xpZW50UHJveHkuZ2V0KCkpOwogICAgIG1fZ2VvbG9jYXRpb25DbGllbnRQcm94
eS0+c2V0Q29udHJvbGxlcihHZW9sb2NhdGlvbkNvbnRyb2xsZXI6OmZyb20obV9wYWdlLmdldCgp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCBhMDg4OTY3
OGExNDAwNzQyY2MyNmUwZWJmYmJlMjNlMTk4YjkyZDJlLi43YmRkYTkwZjQwZDhlOGFjZTViMWE2
YjY3YzY4ZWNjZjdhNmVlZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmgKQEAgLTg2LDYgKzg2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBBdXRvY29t
cGxldGVQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDsKIGNs
YXNzIEJhdHRlcnlDbGllbnRJbXBsOworY2xhc3MgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbDsK
IGNsYXNzIENvbnRleHRNZW51Q2xpZW50SW1wbDsKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50UHJveHk7CiBjbGFzcyBEcmFnU2Nyb2xsVGltZXI7CkBAIC03MzMsNiArNzM0LDkgQEAgcHJp
dmF0ZToKICAgICAvLyBjdXJyZW50IGRyb3AgdGFyZ2V0IGluIHRoaXMgV2ViVmlldyAodGhlIGRy
b3AgdGFyZ2V0IGNhbiBhY2NlcHQgdGhlIGRyb3ApLgogICAgIFdlYkRyYWdPcGVyYXRpb24gbV9k
cmFnT3BlcmF0aW9uOwogCisgICAgLy8gQ29udGV4dC1iYXNlZCBmZWF0dXJlIHN3aXRjaGVzLgor
ICAgIE93blB0cjxDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsPiBtX2ZlYXR1cmVTd2l0Y2hDbGll
bnQ7CisKICAgICAvLyBXaGV0aGVyIGFuIEF1dG9maWxsIHBvcHVwIGlzIGN1cnJlbnRseSBzaG93
aW5nLgogICAgIGJvb2wgbV9hdXRvZmlsbFBvcHVwU2hvd2luZzsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFhMTAwYmQ3
M2JlMzFiODQwZmFjOGFkYTMxZDQwY2QyZWM5NDhiNmMuLmVlOTg3M2ZkZTY4NWYzZTFkMmY0YTg1
NDQ3ZGYzZTM0YzJkOTI2ZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0xMCAgSGFq
aW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KKworICAgICAgICBSRUdSRVNTSU9O
KHIxMTgwOTgpOiA8Y29udGVudD4gZWxlbWVudCBkb2VzIG5vdCByZW5kZXIgZGlzdHJpYnV0ZWQg
Y2hpbGRyZW4gd2hlbiBjbG9uZWQgZnJvbSBhbm90aGVyIGRvY3VtZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODE0OAorCisgICAgICAgIFJldmll
d2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9lbGVt
ZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWw6IEFk
ZGVkLgorCiAyMDEyLTA2LTA4ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBVc2luZyBCbG9iQnVpbGRlciBzaG91bGQgc2hvdyBhIGRlcHJlY2F0aW9uIHdh
cm5pbmcgbWVzc2FnZSAoaWYgaXQgaXMgZW5hYmxlZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1k
b2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY0MzA3NTNmMjk1MzJlMWY1MjIxNTAw
YTk5MjBjMTJmODM3NmEyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBlbnN1cmUgdGhhdCB0aGUgc2hhZG93IHJlbGF0ZWQgZWxl
bWVudHMgYXJlIGluc3RhbnRpYXRlZCBldmVuIGluc2lkZSBmcmFtZWxlc3MgZG9jdW1lbnRzLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdGluZyBvbiB0aGUgZnJhbWUtbGVz
cyBkb2N1bWVudC4KK1BBU1Mgd2luZG93LkhUTUxDb250ZW50RWxlbWVudCBpcyBjb250ZW50LmNv
bnN0cnVjdG9yCitQQVNTIHdpbmRvdy5IVE1MU2hhZG93RWxlbWVudCBpcyBzaGFkb3cuY29uc3Ry
dWN0b3IKK01vdmluZyB0byB0aGUgbWFpbiBkb2N1bWVudC4KK1BBU1Mgd2luZG93LkhUTUxDb250
ZW50RWxlbWVudCBpcyBjb250ZW50LmNvbnN0cnVjdG9yCitQQVNTIHdpbmRvdy5IVE1MU2hhZG93
RWxlbWVudCBpcyBzaGFkb3cuY29uc3RydWN0b3IKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQoreCsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MGI2YmU4MWVmNTdkY2IyMWZmNTU2NTY3ZDRiNDZmMGU5MzZlMjliCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZy
YW1lbGVzcy1kb2N1bWVudC5odG1sCkBAIC0wLDAgKzEsMzAgQEAKK3grPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0IGVuc3VyZSB0aGF0IHRoZSBzaGFkb3cgcmVsYXRlZCBlbGVtZW50cyBhcmUg
aW5zdGFudGlhdGVkIGV2ZW4gaW5zaWRlIGZyYW1lbGVzcyBkb2N1bWVudHMuIik7CisKK3ZhciBk
b2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKTsKK3ZhciBj
b250YWluZXIgPSBkb2MuY3JlYXRlRWxlbWVudCgic3BhbiIpOworZG9jLmJvZHkuYXBwZW5kQ2hp
bGQoY29udGFpbmVyKTsKK2NvbnRhaW5lci5pbm5lckhUTUwgPSAiPGNvbnRlbnQgaWQ9J2NvbnRl
bnRFbGVtZW50Jz48L2NvbnRlbnQ+PHNoYWRvdyBpZD0nc2hhZG93RWxlbWVudCc+PC9zaGFkb3c+
IjsKKwordmFyIGNvbnRlbnQgPSBjb250YWluZXIucXVlcnlTZWxlY3RvcigiI2NvbnRlbnRFbGVt
ZW50Iik7Cit2YXIgc2hhZG93ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIiNzaGFkb3dFbGVt
ZW50Iik7CisKK2RlYnVnKCJUZXN0aW5nIG9uIHRoZSBmcmFtZS1sZXNzIGRvY3VtZW50LiIpOwor
c2hvdWxkQmUoIndpbmRvdy5IVE1MQ29udGVudEVsZW1lbnQiLCAiY29udGVudC5jb25zdHJ1Y3Rv
ciIpOworc2hvdWxkQmUoIndpbmRvdy5IVE1MU2hhZG93RWxlbWVudCIsICJzaGFkb3cuY29uc3Ry
dWN0b3IiKTsKKworZGVidWcoIk1vdmluZyB0byB0aGUgbWFpbiBkb2N1bWVudC4iKTsKK2RvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKK3Nob3VsZEJlKCJ3aW5kb3cuSFRNTENv
bnRlbnRFbGVtZW50IiwgImNvbnRlbnQuY29uc3RydWN0b3IiKTsKK3Nob3VsZEJlKCJ3aW5kb3cu
SFRNTFNoYWRvd0VsZW1lbnQiLCAic2hhZG93LmNvbnN0cnVjdG9yIik7CisKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147013</attachid>
            <date>2012-06-11 23:14:12 -0700</date>
            <delta_ts>2012-06-12 18:58:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-88148-20120612151411.patch</filename>
            <type>text/plain</type>
            <size>75127</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjg1NmE3YTljN2Q1Y2Rj
YmVhYjBiYmI5MWFkZDAyNjIzYjY0NGY1ZS4uNjNhNTRmN2I4MWE4ZjFkOGM2ZTA4M2E0MjUwNDI1
NzU1ZTVmMDQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAxMi0wNi0xMSAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIx
MTgwOTgpOiA8Y29udGVudD4gZWxlbWVudCBkb2VzIG5vdCByZW5kZXIgZGlzdHJpYnV0ZWQgY2hp
bGRyZW4gd2hlbiBjbG9uZWQgZnJvbSBhbm90aGVyIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODE0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KKworICAgICAgICBUaGUgc2hhZG93IERPTSBhdmFpbGFiaWxp
dHkgd2FzIGRlY2lkZWQgdGhyb3VnaCBGcmFtZUxvYWRlckNsaWVudC4KKyAgICAgICAgQnV0IHRo
ZXJlIGFyZSBkb2N1bWVudHMgd2hpY2ggZG9uJ3QgaGF2ZSBhbnkgYXNzb2NpYXRlZCBmcmFtZXMs
IGluCisgICAgICAgIHdoaWNoIGFueSBzaGFkb3cgRE9NIHJlbGF0ZWQgZWxlbWVudHMgY2Fubm90
IGJlIGNvbnN0cnVjdGVkLiAgVGhhdAorICAgICAgICByZXN1bHN0ZWQgdGhlIHJlZ3Jlc3Npb24u
CisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaW50cm9kdWNlcyBhIFBhZ2UtYmFzZWQgY2xpZW50IGNh
bGxlZAorICAgICAgICBDb250ZXh0RmVhdHVyZXNDbGllbnQgd2hpY2ggdGFrZXMgdGhlIHJvbGUg
ZnJvbSBGcmFtZUxvYWRlckNsaWVudAorICAgICAgICB0byBkZWNpZGUgdGhlIGZlYXR1cmUgYXZh
aWxhYmlsaXR5LCBhbmQgQ29udGV4dEZlYXR1cmVzIHdoaWNoIGlzIGEKKyAgICAgICAgcHJveHkg
b2YgQ29udGV4dEZlYXR1cmVzQ2xpZW50LiAgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyBpcyBpcwor
ICAgICAgICByZXBsYWNlZCB3aXRoIENvbnRleHRGZWF0dXJlcy4KKworICAgICAgICBFYWNoIENv
bnRleHRGZWF0dXJlcyBvYmplY3QgaXMgb3duZWQgYnkgYSBQYWdlLCBhbmQgaXMgYXR0YWNoZWQg
dG8KKyAgICAgICAgZWFjaCBEb2N1bWVudCBpbiB0aGUgcGFnZSBldmVuIGlmIHRoZSBwYWdlIGl0
c2VsZiBoYXMgbm8gcmVmZXJlbmN0CisgICAgICAgIHRvIEZyYW1lcyBvciBQYWdlcy4gV2l0aCBD
b250ZXh0RmVhdHVyZXMsIGVhY2ggRG9jdW1lbnQgY2FuIGRlY2lkZQorICAgICAgICB0aGUgZmVh
dHVyZSBhdmFpbGFiaWxpdHkgZXZlbiBpZiBpdCBjYW5ub3QgcmVhY2ggUGFnZSBvciBGcmFtZS4K
KworICAgICAgICBPbiBSZWZDb3VudGVkU3VwcGxlbWVudDogRG9jdW1lbnQgaW5zdGFuY2UgY2Fu
IGxpdmUgbG9uZ2VyIHRoYW4gYQorICAgICAgICBQYWdlIHdoZXJlIGl0IGlzIHNod29uLiBUaGlz
IG1lYW5zIHRoYXQgQ29udGV4dEZlYXR1cmVzIGluc3RhbmNlCisgICAgICAgIG5lZWRzIHRvIHN1
cnZpdmUgYWZ0ZXIgb3duZXIgUGFnZSBkZXN0cnVjdGlvbiBiZWNhdXNlIGl0J3MKKyAgICAgICAg
cmVmZXJlbmNlZCBmcm9tIHBvc3NpYmx5IHN1cnZpdmluZyBEb2N1bWVudHMuIFJlZkNvdW50ZWRT
dXBwbGVtZW50CisgICAgICAgIGlzIGludHJvZHVjZWQgdG8gY292ZXIgdGhpcyBzY2VuYXJpbzog
SXQgYWxsb3dzIHN1cHBsZW1lbnQgY2xhc3NlcworICAgICAgICB0byBsaXZlIGFmdGVyIFBhZ2Un
cyBkZXN0cnVjdGlvbi4KKworICAgICAgICBSZWZDb3VudGVkU3VwcGxlbWVudDo6aG9zdERlc3Ry
b3llZCgpIGlzIG5vdGlmaWVkIHdoZW4gdGhlIGhvc3RpbmcKKyAgICAgICAgcGFnZSBpcyBnb25l
LiBDb250ZXh0RmVhdHVyZXMgY2xlYXJzIGl0cyByZWZlcmVuY2UgdG8gdGhlIGNsaWVudAorICAg
ICAgICB1c2luZyB0aGlzIG5vdGlmaWNhdGlvbi4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9z
aGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
OgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6ZGV0ZXJtaW5l
U2NvcGUpOgorICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZXMuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzQ2xpZW50Ojpl
bXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OnN1cHBsZW1lbnROYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlczo6ZGVmYXVsdFN3aXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpwYWdlUG9wdXBFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OnByb3ZpZGVDb250ZXh0RmVhdHVyZXNUbyk6CisgICAgICAgIChXZWJDb3Jl
Ojpwcm92aWRlQ29udGV4dEZlYXR1cmVzVG9Eb2N1bWVudEZyb20pOgorICAgICAgICAqIGRvbS9D
b250ZXh0RmVhdHVyZXMuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENv
bnRleHRGZWF0dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OkNvbnRl
eHRGZWF0dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6Omhvc3REZXN0
cm95ZWQpOgorICAgICAgICAoQ29udGV4dEZlYXR1cmVzQ2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRleHRGZWF0dXJlc0NsaWVudDo6fkNvbnRleHRGZWF0dXJlc0NsaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXNDbGllbnQ6OmlzRW5hYmxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0RmVhdHVyZXM6OmlzRW5hYmxlZCk6CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNw
cDoKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVIVE1MRG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbnRleHRGZWF0dXJlcyk6
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Q29udGV4dEZlYXR1
cmVzKToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9z
aXRpb246OlBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpmaW5kUGFyZW50
KToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVT
Y29wZTo6Z2V0U2VsZWN0aW9uKToKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAg
ICAgKHByaW50Q29uc3RydWN0b3JJbnRlcmlvcik6CisgICAgICAgIChwcmludEZhY3RvcnlDcHBG
aWxlKToKKyAgICAgICAgKHByaW50V3JhcHBlckZ1bmN0aW9ucyk6CisgICAgICAgIChwcmludFdy
YXBwZXJGYWN0b3J5Q3BwRmlsZSk6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwV2l0aENvbnRleHQpOgorICAg
ICAgICAqIGh0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
U3R5bGVFbGVtZW50OjpyZWdpc3RlcldpdGhTY29waW5nTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU3R5bGVFbGVtZW50Ojp1bnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGVudFRhZ05hbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NUGF0Y2hTdXBwb3J0OjpwYXRjaERvY3VtZW50KToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9S
ZWZDb3VudGVkU3VwcGxlbWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TdXBwbGVtZW50YWJsZS5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZWZDb3Vu
dGVkU3VwcGxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZWZDb3VudGVkU3VwcGxlbWVudDo6
aG9zdERlc3Ryb3llZCk6CisgICAgICAgIChXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
ZkNvdW50ZWRTdXBwbGVtZW50OjpXcmFwcGVyOjpXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlZkNvdW50ZWRTdXBwbGVtZW50OjpXcmFwcGVyOjp+V3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpSZWZDb3VudGVkU3VwcGxlbWVudDo6V3JhcHBlcjo6d3JhcHBlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWZDb3VudGVkU3VwcGxlbWVudDo6cHJvdmlkZVRvKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlZkNvdW50ZWRTdXBwbGVtZW50Ojpmcm9tKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TdXBw
bGVtZW50YWJsZS5oOgorICAgICAgICAoV2ViQ29yZTo6U3VwcGxlbWVudDo6aXNSZWZDb3VudGVk
V3JhcHBlcik6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTCk6CisKIDIwMTItMDYtMTEgIFNpbHZp
YSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbnRyb2R1Y2Ug
YW4gRW5jbG9zdXJlIEVsZW1lbnQgZm9yIENocm9taXVtIHZpZGVvIGNvbnRyb2xzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCAxZTUyODk2ODRiZWU5Zjg5ZDlhNWJiNGEwZDgzMGFjZjAz
ZTUxMTFmLi5kOGRiYjk2MjM5MGY2MDkyZGZkMjlkMzBlZDIwYmU4YWMzM2Y4ZDFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA2LTExICBNT1JJVEEg
SGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjExODA5
OCk6IDxjb250ZW50PiBlbGVtZW50IGRvZXMgbm90IHJlbmRlciBkaXN0cmlidXRlZCBjaGlsZHJl
biB3aGVuIGNsb25lZCBmcm9tIGFub3RoZXIgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGltaXRyaSBHbGF6a292LgorCisgICAgICAgIC0gQWRkZWQgQ29udGV4dEZlYXR1cmVzQ2xpZW50
SW1wbCB3aGljaCBpbXBsZW1lbnRzIFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlc0NsaWVudC4KKyAg
ICAgICAgLSBSZXBsYWNlZCBQYWdlUG9wdXBGcmFtZUxvYWRlckNsaWVudCB3aXRoIFBhZ2VQb3B1
cEZlYXR1cmVzQ2xpZW50LgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJs
aWMvV2ViUGVybWlzc2lvbkNsaWVudC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGVybWlzc2lvbkNsaWVudDo6YWxsb3dXZWJDb21wb25lbnRzKToKKyAgICAgICAg
KiBzcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwLgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1w
bDo6aXNFbmFibGVkKToKKyAgICAgICAgKiBzcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5o
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5h
YmxlZEZlYXR1cmVzLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQ29udGV4dEZlYXR1
cmVzQ2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NsaWVudElt
cGw6OkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0
RmVhdHVyZXNDbGllbnRJbXBsOjpzZXRQZXJtaXNzaW9uQ2xpZW50KToKKyAgICAgICAgKiBzcmMv
RnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmg6CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudEltcGwpOgorICAgICAgICAqIHNy
Yy9XZWJQYWdlUG9wdXBJbXBsLmNwcDoKKyAgICAgICAgKFBhZ2VQb3B1cEZlYXR1cmVzQ2xpZW50
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVBvcHVwRmVhdHVyZXNDbGllbnQ6OmlzRW5hYmxlZCk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUG9wdXBJbXBsOjpp
bml0UGFnZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnNldFBlcm1pc3Npb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgor
ICAgICAgICAoV2ViS2l0KToKKwogMjAxMi0wNi0xMSAgVmluY2VudCBTY2hlaWIgIDxzY2hlaWJA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIENvbnNvbGlkYXRlIFBvaW50ZXIgTG9jayBydW50aW1l
IGVuYWJsZWQgZmxhZ3MgdG8ganVzdCBvbmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGU0YzA0
Y2MyNDAzZjUzNzBiY2QwOTU2NmUyMjljNDc4ZjdiY2VkN2MuLjViZDViMDA1ZTdjYmUzMjE0YWRl
NGMxZmI0Y2NlNTQwNjYyM2NlOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00NTksNyArNDU5
LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJC
YXNlLmNwcAogCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVET01DYWxsYmFjay5jcHAKLSAg
ICBiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwCiAgICAgYmluZGlu
Z3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAogCiAgICAgY3NzL0NTU0FzcGVj
dFJhdGlvVmFsdWUuY3BwCkBAIC01NTksNiArNTU4LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwog
ICAgIGRvbS9Db250YWluZXJOb2RlLmNwcAogICAgIGRvbS9Db250YWluZXJOb2RlQWxnb3JpdGht
cy5jcHAKICAgICBkb20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCisgICAgZG9tL0Nv
bnRleHRGZWF0dXJlcy5jcHAKICAgICBkb20vQ3VzdG9tRXZlbnQuY3BwCiAgICAgZG9tL0RhdGFz
ZXRET01TdHJpbmdNYXAuY3BwCiAgICAgZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBhNGIyMzE2NjViODIyMDExZjhhNjRm
Nzk1ZDAzNDI0OWQxZDMxM2Q5Li5mZjcyMTdmNTVmMTdiNDEwYzZiODUyMzgyMzIyY2QwZGVmY2U2
ODMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTEzMDYsOCArMTMwNiw2IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9N
Q2FsbGJhY2suY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURP
TUNhbGxiYWNrLmggXAotCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVu
YWJsZWRGZWF0dXJlcy5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29u
dGV4dEVuYWJsZWRGZWF0dXJlcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L0JpbmRpbmdTZWN1cml0eUJhc2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5l
cmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2Vu
ZXJpYy9CaW5kaW5nU2VjdXJpdHkuaCBcCkBAIC0xNzk5LDYgKzE3OTcsOCBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGV4dEZlYXR1cmVzLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRG
ZWF0dXJlcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ3Jvc3NUaHJlYWRUYXNrLmggXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FdmVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9D
dXN0b21FdmVudC5oIFwKQEAgLTM1ODUsNiArMzU4NSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJlcmVuZGVySGFuZGxlLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1B1cmdlYWJsZUJ1ZmZlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QdXJnZVByaW9yaXR5LmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlZkNvdW50
ZWRTdXBwbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1JlZmVycmVyUG9saWN5
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SdW5Mb29wLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYmNkMDBjMWEwMWE0N2Ez
Mzk3MmIxNGQxZDlkMDY0NTllYWQwMTg2My4uOTg4NDMyMzYwNjM3YjUzNmU3MDhkM2YyZWQxMDhm
ODZkNGJhYTM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9T
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC03Miw3ICs3Miw2IEBAIFNPVVJDRVMgKz0gXAog
ICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcCBcCiAgICAgYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBcCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9BY3RpdmVE
T01DYWxsYmFjay5jcHAgXAotICAgIGJpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0
dXJlcy5jcHAgXAogICAgIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5j
cHAKIAogdjggewpAQCAtNTI5LDYgKzUyOCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Db250
YWluZXJOb2RlLmNwcCBcCiAgICAgZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmNwcCBcCiAg
ICAgZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBcCisgICAgZG9tL0NvbnRleHRG
ZWF0dXJlcy5jcHAgXAogICAgIGRvbS9DdXN0b21FdmVudC5jcHAgXAogICAgIGRvbS9EZWNvZGVk
RGF0YURvY3VtZW50UGFyc2VyLmNwcCBcCiAgICAgZG9tL0RldmljZU1vdGlvbkNvbnRyb2xsZXIu
Y3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1MjM1MTIyZjkxY2M5YjFiY2U2OGUzY2VhYjRiMDNk
MGVlMTg3NTEwLi5kNGIwZjg5NWEwYTYwMWMxODkxZjk2MTEzZjU1NGE4ZWE1NzJjNWNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC0zMDksNiArMzA5LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9Q
b3B1cE1lbnVTdHlsZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9QdXJnZVByaW9yaXR5Lmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9SZWZDb3VudGVkU3VwcGxlbWVudC5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9TY3Jv
bGxUeXBlcy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9TY3JvbGxWaWV3LmgnLApAQCAtNjE2
LDYgKzYxNyw4IEBACiAgICAgICAgICAgICAnZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5o
JywKICAgICAgICAgICAgICdkb20vQ29udGFpbmVyTm9kZS5oJywKICAgICAgICAgICAgICdkb20v
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCcsCisgICAgICAgICAgICAnZG9tL0NvbnRleHRG
ZWF0dXJlcy5oJywKKyAgICAgICAgICAgICdkb20vQ29udGV4dEZlYXR1cmVzLmNwcCcsCiAgICAg
ICAgICAgICAnZG9tL0RPTUltcGxlbWVudGF0aW9uLmgnLAogICAgICAgICAgICAgJ2RvbS9ET01U
aW1lU3RhbXAuaCcsCiAgICAgICAgICAgICAnZG9tL0RldmljZU9yaWVudGF0aW9uLmgnLApAQCAt
MTg1Myw4ICsxODU2LDYgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdT
ZWN1cml0eS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0
eUJhc2UuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0
eUJhc2UuaCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZl
YXR1cmVzLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxl
ZEZlYXR1cmVzLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRp
bmcuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agppbmRleCA1MTlhNjg5ZDJiZDQ1ZmJhNDczYWY5ZDMyYTE1ZGZiMDkwMTFjN2MxLi40MTNmYzFl
OWNkOTgyYTViYzI4NmRlZTUyYjFhMDc5YjA1MWQ5NGY1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjMyMTAsMTQgKzYzMjEwLDYgQEAKIAkJ
CQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRp
bmdzXGdlbmVyaWNcQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAiCi0JCQkJCT4KLQkJCQk8L0Zp
bGU+Ci0JCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXENv
bnRleHRFbmFibGVkRmVhdHVyZXMuaCIKLQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcR2VuZXJpY0JpbmRpbmcuaCIK
IAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwYzcwMzczNDZmOGVjNjM0YzVjOWY3ZmEwZTI1OTFj
M2UwMmU3YmYxLi4xNGQwNDRkZTJhYWRiNDRiMWQxM2RkOWNjZDBhZmJlOTIyMzU0OWE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0zNzUzLDEyICszNzUzLDExIEBACiAJCUE3MTg3NjBFMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFn
QWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxODc4OTAwQjJEMDRBQzAwQTE2
RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9s
bGVyTWFjLm1tICovOyB9OwogCQlBNzIzRjc3QjE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1F
eHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3MjNGNzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3MkVBM0JC
MTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyRUEzQkExNTg1Q0Y1NTAwNEZBQTI2
IC8qIFJlZkNvdW50ZWRTdXBwbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTczRjk1RkUxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRS
ZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3
M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi87IH07CiAJCUE3M0Y5
NUZGMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkQxMkM5N0JGRTAwMzFBQUY5IC8qIFJv
dW5kZWRSZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTc0MEI1QTUxNEM5MzVBQjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNEVBNzkxNEM5
MzQ4NDAwQzhGNUJGIC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oICovOyB9OwogCQlBNzQwQjVBNzE0
QzkzNUFGMDBBNzdGQTQgLyogSlNJbnRlcm5hbFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc4MTRDOTM0ODQwMEM4RjVCRiAv
KiBKU0ludGVybmFsU2V0dGluZ3MuY3BwICovOyB9OwotCQlBNzQ3QTA3RjE1NkIyODY5MDAyNDNF
RUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzQ3QTA3RDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4
dEVuYWJsZWRGZWF0dXJlcy5jcHAgKi87IH07Ci0JCUE3NDdBMDgwMTU2QjI4NjkwMDI0M0VFRCAv
KiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzQ3QTA3RTE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJs
ZWRGZWF0dXJlcy5oICovOyB9OwogCQlBNzRCQjc2QjEzQkRBODYzMDBGRjdCRjAgLyogRXhjZXB0
aW9uQ29kZVBsYWNlaG9sZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzRCQjc2QTEzQkRBODYzMDBGRjdCRjAgLyogRXhjZXB0aW9uQ29kZVBsYWNl
aG9sZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQTc1RTQ5NzYxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RTQ5NzQxMDc1
MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NUU0OTc3MTA3NTJBQ0IwMEM5Qjg5
NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAgKi87IH07CkBAIC0zODEwLDYgKzM4MDksOCBAQAogCQlBN0QyMEY2
MjEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEMjBGNjAxMDdGNDA2OTAwQTgwMzky
IC8qIEpTV2ViR0xBY3RpdmVJbmZvLmNwcCAqLzsgfTsKIAkJQTdEMjBGNjMxMDdGNDA2OTAwQTgw
MzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBN0QyMEY2MTEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2
ZUluZm8uaCAqLzsgfTsKIAkJQTdEMjBGNkQxMDdGNDM4QjAwQTgwMzkyIC8qIFdlYkdMQWN0aXZl
SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdE
MjBGNkIxMDdGNDM4QjAwQTgwMzkyIC8qIFdlYkdMQWN0aXZlSW5mby5oICovOyB9OworCQlBN0Qz
Q0ExMDE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDNDQTBFMTU3REY4RTkwMDg2MEE5
NyAvKiBDb250ZXh0RmVhdHVyZXMuY3BwICovOyB9OworCQlBN0QzQ0ExMTE1N0RGOEU5MDA4NjBB
OTcgLyogQ29udGV4dEZlYXR1cmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBN0QzQ0EwRjE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVz
LmggKi87IH07CiAJCUE3RDZCMzQ5MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2Fk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDZC
MzQ3MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuaCAqLzsgfTsKIAkJQTdE
NkIzNEEwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q2QjM0ODBGNjExMDQ1MDBC
NzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmNwcCAqLzsgfTsKIAkJQTdEQkY4REQxMjc2OTE5
QzAwNkI2MDA4IC8qIFRleHRDaGVja2luZ0hlbHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0RCRjhEQjEyNzY5MTlDMDA2QjYwMDggLyogVGV4
dENoZWNraW5nSGVscGVyLmNwcCAqLzsgfTsKQEAgLTEwODUzLDEwICsxMDg1NCw5IEBACiAJCUE3
MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdDb250cm9sbGVyTWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzFBNzBDOTExQUZCMDIwMDA5ODlENkQgLyogSFRN
TE1ldGVyRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE1ldGVyRWxlbWVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MjNGNzdBMTQ4NENBNEMwMDhD
NkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBNzJFQTNCQTE1ODVDRjU1MDA0RkFBMjYgLyogUmVmQ291bnRlZFN1cHBsZW1lbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmQ291bnRlZFN1cHBsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8q
IFJvdW5kZWRSZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJv
dW5kZWRSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTczRjk1RkQxMkM5
N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJvdW5kZWRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3NDdB
MDdEMTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3Bw
OyBwYXRoID0gZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQTc0N0EwN0UxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFi
bGVkRmVhdHVyZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29udGV4dEVu
YWJsZWRGZWF0dXJlcy5oOyBwYXRoID0gZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NEJCNzZBMTNCREE4NjMwMEZGN0JGMCAv
KiBFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3NUU0OTc0MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZFNjcmlwdFZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5
NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEwOTE0LDYgKzEwOTE0LDggQEAKIAkJQTdEMjBGNjAxMDdGNDA2OTAwQTgw
MzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTV2ViR0xBY3RpdmVJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTdEMjBGNjExMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViR0xBY3RpdmVJbmZvLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3RDIwRjZCMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJH
TEFjdGl2ZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xBY3Rp
dmVJbmZvLmg7IHBhdGggPSBjYW52YXMvV2ViR0xBY3RpdmVJbmZvLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE3RDNDQTBFMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVy
ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGV4dEZlYXR1
cmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdEM0NBMEYxNTdERjhFOTAw
ODYwQTk3IC8qIENvbnRleHRGZWF0dXJlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb250ZXh0RmVhdHVyZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdE
NkIzNDcwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXb3JrZXJTY3JpcHRMb2FkZXIuaDsgcGF0aCA9IHdvcmtl
cnMvV29ya2VyU2NyaXB0TG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
RDZCMzQ4MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV29ya2VyU2NyaXB0TG9hZGVyLmNwcDsgcGF0
aCA9IHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTdEQjQxODExNENFMUYwQTAwQTJFMzE2IC8qIFNoYWRvd1Jvb3QuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFNoYWRvd1Jvb3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTk3NjMsOCArMTk3NjUsNiBAQAogCQkJCUE2MjJBOEY1MTIyQzQ0QTYwMEE3ODVC
MyAvKiBCaW5kaW5nU2VjdXJpdHkuaCAqLywKIAkJCQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMg
LyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8sCiAJCQkJQTYyMkE4RjcxMjJDNDRBNjAwQTc4
NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCAqLywKLQkJCQlBNzQ3QTA3RDE1NkIyODY5MDAy
NDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgKi8sCi0JCQkJQTc0N0EwN0UxNTZC
Mjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCAqLywKIAkJCQlBNjIyQThG
OTEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLywKIAkJCSk7CiAJCQluYW1l
ID0gZ2VuZXJpYzsKQEAgLTIwNDgwLDYgKzIwNDgwLDcgQEAKIAkJCQlCQzNCRTEyQTBFOTgwOTJG
MDA4MzU1ODggLyogUG9wdXBNZW51U3R5bGUuaCAqLywKIAkJCQlFNEQ2ODc3ODBFRDdBRTRGMDA2
RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmggKi8sCiAJCQkJN0UzM0NEMDAxMjdGMzQwRDAwQkU4
RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLywKKwkJCQlBNzJFQTNCQTE1ODVDRjU1MDA0RkFBMjYg
LyogUmVmQ291bnRlZFN1cHBsZW1lbnQuaCAqLywKIAkJCQk5ODMxQUU0OTE1NDIyNUEyMDBGRTI2
NDQgLyogUmVmZXJyZXJQb2xpY3kuaCAqLywKIAkJCQlCQzBCMzU4NTE0QzRGOTgzMDA1NUUyMkEg
LyogUnVuTG9vcC5jcHAgKi8sCiAJCQkJQkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxv
b3AuaCAqLywKQEAgLTIxMjAxLDYgKzIxMjAyLDggQEAKIAkJCQlFMUExNDcwNzExMTAyQjE1MDBF
RUMwRjMgLyogQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCAqLywKIAkJCQk5NzYyN0I4QjE0RkIz
Q0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwICovLAogCQkJCTk3
NjI3QjhDMTRGQjNDRUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oICov
LAorCQkJCUE3RDNDQTBFMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZXMuY3BwICov
LAorCQkJCUE3RDNDQTBGMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZXMuaCAqLywK
IAkJCQkyRTNGQUEwODExQTM2QkYxMDA1NzY2MjQgLyogQ3Jvc3NUaHJlYWRUYXNrLmggKi8sCiAJ
CQkJNjJDRDMyNTYxMTU3RTU3QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmNwcCAqLywKIAkJCQk2
MkNEMzI1NzExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuaCAqLywKQEAgLTIyMDU0LDcg
KzIyMDU3LDcgQEAKIAkJCQk0MUQwMTVDQTBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTM3MEQ2RURCMTM4NDU0NTUwMDQ0MTAzRSAvKiBDb250ZW50
VHlwZVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc2MjdCOEUxNEZCM0NFRTAwMkNEQ0Ex
IC8qIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlBNzQ3
QTA4MDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQTdEM0NBMTExNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNCNkEwRTYwQjBCQ0E1QzAwRjUwMjdBIC8qIENvbnRleHRN
ZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNjVBRDRGNTBCMEMyRURBMDA1QTJCMUQgLyogQ29u
dGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY3MEIwQzJFREEwMDVB
MkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjQxNjMs
NiArMjQxNjYsNyBAQAogCQkJCUZEMzE2MDNDMTJCMDI2NzYwMEMxQTM1OSAvKiBSZWFsdGltZUFu
YWx5c2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjAzRTEyQjAyNjc2MDBDMUEzNTkgLyog
UmVhbHRpbWVBbmFseXNlck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDM2OEU4MEMyMjZF
MzIwMDVFRkI1RiAvKiBSZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNzJFQTNCQjE1ODVDRjU1
MDA0RkFBMjYgLyogUmVmQ291bnRlZFN1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk4
MzFBRTRBMTU0MjI1QzkwMEZFMjY0NCAvKiBSZWZlcnJlclBvbGljeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNBQjQxODIxM0UzNTZFODAwRDhBQUYzIC8qIFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODUwMzFCNEMwQTQ0RUZDNzAwRjk5MkUwIC8qIFJlZ2lzdGVyZWRFdmVudExpc3RlbmVy
LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NTc1LDcgKzI1NTc5LDcgQEAKIAkJCQk0MUQwMTVDQjBG
NEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzcw
RDZFREExMzg0NTQ1NTAwNDQxMDNFIC8qIENvbnRlbnRUeXBlUGFyc2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTk3NjI3QjhEMTRGQjNDRUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBNzQ3QTA3RjE1NkIyODY5MDAyNDNFRUQg
LyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBN0QzQ0Ex
MDE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA2NUFENEY2MEIwQzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDYwMjdDQjMwQjFDQzAzRDAwODg0QjJEIC8qIENvbnRleHRN
ZW51SXRlbU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzQjZBMEVBMEIwQkNBODQwMEY1MDI3
QSAvKiBDb250ZXh0TWVudU1hYy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyNjIyYjM3M2ViMjE3ODViY2MxYzA3OGJi
ZWEyMjhkMDNiYzFjYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1
cmVzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgotCi0jaW5jbHVkZSAiRE9NV2lu
ZG93LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCi0jaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKLSNpbmNs
dWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
I2lmIEVOQUJMRShTSEFET1dfRE9NKQotYm9vbCBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFk
b3dET01FbmFibGVkKERPTVdpbmRvdyogd2luZG93KQotewotICAgIGlmICghd2luZG93KQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IHdpbmRvdy0+ZnJhbWUo
KSkKLSAgICAgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmFsbG93U2hhZG93
RE9NKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSk7Ci0gICAgcmV0
dXJuIGZhbHNlOwotfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQotYm9vbCBD
b250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoRG9jdW1lbnQqIGRvY3Vt
ZW50KQotewotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
ZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQtPmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBmcmFt
ZS0+bG9hZGVyKCktPmNsaWVudCgpLT5hbGxvd1N0eWxlU2NvcGVkKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZCgpKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0jZW5k
aWYgICAKLQotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotYm9vbCBDb250ZXh0RW5hYmxlZEZlYXR1
cmVzOjpwYWdlUG9wdXBFbmFibGVkKERPTVdpbmRvdyogd2luZG93KQotewotICAgIGlmICghd2lu
ZG93KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IHdpbmRv
dy0+ZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmFs
bG93UGFnZVBvcHVwKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotI2VuZGlmCi0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2Vu
ZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGVhN2ZhNGI3NTg1ZWE3N2E3MTliZTNiNGQzMzQ0OGIyODJmNDk5N2IuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1
OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6
Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzX2gKLSNkZWZpbmUgQ29udGV4
dEVuYWJsZWRGZWF0dXJlc19oCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgRE9NV2lu
ZG93OwotY2xhc3MgRG9jdW1lbnQ7Ci0KLS8vIEEgY2xhc3MgdGhhdCBzdG9yZXMgc3RhdGljIGVu
YWJsZXJzIGZvciBhbGwgZXhwZXJpbWVudGFsIGZlYXR1cmVzLiBOb3RlIHRoYXQKLS8vIHRoZSBt
ZXRob2QgbmFtZXMgbXVzdCBsaW5lIHVwIHdpdGggdGhlIEphdmFTY3JpcHQgbWV0aG9kIHRoZXkg
ZW5hYmxlIGZvciBjb2RlCi0vLyBnZW5lcmF0aW9uIHRvIHdvcmsgcHJvcGVybHkuCi0KLWNsYXNz
IENvbnRleHRFbmFibGVkRmVhdHVyZXMgewotcHVibGljOgotI2lmIEVOQUJMRShTSEFET1dfRE9N
KQotICAgIHN0YXRpYyBib29sIHNoYWRvd0RPTUVuYWJsZWQoRE9NV2luZG93Kik7Ci0jZW5kaWYK
LSNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQotICAgIHN0YXRpYyBib29sIHN0eWxlU2NvcGVkRW5h
YmxlZChEb2N1bWVudCopOwotI2VuZGlmCi0jaWYgRU5BQkxFKFBBR0VfUE9QVVApCi0gICAgc3Rh
dGljIGJvb2wgcGFnZVBvcHVwRW5hYmxlZChET01XaW5kb3cqKTsKLSNlbmRpZgotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gQ29udGV4dEVuYWJsZWRGZWF0dXJlc19o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCmluZGV4IDYxYjk3YmUzZDk2ZTNhOWI5MGVjNGJjNGJlYzU5MGViNzVlN2FlY2EuLjAwODI0
YWJjMjI0MzQyMTg4YjA0ZWRjY2ExMzI1NGY1ZmIwMGI3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0yNDE3LDcgKzI0
MTcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxGaXhlZEhl
YWRlciwgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkNvbnRlbnRIZWFkZXIoJGRhdGFOb2RlKSk7CiAK
ICAgICBBZGRUb0ltcGxJbmNsdWRlcygiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIik7Ci0gICAg
QWRkVG9JbXBsSW5jbHVkZXMoIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIpOworICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCJDb250ZXh0RmVhdHVyZXMuaCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCJWOFByb3h5LmgiKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhCaW5kaW5nLmgiKTsKICAg
ICBBZGRUb0ltcGxJbmNsdWRlcygiVjhCaW5kaW5nU3RhdGUuaCIpOwpAQCAtMjg2Niw3ICsyODY2
LDcgQEAgRU5ECiAgICAgICAgICAgICBteSAkZW5hYmxlRnVuY3Rpb24gPSBHZXRDb250ZXh0RW5h
YmxlRnVuY3Rpb24oJHJ1bnRpbWVBdHRyLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgbXkgJGNv
bmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJp
bmcoJHJ1bnRpbWVBdHRyLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJcbiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5n
OwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKENvbnRleHRFbmFibGVk
RmVhdHVyZXM6OiR7ZW5hYmxlRnVuY3Rpb259KGltcGwpKSB7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmIChDb250ZXh0RmVhdHVyZXM6OiR7ZW5hYmxlRnVuY3Rp
b259KGltcGwtPmRvY3VtZW50KCkpKSB7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XFxc
biIpOwogICAgICAgICAgICAgR2VuZXJhdGVTaW5nbGVCYXRjaGVkQXR0cmlidXRlKCRpbnRlcmZh
Y2VOYW1lLCAkcnVudGltZUF0dHIsICI7IiwgIiAgICAiKTsKICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCA8PEVORCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXgg
OGRhNDhiMWNjNTBiZGZhMzM0ODY0MDk3NGQyNWJhNDNhYWZkODBjZS4uOWQ2MWE4ZGNhMjcxMWIy
YzFiMDZiNDBhMzc5Mjg4YmRlNDM0YzYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcApAQCAtNTIsNyArNTIsNyBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVk
ZSAiQ2FsY3VsYXRpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNvbnRlbnREYXRhLmgiCi0jaW5jbHVk
ZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5o
IgogI2luY2x1ZGUgIkNvdW50ZXIuaCIKICNpbmNsdWRlICJDb3VudGVyQ29udGVudC5oIgogI2lu
Y2x1ZGUgIkN1cnNvckxpc3QuaCIKQEAgLTQ5MSw3ICs0OTEsNyBAQCBjb25zdCBDb250YWluZXJO
b2RlKiBTdHlsZVJlc29sdmVyOjpkZXRlcm1pbmVTY29wZShjb25zdCBDU1NTdHlsZVNoZWV0KiBz
aGVldCkKIHsKICAgICBBU1NFUlQoc2hlZXQpOwogCi0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZl
YXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpCisgICAgaWYgKCFDb250ZXh0
RmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKICAgICBOb2RlKiBvd25lck5vZGUgPSBzaGVldC0+b3duZXJOb2RlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4N2RiNGNiMjVkYTdmZWEw
MGY0NmNlZWUwNzNlNDI0OTJhMjVmNzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGV4dEZlYXR1cmVzLmNwcApAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKKworI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDb250ZXh0RmVhdHVyZXNDbGllbnQqIENv
bnRleHRGZWF0dXJlc0NsaWVudDo6ZW1wdHkoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Q29udGV4dEZlYXR1cmVzQ2xpZW50LCBlbXB0eSwgKCkpOworICAgIHJldHVybiAmZW1wdHk7Cit9
CisKK2NvbnN0IEF0b21pY1N0cmluZyYgQ29udGV4dEZlYXR1cmVzOjpzdXBwbGVtZW50TmFtZSgp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiQ29udGV4
dEZlYXR1cmVzIikpOworICAgIHJldHVybiBuYW1lOworfQorCitDb250ZXh0RmVhdHVyZXMqIENv
bnRleHRGZWF0dXJlczo6ZGVmYXVsdFN3aXRjaCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChSZWZQdHI8Q29udGV4dEZlYXR1cmVzPiwgaW5zdGFuY2UsIChDb250ZXh0RmVhdHVyZXM6OmNy
ZWF0ZShDb250ZXh0RmVhdHVyZXNDbGllbnQ6OmVtcHR5KCkpKSk7CisgICAgcmV0dXJuIGluc3Rh
bmNlLmdldCgpOworfQorCitib29sIENvbnRleHRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChE
b2N1bWVudCogZG9jdW1lbnQpCit7CisjaWYgRU5BQkxFKFNIQURPV19ET00pCisgICAgaWYgKCFk
b2N1bWVudCkKKyAgICAgICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RP
TUVuYWJsZWQoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQtPmNvbnRleHRGZWF0dXJlcygpLT5pc0Vu
YWJsZWQoZG9jdW1lbnQsIFNoYWRvd0RPTSwgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93
RE9NRW5hYmxlZCgpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKKyAgICBy
ZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworYm9vbCBDb250ZXh0RmVhdHVyZXM6OnN0eWxlU2Nv
cGVkRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQpCit7CisjaWYgRU5BQkxFKFNUWUxFX1NDT1BF
RCkKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKCk7CisgICAgcmV0dXJuIGRvY3VtZW50LT5jb250ZXh0
RmVhdHVyZXMoKS0+aXNFbmFibGVkKGRvY3VtZW50LCBTdHlsZVNjb3BlZCwgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oZG9jdW1lbnQpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCitib29sIENvbnRl
eHRGZWF0dXJlczo6cGFnZVBvcHVwRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQpCit7CisjaWYg
RU5BQkxFKFBBR0VfUE9QVVApCisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiBkb2N1bWVudC0+Y29udGV4dEZlYXR1cmVzKCktPmlzRW5hYmxlZChk
b2N1bWVudCwgUGFnZVBvcHVwLCBmYWxzZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkb2N1
bWVudCk7CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK3ZvaWQgcHJvdmlkZUNvbnRl
eHRGZWF0dXJlc1RvKFBhZ2UqIHBhZ2UsIENvbnRleHRGZWF0dXJlc0NsaWVudCogY2xpZW50KQor
eworICAgIFJlZkNvdW50ZWRTdXBwbGVtZW50PFBhZ2UsIENvbnRleHRGZWF0dXJlcz46OnByb3Zp
ZGVUbyhwYWdlLCBDb250ZXh0RmVhdHVyZXM6OnN1cHBsZW1lbnROYW1lKCksIENvbnRleHRGZWF0
dXJlczo6Y3JlYXRlKGNsaWVudCkpOworfQorCit2b2lkIHByb3ZpZGVDb250ZXh0RmVhdHVyZXNU
b0RvY3VtZW50RnJvbShEb2N1bWVudCogZG9jdW1lbnQsIFBhZ2UqIHBhZ2UpCit7CisgICAgQ29u
dGV4dEZlYXR1cmVzKiBwcm92aWRlZCA9IHN0YXRpY19jYXN0PENvbnRleHRGZWF0dXJlcyo+KFJl
ZkNvdW50ZWRTdXBwbGVtZW50PFBhZ2UsIENvbnRleHRGZWF0dXJlcz46OmZyb20ocGFnZSwgQ29u
dGV4dEZlYXR1cmVzOjpzdXBwbGVtZW50TmFtZSgpKSk7CisgICAgaWYgKCFwcm92aWRlZCkKKyAg
ICAgICAgcmV0dXJuOworICAgIGRvY3VtZW50LT5zZXRDb250ZXh0RmVhdHVyZXMocHJvdmlkZWQp
OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY2
NjIyMDdlN2Y2YmIyYjBlYTg3NjE0OGY0MTI5MWQyNmQyMTYyMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaApAQCAtMCwwICsxLDk5IEBACisK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIENvbnRleHRGZWF0dXJlc19oCisjZGVmaW5lIENvbnRleHRGZWF0dXJlc19oCisK
KyNpbmNsdWRlICJSZWZDb3VudGVkU3VwcGxlbWVudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ29udGV4dEZlYXR1cmVzQ2xp
ZW50OworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOworCitjbGFzcyBDb250ZXh0RmVhdHVy
ZXMgOiBwdWJsaWMgUmVmQ291bnRlZFN1cHBsZW1lbnQ8UGFnZSwgQ29udGV4dEZlYXR1cmVzPiB7
CitwdWJsaWM6CisgICAgZW51bSBGZWF0dXJlVHlwZSB7CisgICAgICAgIFNoYWRvd0RPTSwKKyAg
ICAgICAgU3R5bGVTY29wZWQsCisgICAgICAgIFBhZ2VQb3B1cAorICAgIH07CisKKyAgICBzdGF0
aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0YXRpYyBDb250
ZXh0RmVhdHVyZXMqIGRlZmF1bHRTd2l0Y2goKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb250
ZXh0RmVhdHVyZXM+IGNyZWF0ZShDb250ZXh0RmVhdHVyZXNDbGllbnQqKTsKKworICAgIHN0YXRp
YyBib29sIHNoYWRvd0RPTUVuYWJsZWQoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgYm9vbCBzdHls
ZVNjb3BlZEVuYWJsZWQoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgYm9vbCBwYWdlUG9wdXBFbmFi
bGVkKERvY3VtZW50Kik7CisKKyAgICBib29sIGlzRW5hYmxlZChEb2N1bWVudCosIEZlYXR1cmVU
eXBlLCBib29sKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBDb250ZXh0RmVhdHVy
ZXMoQ29udGV4dEZlYXR1cmVzQ2xpZW50KiBjbGllbnQpCisgICAgICAgIDogbV9jbGllbnQoY2xp
ZW50KQorICAgIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGhvc3REZXN0cm95ZWQoKSBPVkVSUklE
RTsKKworICAgIENvbnRleHRGZWF0dXJlc0NsaWVudCogbV9jbGllbnQ7Cit9OworCitpbmxpbmUg
dm9pZCBDb250ZXh0RmVhdHVyZXM6Omhvc3REZXN0cm95ZWQoKQoreworICAgIG1fY2xpZW50ID0g
MDsKK30KKworCitjbGFzcyBDb250ZXh0RmVhdHVyZXNDbGllbnQgeworcHVibGljOgorICAgIHN0
YXRpYyBDb250ZXh0RmVhdHVyZXNDbGllbnQqIGVtcHR5KCk7CisKKyAgICB2aXJ0dWFsIH5Db250
ZXh0RmVhdHVyZXNDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKERvY3Vt
ZW50KiwgQ29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSwgYm9vbCBkZWZhdWx0VmFsdWUpIHsg
cmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQorfTsKKwordm9pZCBwcm92aWRlQ29udGV4dEZlYXR1cmVz
VG8oUGFnZSosIENvbnRleHRGZWF0dXJlc0NsaWVudCopOwordm9pZCBwcm92aWRlQ29udGV4dEZl
YXR1cmVzVG9Eb2N1bWVudEZyb20oRG9jdW1lbnQqLCBQYWdlKik7CisKK2lubGluZSBQYXNzUmVm
UHRyPENvbnRleHRGZWF0dXJlcz4gQ29udGV4dEZlYXR1cmVzOjpjcmVhdGUoQ29udGV4dEZlYXR1
cmVzQ2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb250ZXh0RmVh
dHVyZXMoY2xpZW50KSk7Cit9CisKK2lubGluZSBib29sIENvbnRleHRGZWF0dXJlczo6aXNFbmFi
bGVkKERvY3VtZW50KiBkb2N1bWVudCwgRmVhdHVyZVR5cGUgdHlwZSwgYm9vbCBkZWZhdWx0VmFs
dWUpIGNvbnN0Cit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRW
YWx1ZTsKKyAgICByZXR1cm4gbV9jbGllbnQtPmlzRW5hYmxlZChkb2N1bWVudCwgdHlwZSwgZGVm
YXVsdFZhbHVlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQ29u
dGV4dEZlYXR1cmVzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9u
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IDMyMGFlZjk4
MjA5YTVlYjg0YTdlNzUyOGZjYjNiNTY0OTY4NTg3NzguLjE0OGZjM2VjOTgyYzk4ZjZmYmQyNDli
Y2JiY2U1MTkzYmMzYjc5ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJ
bk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtNDQs
NiArNDQsNyBAQAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuY3BwIgogI2luY2x1ZGUgIkNvbnRh
aW5lck5vZGVBbGdvcml0aG1zLmNwcCIKICNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlci5jcHAiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmNwcCIKICNpbmNsdWRlICJDdXN0
b21FdmVudC5jcHAiCiAjaW5jbHVkZSAiRE9NQ29yZUV4Y2VwdGlvbi5jcHAiCiAjaW5jbHVkZSAi
RE9NSW1wbGVtZW50YXRpb24uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHAKaW5kZXggNGQzZDg1MzNhZDBhMmQzZDk3NGNlYzY5NjRmMjI3Mjg4YjZlNjFjNy4uM2Zh
ZmUxOTNjOGY2MWNjYzhmZGY0OGE3OWE0MmIyNzFmYmJhNTMxOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJD
b250ZW50VHlwZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJDb250
ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKICNpbmNsdWRlICJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtMjk1LDYgKzI5Niw3IEBAIFBh
c3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25z
dCBTdHJpbmcmIG5hbWVzcGFjZVVSCiAgICAgICAgIGRvYyA9IERvY3VtZW50OjpjcmVhdGUoMCwg
S1VSTCgpKTsKIAogICAgIGRvYy0+c2V0U2VjdXJpdHlPcmlnaW4obV9kb2N1bWVudC0+c2VjdXJp
dHlPcmlnaW4oKSk7CisgICAgZG9jLT5zZXRDb250ZXh0RmVhdHVyZXMobV9kb2N1bWVudC0+Y29u
dGV4dEZlYXR1cmVzKCkpOwogCiAgICAgUmVmUHRyPE5vZGU+IGRvY3VtZW50RWxlbWVudDsKICAg
ICBpZiAoIXF1YWxpZmllZE5hbWUuaXNFbXB0eSgpKSB7CkBAIC0zNzIsNiArMzc0LDcgQEAgUGFz
c1JlZlB0cjxIVE1MRG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVIVE1MRG9jdW1l
bnQoY29uc3QgU3RyaW5nJiB0aXQKICAgICBkLT53cml0ZSgiPCFkb2N0eXBlIGh0bWw+PGh0bWw+
PGJvZHk+PC9ib2R5PjwvaHRtbD4iKTsKICAgICBkLT5zZXRUaXRsZSh0aXRsZSk7CiAgICAgZC0+
c2V0U2VjdXJpdHlPcmlnaW4obV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgZC0+
c2V0Q29udGV4dEZlYXR1cmVzKG1fZG9jdW1lbnQtPmNvbnRleHRGZWF0dXJlcygpKTsKICAgICBy
ZXR1cm4gZC5yZWxlYXNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDdhYzUz
MDcyMTZmNjY4N2EwMWZhNmY3ZjU2MDk4NDM5OWNiNTIyZjUuLjQ1ZmVkNjA0NDFiZDczMjA0MThi
MDFjY2RlMmExODgxOTdiMGYwMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDQsNiAr
NDQsNyBAQAogI2luY2x1ZGUgIkNvbW1lbnQuaCIKICNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5j
bHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVz
LmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24u
aCIKICNpbmNsdWRlICJET01TZWxlY3Rpb24uaCIKQEAgLTQyOCw2ICs0MjksNyBAQCBEb2N1bWVu
dDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwg
Ym9vbCBpc0hUTUwpCiAgICAgOiBDb250YWluZXJOb2RlKDAsIENyZWF0ZURvY3VtZW50KQogICAg
ICwgVHJlZVNjb3BlKHRoaXMpCiAgICAgLCBtX2d1YXJkUmVmQ291bnQoMCkKKyAgICAsIG1fY29u
dGV4dEZlYXR1cmVzKENvbnRleHRGZWF0dXJlczo6ZGVmYXVsdFN3aXRjaCgpKQogICAgICwgbV9j
b21wYXRpYmlsaXR5TW9kZShOb1F1aXJrc01vZGUpCiAgICAgLCBtX2NvbXBhdGliaWxpdHlNb2Rl
TG9ja2VkKGZhbHNlKQogICAgICwgbV9kb21UcmVlVmVyc2lvbigrK3NfZ2xvYmFsVHJlZVZlcnNp
b24pCkBAIC01MDYsNiArNTA4LDggQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwg
Y29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKQogICAgIG1faWdub3Jl
QXV0b2ZvY3VzID0gZmFsc2U7CiAKICAgICBtX2ZyYW1lID0gZnJhbWU7CisgICAgaWYgKG1fZnJh
bWUpCisgICAgICAgIHByb3ZpZGVDb250ZXh0RmVhdHVyZXNUb0RvY3VtZW50RnJvbSh0aGlzLCBt
X2ZyYW1lLT5wYWdlKCkpOwogCiAgICAgLy8gV2UgZGVwZW5kIG9uIHRoZSB1cmwgZ2V0dGluZyBp
bW1lZGlhdGVseSBzZXQgaW4gc3ViZnJhbWVzLCBidXQgd2UKICAgICAvLyBhbHNvIGRlcGVuZCBv
biB0aGUgdXJsIE5PVCBnZXR0aW5nIGltbWVkaWF0ZWx5IHNldCBpbiBvcGVuZWQgd2luZG93cy4K
QEAgLTU5ODAsNiArNTk4NCwxMSBAQCB2b2lkIERvY3VtZW50OjphZGp1c3RGbG9hdFJlY3RGb3JT
Y3JvbGxBbmRBYnNvbHV0ZVpvb21BbmRGcmFtZVNjYWxlKEZsb2F0UmVjdCYgcgogICAgICAgICBy
ZWN0LnNjYWxlKGludmVyc2VGcmFtZVNjYWxlKTsKIH0KIAordm9pZCBEb2N1bWVudDo6c2V0Q29u
dGV4dEZlYXR1cmVzKFBhc3NSZWZQdHI8Q29udGV4dEZlYXR1cmVzPiBmZWF0dXJlcykKK3sKKyAg
ICBtX2NvbnRleHRGZWF0dXJlcyA9IGZlYXR1cmVzOworfQorCiAjaWYgRU5BQkxFKFVORE9fTUFO
QUdFUikKIFBhc3NSZWZQdHI8VW5kb01hbmFnZXI+IERvY3VtZW50Ojp1bmRvTWFuYWdlcigpCiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGMzZWJiNDZlZjBkZDU0YTdiMjljNWM0MGY5YjUyYWM1
MjhjNDAzNGQuLmJkZDU0YzA5ZGQwMGMyYTVlZmNhYWQyZDVjZjdlODRkZDIzNmM4MTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC02Nyw2ICs2Nyw3IEBAIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNs
YXNzIENhbnZhc1JlbmRlcmluZ0NvbnRleHQ7CiBjbGFzcyBDaGFyYWN0ZXJEYXRhOwogY2xhc3Mg
Q29tbWVudDsKK2NsYXNzIENvbnRleHRGZWF0dXJlczsKIGNsYXNzIERPTUltcGxlbWVudGF0aW9u
OwogY2xhc3MgRE9NU2VsZWN0aW9uOwogY2xhc3MgRE9NV2luZG93OwpAQCAtMTEyMyw2ICsxMTI0
LDkgQEAgcHVibGljOgogICAgIHZvaWQgYWRqdXN0RmxvYXRRdWFkc0ZvclNjcm9sbEFuZEFic29s
dXRlWm9vbUFuZEZyYW1lU2NhbGUoVmVjdG9yPEZsb2F0UXVhZD4mLCBSZW5kZXJPYmplY3QqKTsK
ICAgICB2b2lkIGFkanVzdEZsb2F0UmVjdEZvclNjcm9sbEFuZEFic29sdXRlWm9vbUFuZEZyYW1l
U2NhbGUoRmxvYXRSZWN0JiwgUmVuZGVyT2JqZWN0Kik7CiAKKyAgICB2b2lkIHNldENvbnRleHRG
ZWF0dXJlcyhQYXNzUmVmUHRyPENvbnRleHRGZWF0dXJlcz4pOworICAgIENvbnRleHRGZWF0dXJl
cyogY29udGV4dEZlYXR1cmVzKCkgeyByZXR1cm4gbV9jb250ZXh0RmVhdHVyZXMuZ2V0KCk7IH0K
KwogcHJvdGVjdGVkOgogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaXNY
SFRNTCwgYm9vbCBpc0hUTUwpOwogCkBAIC0xMjE3LDYgKzEyMjEsOCBAQCBwcml2YXRlOgogICAg
IEZyYW1lKiBtX2ZyYW1lOwogICAgIE93blB0cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4gbV9jYWNo
ZWRSZXNvdXJjZUxvYWRlcjsKICAgICBSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IG1fcGFyc2VyOwor
ICAgIFJlZlB0cjxDb250ZXh0RmVhdHVyZXM+IG1fY29udGV4dEZlYXR1cmVzOworCiAgICAgYm9v
bCBtX3dlbGxGb3JtZWQ7CiAKICAgICAvLyBEb2N1bWVudCBVUkxzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlv
bi5jcHAKaW5kZXggYTA2ZmZkNDVmMzlmMjAzMzIzNjczYmIyY2QxYzM3Y2M5OTQwZjM5YS4uODg5
MTQzNTMwMDhkZWY5Njc0YTcxNTY1NDkwZjVmODE1NTE3YzMxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRp
b24uY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiUG9zaXRpb24uaCIKIAogI2luY2x1
ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFi
bGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbmxpbmVUZXh0Qm94LmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgpAQCAtODIsNyArODIsNyBAQCBQb3NpdGlvbjo6UG9zaXRpb24oUGFzc1JlZlB0cjxOb2Rl
PiBhbmNob3JOb2RlLCBMZWdhY3lFZGl0aW5nT2Zmc2V0IG9mZnNldCkKICAgICAsIG1faXNMZWdh
Y3lFZGl0aW5nUG9zaXRpb24odHJ1ZSkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBB
U1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01F
bmFibGVkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgIEFTU0VS
VCgobV9hbmNob3JOb2RlICYmIENvbnRleHRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2Fu
Y2hvck5vZGUtPmRvY3VtZW50KCkpKQogICAgICAgICAgICB8fCAhbV9hbmNob3JOb2RlIHx8ICFt
X2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbHNlCiAgICAgQVNTRVJUKCFtX2FuY2hv
ck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwpAQCAtOTYsNyArOTYsNyBA
QCBQb3NpdGlvbjo6UG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBhbmNob3JOb2RlLCBBbmNob3JU
eXBlIGFuY2hvclR5cGUpCiAgICAgLCBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKGZhbHNlKQog
ewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIENv
bnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1
bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYgQ29udGV4
dEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKSkpCiAg
ICAgICAgICAgIHx8ICFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290
KCkpOwogI2Vsc2UKICAgICBBU1NFUlQoIW1fYW5jaG9yTm9kZSB8fCAhbV9hbmNob3JOb2RlLT5p
c1NoYWRvd1Jvb3QoKSk7CkBAIC0xMTQsNyArMTE0LDcgQEAgUG9zaXRpb246OlBvc2l0aW9uKFBh
c3NSZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgaW50IG9mZnNldCwgQW5jaG9yVHlwZSBhbmNob3JU
eXAKICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFsc2UpCiB7CiAjaWYgRU5BQkxF
KFNIQURPV19ET00pCi0gICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYgQ29udGV4dEVuYWJsZWRG
ZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUtPmRvY3VtZW50KCktPmRvbVdp
bmRvdygpKSkKKyAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBDb250ZXh0RmVhdHVyZXM6OnNo
YWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpKSkKICAgICAgICAgICAgfHwg
IW1fYW5jaG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZS5nZXQo
KSkgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2Vsc2UKICAgICBBU1NFUlQo
IW1fYW5jaG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZS5nZXQo
KSkgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwpAQCAtODU3LDcgKzg1Nyw3IEBA
IENvbnRhaW5lck5vZGUqIFBvc2l0aW9uOjpmaW5kUGFyZW50KGNvbnN0IE5vZGUqIG5vZGUpCiAg
ICAgLy8gRklYTUU6IFNlZSBodHRwOi8vd2ViLnVnLzgyNjk3CiAKICNpZiBFTkFCTEUoU0hBRE9X
X0RPTSkKLSAgICBpZiAoQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChu
b2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAgaWYgKENvbnRleHRGZWF0dXJlczo6
c2hhZG93RE9NRW5hYmxlZChub2RlLT5kb2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJuIG5vZGUt
PnBhcmVudE5vZGUoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCmluZGV4IDgz
MjJmY2IzOGFmNTk2MDg2OTBkMTgyNzg2Y2M4OTc4ZTk2NjRhZGUuLmI1NDY1OTFmN2ViMTJkODA4
YTIzZWEyNjM0Y2Q4ODRjNTNhMzA3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCkBAIC0y
Nyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCiAKICNpbmNsdWRlICJDb250YWlu
ZXJOb2RlLmgiCi0jaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUg
IkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkRPTVNlbGVjdGlvbi5oIgogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0xNTAsNyArMTUwLDcgQEAg
RE9NU2VsZWN0aW9uKiBUcmVlU2NvcGU6OmdldFNlbGVjdGlvbigpIGNvbnN0CiAgICAgLy8gYXMg
YSBjb250YWluZXIuIEl0IGlzIG5vdyBlbmFibGVkIG9ubHkgaWYgcnVudGltZSBTaGFkb3cgRE9N
IGZlYXR1cmUgaXMgZW5hYmxlZC4KICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgyNjk3CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgaWYgKENv
bnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQocm9vdE5vZGUoKS0+ZG9jdW1l
bnQoKS0+ZG9tV2luZG93KCkpKSB7CisgICAgaWYgKENvbnRleHRGZWF0dXJlczo6c2hhZG93RE9N
RW5hYmxlZChyb290Tm9kZSgpLT5kb2N1bWVudCgpKSkgewogICAgICAgICBtX3NlbGVjdGlvbiA9
IERPTVNlbGVjdGlvbjo6Y3JlYXRlKHRoaXMpOwogICAgICAgICByZXR1cm4gbV9zZWxlY3Rpb24u
Z2V0KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMu
cGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAppbmRleCBhNmNiMDQyZGZlMDI2
YzU4ODRhZjcwMDdjMGE2MzZiMTNhYzkxODVmLi42ZTBhMDYxYzg2ZjkzMzYzMTdmOTA1NWRhNjQx
N2JlMDEzOGJiYzRhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5w
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbApAQCAtMzc4LDcgKzM3OCw3
IEBAIEVORAogICAgIG15ICRjb250ZXh0Q29uZGl0aW9uYWwgPSAkZW5hYmxlZFRhZ3N7JHRhZ05h
bWV9e2NvbnRleHRDb25kaXRpb25hbH07CiAgICAgaWYgKCRjb250ZXh0Q29uZGl0aW9uYWwpIHsK
ICAgICAgICAgcHJpbnQgRiA8PEVORAotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6
JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChkb2N1bWVudC0+ZG9tV2luZG93KCkpKQorICAg
IGlmICghQ29udGV4dEZlYXR1cmVzOjoke2NvbnRleHRDb25kaXRpb25hbH1FbmFibGVkKGRvY3Vt
ZW50KSkKICAgICAgICAgcmV0dXJuIDA7CiBFTkQKIDsKQEAgLTgwNCw3ICs4MDQsNyBAQCBwcmlu
dENvbmRpdGlvbmFsRWxlbWVudEluY2x1ZGVzKCRGKTsKIAogcHJpbnQgRiA8PEVORAogCi0jaW5j
bHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJl
cy5oIgogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKSB8fCBFTkFCTEUoVklERU8pCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTEwMTMsNyArMTAxMyw3IEBAIEVORAogICAgICAgICAg
ICAgICAgIHByaW50IEYgPDxFTkQKIHN0YXRpYyBKU0RPTVdyYXBwZXIqIGNyZWF0ZSR7SlNJbnRl
cmZhY2VOYW1lfVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBQYXNzUmVmUHRyPCRwYXJhbWV0ZXJze25hbWVzcGFjZX1FbGVtZW50PiBlbGVt
ZW50KQogewotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6JHtjb250ZXh0Q29uZGl0
aW9uYWx9RW5hYmxlZChlbGVtZW50LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpIHsKKyAgICBp
ZiAoIUNvbnRleHRGZWF0dXJlczo6JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChlbGVtZW50
LT5kb2N1bWVudCgpKSkgewogICAgICAgICBBU1NFUlQoIWVsZW1lbnQgfHwgZWxlbWVudC0+aXMk
cGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9KCkpOwogICAgICAgICByZXR1cm4gQ1JF
QVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgJHBhcmFtZXRlcnN7ZmFsbGJhY2tJ
bnRlcmZhY2VOYW1lfSwgZWxlbWVudC5nZXQoKSk7CiAgICAgfQpAQCAtMTA1MCw3ICsxMDUwLDcg
QEAgRU5ECiAgICAgICAgICAgICAgICAgcHJpbnQgRiA8PEVORAogc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBjcmVhdGUke0pTSW50ZXJmYWNlTmFtZX1XcmFwcGVyKCRwYXJhbWV0ZXJze25h
bWVzcGFjZX1FbGVtZW50KiBlbGVtZW50LCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKLSAgICBp
ZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQo
ZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgIGlmICghQ29udGV4dEZlYXR1
cmVzOjoke2NvbnRleHRDb25kaXRpb25hbH1FbmFibGVkKGVsZW1lbnQtPmRvY3VtZW50KCkpKQog
ICAgICAgICByZXR1cm4gVjgkcGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9Ojp3cmFw
KHRvJHBhcmFtZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfShlbGVtZW50KSwgaXNvbGF0ZSk7
CiAgICAgcmV0dXJuIHRvVjgoc3RhdGljX2Nhc3Q8JHtKU0ludGVyZmFjZU5hbWV9Kj4oZWxlbWVu
dCksIGlzb2xhdGUpOwogfQpAQCAtMTExMSw3ICsxMTExLDcgQEAgc3ViIHByaW50V3JhcHBlckZh
Y3RvcnlDcHBGaWxlCiAKICAgICBwcmludCBGIDw8RU5ECiAKLSNpbmNsdWRlICJDb250ZXh0RW5h
YmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCiAKICNpZiBFTkFC
TEUoVklERU8pCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvbWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNw
cAppbmRleCA5YWU3ZTcyYzJmMjZlOTc0MGFkNGE1ZjBjYjI0YjE5OTQ0OGQ4MDcxLi5mMGJhNzY2
YWJlZWFmNzUyNjc2ZmFkNTNiZWY5YjM3N2ViYzFjMjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJr
dXAuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRl
ICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5o
IgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkRlbGV0ZUJ1dHRvbkNv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRUeXBlLmgiCkBAIC03MzAsNiArNzMxLDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXBXaXRoQ29udGV4dChEb2N1bWVudCogZG9jdW0K
IAogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiB0YWdnZWRGcmFnbWVudCA9IGNyZWF0ZUZy
YWdtZW50RnJvbU1hcmt1cChkb2N1bWVudCwgdGFnZ2VkTWFya3VwLnRvU3RyaW5nKCksIGJhc2VV
UkwsIHNjcmlwdGluZ1Blcm1pc3Npb24pOwogICAgIFJlZlB0cjxEb2N1bWVudD4gdGFnZ2VkRG9j
dW1lbnQgPSBEb2N1bWVudDo6Y3JlYXRlKDAsIEtVUkwoKSk7CisgICAgdGFnZ2VkRG9jdW1lbnQt
PnNldENvbnRleHRGZWF0dXJlcyhkb2N1bWVudC0+Y29udGV4dEZlYXR1cmVzKCkpOwogICAgIHRh
Z2dlZERvY3VtZW50LT50YWtlQWxsQ2hpbGRyZW5Gcm9tKHRhZ2dlZEZyYWdtZW50LmdldCgpKTsK
IAogICAgIFJlZlB0cjxOb2RlPiBub2RlQmVmb3JlQ29udGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdHlsZUVsZW1lbnQuY3BwCmluZGV4IDY3ZGRjZWI0ZmFhM2ZhN2VjZGE1MzQ1NzczNmZj
NWQ2Y2UzOGVmNGMuLmYwNzNhMGQxOWJmMTk3MzQxMzBhZTZhNmY2YjliNTIyZGU1NjFlMzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcApAQCAtMjUsNyArMjUsNyBA
QAogI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkF0dHJpYnV0ZS5o
IgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0
RmVhdHVyZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAj
aW5jbHVkZSAiRXZlbnRTZW5kZXIuaCIKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIEhUTUxTdHls
ZUVsZW1lbnQ6OnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKCkKICAgICBBU1NFUlQoaW5Eb2N1bWVu
dCgpKTsKICAgICBpZiAobV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05vZGUpCiAgICAgICAgIHJl
dHVybjsKLSAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxl
ZChkb2N1bWVudCgpKSkKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFi
bGVkKGRvY3VtZW50KCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBDb250YWluZXJOb2RlKiBz
Y29wZSA9IHBhcmVudE5vZGUoKTsKQEAgLTEzMCwxMCArMTMwLDEwIEBAIHZvaWQgSFRNTFN0eWxl
RWxlbWVudDo6dW5yZWdpc3RlcldpdGhTY29waW5nTm9kZShDb250YWluZXJOb2RlKiBzY29wZSkK
IHsKICAgICAvLyBOb3RlOiBXZSBjYW5ub3QgcmVseSBvbiB0aGUgJ3Njb3BlZCcgZWxlbWVudCBz
dGlsbCBiZWluZyBwcmVzZW50IHdoZW4gdGhpcyBtZXRob2QgaXMgaW52b2tlZC4KICAgICAvLyBU
aGVyZWZvcmUgd2UgY2Fubm90IHJlbHkgb24gc2NvcGVkKCkhCi0gICAgQVNTRVJUKG1faXNSZWdp
c3RlcmVkV2l0aFNjb3BpbmdOb2RlIHx8ICFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNj
b3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpOworICAgIEFTU0VSVChtX2lzUmVnaXN0ZXJlZFdpdGhT
Y29waW5nTm9kZSB8fCAhQ29udGV4dEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1l
bnQoKSkpOwogICAgIGlmICghbV9pc1JlZ2lzdGVyZWRXaXRoU2NvcGluZ05vZGUpCiAgICAgICAg
IHJldHVybjsKLSAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5h
YmxlZChkb2N1bWVudCgpKSkKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlczo6c3R5bGVTY29wZWRF
bmFibGVkKGRvY3VtZW50KCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoc2NvcGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5j
cHAKaW5kZXggMDhiNDVkNGFiZjU5YmZjNzZlOGU3NDAwM2MxNzZkZGM5NjBlNGJlZi4uYjBiZGQ4
ODVmNzhlYzY3MGY4ZTc1YzQ4OTMwMTJhNjIxZDk1NTRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCkBAIC0yOSw3ICsyOSw3IEBA
CiAKICNpbmNsdWRlICJDb250ZW50RGlzdHJpYnV0b3IuaCIKICNpbmNsdWRlICJDb250ZW50U2Vs
ZWN0b3JRdWVyeS5oIgotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNs
dWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgpAQCAtNDMsNyAr
NDMsNyBAQCB1c2luZyBIVE1MTmFtZXM6OnNlbGVjdEF0dHI7CiBzdGF0aWMgY29uc3QgUXVhbGlm
aWVkTmFtZSYgY29udGVudFRhZ05hbWUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogI2lmIEVOQUJM
RShTSEFET1dfRE9NKQotICAgIGlmICghQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9N
RW5hYmxlZChkb2N1bWVudC0+ZG9tV2luZG93KCkpKQorICAgIGlmICghQ29udGV4dEZlYXR1cmVz
OjpzaGFkb3dET01FbmFibGVkKGRvY3VtZW50KSkKICAgICAgICAgcmV0dXJuIEhUTUxOYW1lczo6
d2Via2l0U2hhZG93Q29udGVudFRhZzsKICAgICByZXR1cm4gSFRNTE5hbWVzOjpjb250ZW50VGFn
OwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01QYXRjaFN1
cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAK
aW5kZXggYmEwZDhjODZjNTU4YzhmYThlMjUzZWU5NjFiMDA4YmQwNjUzZTI1MC4uMmYyMjE1MWIy
ZTRhMTU3Mjk5YmIwN2Q4ZjdjZGY2MGE3ZDFmMmVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKIAogI2luY2x1ZGUg
IkF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkJhc2U2NC5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0
dXJlcy5oIgogI2luY2x1ZGUgIkRPTUVkaXRvci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgpAQCAtODksNiArOTAsNyBAQCBET01QYXRjaFN1
cHBvcnQ6On5ET01QYXRjaFN1cHBvcnQoKSB7IH0KIHZvaWQgRE9NUGF0Y2hTdXBwb3J0OjpwYXRj
aERvY3VtZW50KGNvbnN0IFN0cmluZyYgbWFya3VwKQogewogICAgIFJlZlB0cjxIVE1MRG9jdW1l
bnQ+IG5ld0RvY3VtZW50ID0gSFRNTERvY3VtZW50OjpjcmVhdGUoMCwgS1VSTCgpKTsKKyAgICBu
ZXdEb2N1bWVudC0+c2V0Q29udGV4dEZlYXR1cmVzKG1fZG9jdW1lbnQtPmNvbnRleHRGZWF0dXJl
cygpKTsKICAgICBSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IHBhcnNlciA9IEhUTUxEb2N1bWVudFBh
cnNlcjo6Y3JlYXRlKG5ld0RvY3VtZW50LmdldCgpLCBmYWxzZSk7CiAgICAgcGFyc2VyLT5pbnNl
cnQobWFya3VwKTsgLy8gVXNlIGluc2VydCgpIHNvIHRoYXQgdGhlIHBhcnNlciB3aWxsIG5vdCB5
aWVsZC4KICAgICBwYXJzZXItPmZpbmlzaCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaAppbmRleCBmNWM3YTcyNjZhNjAwZGVhNTI5YmY5ZDEzYzE3YmRlNjIwZWE5
ZDI3Li5iZTgxMDI4N2E3MGQ1NWU4ZTY1NmJmZjNkNjQwYWFmYTUzM2IxMDZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMzExLDEyICszMTEsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd0Rpc3BsYXlpbmdJ
bnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIFNlY3VyaXR5T3JpZ2luKiwg
Y29uc3QgS1VSTCYpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQogICAgICAgICB2aXJ0
dWFsIGJvb2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRp
bmdzLCBTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmKSB7IHJldHVybiBlbmFibGVkUGVyU2V0
dGluZ3M7IH0KIAotICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTaGFkb3dET00oYm9vbCBlbmFi
bGVkQXNSdW50aW1lRmVhdHVyZXMpIHsgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlczsg
fQotICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTdHlsZVNjb3BlZChib29sIGVuYWJsZWRBc1J1
bnRpbWVGZWF0dXJlcykgeyByZXR1cm4gZW5hYmxlZEFzUnVudGltZUZlYXR1cmVzOyB9Ci0jaWYg
RU5BQkxFKFBBR0VfUE9QVVApCi0gICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd1BhZ2VQb3B1cCgp
IHsgcmV0dXJuIGZhbHNlOyB9Ci0jZW5kaWYKLQogICAgICAgICAvLyBUaGlzIGNhbGxiYWNrIG5v
dGlmaWVzIHRoZSBjbGllbnQgdGhhdCB0aGUgZnJhbWUgd2FzIGFib3V0IHRvIHJ1bgogICAgICAg
ICAvLyBKYXZhU2NyaXB0IGJ1dCBkaWQgbm90IGJlY2F1c2UgYWxsb3dTY3JpcHQgcmV0dXJuZWQg
ZmFsc2UuIFdlCiAgICAgICAgIC8vIGhhdmUgYSBzZXBhcmF0ZSBjYWxsYmFjayBoZXJlIGJlY2F1
c2UgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUmVmQ291bnRlZFN1cHBsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1JlZkNvdW50ZWRTdXBwbGVtZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk5ZDQ1NTk3Y2E4MzdkZDg1
YjdmYThiNGJjMjc4NDVhZDhmMjU0NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1JlZkNvdW50ZWRTdXBwbGVtZW50LmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSZWZDb3Vu
dGVkU3VwcGxlbWVudF9oCisjZGVmaW5lIFJlZkNvdW50ZWRTdXBwbGVtZW50X0gKKworI2luY2x1
ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGU8Y2xh
c3MgVCwgY2xhc3MgUz4KK2NsYXNzIFJlZkNvdW50ZWRTdXBwbGVtZW50IDogcHVibGljIFJlZkNv
dW50ZWQ8Uz4geworcHVibGljOgorICAgIHR5cGVkZWYgUmVmQ291bnRlZFN1cHBsZW1lbnQ8VCwg
Uz4gVGhpc1R5cGU7CisKKyAgICB2aXJ0dWFsIH5SZWZDb3VudGVkU3VwcGxlbWVudCgpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBob3N0RGVzdHJveWVkKCkgeyB9CisKKyAgICBjbGFzcyBXcmFwcGVy
IDogcHVibGljIFN1cHBsZW1lbnQ8VD4geworICAgIHB1YmxpYzoKKyAgICAgICAgZXhwbGljaXQg
V3JhcHBlcihQYXNzUmVmUHRyPFRoaXNUeXBlPiB3cmFwcGVkKSA6IG1fd3JhcHBlZCh3cmFwcGVk
KSB7IH0KKyAgICAgICAgdmlydHVhbCB+V3JhcHBlcigpIHsgbV93cmFwcGVkLT5ob3N0RGVzdHJv
eWVkKCk7ICB9CisjaWYgIUFTU0VSVF9ESVNBQkxFRAorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNS
ZWZDb3VudGVkV3JhcHBlcigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyNlbmRp
ZgorICAgICAgICBUaGlzVHlwZSogd3JhcHBlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd3JhcHBlZC5n
ZXQoKTsgfQorICAgIHByaXZhdGU6CisKKyAgICAgICAgUmVmUHRyPFRoaXNUeXBlPiBtX3dyYXBw
ZWQ7CisgICAgfTsKKworICAgIHN0YXRpYyB2b2lkIHByb3ZpZGVUbyhTdXBwbGVtZW50YWJsZTxU
PiogaG9zdCwgY29uc3QgQXRvbWljU3RyaW5nJiBrZXksIFBhc3NSZWZQdHI8VGhpc1R5cGU+IHN1
cHBsZW1lbnQpCisgICAgeworICAgICAgICBob3N0LT5wcm92aWRlU3VwcGxlbWVudChrZXksIGFk
b3B0UHRyKG5ldyBXcmFwcGVyKHN1cHBsZW1lbnQpKSk7CisgICAgfQorCisgICAgc3RhdGljIFRo
aXNUeXBlKiBmcm9tKFN1cHBsZW1lbnRhYmxlPFQ+KiBob3N0LCBjb25zdCBBdG9taWNTdHJpbmcm
IGtleSkKKyAgICB7CisgICAgICAgIFN1cHBsZW1lbnQ8VD4qIGZvdW5kID0gaG9zdC0+cmVxdWly
ZVN1cHBsZW1lbnQoa2V5KTsKKyAgICAgICAgaWYgKCFmb3VuZCkKKyAgICAgICAgICAgIHJldHVy
biAwOworICAgICAgICBBU1NFUlQoZm91bmQtPmlzUmVmQ291bnRlZFdyYXBwZXIoKSk7CisgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxXcmFwcGVyKj4oZm91bmQpLT53cmFwcGVkKCk7CisgICAg
fQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVmQ291bnRlZFN1
cHBsZW1lbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU3VwcGxlbWVu
dGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmgKaW5kZXgg
ODRkYzkwNmUyYWYzNDhhMzRkODViNmI5ZDgzYzY5NzJlYzJkNjZlMS4uNDE5OWFjNTA5NTI2YjA2
ZTdkODk5MTJmM2Q4YTg3ZWMyOGJiOGI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU3VwcGxlbWVudGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdXBw
bGVtZW50YWJsZS5oCkBAIC00MCw2ICs0MCw5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBjbGFz
cyBTdXBwbGVtZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TdXBwbGVtZW50KCkgeyB9Cisj
aWYgIUFTU0VSVF9ESVNBQkxFRAorICAgIHZpcnR1YWwgYm9vbCBpc1JlZkNvdW50ZWRXcmFwcGVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgcHJv
dmlkZVRvKFN1cHBsZW1lbnRhYmxlPFQ+KiBob3N0LCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSwg
UGFzc093blB0cjxTdXBwbGVtZW50PFQ+ID4gc3VwcGxlbWVudCkKICAgICB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCA3YzVlNWI1ZjA4N2IwNTg4ODU1NDY1NDE1NzI4
YjlkY2Y2MjA2NTRlLi42NDgyY2E4Y2U5OTcwMzk1MGQ2MWFiMzlmMmNhMDU1OTAxYzhkZDgyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNp
bmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiQmxvYkRhdGEuaCIKICNpbmNsdWRlICJDb250ZW50
U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRl
ICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgog
I2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCkBAIC0yNTMsNiArMjU0LDcgQEAgRG9jdW1l
bnQqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTChFeGNlcHRpb25Db2RlJiBlYykKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBTZXQgTGFzdC1Nb2RpZmllZC4KICAgICAgICAgICAgIG1fcmVzcG9u
c2VEb2N1bWVudC0+c2V0Q29udGVudChtX3Jlc3BvbnNlQnVpbGRlci50b1N0cmluZ1ByZXNlcnZl
Q2FwYWNpdHkoKSk7CiAgICAgICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldFNlY3VyaXR5
T3JpZ2luKHNlY3VyaXR5T3JpZ2luKCkpOworICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50
LT5zZXRDb250ZXh0RmVhdHVyZXMoZG9jdW1lbnQoKS0+Y29udGV4dEZlYXR1cmVzKCkpOwogICAg
ICAgICAgICAgaWYgKCFtX3Jlc3BvbnNlRG9jdW1lbnQtPndlbGxGb3JtZWQoKSkKICAgICAgICAg
ICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQgPSAwOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXAKaW5kZXggOTkyMDRiODg2YWI3ZWMxY2Y0ZDI0YTU5M2NjZGNkMDI3ZDU0OTkw
MS4uYjE5YjNkZmUyNGU4OTcxNWVjZGNhOTIzOTIyYzY0ZWNkYmUyNDZlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cApAQCAtMzcxLDYgKzM3MSw4IEBACiAgICAgICAgICAgICAgICAgJ3Ny
Yy9Db21wb3NpdGlvblVuZGVybGluZUJ1aWxkZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9D
b21wb3NpdGlvblVuZGVybGluZVZlY3RvckJ1aWxkZXIuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL0NvbXBvc2l0aW9uVW5kZXJsaW5lVmVjdG9yQnVpbGRlci5oJywKKyAgICAgICAgICAgICAg
ICAnc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwJywKKyAgICAgICAgICAgICAgICAn
c3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9D
b250ZXh0TWVudUNsaWVudEltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0NvbnRleHRN
ZW51Q2xpZW50SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL0RhdGFiYXNlT2JzZXJ2ZXIu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1p
c3Npb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Np
b25DbGllbnQuaAppbmRleCAxMTZhMzgzY2E4YzI4YjQ3ODlhZTczNWZmMWU0NGNkMzI3ZGRlYzgz
Li4wMTRjMmMzZjQ0MDIzNTQyZDYxYjE4OWM1MjI1Zjc0MDQ2NWNjOGU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCkBAIC0z
Myw2ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJEb2N1bWVudDsK
IGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBXZWJTdHJp
bmc7CkBAIC05MCw3ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dXcml0
ZVRvQ2xpcGJvYXJkKFdlYkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRlZmF1
bHRWYWx1ZTsgfQogCiAgICAgLy8gQ29udHJvbHMgd2hldGhlciBlbmFibGluZyBXZWIgQ29tcG9u
ZW50cyBBUEkgZm9yIHRoaXMgZnJhbWUuCi0gICAgdmlydHVhbCBib29sIGFsbG93V2ViQ29tcG9u
ZW50cyhXZWJGcmFtZSosIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBkZWZhdWx0VmFsdWU7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dXZWJDb21wb25lbnRzKGNvbnN0IFdlYkRvY3VtZW50
JiwgYm9vbCBkZWZhdWx0VmFsdWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQogCiAgICAgLy8g
Tm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBmcmFtZSB3b3VsZCBoYXZlIGluc3RhbnRpYXRl
ZCBhIHBsdWctaW4gaWYgcGx1Zy1pbnMgd2VyZSBlbmFibGVkLgogICAgIHZpcnR1YWwgdm9pZCBk
aWROb3RBbGxvd1BsdWdpbnMoV2ViRnJhbWUqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWFkYTA3Nzg3NjRmMDI2ZWE4NjZlNzlhNmZhOWMxNTY4ZGJkZGZhNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudElt
cGwuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29u
dGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJXZWJEb2N1bWVudC5oIgorI2luY2x1ZGUgIldlYlBlcm1pc3Npb25DbGllbnQuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbDo6aXNF
bmFibGVkKFdlYkNvcmU6OkRvY3VtZW50KiBkb2N1bWVudCwgV2ViQ29yZTo6Q29udGV4dEZlYXR1
cmVzOjpGZWF0dXJlVHlwZSB0eXBlLCBib29sIGRlZmF1bHRWYWx1ZSkKK3sKKyAgICBpZiAoIW1f
Y2xpZW50KQorICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworCisgICAgc3dpdGNoICh0eXBl
KSB7CisgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OlNoYWRvd0RPTToKKyAgICBj
YXNlIFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlczo6U3R5bGVTY29wZWQ6CisgICAgICAgIHJldHVy
biBtX2NsaWVudC0+YWxsb3dXZWJDb21wb25lbnRzKFdlYkRvY3VtZW50KGRvY3VtZW50KSwgZGVm
YXVsdFZhbHVlKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwor
ICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWExZjk1NDhkOTI4MDIwYzYwNmQ0ZmRiZWY0OTQxNTQzYmIyYmI4OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwu
aApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsX2gKKyNk
ZWZpbmUgQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbF9oCisKKyNpbmNsdWRlICJDb250ZXh0RmVh
dHVyZXMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBlcm1pc3Npb25DbGll
bnQ7CisKK2NsYXNzIENvbnRleHRGZWF0dXJlc0NsaWVudEltcGwgOiBwdWJsaWMgV2ViQ29yZTo6
Q29udGV4dEZlYXR1cmVzQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBDb250ZXh0RmVhdHVyZXNDbGll
bnRJbXBsKCkKKyAgICAgICAgOiBtX2NsaWVudCgwKQorICAgIHsgfQorCisgICAgdmlydHVhbCBi
b29sIGlzRW5hYmxlZChXZWJDb3JlOjpEb2N1bWVudCosIFdlYkNvcmU6OkNvbnRleHRGZWF0dXJl
czo6RmVhdHVyZVR5cGUsIGJvb2wgZGVmYXVsdFZhbHVlKSBPVkVSUklERTsKKyAgICB2b2lkIHNl
dFBlcm1pc3Npb25DbGllbnQoV2ViUGVybWlzc2lvbkNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50
ID0gY2xpZW50OyB9CisKK3ByaXZhdGU6CisgICAgV2ViUGVybWlzc2lvbkNsaWVudCogbV9jbGll
bnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIENvbnRleHRGZWF0
dXJlc0NsaWVudEltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Zy
YW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKaW5kZXggZGUzZjIyNzg5ZjVmYTE1YjBhY2Q4ZWQ3NGQx
ZTVhZjkwZTk2OWYyYy4uZDA2MDJhOWEwZTcwNGVjZDkxMmY2ZGNhZmMxY2NjNWY5YTJhZjlmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVu
dEltcGwuY3BwCkBAIC0yMzksMjQgKzIzOSw2IEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBs
OjphbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsCiAg
ICAgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsKIH0KIAotYm9vbCBGcmFtZUxvYWRlckNsaWVu
dEltcGw6OmFsbG93U2hhZG93RE9NKGJvb2wgZW5hYmxlZEFzUnVudGltZUZlYXR1cmUpCi17Ci0g
ICAgV2ViVmlld0ltcGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOwotICAgIGlm
ICh3ZWJ2aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKLSAgICAgICAgcmV0dXJu
IHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+YWxsb3dXZWJDb21wb25lbnRzKG1fd2ViRnJh
bWUsIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlKTsKLQotICAgIHJldHVybiBlbmFibGVkQXNSdW50
aW1lRmVhdHVyZTsKLX0KLQotYm9vbCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93U3R5bGVT
Y29wZWQoYm9vbCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZSkKLXsKLSAgICBXZWJWaWV3SW1wbCog
d2VidmlldyA9IG1fd2ViRnJhbWUtPnZpZXdJbXBsKCk7Ci0gICAgaWYgKHdlYnZpZXcgJiYgd2Vi
dmlldy0+cGVybWlzc2lvbkNsaWVudCgpKQotICAgICAgICByZXR1cm4gd2Vidmlldy0+cGVybWlz
c2lvbkNsaWVudCgpLT5hbGxvd1dlYkNvbXBvbmVudHMobV93ZWJGcmFtZSwgZW5hYmxlZEFzUnVu
dGltZUZlYXR1cmUpOwotCi0gICAgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlOwotfQot
CiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkTm90QWxsb3dTY3JpcHQoKQogewogICAg
IFdlYlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKaW5kZXgg
MjM2YTAxYjY1MzAyOTUxNDZhY2VhMTNiZGU1ZDBmMjM4MzdhOWZhZi4uZWNiMjBhMmZiMjVlZmU2
NGFmZTYwZDQyNDZlNmM5OTNhZjVmMzEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKQEAgLTE5OSw4ICsxOTksNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIGFsbG93SW1hZ2UoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3Ms
IGNvbnN0IFdlYkNvcmU6OktVUkwmIGltYWdlVVJMKTsKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dE
aXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKICAgICB2aXJ0dWFsIGJv
b2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdlYkNvcmU6OktVUkwmKTsKLSAgICB2aXJ0
dWFsIGJvb2wgYWxsb3dTaGFkb3dET00oYm9vbCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZSkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIGFsbG93U3R5bGVTY29wZWQoYm9vbCBlbmFibGVkQXNS
dW50aW1lRmVhdHVyZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93U2Ny
aXB0KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucygpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCmluZGV4IDBmOWZi
MTg4ZTg2MzE3NmY1OGQzNmMwZjJkZGEyYzAzZTNmODQyNzAuLmVkYWNkMDE4Mzg3NzFjYTBmNWZh
OWJjZWEwMDFiNTdjZGRlZGY4MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlBhZ2VQb3B1cEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlBhZ2VQb3B1cEltcGwuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViUGFn
ZVBvcHVwSW1wbC5oIgogCiAjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ29udGV4dEZl
YXR1cmVzLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93UGFnZVBvcHVwLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJFbXB0eUNsaWVudHMuaCIKQEAgLTEyNSwxMCArMTI2
LDE3IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZVBvcHVwSW1wbCogbV9wb3B1cDsKIH07CiAKLWNs
YXNzIFBhZ2VQb3B1cEZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIEVtcHR5RnJhbWVMb2FkZXJD
bGllbnQgewotICAgIHZpcnR1YWwgYm9vbCBhbGxvd1BhZ2VQb3B1cCgpIE9WRVJSSURFIHsgcmV0
dXJuIHRydWU7IH0KK2NsYXNzIFBhZ2VQb3B1cEZlYXR1cmVzQ2xpZW50IDogcHVibGljIENvbnRl
eHRGZWF0dXJlc0NsaWVudCB7CisgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZChEb2N1bWVudCos
IENvbnRleHRGZWF0dXJlczo6RmVhdHVyZVR5cGUsIGJvb2wpIE9WRVJSSURFOwogfTsKIAorYm9v
bCBQYWdlUG9wdXBGZWF0dXJlc0NsaWVudDo6aXNFbmFibGVkKERvY3VtZW50KiwgQ29udGV4dEZl
YXR1cmVzOjpGZWF0dXJlVHlwZSB0eXBlLCBib29sIGRlZmF1bHRWYWx1ZSkKK3sKKyAgICBpZiAo
dHlwZSA9PSBDb250ZXh0RmVhdHVyZXM6OlBhZ2VQb3B1cCkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKK30KKwogLy8gV2ViUGFnZVBvcHVwSW1wbCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKIFdlYlBhZ2VQb3B1cEltcGw6OldlYlBhZ2VQb3B1cEltcGwoV2ViV2lkZ2V0Q2xpZW50
KiBjbGllbnQpCkBAIC0xODMsOCArMTkxLDEwIEBAIGJvb2wgV2ViUGFnZVBvcHVwSW1wbDo6aW5p
dFBhZ2UoKQogICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0U2NyaXB0RW5hYmxlZCh0cnVlKTsK
ICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldEFsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzKHRy
dWUpOwogCi0gICAgc3RhdGljIEZyYW1lTG9hZGVyQ2xpZW50KiBwYWdlUG9wdXBGcmFtZUxvYWRl
ckNsaWVudCA9ICBuZXcgUGFnZVBvcHVwRnJhbWVMb2FkZXJDbGllbnQ7Ci0gICAgUmVmUHRyPEZy
YW1lPiBmcmFtZSA9IEZyYW1lOjpjcmVhdGUobV9wYWdlLmdldCgpLCAwLCBwYWdlUG9wdXBGcmFt
ZUxvYWRlckNsaWVudCk7CisgICAgc3RhdGljIENvbnRleHRGZWF0dXJlc0NsaWVudCogcGFnZVBv
cHVwRmVhdHVyZXNDbGllbnQgPSAgbmV3IFBhZ2VQb3B1cEZlYXR1cmVzQ2xpZW50KCk7CisgICAg
cHJvdmlkZUNvbnRleHRGZWF0dXJlc1RvKG1fcGFnZS5nZXQoKSwgcGFnZVBvcHVwRmVhdHVyZXND
bGllbnQpOworICAgIHN0YXRpYyBGcmFtZUxvYWRlckNsaWVudCogZW1wdHlGcmFtZUxvYWRlckNs
aWVudCA9ICBuZXcgRW1wdHlGcmFtZUxvYWRlckNsaWVudCgpOworICAgIFJlZlB0cjxGcmFtZT4g
ZnJhbWUgPSBGcmFtZTo6Y3JlYXRlKG1fcGFnZS5nZXQoKSwgMCwgZW1wdHlGcmFtZUxvYWRlckNs
aWVudCk7CiAgICAgZnJhbWUtPnNldFZpZXcoRnJhbWVWaWV3OjpjcmVhdGUoZnJhbWUuZ2V0KCkp
KTsKICAgICBmcmFtZS0+aW5pdCgpOwogICAgIGZyYW1lLT52aWV3KCktPnJlc2l6ZShtX3BvcHVw
Q2xpZW50LT5jb250ZW50U2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAppbmRleCBhNDQwOTdiYTRiODdhOTI3ZmM4MzAyODljYmE0ZjhmZTliZDc3NmIw
Li5kNGQ1NmE3YTNkMGJlOTFkOGFmZmU0ZDlmOGVhYzhiN2Q1NjQzMjIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5j
bHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJDb2xvclNwYWNlLmgiCiAjaW5jbHVkZSAiQ29tcG9z
aXRpb25VbmRlcmxpbmVWZWN0b3JCdWlsZGVyLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVz
Q2xpZW50SW1wbC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCiAjaW5jbHVkZSAiQ29udGV4
dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCkBAIC0zMzcs
NiArMzM4LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0RGV2VG9vbHNBZ2VudENsaWVudChXZWJE
ZXZUb29sc0FnZW50Q2xpZW50KiBkZXZUb29sc0NsaWVudCkKIHZvaWQgV2ViVmlld0ltcGw6OnNl
dFBlcm1pc3Npb25DbGllbnQoV2ViUGVybWlzc2lvbkNsaWVudCogcGVybWlzc2lvbkNsaWVudCkK
IHsKICAgICBtX3Blcm1pc3Npb25DbGllbnQgPSBwZXJtaXNzaW9uQ2xpZW50OworICAgIG1fZmVh
dHVyZVN3aXRjaENsaWVudC0+c2V0UGVybWlzc2lvbkNsaWVudChwZXJtaXNzaW9uQ2xpZW50KTsK
IH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0UHJlcmVuZGVyZXJDbGllbnQoV2ViUHJlcmVuZGVy
ZXJDbGllbnQqIHByZXJlbmRlcmVyQ2xpZW50KQpAQCAtMzkyLDYgKzM5NCw3IEBAIFdlYlZpZXdJ
bXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAgICAgLCBtX2ltZUFjY2Vw
dEV2ZW50cyh0cnVlKQogICAgICwgbV9vcGVyYXRpb25zQWxsb3dlZChXZWJEcmFnT3BlcmF0aW9u
Tm9uZSkKICAgICAsIG1fZHJhZ09wZXJhdGlvbihXZWJEcmFnT3BlcmF0aW9uTm9uZSkKKyAgICAs
IG1fZmVhdHVyZVN3aXRjaENsaWVudChhZG9wdFB0cihuZXcgQ29udGV4dEZlYXR1cmVzQ2xpZW50
SW1wbCgpKSkKICAgICAsIG1fYXV0b2ZpbGxQb3B1cFNob3dpbmcoZmFsc2UpCiAgICAgLCBtX2F1
dG9maWxsUG9wdXAoMCkKICAgICAsIG1faXNUcmFuc3BhcmVudChmYWxzZSkKQEAgLTQ1MSw2ICs0
NTQsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50KQog
ICAgIHByb3ZpZGVOb3RpZmljYXRpb24obV9wYWdlLmdldCgpLCBub3RpZmljYXRpb25QcmVzZW50
ZXJJbXBsKCkpOwogI2VuZGlmCiAKKyAgICBwcm92aWRlQ29udGV4dEZlYXR1cmVzVG8obV9wYWdl
LmdldCgpLCBtX2ZlYXR1cmVTd2l0Y2hDbGllbnQuZ2V0KCkpOwogICAgIHByb3ZpZGVEZXZpY2VP
cmllbnRhdGlvblRvKG1fcGFnZS5nZXQoKSwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5
LmdldCgpKTsKICAgICBwcm92aWRlR2VvbG9jYXRpb25UbyhtX3BhZ2UuZ2V0KCksIG1fZ2VvbG9j
YXRpb25DbGllbnRQcm94eS5nZXQoKSk7CiAgICAgbV9nZW9sb2NhdGlvbkNsaWVudFByb3h5LT5z
ZXRDb250cm9sbGVyKEdlb2xvY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShtX3BhZ2UuZ2V0KCkpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IGEwODg5Njc4YTE0
MDA3NDJjYzI2ZTBlYmZiYmUyM2UxOThiOTJkMmUuLjdiZGRhOTBmNDBkOGU4YWNlNWIxYTZiNjdj
NjhlY2NmN2E2ZWVmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
aApAQCAtODYsNiArODYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIEF1dG9jb21wbGV0
ZVBvcHVwTWVudUNsaWVudDsKIGNsYXNzIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50OwogY2xhc3Mg
QmF0dGVyeUNsaWVudEltcGw7CitjbGFzcyBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOwogY2xh
c3MgQ29udGV4dE1lbnVDbGllbnRJbXBsOwogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRQ
cm94eTsKIGNsYXNzIERyYWdTY3JvbGxUaW1lcjsKQEAgLTczMyw2ICs3MzQsOSBAQCBwcml2YXRl
OgogICAgIC8vIGN1cnJlbnQgZHJvcCB0YXJnZXQgaW4gdGhpcyBXZWJWaWV3ICh0aGUgZHJvcCB0
YXJnZXQgY2FuIGFjY2VwdCB0aGUgZHJvcCkuCiAgICAgV2ViRHJhZ09wZXJhdGlvbiBtX2RyYWdP
cGVyYXRpb247CiAKKyAgICAvLyBDb250ZXh0LWJhc2VkIGZlYXR1cmUgc3dpdGNoZXMuCisgICAg
T3duUHRyPENvbnRleHRGZWF0dXJlc0NsaWVudEltcGw+IG1fZmVhdHVyZVN3aXRjaENsaWVudDsK
KwogICAgIC8vIFdoZXRoZXIgYW4gQXV0b2ZpbGwgcG9wdXAgaXMgY3VycmVudGx5IHNob3dpbmcu
CiAgICAgYm9vbCBtX2F1dG9maWxsUG9wdXBTaG93aW5nOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2Q1ZTE5ODJkNDQx
ZmU3OTkxMjYxNjcwNTg3NTI4ZDNiNDQ2OWJjMi4uOTVhZWRhODA1ZWVjOWM0NjYyNzBkNmNhNWY3
ZmI2ZjkyNDI4ZWVkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA2LTExICBIYWppbWUg
TW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjEx
ODA5OCk6IDxjb250ZW50PiBlbGVtZW50IGRvZXMgbm90IHJlbmRlciBkaXN0cmlidXRlZCBjaGls
ZHJlbiB3aGVuIGNsb25lZCBmcm9tIGFub3RoZXIgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTQ4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGltaXRyaSBHbGF6a292LgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2VsZW1lbnRz
LWluLWZyYW1lbGVzcy1kb2N1bWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbDogQWRkZWQu
CisKIDIwMTItMDYtMTEgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBJbnRyb2R1Y2UgYW4gRW5jbG9zdXJlIEVsZW1lbnQgZm9yIENocm9taXVtIHZp
ZGVvIGNvbnRyb2xzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Vs
ZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iNjQzMDc1M2YyOTUzMmUxZjUyMjE1MDBhOTkyMGMxMmY4Mzc2YTJjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWlu
LWZyYW1lbGVzcy1kb2N1bWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0
ZXN0IGVuc3VyZSB0aGF0IHRoZSBzaGFkb3cgcmVsYXRlZCBlbGVtZW50cyBhcmUgaW5zdGFudGlh
dGVkIGV2ZW4gaW5zaWRlIGZyYW1lbGVzcyBkb2N1bWVudHMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitUZXN0aW5nIG9uIHRoZSBmcmFtZS1sZXNzIGRvY3VtZW50LgorUEFTUyB3
aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IGlzIGNvbnRlbnQuY29uc3RydWN0b3IKK1BBU1Mgd2lu
ZG93LkhUTUxTaGFkb3dFbGVtZW50IGlzIHNoYWRvdy5jb25zdHJ1Y3RvcgorTW92aW5nIHRvIHRo
ZSBtYWluIGRvY3VtZW50LgorUEFTUyB3aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IGlzIGNvbnRl
bnQuY29uc3RydWN0b3IKK1BBU1Mgd2luZG93LkhUTUxTaGFkb3dFbGVtZW50IGlzIHNoYWRvdy5j
b25zdHJ1Y3RvcgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCit4KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2VsZW1lbnRz
LWluLWZyYW1lbGVzcy1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2VsZW1lbnRzLWluLWZyYW1lbGVzcy1kb2N1bWVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwYjZiZTgx
ZWY1N2RjYjIxZmY1NTY1NjdkNGI0NmYwZTkzNmUyOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0
bWwKQEAgLTAsMCArMSwzMCBAQAoreCs8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgZW5zdXJl
IHRoYXQgdGhlIHNoYWRvdyByZWxhdGVkIGVsZW1lbnRzIGFyZSBpbnN0YW50aWF0ZWQgZXZlbiBp
bnNpZGUgZnJhbWVsZXNzIGRvY3VtZW50cy4iKTsKKwordmFyIGRvYyA9IGRvY3VtZW50LmltcGxl
bWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgpOwordmFyIGNvbnRhaW5lciA9IGRvYy5jcmVh
dGVFbGVtZW50KCJzcGFuIik7Citkb2MuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOworY29u
dGFpbmVyLmlubmVySFRNTCA9ICI8Y29udGVudCBpZD0nY29udGVudEVsZW1lbnQnPjwvY29udGVu
dD48c2hhZG93IGlkPSdzaGFkb3dFbGVtZW50Jz48L3NoYWRvdz4iOworCit2YXIgY29udGVudCA9
IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCIjY29udGVudEVsZW1lbnQiKTsKK3ZhciBzaGFkb3cg
PSBjb250YWluZXIucXVlcnlTZWxlY3RvcigiI3NoYWRvd0VsZW1lbnQiKTsKKworZGVidWcoIlRl
c3Rpbmcgb24gdGhlIGZyYW1lLWxlc3MgZG9jdW1lbnQuIik7CitzaG91bGRCZSgid2luZG93LkhU
TUxDb250ZW50RWxlbWVudCIsICJjb250ZW50LmNvbnN0cnVjdG9yIik7CitzaG91bGRCZSgid2lu
ZG93LkhUTUxTaGFkb3dFbGVtZW50IiwgInNoYWRvdy5jb25zdHJ1Y3RvciIpOworCitkZWJ1Zygi
TW92aW5nIHRvIHRoZSBtYWluIGRvY3VtZW50LiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChjb250YWluZXIpOworc2hvdWxkQmUoIndpbmRvdy5IVE1MQ29udGVudEVsZW1lbnQiLCAiY29u
dGVudC5jb25zdHJ1Y3RvciIpOworc2hvdWxkQmUoIndpbmRvdy5IVE1MU2hhZG93RWxlbWVudCIs
ICJzaGFkb3cuY29uc3RydWN0b3IiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147211</attachid>
            <date>2012-06-12 18:58:55 -0700</date>
            <delta_ts>2012-06-13 01:06:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-88148-20120613105854.patch</filename>
            <type>text/plain</type>
            <size>75612</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg1NTkxZDc1OTM1ZTY1
YjFmNDE2MDUyMjdiNzZhZmE1ZTE4ZjUxNi4uZTVjNDgxMjZhZWQ1NGU0YmFkOGU3NTk1M2I5OTAy
ZTI4MGMwMGUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDExNSBAQAogMjAxMi0wNi0xMiAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAorICAgICAgICBSRUdSRVNTSU9OKHIx
MTgwOTgpOiA8Y29udGVudD4gZWxlbWVudCBkb2VzIG5vdCByZW5kZXIgZGlzdHJpYnV0ZWQgY2hp
bGRyZW4gd2hlbiBjbG9uZWQgZnJvbSBhbm90aGVyIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODE0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IERpbWl0cmkgR2xhemtvdi4KKworICAgICAgICBUaGUgc2hhZG93IERPTSBhdmFpbGFiaWxp
dHkgd2FzIGRlY2lkZWQgdGhyb3VnaCBGcmFtZUxvYWRlckNsaWVudC4KKyAgICAgICAgQnV0IHRo
ZXJlIGFyZSBkb2N1bWVudHMgd2hpY2ggZG9uJ3QgaGF2ZSBhbnkgYXNzb2NpYXRlZCBmcmFtZXMs
IGluCisgICAgICAgIHdoaWNoIGFueSBzaGFkb3cgRE9NIHJlbGF0ZWQgZWxlbWVudHMgY2Fubm90
IGJlIGNvbnN0cnVjdGVkLiAgVGhhdAorICAgICAgICByZXN1bHN0ZWQgdGhlIHJlZ3Jlc3Npb24u
CisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaW50cm9kdWNlcyBhIFBhZ2UtYmFzZWQgY2xpZW50IGNh
bGxlZAorICAgICAgICBDb250ZXh0RmVhdHVyZXNDbGllbnQgd2hpY2ggdGFrZXMgdGhlIHJvbGUg
ZnJvbSBGcmFtZUxvYWRlckNsaWVudAorICAgICAgICB0byBkZWNpZGUgdGhlIGZlYXR1cmUgYXZh
aWxhYmlsaXR5LCBhbmQgQ29udGV4dEZlYXR1cmVzIHdoaWNoIGlzIGEKKyAgICAgICAgcHJveHkg
b2YgQ29udGV4dEZlYXR1cmVzQ2xpZW50LiAgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyBpcyBpcwor
ICAgICAgICByZXBsYWNlZCB3aXRoIENvbnRleHRGZWF0dXJlcy4KKworICAgICAgICBFYWNoIENv
bnRleHRGZWF0dXJlcyBvYmplY3QgaXMgb3duZWQgYnkgYSBQYWdlLCBhbmQgaXMgYXR0YWNoZWQg
dG8KKyAgICAgICAgZWFjaCBEb2N1bWVudCBpbiB0aGUgcGFnZSBldmVuIGlmIHRoZSBwYWdlIGl0
c2VsZiBoYXMgbm8gcmVmZXJlbmN0CisgICAgICAgIHRvIEZyYW1lcyBvciBQYWdlcy4gV2l0aCBD
b250ZXh0RmVhdHVyZXMsIGVhY2ggRG9jdW1lbnQgY2FuIGRlY2lkZQorICAgICAgICB0aGUgZmVh
dHVyZSBhdmFpbGFiaWxpdHkgZXZlbiBpZiBpdCBjYW5ub3QgcmVhY2ggUGFnZSBvciBGcmFtZS4K
KworICAgICAgICBPbiBSZWZDb3VudGVkU3VwcGxlbWVudDogRG9jdW1lbnQgaW5zdGFuY2UgY2Fu
IGxpdmUgbG9uZ2VyIHRoYW4gYQorICAgICAgICBQYWdlIHdoZXJlIGl0IGlzIHNod29uLiBUaGlz
IG1lYW5zIHRoYXQgQ29udGV4dEZlYXR1cmVzIGluc3RhbmNlCisgICAgICAgIG5lZWRzIHRvIHN1
cnZpdmUgYWZ0ZXIgb3duZXIgUGFnZSBkZXN0cnVjdGlvbiBiZWNhdXNlIGl0J3MKKyAgICAgICAg
cmVmZXJlbmNlZCBmcm9tIHBvc3NpYmx5IHN1cnZpdmluZyBEb2N1bWVudHMuIFJlZkNvdW50ZWRT
dXBwbGVtZW50CisgICAgICAgIGlzIGludHJvZHVjZWQgdG8gY292ZXIgdGhpcyBzY2VuYXJpbzog
SXQgYWxsb3dzIHN1cHBsZW1lbnQgY2xhc3NlcworICAgICAgICB0byBsaXZlIGFmdGVyIFBhZ2Un
cyBkZXN0cnVjdGlvbi4KKworICAgICAgICBSZWZDb3VudGVkU3VwcGxlbWVudDo6aG9zdERlc3Ry
b3llZCgpIGlzIG5vdGlmaWVkIHdoZW4gdGhlIGhvc3RpbmcKKyAgICAgICAgcGFnZSBpcyBnb25l
LiBDb250ZXh0RmVhdHVyZXMgY2xlYXJzIGl0cyByZWZlcmVuY2UgdG8gdGhlIGNsaWVudAorICAg
ICAgICB1c2luZyB0aGlzIG5vdGlmaWNhdGlvbi4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9z
aGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
VGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
OgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6ZGV0ZXJtaW5l
U2NvcGUpOgorICAgICAgICAqIGRvbS9Db250ZXh0RmVhdHVyZXMuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzQ2xpZW50Ojpl
bXB0eSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OnN1cHBsZW1lbnROYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlczo6ZGVmYXVsdFN3aXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpwYWdlUG9wdXBFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OnByb3ZpZGVDb250ZXh0RmVhdHVyZXNUbyk6CisgICAgICAgIChXZWJDb3Jl
Ojpwcm92aWRlQ29udGV4dEZlYXR1cmVzVG9Eb2N1bWVudEZyb20pOgorICAgICAgICAqIGRvbS9D
b250ZXh0RmVhdHVyZXMuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENv
bnRleHRGZWF0dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OkNvbnRl
eHRGZWF0dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6Omhvc3REZXN0
cm95ZWQpOgorICAgICAgICAoQ29udGV4dEZlYXR1cmVzQ2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRleHRGZWF0dXJlc0NsaWVudDo6fkNvbnRleHRGZWF0dXJlc0NsaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXNDbGllbnQ6OmlzRW5hYmxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0RmVhdHVyZXM6OmlzRW5hYmxlZCk6CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNw
cDoKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVIVE1MRG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbnRleHRGZWF0dXJlcyk6
CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Q29udGV4dEZlYXR1
cmVzKToKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9z
aXRpb246OlBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpmaW5kUGFyZW50
KToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVT
Y29wZTo6Z2V0U2VsZWN0aW9uKToKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDoKKyAgICAg
ICAgKHByaW50Q29uc3RydWN0b3JJbnRlcmlvcik6CisgICAgICAgIChwcmludEZhY3RvcnlDcHBG
aWxlKToKKyAgICAgICAgKHByaW50V3JhcHBlckZ1bmN0aW9ucyk6CisgICAgICAgIChwcmludFdy
YXBwZXJGYWN0b3J5Q3BwRmlsZSk6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwV2l0aENvbnRleHQpOgorICAg
ICAgICAqIGh0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
U3R5bGVFbGVtZW50OjpyZWdpc3RlcldpdGhTY29waW5nTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MU3R5bGVFbGVtZW50Ojp1bnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGVudFRhZ05hbWUpOgorICAgICAgICAqIGluc3BlY3Rvci9ET01QYXRjaFN1cHBvcnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RE9NUGF0Y2hTdXBwb3J0OjpwYXRjaERvY3VtZW50KToKKyAg
ICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9S
ZWZDb3VudGVkU3VwcGxlbWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TdXBwbGVtZW50YWJsZS5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZWZDb3Vu
dGVkU3VwcGxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZWZDb3VudGVkU3VwcGxlbWVudDo6
aG9zdERlc3Ryb3llZCk6CisgICAgICAgIChXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
ZkNvdW50ZWRTdXBwbGVtZW50OjpXcmFwcGVyOjpXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlZkNvdW50ZWRTdXBwbGVtZW50OjpXcmFwcGVyOjp+V3JhcHBlcik6CisgICAgICAgIChXZWJD
b3JlOjpSZWZDb3VudGVkU3VwcGxlbWVudDo6V3JhcHBlcjo6d3JhcHBlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWZDb3VudGVkU3VwcGxlbWVudDo6cHJvdmlkZVRvKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlZkNvdW50ZWRTdXBwbGVtZW50Ojpmcm9tKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TdXBw
bGVtZW50YWJsZS5oOgorICAgICAgICAoV2ViQ29yZTo6U3VwcGxlbWVudDo6aXNSZWZDb3VudGVk
V3JhcHBlcik6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTCk6CisKKzIwMTItMDYtMTIgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKICAgICAgICAgU2hhZG93IFBzZXVkbyBJ
RCBzaG91bGQgYmUgYWJsZSB0byBuZXN0IHRvIHBvaW50IG5lc3RlZCBzaGFkb3cgRE9NLgogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIyMTgKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA3NmI3ZjIzZmEzNzNhZWE2NWQ5MDE3Y2RiMWJjZTVk
OTY1YzBlNTIzLi5mMTEyYmQxOTVhOGE2YjFkNWQxNmU2ZDU1NTA5ZTg4N2QxYWJlNzViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA2LTEyICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjEx
ODA5OCk6IDxjb250ZW50PiBlbGVtZW50IGRvZXMgbm90IHJlbmRlciBkaXN0cmlidXRlZCBjaGls
ZHJlbiB3aGVuIGNsb25lZCBmcm9tIGFub3RoZXIgZG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MTQ4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGltaXRyaSBHbGF6a292LgorCisgICAgICAgIC0gQWRkZWQgQ29udGV4dEZlYXR1cmVzQ2xp
ZW50SW1wbCB3aGljaCBpbXBsZW1lbnRzIFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlc0NsaWVudC4K
KyAgICAgICAgLSBSZXBsYWNlZCBQYWdlUG9wdXBGcmFtZUxvYWRlckNsaWVudCB3aXRoIFBhZ2VQ
b3B1cEZlYXR1cmVzQ2xpZW50LgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBw
dWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGVybWlzc2lvbkNsaWVudDo6YWxsb3dXZWJDb21wb25lbnRzKToKKyAgICAg
ICAgKiBzcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHA6IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwLgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6Q29udGV4dEZlYXR1cmVzQ2xpZW50
SW1wbDo6aXNFbmFibGVkKToKKyAgICAgICAgKiBzcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1w
bC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0
RW5hYmxlZEZlYXR1cmVzLmguCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQ29udGV4dEZl
YXR1cmVzQ2xpZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRGZWF0dXJlc0NsaWVu
dEltcGw6OkNvbnRleHRGZWF0dXJlc0NsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpDb250
ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjpzZXRQZXJtaXNzaW9uQ2xpZW50KToKKyAgICAgICAgKiBz
cmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJD
bGllbnRJbXBsLmg6CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudEltcGwpOgorICAgICAgICAq
IHNyYy9XZWJQYWdlUG9wdXBJbXBsLmNwcDoKKyAgICAgICAgKFBhZ2VQb3B1cEZlYXR1cmVzQ2xp
ZW50KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVBvcHVwRmVhdHVyZXNDbGllbnQ6OmlzRW5hYmxl
ZCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUG9wdXBJbXBs
Ojppbml0UGFnZSk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnNldFBlcm1pc3Npb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5o
OgorICAgICAgICAoV2ViS2l0KToKKwogMjAxMi0wNi0xMiAgSmFtZXMgUm9iaW5zb24gIDxqYW1l
c3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUG9ydCBDYW52YXMyRExheWVy
QnJpZGdlIG92ZXIgdG8gV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
aW5kZXggZTRjMDRjYzI0MDNmNTM3MGJjZDA5NTY2ZTIyOWM0NzhmN2JjZWQ3Yy4uNWJkNWIwMDVl
N2NiZTMyMTRhZGU0YzFmYjRjY2U1NDA2NjIzY2U5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTQ1OSw3ICs0NTksNiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvU2NyaXB0
Q29udHJvbGxlckJhc2UuY3BwCiAKICAgICBiaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxi
YWNrLmNwcAotICAgIGJpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAK
ICAgICBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCiAKICAgICBj
c3MvQ1NTQXNwZWN0UmF0aW9WYWx1ZS5jcHAKQEAgLTU1OSw2ICs1NTgsNyBAQCBTRVQoV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgZG9tL0NvbnRhaW5lck5vZGUuY3BwCiAgICAgZG9tL0NvbnRhaW5lck5v
ZGVBbGdvcml0aG1zLmNwcAogICAgIGRvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAK
KyAgICBkb20vQ29udGV4dEZlYXR1cmVzLmNwcAogICAgIGRvbS9DdXN0b21FdmVudC5jcHAKICAg
ICBkb20vRGF0YXNldERPTVN0cmluZ01hcC5jcHAKICAgICBkb20vRGVjb2RlZERhdGFEb2N1bWVu
dFBhcnNlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGE0YjIzMTY2NWI4
MjIwMTFmOGE2NGY3OTVkMDM0MjQ5ZDFkMzEzZDkuLmZmNzIxN2Y1NWYxN2I0MTBjNmI4NTIzODIz
MjJjZDBkZWZjZTY4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTMwNiw4
ICsxMzA2LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9BY3RpdmVET01DYWxsYmFjay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvQWN0aXZlRE9NQ2FsbGJhY2suaCBcCi0JU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
Z2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eS5oIFwKQEAgLTE3OTksNiArMTc5Nyw4IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
aCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmggXAorCVNv
dXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9k
b20vQ29udGV4dEZlYXR1cmVzLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Dcm9zc1RocmVhZFRh
c2suaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUV2ZW50LmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL0N1c3RvbUV2ZW50LmggXApAQCAtMzU4NSw2ICszNTg1LDcgQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QcmVyZW5kZXJIYW5kbGUuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1B1cmdlUHJpb3JpdHkuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUmVmQ291bnRlZFN1cHBsZW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVm
ZXJyZXJQb2xpY3kuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBiY2Qw
MGMxYTAxYTQ3YTMzOTcyYjE0ZDFkOWQwNjQ1OWVhZDAxODYzLi45ODg0MzIzNjA2MzdiNTM2ZTcw
OGQzZjJlZDEwOGY4NmQ0YmFhMzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTcyLDcgKzcyLDYgQEAgU09V
UkNFUyArPSBcCiAgICAgYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVSb3cuY3BwIFwK
ICAgICBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIFwKICAgICBiaW5kaW5ncy9nZW5l
cmljL0FjdGl2ZURPTUNhbGxiYWNrLmNwcCBcCi0gICAgYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0
RW5hYmxlZEZlYXR1cmVzLmNwcCBcCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmNwcAogCiB2OCB7CkBAIC01MjksNiArNTI4LDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgZG9tL0NvbnRhaW5lck5vZGUuY3BwIFwKICAgICBkb20vQ29udGFpbmVyTm9kZUFsZ29yaXRo
bXMuY3BwIFwKICAgICBkb20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwIFwKKyAgICBk
b20vQ29udGV4dEZlYXR1cmVzLmNwcCBcCiAgICAgZG9tL0N1c3RvbUV2ZW50LmNwcCBcCiAgICAg
ZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIFwKICAgICBkb20vRGV2aWNlTW90aW9u
Q29udHJvbGxlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDdhMjFjYjViMjVlM2NlMjIyYjBk
NzRkYWM3MjJhY2YwNWZlNjBiMmQuLjA3ZTAzZmM5MTgwOTkzOWVkOGNiZDRhMWNiNzYyMGJmZjcw
YTNlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMwOSw2ICszMDksNyBAQAogICAgICAgICAgICAg
J3BsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1B1cmdl
UHJpb3JpdHkuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL1JlZkNvdW50ZWRTdXBwbGVtZW50LmgnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL1Njcm9sbFR5cGVzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1Njcm9sbFZpZXcu
aCcsCkBAIC02MTYsNiArNjE3LDggQEAKICAgICAgICAgICAgICdkb20vQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2RvbS9Db250YWluZXJOb2RlLmgnLAogICAgICAg
ICAgICAgJ2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oJywKKyAgICAgICAgICAgICdk
b20vQ29udGV4dEZlYXR1cmVzLmgnLAorICAgICAgICAgICAgJ2RvbS9Db250ZXh0RmVhdHVyZXMu
Y3BwJywKICAgICAgICAgICAgICdkb20vRE9NSW1wbGVtZW50YXRpb24uaCcsCiAgICAgICAgICAg
ICAnZG9tL0RPTVRpbWVTdGFtcC5oJywKICAgICAgICAgICAgICdkb20vRGV2aWNlT3JpZW50YXRp
b24uaCcsCkBAIC0xODUzLDggKzE4NTYsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVy
aWMvQmluZGluZ1NlY3VyaXR5LmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmlu
ZGluZ1NlY3VyaXR5QmFzZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmlu
ZGluZ1NlY3VyaXR5QmFzZS5oJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0NvbnRl
eHRFbmFibGVkRmVhdHVyZXMuY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL0Nv
bnRleHRFbmFibGVkRmVhdHVyZXMuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvZ2VuZXJpYy9H
ZW5lcmljQmluZGluZy5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCmluZGV4IDkxNzg5ODAwNTVlNzdkZDQ2NGY2NzhiNzYwNWQ3OTI1NmU2ZWRm
ODguLmIwOWRiZWFjODU5NDlmM2E1MDg1ZWMyNTFiZWY4YjYzZTY0NjFhODggMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02MzIxMCwxNCArNjMy
MTAsNiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0
aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCIKLQkJCQkJ
PgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdz
XGdlbmVyaWNcQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgot
CQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xHZW5lcmlj
QmluZGluZy5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBjNzAzNzM0NmY4ZWM2MzRjNWM5
ZjdmYTBlMjU5MWMzZTAyZTdiZjEuLjE0ZDA0NGRlMmFhZGI0NGIxZDEzZGQ5Y2NkMGFmYmU5MjIz
NTQ5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTM3NTMsMTIgKzM3NTMsMTEgQEAKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2
RUNFIC8qIERyYWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBC
MkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyog
RHJhZ0NvbnRyb2xsZXJNYWMubW0gKi87IH07CiAJCUE3MjNGNzdCMTQ4NENBNEMwMDhDNkRCRSAv
KiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTcyM0Y3N0ExNDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0
TWFjcm9zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJQTcyRUEzQkIxNTg1Q0Y1NTAwNEZBQTI2IC8qIFJlZkNvdW50ZWRTdXBwbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzJFQTNCQTE1ODVD
RjU1MDA0RkFBMjYgLyogUmVmQ291bnRlZFN1cHBsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzNGOTVGRTEyQzk3QkZFMDAzMUFBRjkg
LyogUm91bmRlZFJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmNwcCAqLzsg
fTsKIAkJQTczRjk1RkYxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzNGOTVGRDEyQzk3QkZFMDAz
MUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBNzQwQjVBNTE0QzkzNUFCMDBBNzdGQTQgLyogSlNJbnRlcm5hbFNl
dHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
N0I0RUE3OTE0QzkzNDg0MDBDOEY1QkYgLyogSlNJbnRlcm5hbFNldHRpbmdzLmggKi87IH07CiAJ
CUE3NDBCNUE3MTRDOTM1QUYwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNEVBNzgxNEM5MzQ4
NDAwQzhGNUJGIC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgKi87IH07Ci0JCUE3NDdBMDdGMTU2
QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NDdBMDdEMTU2QjI4NjkwMDI0M0VF
RCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCAqLzsgfTsKLQkJQTc0N0EwODAxNTZCMjg2
OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NDdBMDdFMTU2QjI4NjkwMDI0M0VFRCAvKiBD
b250ZXh0RW5hYmxlZEZlYXR1cmVzLmggKi87IH07CiAJCUE3NEJCNzZCMTNCREE4NjMwMEZGN0JG
MCAvKiBFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NEJCNzZBMTNCREE4NjMwMEZGN0JGMCAvKiBFeGNlcHRp
b25Db2RlUGxhY2Vob2xkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBNzVFNDk3NjEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzVFNDk3NDEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc1RTQ5NzcxMDc1
MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzVFNDk3NTEwNzUyQUNCMDBDOUI4OTYg
LyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLzsgfTsKQEAgLTM4MTAsNiArMzgwOSw4IEBA
CiAJCUE3RDIwRjYyMTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0QyMEY2MDEwN0Y0
MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uY3BwICovOyB9OwogCQlBN0QyMEY2MzEw
N0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDIwRjYxMTA3RjQwNjkwMEE4MDM5MiAvKiBK
U1dlYkdMQWN0aXZlSW5mby5oICovOyB9OwogCQlBN0QyMEY2RDEwN0Y0MzhCMDBBODAzOTIgLyog
V2ViR0xBY3RpdmVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0QyMEY2QjEwN0Y0MzhCMDBBODAzOTIgLyogV2ViR0xBY3RpdmVJbmZvLmggKi87
IH07CisJCUE3RDNDQTEwMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZXMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEM0NBMEUxNTdE
RjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0dXJlcy5jcHAgKi87IH07CisJCUE3RDNDQTExMTU3
REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDNDQTBGMTU3REY4RTkwMDg2MEE5NyAvKiBDb250
ZXh0RmVhdHVyZXMuaCAqLzsgfTsKIAkJQTdENkIzNDkwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtl
clNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTdENkIzNDcwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5oICov
OyB9OwogCQlBN0Q2QjM0QTBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDZCMzQ4
MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuY3BwICovOyB9OwogCQlBN0RC
RjhERDEyNzY5MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3REJGOERCMTI3NjkxOUMwMDZC
NjAwOCAvKiBUZXh0Q2hlY2tpbmdIZWxwZXIuY3BwICovOyB9OwpAQCAtMTA4NTMsMTAgKzEwODU0
LDkgQEAKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MUE3MEM5MTFBRkIwMjAwMDk4
OUQ2RCAvKiBIVE1MTWV0ZXJFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1M
TWV0ZXJFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcyM0Y3N0Ex
NDg0Q0E0QzAwOEM2REJFIC8qIFBsYXRmb3JtRXhwb3J0TWFjcm9zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRXhwb3J0TWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE3MkVBM0JBMTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3Vw
cGxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWZDb3VudGVkU3Vw
cGxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGQzEyQzk3QkZF
MDAzMUFBRjkgLyogUm91bmRlZFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUm91bmRlZFJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NzNGOTVGRDEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUm91bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJQTc0N0EwN0QxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ29udGV4dEVuYWJsZWRG
ZWF0dXJlcy5jcHA7IHBhdGggPSBnZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNzQ3QTA3RTE1NkIyODY5MDAyNDNFRUQgLyog
Q29udGV4dEVuYWJsZWRGZWF0dXJlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmg7IHBhdGggPSBnZW5lcmljL0NvbnRleHRFbmFibGVk
RmVhdHVyZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc0QkI3NkExM0JEQTg2
MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5NzQxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJpYWxpemVk
U2NyaXB0VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5NzUxMDc1
MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA5MTQsNiArMTA5MTQsOCBAQAogCQlBN0QyMEY2MDEw
N0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTEFjdGl2ZUluZm8uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBN0QyMEY2MTEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2
ZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTEFjdGl2ZUlu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdEMjBGNkIxMDdGNDM4QjAwQTgw
MzkyIC8qIFdlYkdMQWN0aXZlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJHTEFjdGl2ZUluZm8uaDsgcGF0aCA9IGNhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdEM0NBMEUxNTdERjhFOTAwODYwQTk3IC8qIENv
bnRleHRGZWF0dXJlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
b250ZXh0RmVhdHVyZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0QzQ0Ew
RjE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4dEZlYXR1cmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENvbnRleHRGZWF0dXJlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBN0Q2QjM0NzBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdvcmtlclNjcmlwdExvYWRlci5oOyBw
YXRoID0gd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTdENkIzNDgwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXb3JrZXJTY3JpcHRMb2Fk
ZXIuY3BwOyBwYXRoID0gd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBN0RCNDE4MTE0Q0UxRjBBMDBBMkUzMTYgLyogU2hhZG93Um9v
dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2hhZG93Um9vdC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xOTc2Myw4ICsxOTc2NSw2IEBACiAJCQkJQTYyMkE4RjUxMjJD
NDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eS5oICovLAogCQkJCUE2MjJBOEY2MTIyQzQ0
QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLywKIAkJCQlBNjIyQThGNzEy
MkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5oICovLAotCQkJCUE3NDdBMDdE
MTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCAqLywKLQkJCQlB
NzQ3QTA3RTE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oICovLAog
CQkJCUE2MjJBOEY5MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oICovLAogCQkJ
KTsKIAkJCW5hbWUgPSBnZW5lcmljOwpAQCAtMjA0ODAsNiArMjA0ODAsNyBAQAogCQkJCUJDM0JF
MTJBMEU5ODA5MkYwMDgzNTU4OCAvKiBQb3B1cE1lbnVTdHlsZS5oICovLAogCQkJCUU0RDY4Nzc4
MEVEN0FFNEYwMDZFQTk3OCAvKiBQdXJnZWFibGVCdWZmZXIuaCAqLywKIAkJCQk3RTMzQ0QwMDEy
N0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oICovLAorCQkJCUE3MkVBM0JBMTU4NUNG
NTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oICovLAogCQkJCTk4MzFBRTQ5MTU0
MjI1QTIwMEZFMjY0NCAvKiBSZWZlcnJlclBvbGljeS5oICovLAogCQkJCUJDMEIzNTg1MTRDNEY5
ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCAqLywKIAkJCQlCQzBCMzU4NjE0QzRGOTgzMDA1NUUy
MkEgLyogUnVuTG9vcC5oICovLApAQCAtMjEyMDEsNiArMjEyMDIsOCBAQAogCQkJCUUxQTE0NzA3
MTExMDJCMTUwMEVFQzBGMyAvKiBDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oICovLAogCQkJCTk3
NjI3QjhCMTRGQjNDRUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAg
Ki8sCiAJCQkJOTc2MjdCOEMxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyLmggKi8sCisJCQkJQTdEM0NBMEUxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0
dXJlcy5jcHAgKi8sCisJCQkJQTdEM0NBMEYxNTdERjhFOTAwODYwQTk3IC8qIENvbnRleHRGZWF0
dXJlcy5oICovLAogCQkJCTJFM0ZBQTA4MTFBMzZCRjEwMDU3NjYyNCAvKiBDcm9zc1RocmVhZFRh
c2suaCAqLywKIAkJCQk2MkNEMzI1NjExNTdFNTdDMDA2M0IwQTcgLyogQ3VzdG9tRXZlbnQuY3Bw
ICovLAogCQkJCTYyQ0QzMjU3MTE1N0U1N0MwMDYzQjBBNyAvKiBDdXN0b21FdmVudC5oICovLApA
QCAtMjIwNTQsNyArMjIwNTcsNyBAQAogCQkJCTQxRDAxNUNBMEY0QjVDNzEwMDRBNjYyRiAvKiBD
b250ZW50VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcwRDZFREIxMzg0NTQ1NTAwNDQxMDNF
IC8qIENvbnRlbnRUeXBlUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzYyN0I4RTE0RkIz
Q0VFMDAyQ0RDQTEgLyogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICov
LAotCQkJCUE3NDdBMDgwMTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVz
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBN0QzQ0ExMTE1N0RGOEU5MDA4NjBBOTcgLyogQ29udGV4
dEZlYXR1cmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0I2QTBFNjBCMEJDQTVDMDBGNTAyN0Eg
LyogQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY1MEIwQzJFREEwMDVB
MkIxRCAvKiBDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDY1QUQ0Rjcw
QjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNDE2Myw2ICsyNDE2Niw3IEBACiAJCQkJRkQzMTYwM0MxMkIwMjY3NjAwQzFBMzU5IC8q
IFJlYWx0aW1lQW5hbHlzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDNFMTJCMDI2NzYw
MEMxQTM1OSAvKiBSZWFsdGltZUFuYWx5c2VyTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0
MzY4RTgwQzIyNkUzMjAwNUVGQjVGIC8qIFJlY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3MkVB
M0JCMTU4NUNGNTUwMDRGQUEyNiAvKiBSZWZDb3VudGVkU3VwcGxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTgzMUFFNEExNTQyMjVDOTAwRkUyNjQ0IC8qIFJlZmVycmVyUG9saWN5LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0FCNDE4MjEzRTM1NkU4MDBEOEFBRjMgLyogUmVnaW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NTAzMUI0QzBBNDRFRkM3MDBGOTkyRTAgLyogUmVnaXN0ZXJlZEV2
ZW50TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjU1NzUsNyArMjU1NzksNyBAQAogCQkJ
CTQxRDAxNUNCMEY0QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzNzBENkVEQTEzODQ1NDU1MDA0NDEwM0UgLyogQ29udGVudFR5cGVQYXJzZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2MjdCOEQxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHRE
ZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE3NDdBMDdGMTU2QjI4
NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUE3RDNDQTEwMTU3REY4RTkwMDg2MEE5NyAvKiBDb250ZXh0RmVhdHVyZXMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDY1QUQ0RjYwQjBDMkVEQTAwNUEyQjFEIC8qIENvbnRleHRNZW51Q29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNjAyN0NCMzBCMUNDMDNEMDA4ODRCMkQg
LyogQ29udGV4dE1lbnVJdGVtTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNCNkEwRUEwQjBC
Q0E4NDAwRjUwMjdBIC8qIENvbnRleHRNZW51TWFjLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVy
ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZl
YXR1cmVzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTI2MjJiMzczZWIyMTc4
NWJjYzFjMDc4YmJlYTIyOGQwM2JjMWNiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRF
bmFibGVkRmVhdHVyZXMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzYgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0
cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0g
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCi0KLSNpbmNs
dWRlICJET01XaW5kb3cuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkZyYW1l
LmgiCi0jaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVu
dC5oIgotI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi0jaWYgRU5BQkxFKFNIQURPV19ET00pCi1ib29sIENvbnRleHRFbmFibGVkRmVh
dHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoRE9NV2luZG93KiB3aW5kb3cpCi17Ci0gICAgaWYgKCF3
aW5kb3cpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gd2lu
ZG93LT5mcmFtZSgpKQotICAgICAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+
YWxsb3dTaGFkb3dET00oUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCgp
KTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShTVFlMRV9TQ09Q
RUQpCi1ib29sIENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChEb2N1
bWVudCogZG9jdW1lbnQpCi17Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKSkKLSAgICAgICAg
cmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmFsbG93U3R5bGVTY29wZWQoUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKCkpOwotICAgIHJldHVybiBmYWxz
ZTsKLX0KLSNlbmRpZiAgIAotCi0jaWYgRU5BQkxFKFBBR0VfUE9QVVApCi1ib29sIENvbnRleHRF
bmFibGVkRmVhdHVyZXM6OnBhZ2VQb3B1cEVuYWJsZWQoRE9NV2luZG93KiB3aW5kb3cpCi17Ci0g
ICAgaWYgKCF3aW5kb3cpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoRnJhbWUqIGZy
YW1lID0gd2luZG93LT5mcmFtZSgpKQotICAgICAgICByZXR1cm4gZnJhbWUtPmxvYWRlcigpLT5j
bGllbnQoKS0+YWxsb3dQYWdlUG9wdXAoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0jZW5kaWYK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZWE3ZmE0Yjc1ODVlYTc3YTcxOWJlM2I0ZDMzNDQ4YjI4MmY0OTk3Yi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIENvbnRleHRFbmFibGVkRmVhdHVyZXNfaAotI2Rl
ZmluZSBDb250ZXh0RW5hYmxlZEZlYXR1cmVzX2gKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBET01XaW5kb3c7Ci1jbGFzcyBEb2N1bWVudDsKLQotLy8gQSBjbGFzcyB0aGF0IHN0b3Jl
cyBzdGF0aWMgZW5hYmxlcnMgZm9yIGFsbCBleHBlcmltZW50YWwgZmVhdHVyZXMuIE5vdGUgdGhh
dAotLy8gdGhlIG1ldGhvZCBuYW1lcyBtdXN0IGxpbmUgdXAgd2l0aCB0aGUgSmF2YVNjcmlwdCBt
ZXRob2QgdGhleSBlbmFibGUgZm9yIGNvZGUKLS8vIGdlbmVyYXRpb24gdG8gd29yayBwcm9wZXJs
eS4KLQotY2xhc3MgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyB7Ci1wdWJsaWM6Ci0jaWYgRU5BQkxF
KFNIQURPV19ET00pCi0gICAgc3RhdGljIGJvb2wgc2hhZG93RE9NRW5hYmxlZChET01XaW5kb3cq
KTsKLSNlbmRpZgotI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCi0gICAgc3RhdGljIGJvb2wgc3R5
bGVTY29wZWRFbmFibGVkKERvY3VtZW50Kik7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoUEFHRV9QT1BV
UCkKLSAgICBzdGF0aWMgYm9vbCBwYWdlUG9wdXBFbmFibGVkKERPTVdpbmRvdyopOwotI2VuZGlm
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBDb250ZXh0RW5hYmxl
ZEZlYXR1cmVzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0KaW5kZXggNjFiOTdiZTNkOTZlM2E5YjkwZWM0YmM0YmVjNTkwZWI3NWU3
YWVjYS4uMDA4MjRhYmMyMjQzNDIxODhiMDRlZGNjYTEzMjU0ZjVmYjAwYjc0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAg
LTI0MTcsNyArMjQxNyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgcHVzaChA
aW1wbEZpeGVkSGVhZGVyLCBHZW5lcmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRlcigkZGF0
YU5vZGUpKTsKIAogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgiKTsKLSAgICBBZGRUb0ltcGxJbmNsdWRlcygiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIik7
CisgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkNvbnRleHRGZWF0dXJlcy5oIik7CiAgICAgQWRkVG9J
bXBsSW5jbHVkZXMoIlY4UHJveHkuaCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOEJpbmRp
bmcuaCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOEJpbmRpbmdTdGF0ZS5oIik7CkBAIC0y
ODY2LDcgKzI4NjYsNyBAQCBFTkQKICAgICAgICAgICAgIG15ICRlbmFibGVGdW5jdGlvbiA9IEdl
dENvbnRleHRFbmFibGVGdW5jdGlvbigkcnVudGltZUF0dHItPnNpZ25hdHVyZSk7CiAgICAgICAg
ICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25k
aXRpb25hbFN0cmluZygkcnVudGltZUF0dHItPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIlxuI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0
aW9uYWxTdHJpbmc7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoQ29u
dGV4dEVuYWJsZWRGZWF0dXJlczo6JHtlbmFibGVGdW5jdGlvbn0oaW1wbCkpIHtcbiIpOworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKENvbnRleHRGZWF0dXJlczo6JHtl
bmFibGVGdW5jdGlvbn0oaW1wbC0+ZG9jdW1lbnQoKSkpIHtcbiIpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHN0YXRpYyBjb25zdCBCYXRjaGVkQXR0cmlidXRlIGF0
dHJEYXRhID1cXFxuIik7CiAgICAgICAgICAgICBHZW5lcmF0ZVNpbmdsZUJhdGNoZWRBdHRyaWJ1
dGUoJGludGVyZmFjZU5hbWUsICRydW50aW1lQXR0ciwgIjsiLCAiICAgICIpOwogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcAppbmRleCBjMmRmOWY2NjgyNWJmYThiOGZhNjUyM2ZmM2NhOGY3ODU5ZjgwNjUxLi4xZTAy
OGRmMDI1OTYyMmIxN2ZjMzNhZjM5ZWNkZGYyN2M4YTU3NDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCkBAIC01Miw3ICs1Miw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2Uu
aCIKICNpbmNsdWRlICJDYWxjdWxhdGlvblZhbHVlLmgiCiAjaW5jbHVkZSAiQ29udGVudERhdGEu
aCIKLSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4
dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiQ291bnRlci5oIgogI2luY2x1ZGUgIkNvdW50ZXJDb250
ZW50LmgiCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgpAQCAtNDkyLDcgKzQ5Miw3IEBAIGNvbnN0
IENvbnRhaW5lck5vZGUqIFN0eWxlUmVzb2x2ZXI6OmRldGVybWluZVNjb3BlKGNvbnN0IENTU1N0
eWxlU2hlZXQqIHNoZWV0KQogewogICAgIEFTU0VSVChzaGVldCk7CiAKLSAgICBpZiAoIUNvbnRl
eHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVkRW5hYmxlZChkb2N1bWVudCgpKSkKKyAgICBp
ZiAoIUNvbnRleHRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50KCkpKQogICAg
ICAgICByZXR1cm4gMDsKIAogICAgIE5vZGUqIG93bmVyTm9kZSA9IHNoZWV0LT5vd25lck5vZGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODg3ZGI0
Y2IyNWRhN2ZlYTAwZjQ2Y2VlZTA3M2U0MjQ5MmEyNWY3OQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuY3BwCkBAIC0wLDAgKzEsMTAzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgorCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NvbnRleHRGZWF0dXJl
c0NsaWVudCogQ29udGV4dEZlYXR1cmVzQ2xpZW50OjplbXB0eSgpCit7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChDb250ZXh0RmVhdHVyZXNDbGllbnQsIGVtcHR5LCAoKSk7CisgICAgcmV0dXJu
ICZlbXB0eTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBDb250ZXh0RmVhdHVyZXM6OnN1cHBs
ZW1lbnROYW1lKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFt
ZSwgKCJDb250ZXh0RmVhdHVyZXMiKSk7CisgICAgcmV0dXJuIG5hbWU7Cit9CisKK0NvbnRleHRG
ZWF0dXJlcyogQ29udGV4dEZlYXR1cmVzOjpkZWZhdWx0U3dpdGNoKCkKK3sKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKFJlZlB0cjxDb250ZXh0RmVhdHVyZXM+LCBpbnN0YW5jZSwgKENvbnRleHRG
ZWF0dXJlczo6Y3JlYXRlKENvbnRleHRGZWF0dXJlc0NsaWVudDo6ZW1wdHkoKSkpKTsKKyAgICBy
ZXR1cm4gaW5zdGFuY2UuZ2V0KCk7Cit9CisKK2Jvb2wgQ29udGV4dEZlYXR1cmVzOjpzaGFkb3dE
T01FbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyNpZiBFTkFCTEUoU0hBRE9XX0RPTSkK
KyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhZG93RE9NRW5hYmxlZCgpOworICAgIHJldHVybiBkb2N1bWVudC0+Y29udGV4dEZlYXR1
cmVzKCktPmlzRW5hYmxlZChkb2N1bWVudCwgU2hhZG93RE9NLCBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFkb3dET01FbmFibGVkKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1l
bnQpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCitib29sIENvbnRleHRGZWF0dXJl
czo6c3R5bGVTY29wZWRFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyNpZiBFTkFCTEUo
U1RZTEVfU0NPUEVEKQorICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoKTsKKyAgICByZXR1cm4gZG9jdW1l
bnQtPmNvbnRleHRGZWF0dXJlcygpLT5pc0VuYWJsZWQoZG9jdW1lbnQsIFN0eWxlU2NvcGVkLCBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoKSk7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShkb2N1bWVudCk7CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisK
K2Jvb2wgQ29udGV4dEZlYXR1cmVzOjpwYWdlUG9wdXBFbmFibGVkKERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGRvY3VtZW50LT5jb250ZXh0RmVhdHVyZXMoKS0+
aXNFbmFibGVkKGRvY3VtZW50LCBQYWdlUG9wdXAsIGZhbHNlKTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKGRvY3VtZW50KTsKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwordm9pZCBw
cm92aWRlQ29udGV4dEZlYXR1cmVzVG8oUGFnZSogcGFnZSwgQ29udGV4dEZlYXR1cmVzQ2xpZW50
KiBjbGllbnQpCit7CisgICAgUmVmQ291bnRlZFN1cHBsZW1lbnQ8UGFnZSwgQ29udGV4dEZlYXR1
cmVzPjo6cHJvdmlkZVRvKHBhZ2UsIENvbnRleHRGZWF0dXJlczo6c3VwcGxlbWVudE5hbWUoKSwg
Q29udGV4dEZlYXR1cmVzOjpjcmVhdGUoY2xpZW50KSk7Cit9CisKK3ZvaWQgcHJvdmlkZUNvbnRl
eHRGZWF0dXJlc1RvRG9jdW1lbnRGcm9tKERvY3VtZW50KiBkb2N1bWVudCwgUGFnZSogcGFnZSkK
K3sKKyAgICBDb250ZXh0RmVhdHVyZXMqIHByb3ZpZGVkID0gc3RhdGljX2Nhc3Q8Q29udGV4dEZl
YXR1cmVzKj4oUmVmQ291bnRlZFN1cHBsZW1lbnQ8UGFnZSwgQ29udGV4dEZlYXR1cmVzPjo6ZnJv
bShwYWdlLCBDb250ZXh0RmVhdHVyZXM6OnN1cHBsZW1lbnROYW1lKCkpKTsKKyAgICBpZiAoIXBy
b3ZpZGVkKQorICAgICAgICByZXR1cm47CisgICAgZG9jdW1lbnQtPnNldENvbnRleHRGZWF0dXJl
cyhwcm92aWRlZCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
ZXh0RmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lZjY2MjIwN2U3ZjZiYjJiMGVhODc2MTQ4ZjQxMjkxZDI2ZDIxNjIxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oCkBAIC0wLDAg
KzEsOTkgQEAKKworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgQ29udGV4dEZlYXR1cmVzX2gKKyNkZWZpbmUgQ29udGV4dEZl
YXR1cmVzX2gKKworI2luY2x1ZGUgIlJlZkNvdW50ZWRTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDb250ZXh0
RmVhdHVyZXNDbGllbnQ7CitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CisKK2NsYXNzIENv
bnRleHRGZWF0dXJlcyA6IHB1YmxpYyBSZWZDb3VudGVkU3VwcGxlbWVudDxQYWdlLCBDb250ZXh0
RmVhdHVyZXM+IHsKK3B1YmxpYzoKKyAgICBlbnVtIEZlYXR1cmVUeXBlIHsKKyAgICAgICAgU2hh
ZG93RE9NLAorICAgICAgICBTdHlsZVNjb3BlZCwKKyAgICAgICAgUGFnZVBvcHVwCisgICAgfTsK
KworICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7CisgICAg
c3RhdGljIENvbnRleHRGZWF0dXJlcyogZGVmYXVsdFN3aXRjaCgpOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENvbnRleHRGZWF0dXJlcz4gY3JlYXRlKENvbnRleHRGZWF0dXJlc0NsaWVudCopOwor
CisgICAgc3RhdGljIGJvb2wgc2hhZG93RE9NRW5hYmxlZChEb2N1bWVudCopOworICAgIHN0YXRp
YyBib29sIHN0eWxlU2NvcGVkRW5hYmxlZChEb2N1bWVudCopOworICAgIHN0YXRpYyBib29sIHBh
Z2VQb3B1cEVuYWJsZWQoRG9jdW1lbnQqKTsKKworICAgIGJvb2wgaXNFbmFibGVkKERvY3VtZW50
KiwgRmVhdHVyZVR5cGUsIGJvb2wpIGNvbnN0OworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IENv
bnRleHRGZWF0dXJlcyhDb250ZXh0RmVhdHVyZXNDbGllbnQqIGNsaWVudCkKKyAgICAgICAgOiBt
X2NsaWVudChjbGllbnQpCisgICAgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgaG9zdERlc3Ryb3ll
ZCgpIE9WRVJSSURFOworCisgICAgQ29udGV4dEZlYXR1cmVzQ2xpZW50KiBtX2NsaWVudDsKK307
CisKK2lubGluZSB2b2lkIENvbnRleHRGZWF0dXJlczo6aG9zdERlc3Ryb3llZCgpCit7CisgICAg
bV9jbGllbnQgPSAwOworfQorCisKK2NsYXNzIENvbnRleHRGZWF0dXJlc0NsaWVudCB7CitwdWJs
aWM6CisgICAgc3RhdGljIENvbnRleHRGZWF0dXJlc0NsaWVudCogZW1wdHkoKTsKKworICAgIHZp
cnR1YWwgfkNvbnRleHRGZWF0dXJlc0NsaWVudCgpIHsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0Vu
YWJsZWQoRG9jdW1lbnQqLCBDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlLCBib29sIGRlZmF1
bHRWYWx1ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9Cit9OworCit2b2lkIHByb3ZpZGVDb250
ZXh0RmVhdHVyZXNUbyhQYWdlKiwgQ29udGV4dEZlYXR1cmVzQ2xpZW50Kik7Cit2b2lkIHByb3Zp
ZGVDb250ZXh0RmVhdHVyZXNUb0RvY3VtZW50RnJvbShEb2N1bWVudCosIFBhZ2UqKTsKKworaW5s
aW5lIFBhc3NSZWZQdHI8Q29udGV4dEZlYXR1cmVzPiBDb250ZXh0RmVhdHVyZXM6OmNyZWF0ZShD
b250ZXh0RmVhdHVyZXNDbGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IENvbnRleHRGZWF0dXJlcyhjbGllbnQpKTsKK30KKworaW5saW5lIGJvb2wgQ29udGV4dEZlYXR1
cmVzOjppc0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBGZWF0dXJlVHlwZSB0eXBlLCBib29s
IGRlZmF1bHRWYWx1ZSkgY29uc3QKK3sKKyAgICBpZiAoIW1fY2xpZW50KQorICAgICAgICByZXR1
cm4gZGVmYXVsdFZhbHVlOworICAgIHJldHVybiBtX2NsaWVudC0+aXNFbmFibGVkKGRvY3VtZW50
LCB0eXBlLCBkZWZhdWx0VmFsdWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBDb250ZXh0RmVhdHVyZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKaW5k
ZXggMzIwYWVmOTgyMDlhNWViODRhN2U3NTI4ZmNiM2I1NjQ5Njg1ODc3OC4uMTQ4ZmMzZWM5ODJj
OThmNmZiZDI0OWJjYmJjZTUxOTNiYzNiNzlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUu
Y3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5jcHAiCiAjaW5j
bHVkZSAiQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwIgogI2luY2x1ZGUgIkNvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyLmNwcCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuY3BwIgogI2lu
Y2x1ZGUgIkN1c3RvbUV2ZW50LmNwcCIKICNpbmNsdWRlICJET01Db3JlRXhjZXB0aW9uLmNwcCIK
ICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmNwcAppbmRleCA0ZDNkODUzM2FkMGEyZDNkOTc0Y2VjNjk2NGYyMjcyODhi
NmU2MWM3Li4zZmFmZTE5M2M4ZjYxY2NjOGZkZjQ4YTc5YTQyYjI3MWZiYmE1MzE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKIAog
I2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgorI2lu
Y2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC0yOTUsNiAr
Mjk2LDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURv
Y3VtZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVIKICAgICAgICAgZG9jID0gRG9jdW1lbnQ6
OmNyZWF0ZSgwLCBLVVJMKCkpOwogCiAgICAgZG9jLT5zZXRTZWN1cml0eU9yaWdpbihtX2RvY3Vt
ZW50LT5zZWN1cml0eU9yaWdpbigpKTsKKyAgICBkb2MtPnNldENvbnRleHRGZWF0dXJlcyhtX2Rv
Y3VtZW50LT5jb250ZXh0RmVhdHVyZXMoKSk7CiAKICAgICBSZWZQdHI8Tm9kZT4gZG9jdW1lbnRF
bGVtZW50OwogICAgIGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpIHsKQEAgLTM3Miw2ICsz
NzQsNyBAQCBQYXNzUmVmUHRyPEhUTUxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0
ZUhUTUxEb2N1bWVudChjb25zdCBTdHJpbmcmIHRpdAogICAgIGQtPndyaXRlKCI8IWRvY3R5cGUg
aHRtbD48aHRtbD48Ym9keT48L2JvZHk+PC9odG1sPiIpOwogICAgIGQtPnNldFRpdGxlKHRpdGxl
KTsKICAgICBkLT5zZXRTZWN1cml0eU9yaWdpbihtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigp
KTsKKyAgICBkLT5zZXRDb250ZXh0RmVhdHVyZXMobV9kb2N1bWVudC0+Y29udGV4dEZlYXR1cmVz
KCkpOwogICAgIHJldHVybiBkLnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggMzc4MTM2ODI3NDAzMGQ1NDgwZTgyNGI1Mjg4NGUxYTMxNmMwNDMxNS4uMWM4MjUyMTNk
OGZhZmIwZjI3NjY2YTBjNDU2ZjExMDk3ZDQ4ZGE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiQ29tbWVudC5oIgogI2luY2x1ZGUgIkNvbnNv
bGUuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKKyNpbmNsdWRlICJDb250
ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJDb29raWVKYXIuaCIKICNpbmNsdWRlICJET01JbXBs
ZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkRPTVNlbGVjdGlvbi5oIgpAQCAtNDI4LDYgKzQyOSw3
IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9v
bCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICA6IENvbnRhaW5lck5vZGUoMCwgQ3JlYXRlRG9j
dW1lbnQpCiAgICAgLCBUcmVlU2NvcGUodGhpcykKICAgICAsIG1fZ3VhcmRSZWZDb3VudCgwKQor
ICAgICwgbV9jb250ZXh0RmVhdHVyZXMoQ29udGV4dEZlYXR1cmVzOjpkZWZhdWx0U3dpdGNoKCkp
CiAgICAgLCBtX2NvbXBhdGliaWxpdHlNb2RlKE5vUXVpcmtzTW9kZSkKICAgICAsIG1fY29tcGF0
aWJpbGl0eU1vZGVMb2NrZWQoZmFsc2UpCiAgICAgLCBtX2RvbVRyZWVWZXJzaW9uKCsrc19nbG9i
YWxUcmVlVmVyc2lvbikKQEAgLTUwNiw2ICs1MDgsOCBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAg
ICAgbV9pZ25vcmVBdXRvZm9jdXMgPSBmYWxzZTsKIAogICAgIG1fZnJhbWUgPSBmcmFtZTsKKyAg
ICBpZiAobV9mcmFtZSkKKyAgICAgICAgcHJvdmlkZUNvbnRleHRGZWF0dXJlc1RvRG9jdW1lbnRG
cm9tKHRoaXMsIG1fZnJhbWUtPnBhZ2UoKSk7CiAKICAgICAvLyBXZSBkZXBlbmQgb24gdGhlIHVy
bCBnZXR0aW5nIGltbWVkaWF0ZWx5IHNldCBpbiBzdWJmcmFtZXMsIGJ1dCB3ZQogICAgIC8vIGFs
c28gZGVwZW5kIG9uIHRoZSB1cmwgTk9UIGdldHRpbmcgaW1tZWRpYXRlbHkgc2V0IGluIG9wZW5l
ZCB3aW5kb3dzLgpAQCAtNjY2LDYgKzY3MCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlbW92ZWRMYXN0
UmVmKCkKICAgICAgICAgbV9hY3RpdmVOb2RlID0gMDsKICAgICAgICAgbV90aXRsZUVsZW1lbnQg
PSAwOwogICAgICAgICBtX2RvY3VtZW50RWxlbWVudCA9IDA7CisgICAgICAgIG1fY29udGV4dEZl
YXR1cmVzID0gQ29udGV4dEZlYXR1cmVzOjpkZWZhdWx0U3dpdGNoKCk7CiAjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQogICAgICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50ID0gMDsKICAgICAgICAg
bV9mdWxsU2NyZWVuRWxlbWVudFN0YWNrLmNsZWFyKCk7CkBAIC01OTgyLDYgKzU5ODcsMTEgQEAg
dm9pZCBEb2N1bWVudDo6YWRqdXN0RmxvYXRSZWN0Rm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5k
RnJhbWVTY2FsZShGbG9hdFJlY3QmIHIKICAgICAgICAgcmVjdC5zY2FsZShpbnZlcnNlRnJhbWVT
Y2FsZSk7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OnNldENvbnRleHRGZWF0dXJlcyhQYXNzUmVmUHRy
PENvbnRleHRGZWF0dXJlcz4gZmVhdHVyZXMpCit7CisgICAgbV9jb250ZXh0RmVhdHVyZXMgPSBm
ZWF0dXJlczsKK30KKwogI2lmIEVOQUJMRShVTkRPX01BTkFHRVIpCiBQYXNzUmVmUHRyPFVuZG9N
YW5hZ2VyPiBEb2N1bWVudDo6dW5kb01hbmFnZXIoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCAwNGM1YzQ2YzZlNDkyYjRjODBkMjE1NTU5YmUzNDE1ODliYjhjY2VkLi40ZTU5NGE3ODU1ODAw
NDdkNzRjMGYyMTdhODMyNmEwMmQ1ZTg4YjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNjcs
NiArNjcsNyBAQCBjbGFzcyBDYWNoZWRTY3JpcHQ7CiBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250
ZXh0OwogY2xhc3MgQ2hhcmFjdGVyRGF0YTsKIGNsYXNzIENvbW1lbnQ7CitjbGFzcyBDb250ZXh0
RmVhdHVyZXM7CiBjbGFzcyBET01JbXBsZW1lbnRhdGlvbjsKIGNsYXNzIERPTVNlbGVjdGlvbjsK
IGNsYXNzIERPTVdpbmRvdzsKQEAgLTExMjMsNiArMTEyNCw5IEBAIHB1YmxpYzoKICAgICB2b2lk
IGFkanVzdEZsb2F0UXVhZHNGb3JTY3JvbGxBbmRBYnNvbHV0ZVpvb21BbmRGcmFtZVNjYWxlKFZl
Y3RvcjxGbG9hdFF1YWQ+JiwgUmVuZGVyT2JqZWN0Kik7CiAgICAgdm9pZCBhZGp1c3RGbG9hdFJl
Y3RGb3JTY3JvbGxBbmRBYnNvbHV0ZVpvb21BbmRGcmFtZVNjYWxlKEZsb2F0UmVjdCYsIFJlbmRl
ck9iamVjdCopOwogCisgICAgdm9pZCBzZXRDb250ZXh0RmVhdHVyZXMoUGFzc1JlZlB0cjxDb250
ZXh0RmVhdHVyZXM+KTsKKyAgICBDb250ZXh0RmVhdHVyZXMqIGNvbnRleHRGZWF0dXJlcygpIHsg
cmV0dXJuIG1fY29udGV4dEZlYXR1cmVzLmdldCgpOyB9CisKIHByb3RlY3RlZDoKICAgICBEb2N1
bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApA
QCAtMTIxNyw2ICsxMjIxLDggQEAgcHJpdmF0ZToKICAgICBGcmFtZSogbV9mcmFtZTsKICAgICBP
d25QdHI8Q2FjaGVkUmVzb3VyY2VMb2FkZXI+IG1fY2FjaGVkUmVzb3VyY2VMb2FkZXI7CiAgICAg
UmVmUHRyPERvY3VtZW50UGFyc2VyPiBtX3BhcnNlcjsKKyAgICBSZWZQdHI8Q29udGV4dEZlYXR1
cmVzPiBtX2NvbnRleHRGZWF0dXJlczsKKwogICAgIGJvb2wgbV93ZWxsRm9ybWVkOwogCiAgICAg
Ly8gRG9jdW1lbnQgVVJMcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCmluZGV4IGEwNmZmZDQ1ZjM5
ZjIwMzMyMzY3M2JiMmNkMWMzN2NjOTk0MGYzOWEuLjg4OTE0MzUzMDA4ZGVmOTY3NGE3MTU2NTQ5
MGY1ZjgxNTUxN2MzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcApAQCAtMjcsNyArMjcsNyBA
QAogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uaCIKLSNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVk
ZSAiQ29udGV4dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAi
SW5saW5lVGV4dEJveC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTgyLDcgKzgyLDcgQEAg
UG9zaXRpb246OlBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgTGVnYWN5RWRp
dGluZ09mZnNldCBvZmZzZXQpCiAgICAgLCBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKHRydWUp
CiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgQVNTRVJUKChtX2FuY2hvck5vZGUgJiYg
Q29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hvck5vZGUtPmRv
Y3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBDb250
ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpKSkK
ICAgICAgICAgICAgfHwgIW1fYW5jaG9yTm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jv
b3QoKSk7CiAjZWxzZQogICAgIEFTU0VSVCghbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUt
PmlzU2hhZG93Um9vdCgpKTsKQEAgLTk2LDcgKzk2LDcgQEAgUG9zaXRpb246OlBvc2l0aW9uKFBh
c3NSZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgQW5jaG9yVHlwZSBhbmNob3JUeXBlKQogICAgICwg
bV9pc0xlZ2FjeUVkaXRpbmdQb3NpdGlvbihmYWxzZSkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RP
TSkKLSAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpz
aGFkb3dET01FbmFibGVkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQor
ICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIENvbnRleHRGZWF0dXJlczo6c2hhZG93RE9NRW5h
YmxlZChtX2FuY2hvck5vZGUtPmRvY3VtZW50KCkpKQogICAgICAgICAgICB8fCAhbV9hbmNob3JO
b2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbHNlCiAgICAgQVNTRVJU
KCFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwpAQCAtMTE0
LDcgKzExNCw3IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IGFuY2hvck5v
ZGUsIGludCBvZmZzZXQsIEFuY2hvclR5cGUgYW5jaG9yVHlwCiAgICAgLCBtX2lzTGVnYWN5RWRp
dGluZ1Bvc2l0aW9uKGZhbHNlKQogewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIEFTU0VS
VCgobV9hbmNob3JOb2RlICYmIENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJs
ZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAgQVNTRVJUKCht
X2FuY2hvck5vZGUgJiYgQ29udGV4dEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKG1fYW5jaG9y
Tm9kZS0+ZG9jdW1lbnQoKSkpCiAgICAgICAgICAgIHx8ICFtX2FuY2hvck5vZGUgfHwgIWVkaXRp
bmdJZ25vcmVzQ29udGVudChtX2FuY2hvck5vZGUuZ2V0KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlz
U2hhZG93Um9vdCgpKTsKICNlbHNlCiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwgIWVkaXRp
bmdJZ25vcmVzQ29udGVudChtX2FuY2hvck5vZGUuZ2V0KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlz
U2hhZG93Um9vdCgpKTsKQEAgLTg1Nyw3ICs4NTcsNyBAQCBDb250YWluZXJOb2RlKiBQb3NpdGlv
bjo6ZmluZFBhcmVudChjb25zdCBOb2RlKiBub2RlKQogICAgIC8vIEZJWE1FOiBTZWUgaHR0cDov
L3dlYi51Zy84MjY5NwogCiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgaWYgKENvbnRleHRF
bmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2lu
ZG93KCkpKQorICAgIGlmIChDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobm9kZS0+
ZG9jdW1lbnQoKSkpCiAgICAgICAgIHJldHVybiBub2RlLT5wYXJlbnROb2RlKCk7CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCA4MzIyZmNiMzhhZjU5NjA4NjkwZDE4Mjc4
NmNjODk3OGU5NjY0YWRlLi5iNTQ2NTkxZjdlYjEyZDgwOGEyM2VhMjYzNGNkODg0YzUzYTMwN2Qz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUg
IlRyZWVTY29wZS5oIgogCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgotI2luY2x1ZGUgIkNv
bnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNp
bmNsdWRlICJET01TZWxlY3Rpb24uaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgpAQCAtMTUwLDcgKzE1MCw3IEBAIERPTVNlbGVjdGlvbiogVHJlZVNjb3Bl
OjpnZXRTZWxlY3Rpb24oKSBjb25zdAogICAgIC8vIGFzIGEgY29udGFpbmVyLiBJdCBpcyBub3cg
ZW5hYmxlZCBvbmx5IGlmIHJ1bnRpbWUgU2hhZG93IERPTSBmZWF0dXJlIGlzIGVuYWJsZWQuCiAg
ICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjY5Nwog
I2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIGlmIChDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpz
aGFkb3dET01FbmFibGVkKHJvb3ROb2RlKCktPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkgewor
ICAgIGlmIChDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQocm9vdE5vZGUoKS0+ZG9j
dW1lbnQoKSkpIHsKICAgICAgICAgbV9zZWxlY3Rpb24gPSBET01TZWxlY3Rpb246OmNyZWF0ZSh0
aGlzKTsKICAgICAgICAgcmV0dXJuIG1fc2VsZWN0aW9uLmdldCgpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsIGIvU291cmNlL1dlYkNvcmUvZG9t
L21ha2VfbmFtZXMucGwKaW5kZXggYTZjYjA0MmRmZTAyNmM1ODg0YWY3MDA3YzBhNjM2YjEzYWM5
MTg1Zi4uNmUwYTA2MWM4NmY5MzM2MzE3ZjkwNTVkYTY0MTdiZTAxMzhiYmM0YSAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL21ha2VfbmFtZXMucGwKQEAgLTM3OCw3ICszNzgsNyBAQCBFTkQKICAgICBteSAkY29udGV4
dENvbmRpdGlvbmFsID0gJGVuYWJsZWRUYWdzeyR0YWdOYW1lfXtjb250ZXh0Q29uZGl0aW9uYWx9
OwogICAgIGlmICgkY29udGV4dENvbmRpdGlvbmFsKSB7CiAgICAgICAgIHByaW50IEYgPDxFTkQK
LSAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVu
YWJsZWQoZG9jdW1lbnQtPmRvbVdpbmRvdygpKSkKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlczo6
JHtjb250ZXh0Q29uZGl0aW9uYWx9RW5hYmxlZChkb2N1bWVudCkpCiAgICAgICAgIHJldHVybiAw
OwogRU5ECiA7CkBAIC04MDQsNyArODA0LDcgQEAgcHJpbnRDb25kaXRpb25hbEVsZW1lbnRJbmNs
dWRlcygkRik7CiAKIHByaW50IEYgPDxFTkQKIAotI2luY2x1ZGUgIkNvbnRleHRFbmFibGVkRmVh
dHVyZXMuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKIAogI2lmIEVOQUJMRShEQVNI
Qk9BUkRfU1VQUE9SVCkgfHwgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBA
IC0xMDEzLDcgKzEwMTMsNyBAQCBFTkQKICAgICAgICAgICAgICAgICBwcmludCBGIDw8RU5ECiBz
dGF0aWMgSlNET01XcmFwcGVyKiBjcmVhdGUke0pTSW50ZXJmYWNlTmFtZX1XcmFwcGVyKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjwk
cGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudD4gZWxlbWVudCkKIHsKLSAgICBpZiAoIUNvbnRl
eHRFbmFibGVkRmVhdHVyZXM6OiR7Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQoZWxlbWVudC0+
ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKSB7CisgICAgaWYgKCFDb250ZXh0RmVhdHVyZXM6OiR7
Y29udGV4dENvbmRpdGlvbmFsfUVuYWJsZWQoZWxlbWVudC0+ZG9jdW1lbnQoKSkpIHsKICAgICAg
ICAgQVNTRVJUKCFlbGVtZW50IHx8IGVsZW1lbnQtPmlzJHBhcmFtZXRlcnN7ZmFsbGJhY2tJbnRl
cmZhY2VOYW1lfSgpKTsKICAgICAgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBn
bG9iYWxPYmplY3QsICRwYXJhbWV0ZXJze2ZhbGxiYWNrSW50ZXJmYWNlTmFtZX0sIGVsZW1lbnQu
Z2V0KCkpOwogICAgIH0KQEAgLTEwNTAsNyArMTA1MCw3IEBAIEVORAogICAgICAgICAgICAgICAg
IHByaW50IEYgPDxFTkQKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY3JlYXRlJHtKU0lu
dGVyZmFjZU5hbWV9V3JhcHBlcigkcGFyYW1ldGVyc3tuYW1lc3BhY2V9RWxlbWVudCogZWxlbWVu
dCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7Ci0gICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1
cmVzOjoke2NvbnRleHRDb25kaXRpb25hbH1FbmFibGVkKGVsZW1lbnQtPmRvY3VtZW50KCktPmRv
bVdpbmRvdygpKSkKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlczo6JHtjb250ZXh0Q29uZGl0aW9u
YWx9RW5hYmxlZChlbGVtZW50LT5kb2N1bWVudCgpKSkKICAgICAgICAgcmV0dXJuIFY4JHBhcmFt
ZXRlcnN7ZmFsbGJhY2tJbnRlcmZhY2VOYW1lfTo6d3JhcCh0byRwYXJhbWV0ZXJze2ZhbGxiYWNr
SW50ZXJmYWNlTmFtZX0oZWxlbWVudCksIGlzb2xhdGUpOwogICAgIHJldHVybiB0b1Y4KHN0YXRp
Y19jYXN0PCR7SlNJbnRlcmZhY2VOYW1lfSo+KGVsZW1lbnQpLCBpc29sYXRlKTsKIH0KQEAgLTEx
MTEsNyArMTExMSw3IEBAIHN1YiBwcmludFdyYXBwZXJGYWN0b3J5Q3BwRmlsZQogCiAgICAgcHJp
bnQgRiA8PEVORAogCi0jaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1
ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogCiAjaWYgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggOWFlN2U3MmMyZjI2ZTk3
NDBhZDRhNWYwY2IyNGIxOTk0NDhkODA3MS4uZjBiYTc2NmFiZWVhZjc1MjY3NmZhZDUzYmVmOWIz
NzdlYmMxYzI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgog
I2luY2x1ZGUgIkNoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVh
dHVyZXMuaCIKICNpbmNsdWRlICJEZWxldGVCdXR0b25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgpAQCAtNzMwLDYg
KzczMSw3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9t
TWFya3VwV2l0aENvbnRleHQoRG9jdW1lbnQqIGRvY3VtCiAKICAgICBSZWZQdHI8RG9jdW1lbnRG
cmFnbWVudD4gdGFnZ2VkRnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXAoZG9jdW1l
bnQsIHRhZ2dlZE1hcmt1cC50b1N0cmluZygpLCBiYXNlVVJMLCBzY3JpcHRpbmdQZXJtaXNzaW9u
KTsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IHRhZ2dlZERvY3VtZW50ID0gRG9jdW1lbnQ6OmNyZWF0
ZSgwLCBLVVJMKCkpOworICAgIHRhZ2dlZERvY3VtZW50LT5zZXRDb250ZXh0RmVhdHVyZXMoZG9j
dW1lbnQtPmNvbnRleHRGZWF0dXJlcygpKTsKICAgICB0YWdnZWREb2N1bWVudC0+dGFrZUFsbENo
aWxkcmVuRnJvbSh0YWdnZWRGcmFnbWVudC5nZXQoKSk7CiAKICAgICBSZWZQdHI8Tm9kZT4gbm9k
ZUJlZm9yZUNvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHls
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcApp
bmRleCAzMTZlYmJjM2Q5NzUyN2M4Njc2NDEwMDI2ZDEzMmY3N2QxMDAwZTc2Li5lMjE4OWU5NmJk
YzAwMzVlODIwOWQ0ODgyMDdlNzFhZmY4MDliZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFN0eWxlRWxlbWVudC5jcHAKQEAgLTI1LDcgKzI1LDcgQEAKICNpbmNsdWRlICJIVE1MU3R5bGVF
bGVtZW50LmgiCiAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKLSNpbmNsdWRlICJDb250ZXh0RW5h
YmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50U2VuZGVyLmgi
CkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBIVE1MU3R5bGVFbGVtZW50OjpyZWdpc3RlcldpdGhT
Y29waW5nTm9kZShib29sIHNjb3BlZCkKICAgICBBU1NFUlQoaW5Eb2N1bWVudCgpKTsKICAgICBp
ZiAobV9zY29wZWRTdHlsZVJlZ2lzdHJhdGlvblN0YXRlICE9IE5vdFJlZ2lzdGVyZWQpCiAgICAg
ICAgIHJldHVybjsKLSAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVyZXM6OnN0eWxlU2NvcGVk
RW5hYmxlZChkb2N1bWVudCgpKSkKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlczo6c3R5bGVTY29w
ZWRFbmFibGVkKGRvY3VtZW50KCkpKQogICAgICAgICByZXR1cm47CiAKICAgICBDb250YWluZXJO
b2RlKiBzY29wZSA9IHNjb3BlZCA/IHBhcmVudE5vZGUoKSA6IHNoYWRvd1Jvb3QoKTsKQEAgLTE1
NiwxMCArMTU2LDEwIEBAIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6dW5yZWdpc3RlcldpdGhTY29w
aW5nTm9kZShDb250YWluZXJOb2RlKiBzY29wZSkKIHsKICAgICAvLyBOb3RlOiBXZSBjYW5ub3Qg
cmVseSBvbiB0aGUgJ3Njb3BlZCcgZWxlbWVudCBzdGlsbCBiZWluZyBwcmVzZW50IHdoZW4gdGhp
cyBtZXRob2QgaXMgaW52b2tlZC4KICAgICAvLyBUaGVyZWZvcmUgd2UgY2Fubm90IHJlbHkgb24g
c2NvcGVkKCkhCi0gICAgQVNTRVJUKG1fc2NvcGVkU3R5bGVSZWdpc3RyYXRpb25TdGF0ZSAhPSBO
b3RSZWdpc3RlcmVkIHx8ICFDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJs
ZWQoZG9jdW1lbnQoKSkpOworICAgIEFTU0VSVChtX3Njb3BlZFN0eWxlUmVnaXN0cmF0aW9uU3Rh
dGUgIT0gTm90UmVnaXN0ZXJlZCB8fCAhQ29udGV4dEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJs
ZWQoZG9jdW1lbnQoKSkpOwogICAgIGlmIChtX3Njb3BlZFN0eWxlUmVnaXN0cmF0aW9uU3RhdGUg
PT0gTm90UmVnaXN0ZXJlZCkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghQ29udGV4dEVuYWJs
ZWRGZWF0dXJlczo6c3R5bGVTY29wZWRFbmFibGVkKGRvY3VtZW50KCkpKQorICAgIGlmICghQ29u
dGV4dEZlYXR1cmVzOjpzdHlsZVNjb3BlZEVuYWJsZWQoZG9jdW1lbnQoKSkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIEFTU0VSVChzY29wZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAppbmRleCAwOGI0NWQ0YWJmNTliZmM3NmU4ZTc0
MDAzYzE3NmRkYzk2MGU0YmVmLi5iMGJkZDg4NWY3OGVjNjcwZjhlNzVjNDg5MzAxMmE2MjFkOTU1
NGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbnRlbnREaXN0cmlidXRv
ci5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCi0jaW5jbHVkZSAiQ29udGV4
dEVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgogI2luY2x1
ZGUgIkVsZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJR
dWFsaWZpZWROYW1lLmgiCkBAIC00Myw3ICs0Myw3IEBAIHVzaW5nIEhUTUxOYW1lczo6c2VsZWN0
QXR0cjsKIHN0YXRpYyBjb25zdCBRdWFsaWZpZWROYW1lJiBjb250ZW50VGFnTmFtZShEb2N1bWVu
dCogZG9jdW1lbnQpCiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgaWYgKCFDb250ZXh0
RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKGRvY3VtZW50LT5kb21XaW5kb3coKSkp
CisgICAgaWYgKCFDb250ZXh0RmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoZG9jdW1lbnQpKQog
ICAgICAgICByZXR1cm4gSFRNTE5hbWVzOjp3ZWJraXRTaGFkb3dDb250ZW50VGFnOwogICAgIHJl
dHVybiBIVE1MTmFtZXM6OmNvbnRlbnRUYWc7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0RPTVBhdGNoU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcAppbmRleCBiYTBkOGM4NmM1NThjOGZhOGUyNTNlZTk2
MWIwMDhiZDA2NTNlMjUwLi4yZjIyMTUxYjJlNGExNTcyOTliYjA3ZDhmN2NkZjYwYTdkMWYyZWE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NUGF0Y2hTdXBwb3J0LmNwcApAQCAt
MzYsNiArMzYsNyBAQAogCiAjaW5jbHVkZSAiQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiQmFzZTY0
LmgiCisjaW5jbHVkZSAiQ29udGV4dEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiRE9NRWRpdG9yLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCkBA
IC04OSw2ICs5MCw3IEBAIERPTVBhdGNoU3VwcG9ydDo6fkRPTVBhdGNoU3VwcG9ydCgpIHsgfQog
dm9pZCBET01QYXRjaFN1cHBvcnQ6OnBhdGNoRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBtYXJrdXAp
CiB7CiAgICAgUmVmUHRyPEhUTUxEb2N1bWVudD4gbmV3RG9jdW1lbnQgPSBIVE1MRG9jdW1lbnQ6
OmNyZWF0ZSgwLCBLVVJMKCkpOworICAgIG5ld0RvY3VtZW50LT5zZXRDb250ZXh0RmVhdHVyZXMo
bV9kb2N1bWVudC0+Y29udGV4dEZlYXR1cmVzKCkpOwogICAgIFJlZlB0cjxEb2N1bWVudFBhcnNl
cj4gcGFyc2VyID0gSFRNTERvY3VtZW50UGFyc2VyOjpjcmVhdGUobmV3RG9jdW1lbnQuZ2V0KCks
IGZhbHNlKTsKICAgICBwYXJzZXItPmluc2VydChtYXJrdXApOyAvLyBVc2UgaW5zZXJ0KCkgc28g
dGhhdCB0aGUgcGFyc2VyIHdpbGwgbm90IHlpZWxkLgogICAgIHBhcnNlci0+ZmluaXNoKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGY1YzdhNzI2NmE2
MDBkZWE1MjliZjlkMTNjMTdiZGU2MjBlYTlkMjcuLmJlODEwMjg3YTcwZDU1ZThlNjU2YmZmM2Q2
NDBhYWZhNTMzYjEwNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVu
dC5oCkBAIC0zMTEsMTIgKzMxMSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmly
dHVhbCBib29sIGFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJT
ZXR0aW5ncywgU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBl
clNldHRpbmdzOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNv
bnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VS
TCYpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQogCi0gICAgICAgIHZpcnR1YWwgYm9v
bCBhbGxvd1NoYWRvd0RPTShib29sIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlcykgeyByZXR1cm4g
ZW5hYmxlZEFzUnVudGltZUZlYXR1cmVzOyB9Ci0gICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd1N0
eWxlU2NvcGVkKGJvb2wgZW5hYmxlZEFzUnVudGltZUZlYXR1cmVzKSB7IHJldHVybiBlbmFibGVk
QXNSdW50aW1lRmVhdHVyZXM7IH0KLSNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKLSAgICAgICAgdmly
dHVhbCBib29sIGFsbG93UGFnZVBvcHVwKCkgeyByZXR1cm4gZmFsc2U7IH0KLSNlbmRpZgotCiAg
ICAgICAgIC8vIFRoaXMgY2FsbGJhY2sgbm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBmcmFt
ZSB3YXMgYWJvdXQgdG8gcnVuCiAgICAgICAgIC8vIEphdmFTY3JpcHQgYnV0IGRpZCBub3QgYmVj
YXVzZSBhbGxvd1NjcmlwdCByZXR1cm5lZCBmYWxzZS4gV2UKICAgICAgICAgLy8gaGF2ZSBhIHNl
cGFyYXRlIGNhbGxiYWNrIGhlcmUgYmVjYXVzZSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcGxhY2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWZDb3VudGVkU3VwcGxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVmQ291bnRlZFN1cHBsZW1lbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mOTlkNDU1OTdjYTgzN2RkODViN2ZhOGI0YmMyNzg0NWFkOGYyNTQ2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVmQ291bnRlZFN1cHBsZW1lbnQu
aApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFJlZkNvdW50ZWRTdXBwbGVtZW50X2gKKyNkZWZpbmUgUmVmQ291
bnRlZFN1cHBsZW1lbnRfSAorCisjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBTPgorY2xhc3MgUmVmQ291bnRl
ZFN1cHBsZW1lbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxTPiB7CitwdWJsaWM6CisgICAgdHlwZWRl
ZiBSZWZDb3VudGVkU3VwcGxlbWVudDxULCBTPiBUaGlzVHlwZTsKKworICAgIHZpcnR1YWwgflJl
ZkNvdW50ZWRTdXBwbGVtZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGhvc3REZXN0cm95ZWQo
KSB7IH0KKworICAgIGNsYXNzIFdyYXBwZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxUPiB7CisgICAg
cHVibGljOgorICAgICAgICBleHBsaWNpdCBXcmFwcGVyKFBhc3NSZWZQdHI8VGhpc1R5cGU+IHdy
YXBwZWQpIDogbV93cmFwcGVkKHdyYXBwZWQpIHsgfQorICAgICAgICB2aXJ0dWFsIH5XcmFwcGVy
KCkgeyBtX3dyYXBwZWQtPmhvc3REZXN0cm95ZWQoKTsgIH0KKyNpZiAhQVNTRVJUX0RJU0FCTEVE
CisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1JlZkNvdW50ZWRXcmFwcGVyKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gdHJ1ZTsgfQorI2VuZGlmCisgICAgICAgIFRoaXNUeXBlKiB3cmFwcGVkKCkg
Y29uc3QgeyByZXR1cm4gbV93cmFwcGVkLmdldCgpOyB9CisgICAgcHJpdmF0ZToKKworICAgICAg
ICBSZWZQdHI8VGhpc1R5cGU+IG1fd3JhcHBlZDsKKyAgICB9OworCisgICAgc3RhdGljIHZvaWQg
cHJvdmlkZVRvKFN1cHBsZW1lbnRhYmxlPFQ+KiBob3N0LCBjb25zdCBBdG9taWNTdHJpbmcmIGtl
eSwgUGFzc1JlZlB0cjxUaGlzVHlwZT4gc3VwcGxlbWVudCkKKyAgICB7CisgICAgICAgIGhvc3Qt
PnByb3ZpZGVTdXBwbGVtZW50KGtleSwgYWRvcHRQdHIobmV3IFdyYXBwZXIoc3VwcGxlbWVudCkp
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgVGhpc1R5cGUqIGZyb20oU3VwcGxlbWVudGFibGU8VD4q
IGhvc3QsIGNvbnN0IEF0b21pY1N0cmluZyYga2V5KQorICAgIHsKKyAgICAgICAgU3VwcGxlbWVu
dDxUPiogZm91bmQgPSBob3N0LT5yZXF1aXJlU3VwcGxlbWVudChrZXkpOworICAgICAgICBpZiAo
IWZvdW5kKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIEFTU0VSVChmb3VuZC0+aXNS
ZWZDb3VudGVkV3JhcHBlcigpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdyYXBwZXIq
Pihmb3VuZCktPndyYXBwZWQoKTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBSZWZDb3VudGVkU3VwcGxlbWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU3VwcGxlbWVudGFibGUuaAppbmRleCA4NGRjOTA2ZTJhZjM0OGEzNGQ4NWI2YjlkODNjNjk3
MmVjMmQ2NmUxLi40MTk5YWM1MDk1MjZiMDZlN2Q4OTkxMmYzZDhhODdlYzI4YmI4YjliIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TdXBwbGVtZW50YWJsZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1N1cHBsZW1lbnRhYmxlLmgKQEAgLTQwLDYgKzQwLDkgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNsYXNzIFN1cHBsZW1lbnQgewogcHVibGljOgogICAgIHZp
cnR1YWwgflN1cHBsZW1lbnQoKSB7IH0KKyNpZiAhQVNTRVJUX0RJU0FCTEVECisgICAgdmlydHVh
bCBib29sIGlzUmVmQ291bnRlZFdyYXBwZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2Vu
ZGlmCiAKICAgICBzdGF0aWMgdm9pZCBwcm92aWRlVG8oU3VwcGxlbWVudGFibGU8VD4qIGhvc3Qs
IGNvbnN0IEF0b21pY1N0cmluZyYga2V5LCBQYXNzT3duUHRyPFN1cHBsZW1lbnQ8VD4gPiBzdXBw
bGVtZW50KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVx
dWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDE1
MTY2ODAxNzA4ZTI2NzYxYjNlYWQyYzBhNjNkOWI0MDZkYjdmNTcuLmY2YWMwMTljYmU1NjM5Y2Vl
MGQ4MzA0NDAxMTEzMDM5NzMzMTY0YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJCbG9i
RGF0YS5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgorI2luY2x1ZGUgIkNv
bnRleHRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgog
I2luY2x1ZGUgIkRPTUZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIK
QEAgLTI1Myw2ICsyNTQsNyBAQCBEb2N1bWVudCogWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1M
KEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAgLy8gRklYTUU6IFNldCBMYXN0LU1vZGlm
aWVkLgogICAgICAgICAgICAgbV9yZXNwb25zZURvY3VtZW50LT5zZXRDb250ZW50KG1fcmVzcG9u
c2VCdWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKICAgICAgICAgICAgIG1fcmVz
cG9uc2VEb2N1bWVudC0+c2V0U2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlPcmlnaW4oKSk7CisgICAg
ICAgICAgICBtX3Jlc3BvbnNlRG9jdW1lbnQtPnNldENvbnRleHRGZWF0dXJlcyhkb2N1bWVudCgp
LT5jb250ZXh0RmVhdHVyZXMoKSk7CiAgICAgICAgICAgICBpZiAoIW1fcmVzcG9uc2VEb2N1bWVu
dC0+d2VsbEZvcm1lZCgpKQogICAgICAgICAgICAgICAgIG1fcmVzcG9uc2VEb2N1bWVudCA9IDA7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCA5OTIwNGI4ODZhYjdl
YzFjZjRkMjRhNTkzY2NkY2QwMjdkNTQ5OTAxLi5iMTliM2RmZTI0ZTg5NzE1ZWNkY2E5MjM5MjJj
NjRlY2RiZTI0NmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0zNzEsNiArMzcx
LDggQEAKICAgICAgICAgICAgICAgICAnc3JjL0NvbXBvc2l0aW9uVW5kZXJsaW5lQnVpbGRlci5o
JywKICAgICAgICAgICAgICAgICAnc3JjL0NvbXBvc2l0aW9uVW5kZXJsaW5lVmVjdG9yQnVpbGRl
ci5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvQ29tcG9zaXRpb25VbmRlcmxpbmVWZWN0b3JC
dWlsZGVyLmgnLAorICAgICAgICAgICAgICAgICdzcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1w
bC5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5o
JywKICAgICAgICAgICAgICAgICAnc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAnLAogICAg
ICAgICAgICAgICAgICdzcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmgnLAogICAgICAgICAgICAg
ICAgICdzcmMvRGF0YWJhc2VPYnNlcnZlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCmluZGV4IDExNmEzODNjYThjMjhi
NDc4OWFlNzM1ZmYxZTQ0Y2QzMjdkZGVjODMuLjAxNGMyYzNmNDQwMjM1NDJkNjFiMTg5YzUyMjVm
NzQwNDY1Y2M4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlBlcm1pc3Npb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJQZXJtaXNzaW9uQ2xpZW50LmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKK2NsYXNzIFdlYkRvY3VtZW50OwogY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJTZWN1
cml0eU9yaWdpbjsKIGNsYXNzIFdlYlN0cmluZzsKQEAgLTkwLDcgKzkxLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBhbGxvd1dyaXRlVG9DbGlwYm9hcmQoV2ViRnJhbWUqLCBib29sIGRl
ZmF1bHRWYWx1ZSkgeyByZXR1cm4gZGVmYXVsdFZhbHVlOyB9CiAKICAgICAvLyBDb250cm9scyB3
aGV0aGVyIGVuYWJsaW5nIFdlYiBDb21wb25lbnRzIEFQSSBmb3IgdGhpcyBmcmFtZS4KLSAgICB2
aXJ0dWFsIGJvb2wgYWxsb3dXZWJDb21wb25lbnRzKFdlYkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFs
dWUpIHsgcmV0dXJuIGRlZmF1bHRWYWx1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBhbGxvd1dlYkNv
bXBvbmVudHMoY29uc3QgV2ViRG9jdW1lbnQmLCBib29sIGRlZmF1bHRWYWx1ZSkgeyByZXR1cm4g
ZGVmYXVsdFZhbHVlOyB9CiAKICAgICAvLyBOb3RpZmllcyB0aGUgY2xpZW50IHRoYXQgdGhlIGZy
YW1lIHdvdWxkIGhhdmUgaW5zdGFudGlhdGVkIGEgcGx1Zy1pbiBpZiBwbHVnLWlucyB3ZXJlIGVu
YWJsZWQuCiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucyhXZWJGcmFtZSopIHsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dEZlYXR1cmVz
Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVy
ZXNDbGllbnRJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYWRhMDc3ODc2NGYwMjZlYTg2NmU3OWE2ZmE5
YzE1NjhkYmRkZmE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgiCisKKyNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIldlYkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
V2ViUGVybWlzc2lvbkNsaWVudC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBDb250
ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjppc0VuYWJsZWQoV2ViQ29yZTo6RG9jdW1lbnQqIGRvY3Vt
ZW50LCBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlIHR5cGUsIGJvb2wgZGVm
YXVsdFZhbHVlKQoreworICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVybiBkZWZhdWx0
VmFsdWU7CisKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRG
ZWF0dXJlczo6U2hhZG93RE9NOgorICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpT
dHlsZVNjb3BlZDoKKyAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5hbGxvd1dlYkNvbXBvbmVudHMo
V2ViRG9jdW1lbnQoZG9jdW1lbnQpLCBkZWZhdWx0VmFsdWUpOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJl
c0NsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJl
c0NsaWVudEltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTFmOTU0OGQ5MjgwMjBjNjA2ZDRmZGJlZjQ5NDE1
NDNiYjJiYjg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbnRl
eHRGZWF0dXJlc0NsaWVudEltcGxfaAorI2RlZmluZSBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBs
X2gKKworI2luY2x1ZGUgIkNvbnRleHRGZWF0dXJlcy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgV2ViUGVybWlzc2lvbkNsaWVudDsKKworY2xhc3MgQ29udGV4dEZlYXR1cmVzQ2xp
ZW50SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpDb250ZXh0RmVhdHVyZXNDbGllbnQgeworcHVibGlj
OgorICAgIENvbnRleHRGZWF0dXJlc0NsaWVudEltcGwoKQorICAgICAgICA6IG1fY2xpZW50KDAp
CisgICAgeyB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNFbmFibGVkKFdlYkNvcmU6OkRvY3VtZW50
KiwgV2ViQ29yZTo6Q29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSwgYm9vbCBkZWZhdWx0VmFs
dWUpIE9WRVJSSURFOworICAgIHZvaWQgc2V0UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNzaW9u
Q2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKworcHJpdmF0ZToKKyAgICBX
ZWJQZXJtaXNzaW9uQ2xpZW50KiBtX2NsaWVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCBk
ZTNmMjI3ODlmNWZhMTViMGFjZDhlZDc0ZDFlNWFmOTBlOTY5ZjJjLi5kMDYwMmE5YTBlNzA0ZWNk
OTEyZjZkY2FmYzFjY2M1ZjlhMmFmOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKQEAgLTIzOSwyNCArMjM5LDYgQEAg
Ym9vbCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChi
b29sIGVuYWJsZWRQZXJTZXR0aW5ncywKICAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOwog
fQogCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dTaGFkb3dET00oYm9vbCBlbmFi
bGVkQXNSdW50aW1lRmVhdHVyZSkKLXsKLSAgICBXZWJWaWV3SW1wbCogd2VidmlldyA9IG1fd2Vi
RnJhbWUtPnZpZXdJbXBsKCk7Ci0gICAgaWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lv
bkNsaWVudCgpKQotICAgICAgICByZXR1cm4gd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5h
bGxvd1dlYkNvbXBvbmVudHMobV93ZWJGcmFtZSwgZW5hYmxlZEFzUnVudGltZUZlYXR1cmUpOwot
Ci0gICAgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlOwotfQotCi1ib29sIEZyYW1lTG9h
ZGVyQ2xpZW50SW1wbDo6YWxsb3dTdHlsZVNjb3BlZChib29sIGVuYWJsZWRBc1J1bnRpbWVGZWF0
dXJlKQotewotICAgIFdlYlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFtZS0+dmlld0ltcGwo
KTsKLSAgICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCkpCi0gICAg
ICAgIHJldHVybiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93V2ViQ29tcG9uZW50
cyhtX3dlYkZyYW1lLCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZSk7Ci0KLSAgICByZXR1cm4gZW5h
YmxlZEFzUnVudGltZUZlYXR1cmU7Ci19Ci0KIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpk
aWROb3RBbGxvd1NjcmlwdCgpCiB7CiAgICAgV2ViVmlld0ltcGwqIHdlYnZpZXcgPSBtX3dlYkZy
YW1lLT52aWV3SW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RnJhbWVMb2FkZXJDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFt
ZUxvYWRlckNsaWVudEltcGwuaAppbmRleCAyMzZhMDFiNjUzMDI5NTE0NmFjZWExM2JkZTVkMGYy
MzgzN2E5ZmFmLi5lY2IyMGEyZmIyNWVmZTY0YWZlNjBkNDI0NmU2Yzk5M2FmNWYzMTI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
aApAQCAtMTk5LDggKzE5OSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dJbWFn
ZShib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgY29uc3QgV2ViQ29yZTo6S1VSTCYgaW1hZ2VVUkwp
OwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBl
bmFibGVkUGVyU2V0dGluZ3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29y
ZTo6S1VSTCYpOwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQo
Ym9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3Qg
V2ViQ29yZTo6S1VSTCYpOwotICAgIHZpcnR1YWwgYm9vbCBhbGxvd1NoYWRvd0RPTShib29sIGVu
YWJsZWRBc1J1bnRpbWVGZWF0dXJlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgYWxsb3dT
dHlsZVNjb3BlZChib29sIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90
QWxsb3dQbHVnaW5zKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlBhZ2VQb3B1cEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFn
ZVBvcHVwSW1wbC5jcHAKaW5kZXggMGY5ZmIxODhlODYzMTc2ZjU4ZDM2YzBmMmRkYTJjMDNlM2Y4
NDI3MC4uZWRhY2QwMTgzODc3MWNhMGY1ZmE5YmNlYTAwMWI1N2NkZGVkZjgzNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGFnZVBvcHVwSW1wbC5jcHAKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJXZWJQYWdlUG9wdXBJbXBsLmgiCiAKICNpbmNsdWRlICJDaHJv
bWUuaCIKKyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXMuaCIKICNpbmNsdWRlICJET01XaW5kb3dQ
YWdlUG9wdXAuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1ZGUgIkVtcHR5
Q2xpZW50cy5oIgpAQCAtMTI1LDEwICsxMjYsMTcgQEAgcHJpdmF0ZToKICAgICBXZWJQYWdlUG9w
dXBJbXBsKiBtX3BvcHVwOwogfTsKIAotY2xhc3MgUGFnZVBvcHVwRnJhbWVMb2FkZXJDbGllbnQg
OiBwdWJsaWMgRW1wdHlGcmFtZUxvYWRlckNsaWVudCB7Ci0gICAgdmlydHVhbCBib29sIGFsbG93
UGFnZVBvcHVwKCkgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorY2xhc3MgUGFnZVBvcHVwRmVh
dHVyZXNDbGllbnQgOiBwdWJsaWMgQ29udGV4dEZlYXR1cmVzQ2xpZW50IHsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNFbmFibGVkKERvY3VtZW50KiwgQ29udGV4dEZlYXR1cmVzOjpGZWF0dXJlVHlwZSwg
Ym9vbCkgT1ZFUlJJREU7CiB9OwogCitib29sIFBhZ2VQb3B1cEZlYXR1cmVzQ2xpZW50Ojppc0Vu
YWJsZWQoRG9jdW1lbnQqLCBDb250ZXh0RmVhdHVyZXM6OkZlYXR1cmVUeXBlIHR5cGUsIGJvb2wg
ZGVmYXVsdFZhbHVlKQoreworICAgIGlmICh0eXBlID09IENvbnRleHRGZWF0dXJlczo6UGFnZVBv
cHVwKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworfQor
CiAvLyBXZWJQYWdlUG9wdXBJbXBsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogV2ViUGFnZVBvcHVwSW1wbDo6V2ViUGFn
ZVBvcHVwSW1wbChXZWJXaWRnZXRDbGllbnQqIGNsaWVudCkKQEAgLTE4Myw4ICsxOTEsMTAgQEAg
Ym9vbCBXZWJQYWdlUG9wdXBJbXBsOjppbml0UGFnZSgpCiAgICAgbV9wYWdlLT5zZXR0aW5ncygp
LT5zZXRTY3JpcHRFbmFibGVkKHRydWUpOwogICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0QWxs
b3dTY3JpcHRzVG9DbG9zZVdpbmRvd3ModHJ1ZSk7CiAKLSAgICBzdGF0aWMgRnJhbWVMb2FkZXJD
bGllbnQqIHBhZ2VQb3B1cEZyYW1lTG9hZGVyQ2xpZW50ID0gIG5ldyBQYWdlUG9wdXBGcmFtZUxv
YWRlckNsaWVudDsKLSAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gRnJhbWU6OmNyZWF0ZShtX3Bh
Z2UuZ2V0KCksIDAsIHBhZ2VQb3B1cEZyYW1lTG9hZGVyQ2xpZW50KTsKKyAgICBzdGF0aWMgQ29u
dGV4dEZlYXR1cmVzQ2xpZW50KiBwYWdlUG9wdXBGZWF0dXJlc0NsaWVudCA9ICBuZXcgUGFnZVBv
cHVwRmVhdHVyZXNDbGllbnQoKTsKKyAgICBwcm92aWRlQ29udGV4dEZlYXR1cmVzVG8obV9wYWdl
LmdldCgpLCBwYWdlUG9wdXBGZWF0dXJlc0NsaWVudCk7CisgICAgc3RhdGljIEZyYW1lTG9hZGVy
Q2xpZW50KiBlbXB0eUZyYW1lTG9hZGVyQ2xpZW50ID0gIG5ldyBFbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50KCk7CisgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IEZyYW1lOjpjcmVhdGUobV9wYWdlLmdl
dCgpLCAwLCBlbXB0eUZyYW1lTG9hZGVyQ2xpZW50KTsKICAgICBmcmFtZS0+c2V0VmlldyhGcmFt
ZVZpZXc6OmNyZWF0ZShmcmFtZS5nZXQoKSkpOwogICAgIGZyYW1lLT5pbml0KCk7CiAgICAgZnJh
bWUtPnZpZXcoKS0+cmVzaXplKG1fcG9wdXBDbGllbnQtPmNvbnRlbnRTaXplKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IDkzMGEyMjNmY2Q4YzRm
ZmY1MmQ2OWFhNmNhZjkwNWNjZjU1MmRkNmUuLmU2NmFkZGQ3ZDEzYzIwMmZmMTM3Yjg2ZjlhZTE0
MmExNjdkZTAwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkNvbG9y
U3BhY2UuaCIKICNpbmNsdWRlICJDb21wb3NpdGlvblVuZGVybGluZVZlY3RvckJ1aWxkZXIuaCIK
KyNpbmNsdWRlICJDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAiQ29udGV4
dE1lbnUuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJD
b250ZXh0TWVudUl0ZW0uaCIKQEAgLTMzNyw2ICszMzgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpz
ZXREZXZUb29sc0FnZW50Q2xpZW50KFdlYkRldlRvb2xzQWdlbnRDbGllbnQqIGRldlRvb2xzQ2xp
ZW50KQogdm9pZCBXZWJWaWV3SW1wbDo6c2V0UGVybWlzc2lvbkNsaWVudChXZWJQZXJtaXNzaW9u
Q2xpZW50KiBwZXJtaXNzaW9uQ2xpZW50KQogewogICAgIG1fcGVybWlzc2lvbkNsaWVudCA9IHBl
cm1pc3Npb25DbGllbnQ7CisgICAgbV9mZWF0dXJlU3dpdGNoQ2xpZW50LT5zZXRQZXJtaXNzaW9u
Q2xpZW50KHBlcm1pc3Npb25DbGllbnQpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQcmVy
ZW5kZXJlckNsaWVudChXZWJQcmVyZW5kZXJlckNsaWVudCogcHJlcmVuZGVyZXJDbGllbnQpCkBA
IC0zOTIsNiArMzk0LDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQq
IGNsaWVudCkKICAgICAsIG1faW1lQWNjZXB0RXZlbnRzKHRydWUpCiAgICAgLCBtX29wZXJhdGlv
bnNBbGxvd2VkKFdlYkRyYWdPcGVyYXRpb25Ob25lKQogICAgICwgbV9kcmFnT3BlcmF0aW9uKFdl
YkRyYWdPcGVyYXRpb25Ob25lKQorICAgICwgbV9mZWF0dXJlU3dpdGNoQ2xpZW50KGFkb3B0UHRy
KG5ldyBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsKCkpKQogICAgICwgbV9hdXRvZmlsbFBvcHVw
U2hvd2luZyhmYWxzZSkKICAgICAsIG1fYXV0b2ZpbGxQb3B1cCgwKQogICAgICwgbV9pc1RyYW5z
cGFyZW50KGZhbHNlKQpAQCAtNDUxLDYgKzQ1NCw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1w
bChXZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAgICAgcHJvdmlkZU5vdGlmaWNhdGlvbihtX3BhZ2Uu
Z2V0KCksIG5vdGlmaWNhdGlvblByZXNlbnRlckltcGwoKSk7CiAjZW5kaWYKIAorICAgIHByb3Zp
ZGVDb250ZXh0RmVhdHVyZXNUbyhtX3BhZ2UuZ2V0KCksIG1fZmVhdHVyZVN3aXRjaENsaWVudC5n
ZXQoKSk7CiAgICAgcHJvdmlkZURldmljZU9yaWVudGF0aW9uVG8obV9wYWdlLmdldCgpLCBtX2Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkuZ2V0KCkpOwogICAgIHByb3ZpZGVHZW9sb2NhdGlv
blRvKG1fcGFnZS5nZXQoKSwgbV9nZW9sb2NhdGlvbkNsaWVudFByb3h5LmdldCgpKTsKICAgICBt
X2dlb2xvY2F0aW9uQ2xpZW50UHJveHktPnNldENvbnRyb2xsZXIoR2VvbG9jYXRpb25Db250cm9s
bGVyOjpmcm9tKG1fcGFnZS5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKaW5kZXggYTA4ODk2NzhhMTQwMDc0MmNjMjZlMGViZmJiZTIzZTE5OGI5MmQyZS4u
N2JkZGE5MGY0MGQ4ZThhY2U1YjFhNmI2N2M2OGVjY2Y3YTZlZWYwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC04Niw2ICs4Niw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogY2xhc3MgQXV0b2NvbXBsZXRlUG9wdXBNZW51Q2xpZW50OwogY2xhc3MgQXV0b2Zp
bGxQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBCYXR0ZXJ5Q2xpZW50SW1wbDsKK2NsYXNzIENvbnRl
eHRGZWF0dXJlc0NsaWVudEltcGw7CiBjbGFzcyBDb250ZXh0TWVudUNsaWVudEltcGw7CiBjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5OwogY2xhc3MgRHJhZ1Njcm9sbFRpbWVyOwpA
QCAtNzMzLDYgKzczNCw5IEBAIHByaXZhdGU6CiAgICAgLy8gY3VycmVudCBkcm9wIHRhcmdldCBp
biB0aGlzIFdlYlZpZXcgKHRoZSBkcm9wIHRhcmdldCBjYW4gYWNjZXB0IHRoZSBkcm9wKS4KICAg
ICBXZWJEcmFnT3BlcmF0aW9uIG1fZHJhZ09wZXJhdGlvbjsKIAorICAgIC8vIENvbnRleHQtYmFz
ZWQgZmVhdHVyZSBzd2l0Y2hlcy4KKyAgICBPd25QdHI8Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1w
bD4gbV9mZWF0dXJlU3dpdGNoQ2xpZW50OworCiAgICAgLy8gV2hldGhlciBhbiBBdXRvZmlsbCBw
b3B1cCBpcyBjdXJyZW50bHkgc2hvd2luZy4KICAgICBib29sIG1fYXV0b2ZpbGxQb3B1cFNob3dp
bmc7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBkMTM4NDA0Njc3MTQ1ZjQ0MWRlYzg5NmQzMWU5NzJmZGE2ZDk0MjFhLi5k
MWIxYjcyMzY2Yzg0NTg0OTE4MDZhZTJjNGNlNjBhZjM0ZWY3ZWFmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTItMDYtMTIgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUkVHUkVTU0lPTihyMTE4MDk4KTogPGNvbnRlbnQ+IGVsZW1lbnQgZG9lcyBu
b3QgcmVuZGVyIGRpc3RyaWJ1dGVkIGNoaWxkcmVuIHdoZW4gY2xvbmVkIGZyb20gYW5vdGhlciBk
b2N1bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODgxNDgKKworICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAg
KiBmYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2VsZW1lbnRzLWluLWZyYW1l
bGVzcy1kb2N1bWVudC5odG1sOiBBZGRlZC4KKwogMjAxMi0wNi0xMiAgTU9SSVRBIEhhamltZSAg
PG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBTaGFkb3cgUHNldWRvIElEIHNob3VsZCBi
ZSBhYmxlIHRvIG5lc3QgdG8gcG9pbnQgbmVzdGVkIHNoYWRvdyBET00uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVtZW50cy1pbi1m
cmFtZWxlc3MtZG9jdW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2NDMwNzUzZjI5NTMy
ZTFmNTIyMTUwMGE5OTIwYzEyZjgzNzZhMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3QgZW5zdXJlIHRoYXQgdGhlIHNoYWRvdyBy
ZWxhdGVkIGVsZW1lbnRzIGFyZSBpbnN0YW50aWF0ZWQgZXZlbiBpbnNpZGUgZnJhbWVsZXNzIGRv
Y3VtZW50cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3Rpbmcgb24gdGhl
IGZyYW1lLWxlc3MgZG9jdW1lbnQuCitQQVNTIHdpbmRvdy5IVE1MQ29udGVudEVsZW1lbnQgaXMg
Y29udGVudC5jb25zdHJ1Y3RvcgorUEFTUyB3aW5kb3cuSFRNTFNoYWRvd0VsZW1lbnQgaXMgc2hh
ZG93LmNvbnN0cnVjdG9yCitNb3ZpbmcgdG8gdGhlIG1haW4gZG9jdW1lbnQuCitQQVNTIHdpbmRv
dy5IVE1MQ29udGVudEVsZW1lbnQgaXMgY29udGVudC5jb25zdHJ1Y3RvcgorUEFTUyB3aW5kb3cu
SFRNTFNoYWRvd0VsZW1lbnQgaXMgc2hhZG93LmNvbnN0cnVjdG9yCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK3grCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3VtZW50Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvZWxlbWVudHMtaW4tZnJhbWVsZXNzLWRvY3Vt
ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBiNmJlODFlZjU3ZGNiMjFmZjU1NjU2N2Q0YjQ2ZjBlOTM2
ZTI5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9lbGVt
ZW50cy1pbi1mcmFtZWxlc3MtZG9jdW1lbnQuaHRtbApAQCAtMCwwICsxLDMwIEBACit4KzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBlbnN1cmUgdGhhdCB0aGUgc2hhZG93IHJlbGF0ZWQgZWxl
bWVudHMgYXJlIGluc3RhbnRpYXRlZCBldmVuIGluc2lkZSBmcmFtZWxlc3MgZG9jdW1lbnRzLiIp
OworCit2YXIgZG9jID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50
KCk7Cit2YXIgY29udGFpbmVyID0gZG9jLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKK2RvYy5ib2R5
LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7Citjb250YWluZXIuaW5uZXJIVE1MID0gIjxjb250ZW50
IGlkPSdjb250ZW50RWxlbWVudCc+PC9jb250ZW50PjxzaGFkb3cgaWQ9J3NoYWRvd0VsZW1lbnQn
Pjwvc2hhZG93PiI7CisKK3ZhciBjb250ZW50ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIiNj
b250ZW50RWxlbWVudCIpOwordmFyIHNoYWRvdyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCIj
c2hhZG93RWxlbWVudCIpOworCitkZWJ1ZygiVGVzdGluZyBvbiB0aGUgZnJhbWUtbGVzcyBkb2N1
bWVudC4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuSFRNTENvbnRlbnRFbGVtZW50IiwgImNvbnRlbnQu
Y29uc3RydWN0b3IiKTsKK3Nob3VsZEJlKCJ3aW5kb3cuSFRNTFNoYWRvd0VsZW1lbnQiLCAic2hh
ZG93LmNvbnN0cnVjdG9yIik7CisKK2RlYnVnKCJNb3ZpbmcgdG8gdGhlIG1haW4gZG9jdW1lbnQu
Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CitzaG91bGRCZSgid2lu
ZG93LkhUTUxDb250ZW50RWxlbWVudCIsICJjb250ZW50LmNvbnN0cnVjdG9yIik7CitzaG91bGRC
ZSgid2luZG93LkhUTUxTaGFkb3dFbGVtZW50IiwgInNoYWRvdy5jb25zdHJ1Y3RvciIpOworCis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>